[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