Bug#1001513: Bug#989583: liblip: Fails to build reproducibly: multiple problems
Control: tags 989583 pending Control: tags 1001513 pending Uploading an NMU to DELAYED/10 fixing reproducible builds and cross-building issues: diff -u liblip-2.0.0/debian/changelog liblip-2.0.0/debian/changelog --- liblip-2.0.0/debian/changelog +++ liblip-2.0.0/debian/changelog @@ -1,3 +1,21 @@ +liblip (2.0.0-1.5) unstable; urgency=medium + + * Non-maintainer upload. + + [ Helmut Grohne ] + * Support cross-building (Closes: #1001513) + + -- Vagrant Cascadian Thu, 15 Dec 2022 14:21:26 -0800 + +liblip (2.0.0-1.4) unstable; urgency=medium + + * Non-maintainer upload. + + [ Nilesh Patra ] + * Build reproducibly (Closes: #989583) + + -- Vagrant Cascadian Thu, 15 Dec 2022 13:49:39 -0800 + liblip (2.0.0-1.3) unstable; urgency=medium * Non-maintainer upload. diff -u liblip-2.0.0/debian/rules liblip-2.0.0/debian/rules --- liblip-2.0.0/debian/rules +++ liblip-2.0.0/debian/rules @@ -2,18 +2,24 @@ # Copyright (C) 2004-2005 Anibal Monsalve Salazar # Copyright (c) 2005 Juan Esteban Monsalve Tobon -STRIP = strip --strip-unneeded --remove-section=.comment --remove-section=.note +include /usr/share/dpkg/architecture.mk +include /usr/share/dpkg/buildtools.mk + +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 + ./configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) --prefix=/usr --enable-shared ./configure --prefix=/usr --enable-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 + ./configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) --prefix=/usr --enable-static + $(MAKE) install prefix=$(CURDIR)/static CXXFLAGS="$(CXXFLAGS)" touch build clean: @@ -59,20 +65,22 @@ 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 signature.asc Description: PGP signature
Bug#989583: liblip: Fails to build reproducibly: multiple problems
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