[pacman-dev] [PATCH] GPG signature option in makepkg, adapted to Dan McGee's suggestions

geoffroy.carrier at koon.fr geoffroy.carrier at koon.fr
Sun Jun 1 23:32:02 EDT 2008


From: Geoffroy Carrier <geoffroy.carrier at koon.fr>

Now uses a BUILDENV option instead of a command line option,
deprecated --usesudo is back in place.
Of course, this patch applies on master, so please forget about the
previous patch.
For your $filename remark, i might write a biiig patch when I get
enough motivation. If someone else want to do it, please do :)

---
 etc/makepkg.conf.in   |    5 +++--
 scripts/makepkg.sh.in |   22 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
index 47ed0a4..7d1fbb8 100644
--- a/etc/makepkg.conf.in
+++ b/etc/makepkg.conf.in
@@ -38,7 +38,7 @@ CXXFLAGS="@CARCHFLAGS at -mtune=generic -O2 -pipe"
 # BUILD ENVIRONMENT
 #########################################################################
 #
-# Defaults: BUILDENV=(fakeroot !distcc color !ccache !xdelta)
+# Defaults: BUILDENV=(fakeroot !distcc color !ccache !xdelta !sign)
 #  A negated environment option will do the opposite of the comments below.
 #
 #-- fakeroot: Allow building packages as a non-root user
@@ -46,8 +46,9 @@ CXXFLAGS="@CARCHFLAGS at -mtune=generic -O2 -pipe"
 #-- color:    Colorize output messages
 #-- ccache:   Use ccache to cache compilation
 #-- xdelta:   Generate delta patch from previous to current package
+#-- sign:     Generate PGP signature file
 #
-BUILDENV=(fakeroot !distcc color !ccache !xdelta)
+BUILDENV=(fakeroot !distcc color !ccache !xdelta !sign)
 #
 #-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
 #-- specify a space-delimited list of hosts running in the DistCC cluster.
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 6e2f1ad..409cae5 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -855,6 +855,26 @@ create_package() {
 	fi
 }
 
+create_signature() {
+	if [ "$(check_buildenv sign)" != "y" ]; then
+		return
+	fi
+	[ "$SIGN" = "0" ] && return
+	local ret = 0
+	local filename = "$PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"
+	msg "$(gettext "Signing package...")"
+	if [ ! $(type -p "gpg") ]; then
+		error "$(gettext "Cannot find the gpg binary! Is gnupg installed?")"
+		exit 1 # $E_MISSING_PROGRAM
+	fi
+	gpg --detach-sign $filename || ret = $?
+	if [ $ret -eq 0 ]; then
+		msg2 "$(gettext "Created signature file %s.")" $filename.sig
+	else
+		warning "$(gettext "Failed to sign package file.")"
+	fi
+}
+
 create_xdelta() {
 	if [ "$(check_buildenv xdelta)" != "y" ]; then
 		return
@@ -1494,6 +1514,8 @@ fi
 
 msg "$(gettext "Finished making: %s")" "$pkgname $pkgver-$pkgrel $CARCH ($(date))"
 
+create_signature
+
 install_package
 
 exit 0 #E_OK
-- 
1.5.5.3





More information about the pacman-dev mailing list