Source: liblip Version: 2.0.0-1.2 Severity: normal Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps, buildpath X-Debbugs-Cc: nil...@debian.org, nil...@debian.org, reproducible-b...@lists.alioth.debian.org
Dear Maintainer, The following problems cause problems in liblip being reproducible: a) It embeds timestamps into gzip headers, simply passing -n with gzip fixes it b) md5sum that it injects to DEBIAN/md5sums are random in order, simply sorting them does the trick c) It embeds buildpath in resulting .deb because -ffile-prefix-map isn't injected by default since this does not seem to use debhelper, and uses a hand-coded d/rules w/o dh customizations and compat level. Manually adding the -ffile-prefix-map with relevant options seems to do the trick. Please consider applying the attached patch. Thanks! Nilesh -- System Information: Debian Release: bullseye/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 5.7.0-2-amd64 (SMP w/8 CPU threads) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
--- a/debian/rules +++ b/debian/rules @@ -4,16 +4,19 @@ STRIP = strip --strip-unneeded --remove-section=.comment --remove-section=.note +CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) +CXXFLAGS += -ffile-prefix-map=$(CURDIR)=. + build: $(checkdir) cp -f /usr/share/misc/config.sub . cp -f /usr/share/misc/config.guess . ./configure --prefix=/usr --enable-shared - $(MAKE) install prefix=$(CURDIR)/shared + $(MAKE) install prefix=$(CURDIR)/shared CXXFLAGS="$(CXXFLAGS)" [ ! -f Makefile ] || $(MAKE) distclean -rm -f config.log config.cache ./configure --prefix=/usr --enable-static - $(MAKE) install prefix=$(CURDIR)/static + $(MAKE) install prefix=$(CURDIR)/static CXXFLAGS="$(CXXFLAGS)" touch build clean: @@ -59,20 +62,22 @@ binary-arch: checkroot build cp -p docs/* debian/liblip2/usr/share/doc/liblip2/ cp -p examples/example* debian/liblip2/usr/share/doc/liblip2/examples cp -p examples/makefile debian/liblip2/usr/share/doc/liblip2/examples - cd debian/liblip2/usr/share/doc/liblip2 && gzip -9 changelog.Debian examples/* + cd debian/liblip2/usr/share/doc/liblip2 && gzip -9n changelog.Debian examples/* ln -s liblip2 debian/liblip-dev/usr/share/doc/liblip-dev dpkg-shlibdeps debian/liblip2/usr/lib/lip/* dpkg-gencontrol -isp -pliblip2 -Pdebian/liblip2 - cd debian/liblip2 && md5sum `find * -type f ! -regex "DEBIAN/.*"` > DEBIAN/md5sums + cd debian/liblip2 && find * -type f ! -regex "DEBIAN/.*" -print0 |\ + LC_ALL=C sort -z | xargs -0r md5sum > DEBIAN/md5sums chown -R root.root debian/liblip2 chmod -x debian/liblip2/usr/lib/lip/* chmod -R go=rX debian/liblip2 dpkg --build debian/liblip2 .. dpkg-gencontrol -isp -pliblip-dev -Pdebian/liblip-dev - cd debian/liblip-dev && md5sum `find * -type f ! -regex "DEBIAN/.*"` > DEBIAN/md5sums + cd debian/liblip-dev && find * -type f ! -regex "DEBIAN/.*" -print0 |\ + LC_ALL=C sort -z | xargs -0r md5sum > DEBIAN/md5sums chown -R root.root debian/liblip-dev chmod -x debian/liblip-dev/usr/lib/lip/liblip.a chmod -x debian/liblip-dev/usr/lib/lip/liblip.la