Source: pcs Version: 0.10.11-1 Severity: important Tags: bookworm sid User: [email protected] Usertags: usrmerge X-Debbugs-Cc: [email protected]
If pcs is built on a merged-/usr system (as created by new installations of Debian >= 10, debootstrap --merged-usr, or installing the usrmerge package into an existing installation), then the paths to systemctl and rm are recorded in the binary package as being in /usr/bin, rather than the canonical /bin. This can be seen on the reproducible-builds.org infra: https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/diffoscope-results/pcs.html If you have sbuild available, an easy way to reproduce this is to build twice, once with --add-depends=usrmerge and once without. The problematic situation is if the package is *built* on a unified-/usr system, but *used* on a non-unified-/usr system. In this situation, /usr/bin/rm, etc. exist on the build system but not on the system where the package will be used, resulting in the features that use these executables not working correctly. Technical Committee resolution #978636 mandates heading towards a transition to merged-/usr, and this will become a non-issue at the end of that transition; but variation between merged-/usr and non-merged-/usr builds is a problem while that transition is taking place, because it can lead to partial upgrades behaving incorrectly. It is likely that this class of bugs will become release-critical later in the bookworm development cycle. The attached patch resolves this by specifying the paths that work for both merged-/usr and non-merged-/usr. A side benefit of fixing this is that this change seems likely to be sufficient to make the package reproducible (as recommended by Policy ยง4.15). smcv
>From 5980ab2df03bc7186031a60540f7dab68d46071b Mon Sep 17 00:00:00 2001 From: Simon McVittie <[email protected]> Date: Fri, 12 Nov 2021 11:04:10 +0000 Subject: [PATCH] d/rules: Specify interoperable path for systemctl and rm On merged-/usr systems, it doesn't matter whether we look for these executables in /bin or /usr/bin, but on older Debian installations that have been upgraded, the only paths that will work are in /bin. Closes: #-1 --- debian/rules | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/debian/rules b/debian/rules index 522877f..f1173f1 100755 --- a/debian/rules +++ b/debian/rules @@ -14,6 +14,11 @@ override_dh_clean: dh_clean --exclude="corosync.conf.orig" rm -rf build pcs/usage.pyc pcs/bash_completion.d.pcs pcs.egg-info setup.cfg +override_dh_auto_configure: + dh_auto_configure -- \ + RM=/bin/rm \ + SYSTEMCTL=/bin/systemctl + override_dh_auto_build: echo "Bundler decoupled from build system" -- 2.33.1

