From 22f0f89a3ed22f8d9e58e9166362afa6534fd599 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 28 Dec 2021 16:24:32 +0000 Subject: [PATCH] debian: Switch to dh auto sequencer We drop much code from debian/rules. In particular, we now use the upstream `make install` targets. (As a side effect, we discovered some bugs ion the upstream Makefile which have just been fixed in the commits leading up to this one.) Consequences for the generated binaries: * Upstream README is shipped as /usr/share/doc/userv/README, not README.upstream. This seems conventional in Debian nowadays. * Control file md5sums are provided. * There is a new changelog symlink for changelog.Debian.gz. * We use the proper Debian debug information scheme. * We use different compiler flags, which will hopefully produce better hardening and better reproducibility. Signed-off-by: Ian Jackson --- debian/.gitignore | 6 +- debian/conffiles | 3 - debian/{lintian => lintian-overrides} | 0 debian/rules | 81 +++------------------------ debian/userv.docs | 1 + debian/{initd => userv.init} | 0 6 files changed, 14 insertions(+), 77 deletions(-) delete mode 100644 debian/conffiles rename debian/{lintian => lintian-overrides} (100%) create mode 100644 debian/userv.docs rename debian/{initd => userv.init} (100%) diff --git a/debian/.gitignore b/debian/.gitignore index f1fdb13..750a563 100644 --- a/debian/.gitignore +++ b/debian/.gitignore @@ -1,7 +1,11 @@ -tmp +userv +.debhelper substvars *.substvars files debhelper.log +debhelper-build-stamp userv.debhelper.log userv.*.debhelper +autoreconf.before +autoreconf.after diff --git a/debian/conffiles b/debian/conffiles deleted file mode 100644 index 2463c0f..0000000 --- a/debian/conffiles +++ /dev/null @@ -1,3 +0,0 @@ -/etc/init.d/userv -/etc/userv/system.default -/etc/userv/system.override diff --git a/debian/lintian b/debian/lintian-overrides similarity index 100% rename from debian/lintian rename to debian/lintian-overrides diff --git a/debian/rules b/debian/rules index 65c44fc..6295735 100755 --- a/debian/rules +++ b/debian/rules @@ -3,85 +3,20 @@ SHELL=/bin/bash package=userv -t=debian/tmp - -DPKG_EXPORT_BUILDTOOLS=1 -include /usr/share/dpkg/buildtools.mk - -ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) - INSTOPTS= LDFLAGS=-s INSTALL_PROGRAM='install -c -s --strip-program=$(STRIP)' -else - INSTOPTS= INSTALL_PROGRAM='install -c' -endif - makebuildargs := OPTIMISE= \ XCFLAGS="$(shell dpkg-buildflags --get CFLAGS)" \ XCPPFLAGS="$(shell dpkg-buildflags --get CPPFLAGS)" \ XLDFLAGS="$(shell dpkg-buildflags --get LDFLAGS)" -build: build-arch build-indep +%: + dh "$@" -build-arch: - $(checkdir) - ./configure --prefix=/usr +override_dh_auto_build: $(MAKE) $(makebuildargs) all docs - touch build-arch - -clean: - $(checkdir) - rm -f build build-arch - $(MAKE) -i distclean || $(MAKE) -f Makefile.in distclean - rm -rf *~ $t - rm -rf spec.html spec.ps debian/substvars* - dh_clean - -build-indep: -binary-indep: - -binary-arch: checkroot build - $(checkdir) - -rm -rf $t - install -d $t/{DEBIAN,etc/init.d} $t/usr/{sbin,bin} - install -d $t/etc/userv/{override,default}.d - install -d $t/usr/share/doc/$(package)/examples/ - install -d $t/usr/share/lintian/overrides/ - install -m 755 debian/{postinst,prerm,postrm} $t/DEBIAN/. - install -m 644 debian/conffiles $t/DEBIAN/. - install -m 755 debian/initd $t/etc/init.d/userv - $(MAKE) $(INSTOPTS) $(makebuildargs) \ - prefix=$t/usr etcdir=$t/etc \ - docdir=$t/usr/share/doc/userv \ - mandir=$t/usr/share/man \ - install install-doc - cp debian/copyright $t/usr/share/doc/$(package)/. - cp debian/changelog $t/usr/share/doc/$(package)/changelog - cp README $t/usr/share/doc/$(package)/README.upstream - cp system.default system.override $t/usr/share/doc/$(package)/examples - ln -s changelog.gz $t/usr/share/doc/$(package)/changelog.Debian.gz - gzip -9v $t/usr/share/doc/$(package)/changelog \ - $t/usr/share/man/man1/*.1 $t/usr/share/man/man8/*.8 \ - $t/usr/share/doc/userv/*.ps - cp debian/lintian $t/usr/share/lintian/overrides/userv - dpkg-shlibdeps daemon client - dpkg-gencontrol -isp - dh_fixperms -Pdebian/tmp - chown root.root debian/tmp/usr/bin/userv - chmod 4755 debian/tmp/usr/bin/userv - dpkg --build $t .. - -define checkdir - test -f overlord.c -a -f lexer.l.m4 -a -f debian/rules -endef - -# Below here is fairly generic really - -binary: binary-indep binary-arch - -source diff: - @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false -checkroot: - $(checkdir) - test root = "`whoami`" +override_dh_auto_install: + $(MAKE) $(makebuildargs) install install-docs \ + DESTDIR=$(PWD)/debian/userv -.PHONY: binary binary-arch binary-indep clean checkroot +override_dh_fixperms: + dh_fixperms -X usr/bin/userv diff --git a/debian/userv.docs b/debian/userv.docs new file mode 100644 index 0000000..e845566 --- /dev/null +++ b/debian/userv.docs @@ -0,0 +1 @@ +README diff --git a/debian/initd b/debian/userv.init similarity index 100% rename from debian/initd rename to debian/userv.init -- 2.30.2