On 2021-07-15, Vagrant Cascadian wrote:
> On 2018-11-19, Niko Tyni wrote:
>> Diffoscoping a perl built on a usrmerged [1] system with
>> one built on a non-usrmerged system reveals the configure
>> process hardcoding some paths in the build results,
>>
>> [1] https://wiki.debian.org/UsrMerge
>>
>> Snippets from config.h, Config.pm, Config_heavy.pl, config.sh.debug.gz
>> and so forth include things below.
...
>> -libpth => '/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed 
>> /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib 
>> /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib',
>> +libpth => '/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed 
>> /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib 
>> /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /lib64 /usr/lib64',
...
>> -libspath=' /usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed 
>> /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib 
>> /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib'
>> +libspath=' /usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/8/include-fixed 
>> /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib 
>> /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /lib64 /usr/lib64'

Attached patch also fixes these issues, by adjusting libpth and libspath
in debian/config.over ... it feels a little hackish ... but ...

With all three patches applied, perl builds reproducibly!


live well,
  vagrant
From c7d24b8965eecbdfcebbf21900c744ee7b5842a4 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagr...@reproducible-builds.org>
Date: Thu, 15 Jul 2021 23:28:41 +0000
Subject: [PATCH 3/3] debian/config.over: Adjust libpth and libspath to build
 consistently when built on usrmerge or non-usrmerge system.

---
 debian/config.over | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/debian/config.over b/debian/config.over
index f793f48c8..29de4814c 100644
--- a/debian/config.over
+++ b/debian/config.over
@@ -45,6 +45,27 @@ if ! echo $libpth | grep -q "$multiarch_dir"
 then
     libpth="$libpth $multiarch_dir"
 fi
+if ! echo $libspath | grep -q "$multiarch_dir"
+then
+    libspath="$libspath $multiarch_dir"
+fi
+multiarch_lib_dir=/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`
+if ! echo $libpth | grep -q " $multiarch_lib_dir"
+then
+    libpth="$libpth $multiarch_lib_dir"
+fi
+if ! echo $libspath | grep -q " $multiarch_lib_dir"
+then
+    libspath="$libspath $multiarch_lib_dir"
+fi
+if ! echo $libpth | grep -q ' /lib$'
+then
+    libpth="$libpth /lib"
+fi
+if ! echo $libspath | grep -q ' /lib$'
+then
+    libspath="$libspath /lib"
+fi
 
 # set configuration time to latest debian/changelog entry
 cf_time=$(LC_ALL=C date --utc -d "$(cd .. && dpkg-parsechangelog | sed -n -e 's/^Date: //p')")
-- 
2.32.0

Attachment: signature.asc
Description: PGP signature

Reply via email to