Source: comedilib
Severity: normal
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: buildpath usrmerge
X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org

The build path and various binary paths are embedded in two demo files
and the build path changes the buildid of /usr/bin/comedi_soft_calibrate
and /usr/bin/comedi_calibrate:

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

  /usr/share/doc/libcomedi-dev/demo/pwm.gz

  #!·/bin/bash
  vs.
  #!·/bin/sh

  lt_dump_D=`$ECHO·"X$lt_script_arg0"·|·/bin/sed·-e·'s/^X//'·-e·'s%/[^/]*$%%'`
  vs.
  
lt_dump_D=`$ECHO·"X$lt_script_arg0"·|·/usr/bin/sed·-e·'s/^X//'·-e·'s%/[^/]*$%%'`
  
  LD_LIBRARY_PATH="/build/1st/comedilib-0.11.0+5/lib/.libs:$LD_LIBRARY_PATH"
  vs.
  LD_LIBRARY_PATH="/build/2/comedilib-0.11.0+5/2nd/lib/.libs:$LD_LIBRARY_PATH"

The attached patches fix this by adjusting these values from the
debian/rules, and passing CFLAGS and CXXFLAGS to the appropriate
configure target.


According to my local tests, with these patches applied comedilib should
build reproducibly on tests.reproducible-builds.org!

Thanks for maintaining comedilib!

live well,
  vagrant
From 6a08cf609cbf44d185759aeb51493e0960482101 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagr...@reproducible-builds.org>
Date: Sat, 10 Jun 2023 08:26:01 -0700
Subject: [PATCH 1/2] debian/rules: Use consisten paths for "sed" and "sh" in
 demos.

The path to sed and sh may be detected differently when built on a
usrmerge vs non-usrmerge system.

https://tests.reproducible-builds.org/debian/issues/unstable/paths_vary_due_to_usrmerge_issue.html
---
 debian/rules | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/debian/rules b/debian/rules
index fff07f3..0ef5a83 100755
--- a/debian/rules
+++ b/debian/rules
@@ -189,6 +189,11 @@ binary-arch: build install
 	# build libcomedi${major} package by moving files from comedilib-dev
 	#
 	dh_install --sourcedir=debian/tmp
+	# Use default /bin/sh and non-usrmerge path for sed.
+	sed -i -e 's,/usr/bin/sed,/bin/sed,g' \
+	       -e 's,#! /bin/bash,#! /bin/sh,g' \
+	       debian/libcomedi-dev/usr/share/doc/libcomedi-dev/demo/pwm \
+	       debian/libcomedi-dev/usr/share/doc/libcomedi-dev/demo/tut3
 	dh_missing --list-missing
 
 	dh_installdocs
-- 
2.39.2

From 580524690f8b4a5196925d83790f7c9dcd8c53ab Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagr...@reproducible-builds.org>
Date: Sat, 10 Jun 2023 08:29:07 -0700
Subject: [PATCH 2/2] debian/rules: Avoid embedding build paths.

Pass CFLAGS and CXXFLAGS to configure when building comedi-calibrate,
which includes -ffile-prefix-map to avoid embedding the build path.

Also replace the build path with a placeholder string in various demo
files.

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

diff --git a/debian/rules b/debian/rules
index 0ef5a83..f24de5c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -60,7 +60,7 @@ configure-stamp:
 		CFLAGS="$(CFLAGS) -fPIC" \
 		CPPFLAGS="$(CPPFLAGS)" \
 		LDFLAGS="$(LDFLAGS)"
-	cd comedi-calibrate && CPPFLAGS="$(CPPFLAGS) -I $(CURDIR)/c++/include/ -I $(CURDIR)/include/" \
+	cd comedi-calibrate && CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS) -I $(CURDIR)/c++/include/ -I $(CURDIR)/include/" \
 		LDFLAGS="$(LDFLAGS) -L $(CURDIR)/lib/.libs" \
 		./configure --disable-comedilib-checking
 	touch $@
@@ -189,9 +189,11 @@ binary-arch: build install
 	# build libcomedi${major} package by moving files from comedilib-dev
 	#
 	dh_install --sourcedir=debian/tmp
-	# Use default /bin/sh and non-usrmerge path for sed.
+	# Use default /bin/sh and non-usrmerge path for sed and
+	# replace build path with a placeholder string.
 	sed -i -e 's,/usr/bin/sed,/bin/sed,g' \
 	       -e 's,#! /bin/bash,#! /bin/sh,g' \
+	       -e "s,$(CURDIR),BUILDPATH,g" \
 	       debian/libcomedi-dev/usr/share/doc/libcomedi-dev/demo/pwm \
 	       debian/libcomedi-dev/usr/share/doc/libcomedi-dev/demo/tut3
 	dh_missing --list-missing
-- 
2.39.2

Attachment: signature.asc
Description: PGP signature

Reply via email to