Bug#1001513: Bug#989583: liblip: Fails to build reproducibly: multiple problems

2022-12-15 Thread Vagrant Cascadian
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

2021-06-07 Thread Nilesh Patra
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