Package: backupninja
Version: 1.1.0-2
Severity: normal
Tags: patch
User: [email protected]
Usertags: usrmerge

Dear Maintainer,

The package fails to build reproducibly on a merged-usr vs non-merged
system. This is caused by embedding the full paths of a few tools.

This can easily be fixed by passing in variables with explicit paths
to configure, rather than relying on finding them via PATH.

See attached debdiff that fixes this issue.

Regards,
Andreas Henriksson
diff -Nru backupninja-1.1.0/debian/changelog backupninja-1.1.0/debian/changelog
--- backupninja-1.1.0/debian/changelog  2018-08-12 03:45:35.000000000 +0200
+++ backupninja-1.1.0/debian/changelog  2018-12-01 21:39:53.000000000 +0100
@@ -1,3 +1,12 @@
+backupninja (1.1.0-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Add debian/patches/unbreak-AC_PATH_PROG-bash.patch
+  * Pass BASH,SED,MKTEMP to configure specifying correct paths
+    - fixes reproducible build on merged-usr vs non-merged systems
+
+ -- Andreas Henriksson <[email protected]>  Sat, 01 Dec 2018 21:39:53 +0100
+
 backupninja (1.1.0-2) unstable; urgency=medium
 
   * Fix FTBFS (Closes: #903168)
diff -Nru backupninja-1.1.0/debian/patches/series 
backupninja-1.1.0/debian/patches/series
--- backupninja-1.1.0/debian/patches/series     1970-01-01 01:00:00.000000000 
+0100
+++ backupninja-1.1.0/debian/patches/series     2018-12-01 21:39:53.000000000 
+0100
@@ -0,0 +1 @@
+unbreak-AC_PATH_PROG-bash.patch
diff -Nru backupninja-1.1.0/debian/patches/unbreak-AC_PATH_PROG-bash.patch 
backupninja-1.1.0/debian/patches/unbreak-AC_PATH_PROG-bash.patch
--- backupninja-1.1.0/debian/patches/unbreak-AC_PATH_PROG-bash.patch    
1970-01-01 01:00:00.000000000 +0100
+++ backupninja-1.1.0/debian/patches/unbreak-AC_PATH_PROG-bash.patch    
2018-12-01 21:39:53.000000000 +0100
@@ -0,0 +1,25 @@
+From: Andreas Henriksson <[email protected]>
+Subject: unbreak AC_PATH_PROG bash
+
+Being able to set the variable name in the environment before
+running configure is a documented feature of AC_PATH_PROG.
+Explicitly unsetting the variable ofcourse breaks that feature.
+
+If someone thinks BASH is not a good variable name because it
+might be used for something else already, then either sanitize
+your build environment or use a different variable name!
+
+The hypothetical case in the comment isn't relevant in our build
+environment, so unbreak things here by commenting out the unset....
+
+--- backupninja-1.1.0.orig/configure.ac
++++ backupninja-1.1.0/configure.ac
+@@ -11,7 +11,7 @@ AM_INIT_AUTOMAKE([foreign])
+ 
+ # BASH may already be set in the shell, if the admin then changes the
+ # the /bin/sh symlink to a non-bash shell, all hell will break lose.
+-unset BASH
++#unset BASH
+ AC_PATH_PROGS(BASH, bash, "no", [$PATH:/bin:/usr/bin:/usr/sbin])
+ if test x$BASH = "xno"; then
+     AC_MSG_ERROR([bash is required])
diff -Nru backupninja-1.1.0/debian/rules backupninja-1.1.0/debian/rules
--- backupninja-1.1.0/debian/rules      2018-08-12 03:44:14.000000000 +0200
+++ backupninja-1.1.0/debian/rules      2018-12-01 21:39:45.000000000 +0100
@@ -9,6 +9,8 @@
 
 override_dh_auto_configure:
        dh_auto_configure -- \
+          MKTEMP=/bin/mktemp BASH=/bin/bash SED=/bin/sed \
+          AWK=/usr/bin/awk STAT=/usr/bin/stat \
           --libdir=\$${prefix}/lib \
           --libexecdir=\$${prefix}/lib
 

Reply via email to