[Pkg-gnupg-commit] [gnupg1] 10/15: overhaul debian/rules

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed Aug 3 18:58:14 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch experimental
in repository gnupg1.

commit 9af0d151b984b5f41c63768ab3dcfe205022fbff
Author: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
Date:   Wed Aug 3 12:43:04 2016 -0400

    overhaul debian/rules
    
    move to newer, simpler dh-style build process, with explicitly
    installed artifacts via debian/*.install and other dh helper files.
    
    This should make it easier to maintain in the future, and should
    include build hardening and other improvements automagically as the
    toolchain improves.
---
 debian/clean               |   2 +
 debian/control             |   1 +
 debian/gnupg1-curl.install |   1 +
 debian/gnupg1.info         |   1 +
 debian/gnupg1.install      |   9 +++
 debian/gnupg1.manpages     |   1 +
 debian/gpgv1.install       |   2 +
 debian/gpgv1.manpages      |   1 +
 debian/rules               | 178 ++++++---------------------------------------
 9 files changed, 40 insertions(+), 156 deletions(-)

diff --git a/debian/clean b/debian/clean
index 2f52919..5e82b91 100644
--- a/debian/clean
+++ b/debian/clean
@@ -1,3 +1,5 @@
 po/*.gmo
 po/stamp-po
 po/gnupg1.pot
+build-deb-curl/
+build-udeb/
diff --git a/debian/control b/debian/control
index 361d450..cb87978 100644
--- a/debian/control
+++ b/debian/control
@@ -8,6 +8,7 @@ Uploaders: Sune Vuorela <debian at pusling.com>,
 Standards-Version: 3.9.8
 Build-Depends: debhelper (>> 9),
                dh-autoreconf,
+               dh-exec,
                file,
                gettext (>= 0.19.3),
                libbz2-dev,
diff --git a/debian/gnupg1-curl.install b/debian/gnupg1-curl.install
new file mode 100644
index 0000000..f48283f
--- /dev/null
+++ b/debian/gnupg1-curl.install
@@ -0,0 +1 @@
+build-deb-curl/keyserver/gpgkeys_hkp build-deb-curl/keyserver/gpgkeys_curl usr/lib/gnupg1
diff --git a/debian/gnupg1.info b/debian/gnupg1.info
new file mode 100644
index 0000000..11a84a6
--- /dev/null
+++ b/debian/gnupg1.info
@@ -0,0 +1 @@
+debian/tmp/usr/share/info/gnupg1.info
diff --git a/debian/gnupg1.install b/debian/gnupg1.install
new file mode 100755
index 0000000..5e59bc9
--- /dev/null
+++ b/debian/gnupg1.install
@@ -0,0 +1,9 @@
+#!/usr/bin/dh-exec
+build-deb/g10/gpg => usr/bin/gpg1
+build-deb/keyserver/gpgkeys_curl usr/lib/gnupg1
+build-deb/keyserver/gpgkeys_finger usr/lib/gnupg1
+build-deb/keyserver/gpgkeys_hkp usr/lib/gnupg1
+build-deb/keyserver/gpgkeys_ldap usr/lib/gnupg1
+build-deb/keyserver/gpgkeys_mailto usr/lib/gnupg1
+usr/share/locale/*/*/gnupg1.mo
+usr/share/gnupg1/options.skel
diff --git a/debian/gnupg1.manpages b/debian/gnupg1.manpages
new file mode 100644
index 0000000..26484f9
--- /dev/null
+++ b/debian/gnupg1.manpages
@@ -0,0 +1 @@
+build-deb/doc/gpg1.1
diff --git a/debian/gpgv1.install b/debian/gpgv1.install
new file mode 100755
index 0000000..8188de0
--- /dev/null
+++ b/debian/gpgv1.install
@@ -0,0 +1,2 @@
+#!/usr/bin/dh-exec
+build-deb/g10/gpgv => usr/bin/gpgv1
diff --git a/debian/gpgv1.manpages b/debian/gpgv1.manpages
new file mode 100644
index 0000000..4947406
--- /dev/null
+++ b/debian/gpgv1.manpages
@@ -0,0 +1 @@
+build-deb/doc/gpgv1.1
diff --git a/debian/rules b/debian/rules
index df9e946..016f0af 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,165 +1,31 @@
 #!/usr/bin/make -f
-# debian/rules file - for GNUPG (1.4.6)
-# Based on sample debian/rules file - for GNU Hello (1.3).
-# Copyright 1994,1995 by Ian Jackson.
-# Copyright 1998-2006 by James Troup.
-# I hereby give you perpetual unlimited permission to copy,
-# modify and relicense this file, provided that you do not remove
-# my name from the file itself.  (I assert my moral right of
-# paternity under the Copyright, Designs and Patents Act 1988.)
-# This file may have to be extensively modified
 
-################################## variables #################################
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
-#VERSION := $(shell dpkg-parsechangelog | grep ^Version: | cut -d' ' -f2)
+%:
+	dh $@ --with=autoreconf --builddirectory=build-deb
 
-DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-DEB_HOST_GNU_TYPE  = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-DEB_BUILD_ARCH    := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
-DEB_HOST_ARCH_OS  := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
-
-CONFARGS  = --prefix=/usr --libexecdir=/usr/lib/ \
-            --enable-noexecstack
+CONFARGS  = --prefix=/usr --libexecdir=/usr/lib/ --enable-noexecstack
 
 CONFARGS_FULL    = --enable-mailto --with-mailprog=/usr/sbin/sendmail --enable-large-secmem
 CONFARGS_MINIMAL = --enable-minimal --enable-rsa --disable-nls --disable-regex --disable-gnupg-iconv --disable-gettext --without-iconv --without-readline --without-zlib --enable-sha256
 
-ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE))
-HOSTARG += --host=$(DEB_HOST_GNU_TYPE)
-endif
-
-ifeq ($(DEB_HOST_ARCH),ppc64)
-CONFARGS += --disable-asm
-endif
-
-# we don't need the udeb unless we are on armel:
-ifeq ($(DEB_HOST_ARCH),armel)
-UDEB_BUILD_STAMP = build-udeb-stamp
-endif
-
-LDFLAGS += -Wl,--as-needed
-LDFLAGS += `dpkg-buildflags --get LDFLAGS`
-
-CPPFLAGS_DEF = `dpkg-buildflags --get CPPFLAGS`
-CFLAGS_DEF = `dpkg-buildflags --get CFLAGS`
-
-################################### configure ################################
-
-debian/autoreconf.before:
-	dh_testdir
-	dh_autoreconf
-
-build-deb/config.status: debian/autoreconf.before
-	dh_testdir
-	(mkdir -p $(@D); cd $(@D); \
-	    ../configure LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS_DEF)" CFLAGS="$(CFLAGS_DEF)" $(CONFARGS) $(CONFARGS_FULL) $(HOSTARG) --without-libcurl)
-
-build-deb-curl/config.status: debian/autoreconf.before
-	dh_testdir
-	(mkdir -p $(@D); cd $(@D); \
-	    ../configure LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS_DEF)" CFLAGS="$(CFLAGS_DEF)" $(CONFARGS) $(CONFARGS_FULL) $(HOSTARG))
-
-build-udeb/config.status: debian/autoreconf.before
-	dh_testdir
-	(mkdir -p $(@D); cd $(@D); CFLAGS="-g -Os" \
-	    ../configure $(CONFARGS) $(CONFARGS_MINIMAL) $(HOSTARG) )
-
-##################################### build ##################################
-
-build-deb-stamp: build-deb/config.status
-	dh_testdir
-	$(MAKE) -C build-deb/
-ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
-	make -C build-deb/checks check || exit 1
-endif
-	touch $@
-
-build-deb-curl-stamp: build-deb-curl/config.status
-	dh_testdir
-	$(MAKE) -C build-deb-curl/
-ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
-	make -C build-deb-curl/checks check || exit 1
-endif
-	touch $@
-
-build-udeb-stamp: build-udeb/config.status
-	dh_testdir
-	$(MAKE) -C build-udeb/
-ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
-	make -C build-udeb/checks check || exit 1
-endif
-	touch $@
-
-build: build-arch
-build-arch: build-deb-stamp build-deb-curl-stamp $(UDEB_BUILD_STAMP)
-build-indep:
-
-##################################### clean ##################################
-
-clean: 
-	dh_testdir
-	dh_testroot
-	dh_autoreconf_clean
-	rm -rf build-udeb/ build-deb-curl/ build-deb/
-	# find . -name \*~ | xargs rm -vf
-	dh_clean build-deb-stamp build-deb-curl-stamp build-udeb-stamp
-
-#################################### install #################################
-
-install: build
-	dh_testdir
-	dh_testroot
-	dh_prep
-	dh_installdirs
-	$(MAKE) -C build-deb install DESTDIR=$(CURDIR)/debian/gnupg1
-	mv $(CURDIR)/debian/gnupg1/usr/bin/gpg  $(CURDIR)/debian/gnupg1/usr/bin/gpg1
-	mv $(CURDIR)/debian/gnupg1/usr/share/man/man1/gpg.1  $(CURDIR)/debian/gnupg1/usr/share/man/man1/gpg1.1
-	mv $(CURDIR)/debian/gnupg1/usr/bin/gpgv  $(CURDIR)/debian/gnupg1/usr/bin/gpgv1
-	mv $(CURDIR)/debian/gnupg1/usr/share/man/man1/gpgv.1  $(CURDIR)/debian/gnupg1/usr/share/man/man1/gpgv1.1
-	: # Remove from /usr/share/gnupg what we install into /usr/share/doc/gnupg/
-	$(RM) debian/gnupg1/usr/share/gnupg1/FAQ 
-	$(RM) debian/gnupg1/usr/share/info/dir*
-	find debian/gnupg1/ -type d -empty -delete
-	: # remove utilities shipped from gnupg2 source package instead
-	$(RM) debian/gnupg1/usr/bin/gpgsplit \
-	      debian/gnupg1/usr/bin/gpg-zip \
-	      debian/gnupg1/usr/share/man/man1/gpg-zip.*
-	$(MAKE) -C build-deb-curl/keyserver install DESTDIR=$(CURDIR)/debian/gnupg1-curl
-	$(RM) debian/gnupg1-curl/usr/lib/gnupg1/gpgkeys_finger \
-	      debian/gnupg1-curl/usr/lib/gnupg1/gpgkeys_ldap \
-	      debian/gnupg1-curl/usr/lib/gnupg1/gpgkeys_mailto
-
-#################################### binary ##################################
-
-binary-indep: build-indep
-
-binary-arch: build install
-	dh_testdir -a
-	dh_testroot -a
-	dh_installchangelogs -a NEWS ChangeLog
-	dh_installdocs -a
-	dh_installexamples -a
-	dh_movefiles -a -pgpgv1 --sourcedir=debian/gnupg1
-	dh_install -a
-	dh_installinfo -a doc/gnupg1.info
-	dh_installman -a
-	dh_installudev -a
-	if which dh_bugfiles ; then dh_bugfiles -a ; fi
-	dh_link -a
-	dh_strip -a
-	dh_compress -a
-	dh_fixperms -a
-ifeq ($(DEB_HOST_ARCH_OS),kfreebsd)
-	# see http://www.gnupg.org/faq.html#q6.1
-	chown root:root	debian/gnupg1/usr/bin/gpg
-	chmod 4755	debian/gnupg1/usr/bin/gpg
-endif
-	dh_installdeb -a
+override_dh_auto_configure:
+	dh_auto_configure --builddirectory=build-udeb -- \
+		$(CONFARGS) $(CONFARGS_MINIMAL)
+	dh_auto_configure --builddirectory=build-deb -- --libexecdir=\$${prefix}/lib/gnupg1 \
+		$(CONFARGS) $(CONFARGS_FULL) --without-libcurl
+	dh_auto_configure --builddirectory=build-deb-curl -- --libexecdir=\$${prefix}/lib/gnupg1 \
+		$(CONFARGS) $(CONFARGS_FULL)
+
+override_dh_auto_build-arch:
+	dh_auto_build --builddirectory=build-udeb
+	dh_auto_build --builddirectory=build-deb-curl
+	dh_auto_build --builddirectory=build-deb
+	cp build-deb/doc/gpgv.1 build-deb/doc/gpgv1.1
+	cp build-deb/doc/gpg.1 build-deb/doc/gpg1.1
+	chmod a+x build-deb/keyserver/gpgkeys_mailto
+
+override_dh_shlibdeps:
+# Make ldap a recommends rather than a hard dependency.
 	dh_shlibdeps -a -X debian/gnupg1/usr/lib/gnupg1/gpgkeys_ldap -- -dRecommends $(CURDIR)/debian/gnupg1/usr/lib/gnupg1/gpgkeys_ldap -dDepends
-	dh_gencontrol -a
-	dh_md5sums -a
-	dh_builddeb -a
-
-binary: binary-indep binary-arch
-
-.PHONY: build binary binary-arch binary-indep clean

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg1.git



More information about the Pkg-gnupg-commit mailing list