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
signature.asc
Description: PGP signature