summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2011-04-17 14:38:35 +0200
committerDan McGee <dan@archlinux.org>2011-04-21 01:58:55 +0200
commit4c31bc6e3f32d954a9a0f81555abe5b91db3a6d3 (patch)
tree89927ede6fc4ed41c6d0c58bf6450fc211c7372f
parentcb35affd1b2ac7bb489c8774685225672c5a3d9f (diff)
downloadpacman-4c31bc6e3f32d954a9a0f81555abe5b91db3a6d3.tar.gz
pacman-4c31bc6e3f32d954a9a0f81555abe5b91db3a6d3.tar.xz
Add configure option to specify package signing key
Add the "GPGKEY" option to makepkg.conf for specifying signing packages with the non-default key from the keyring. Is overridded by makepkg's --key option. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--doc/makepkg.8.txt5
-rw-r--r--doc/makepkg.conf.5.txt4
-rw-r--r--etc/makepkg.conf.in2
-rw-r--r--scripts/makepkg.sh.in14
4 files changed, 17 insertions, 8 deletions
diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index f1b9f9c8..1a2dcd04 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -169,8 +169,9 @@ Options
Do not create a signature for the built package.
*\--key* <key>::
- Specify a key to use when signing the package. If not specified, the default
- key from the keyring will be used.
+ Specify a key to use when signing packages, overriding the GPGKEY setting
+ in linkman:makepkg.conf[5]. If not specified in either location, the
+ default key from the keyring will be used.
*\--noconfirm*::
(Passed to pacman) Prevent pacman from waiting for user input before
diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index a9faa14d..9d3ad0a1 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -110,6 +110,10 @@ Options
running in the DistCC cluster. In addition, you will want to modify your
`MAKEFLAGS`.
+**GPGKEY=**""::
+ Specify a key to use for gpg signing instead of the default key in the
+ keyring. Can be overridden with makepkg's `--key` option.
+
**OPTIONS=(**strip !docs libtool emptydirs zipman**)**::
This array contains options that affect the default packaging. They are
equivalent to options that can be placed in the PKGBUILD; the defaults are
diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
index c3b7cc09..9a790fcf 100644
--- a/etc/makepkg.conf.in
+++ b/etc/makepkg.conf.in
@@ -101,6 +101,8 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#SRCPKGDEST=/home/srcpackages
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
+#-- Specify a key to use for package signing
+#GPGKEY=""
#########################################################################
# EXTENSION DEFAULTS
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 36ac7280..70d3cf32 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1116,8 +1116,8 @@ create_signature() {
fi
local SIGNWITHKEY=""
- if [[ -n $SIGNKEY ]]; then
- SIGNWITHKEY="-u ${SIGNKEY}"
+ if [[ -n $GPGKEY ]]; then
+ SIGNWITHKEY="-u ${GPGKEY}"
fi
# The signature will be generated directly in ascii-friendly format
gpg --detach-sign --use-agent ${SIGNWITHKEY} "$filename" &>/dev/null || ret=$?
@@ -1697,7 +1697,7 @@ while true; do
-g|--geninteg) GENINTEG=1 ;;
--holdver) HOLDVER=1 ;;
-i|--install) INSTALL=1 ;;
- --key) shift; SIGNKEY=$1 ;;
+ --key) shift; GPGKEY=$1 ;;
-L|--log) LOGGING=1 ;;
-m|--nocolor) USE_COLOR='n' ;;
--nocheck) RUN_CHECK='n' ;;
@@ -1727,6 +1727,7 @@ done
[[ -n ${SRCPKGDEST} ]] && _SRCPKGDEST=$(canonicalize_path ${SRCPKGDEST})
[[ -n ${PKGEXT} ]] && _PKGEXT=${PKGEXT}
[[ -n ${SRCEXT} ]] && _SRCEXT=${SRCEXT}
+[[ -n ${GPGKEY} ]] && _GPGKEY=${GPGKEY}
# default config is makepkg.conf
MAKEPKG_CONF=${MAKEPKG_CONF:-$confdir/makepkg.conf}
@@ -1792,6 +1793,7 @@ SRCPKGDEST=${SRCPKGDEST:-$startdir} #default to $startdir if undefined
PKGEXT=${_PKGEXT:-$PKGEXT}
SRCEXT=${_SRCEXT:-$SRCEXT}
+GPGKEY=${_GPGKEY:-$GPGKEY}
if (( HOLDVER )) && [[ -n $FORCE_VER ]]; then
# The '\\0' is here to prevent gettext from thinking --holdver is an option
@@ -1948,9 +1950,9 @@ if [[ -z "$SIGNPKG" && $(check_buildenv sign) == 'y' ]]; then
SIGNPKG='y'
fi
if [[ $SIGNPKG == 'y' ]]; then
- if ! gpg --list-key ${SIGNKEY} &>/dev/null; then
- if [[ ! -z $SIGNKEY ]]; then
- error "$(gettext "The key ${SIGNKEY} does not exist in your keyring.")"
+ if ! gpg --list-key ${GPGKEY} &>/dev/null; then
+ if [[ ! -z $GPGKEY ]]; then
+ error "$(gettext "The key ${GPGKEY} does not exist in your keyring.")"
else
error "$(gettext "There is no key in your keyring.")"
fi