[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1000839: gutenprint: reproducible builds: Embedded build path, username, timestamps, etc.



Source: gutenprint
Severity: normal
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps username uname kernel
X-Debbugs-Cc: reproducible-bugs@lists.alioth.debian.org

Various information about the build environment is captured in the
config.summary and gutenprint.tag files:

  https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/diffoscope-results/gutenprint.html

  /usr/share/doc/libgutenprint-doc/reference/gutenprint.tag.gz
  
  <path>/build/1st/gutenprint-5.3.3/include/gutenprint/</path>
  vs.
  <path>/build/2/gutenprint-5.3.3/2nd/include/gutenprint/</path>

  and

  /usr/lib/x86_64-linux-gnu/gutenprint/5.3/config.summary

  Generated·at·Fri·Nov·12·00:38:07·-12·2021·by·pbuilder1
  vs.
  Generated·at·Fri·Dec·16·09:37:41·+14·2022·by·pbuilder2

and

  uname·-a·output: Linux·ionos1-amd64·5.10.0-9-amd64·#1·SMP·Debian·5.10.70-1·(2021-09-30)·x86_64·GNU/Linux
  vs.
  uname·-a·output: Linux·i-capture-the-hostname·5.14.0-0.bpo.2-amd64·#1·SMP·Debian·5.14.9-2~bpo11+1·(2021-10-10)·x86_64·GNU/Linux


The attached two patches fix this by sanitizing the the files from
debian/rules in the dh_installdocs override and dh_install-arch override
targets.

With these patches applied, gutenprint should build reproducibly on
tests.reproducible-builds.org.


On a somewhat unrelated note, I also noticed needing to override
dh_listmissing to only warn rather than fail on missing various
documentation files. I'm not sure if this was due to something in my
specific environment, or a general issue for the package, but figured it
was worth a heads up.


Thanks for maintaining gutenprint!


live well,
  vagrant
From 07e666d4cc4e93395852902610da198ee543852e Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Tue, 30 Nov 2021 02:27:28 +0000
Subject: [PATCH 1/2] debian/rules: Remove build paths from gutenprint.tag
 file.

https://reproducible-builds.org/docs/build-path/
---
 debian/rules | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/debian/rules b/debian/rules
index d50deaf..c33e323 100755
--- a/debian/rules
+++ b/debian/rules
@@ -40,6 +40,10 @@ override_dh_installdocs:
 	dh_installdocs -pescputil --link-doc=libgutenprint9
 	dh_installdocs -plibgutenprintui2-dev --link-doc=libgutenprintui2-2
 	dh_installdocs --remaining-packages
+	# Remove build directory from gutenprint.tag file to make
+	# build reproducible.
+	sed -i -e 's,$(CURDIR),BUILDPATH,g' \
+		debian/libgutenprint-doc/usr/share/doc/libgutenprint-doc/reference/gutenprint.tag
 
 override_dh_install-arch:
 ifeq ($(DEB_BUILD_ARCH_OS),linux)
-- 
2.30.2

From 523247408d47590253c46f2119dc09104e972a10 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Tue, 30 Nov 2021 02:31:37 +0000
Subject: [PATCH 2/2] debian/rules: Remove build path, timestamp, username and
 uname output from config.summary file.

https://reproducible-builds.org/docs/build-path/
https://reproducible-builds.org/docs/timestamps/
https://tests.reproducible-builds.org/debian/issues/user_hostname_manually_added_requiring_further_investigation_issue.html
https://tests.reproducible-builds.org/debian/issues/captures_kernel_version_issue.html
---
 debian/rules | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/debian/rules b/debian/rules
index c33e323..06de18a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -46,6 +46,12 @@ override_dh_installdocs:
 		debian/libgutenprint-doc/usr/share/doc/libgutenprint-doc/reference/gutenprint.tag
 
 override_dh_install-arch:
+	# Remove build path, timestamp, username, and uname output to
+	# make build reproducible.
+	sed -i -e 's,$(CURDIR),BUILDPATH,g' \
+		-e 's,Generated at.*,Generated at REDACTED,g' \
+		-e 's,uname -a output:.*,uname -a output: REDACTED,g' \
+		$(shell find debian/tmp/ -name config.summary)
 ifeq ($(DEB_BUILD_ARCH_OS),linux)
 	dh_install -pprinter-driver-gutenprint usr/share/cups/usb
 endif
-- 
2.30.2

Attachment: signature.asc
Description: PGP signature


Reply to: