From 622b4de875d024dcf3df61569ddd5d1dfb0682cc Mon Sep 17 00:00:00 2001 From: fosslinux Date: Fri, 8 Oct 2021 15:03:18 +1100 Subject: [PATCH] Fix guile. - The date reproducibility issue was not actually set to any date, which could cause issues in the fiture, fix that sed. - Fix a reproducibility issue (under QEMU), where the ordering of files within libguile can be random. This also affects guile binary so we need to rebuild that. - Some change in kernel versions means that guile binary is significantly different in newer kernel versions. Because we cannot know the version of the host under chroot mode we must disable guile checksum entirely. - Update checksums accordingly. --- sysc/guile-3.0.7/checksums | 11 ++++++----- sysc/guile-3.0.7/guile-3.0.7.sh | 28 ++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/sysc/guile-3.0.7/checksums b/sysc/guile-3.0.7/checksums index 6b39cfd..d50b817 100644 --- a/sysc/guile-3.0.7/checksums +++ b/sysc/guile-3.0.7/checksums @@ -452,10 +452,9 @@ e2cf3d846f8f40844d299ab9ff85cc7e1cb6ee5bd84e322b350d17e180c3ab23 /usr/lib/musl/ 3c9a9519ab901c1b50044509118ca6594f3ed8506581dc6876fb438680546eaa /usr/lib/musl/guile/3.0/ccache/ice-9/psyntax-pp.go 489f4c55d32bfdc564a99e6d76eb177cd58dc56d836317b544110733698816fb /usr/lib/musl/guile/3.0/ccache/ice-9/eval.go 97a33176dadf774beb067201fd6552dd674f9a3fc6feecc15e607d278c2941a7 /usr/lib/musl/libguile-3.0.a-gdb.scm -09931b26cb37a5ed306861ed30a3e66fa470a977566dfc8d1c776de11fa504fd /usr/lib/musl/libguile-3.0.a +252a5c8dcb2d23dd8338bc1f53a6492c6cfa290678dc6cbe9f06281ab724edb7 /usr/lib/musl/libguile-3.0.a c6199bd229d15fd770e8bbb95e5dfdc2674b62aec4990eafa6f453d9531b7f7c /usr/lib/musl/libguile-3.0.la b0c9e99c458a2c1dbd6a97eace601097511938947e2549c4ca478f73520b0ce9 /usr/lib/musl/pkgconfig/guile-3.0.pc -b8909c03a947096bb28597a16b95f68d2c1e7316b34d71a0305d2f0074ab3f36 /usr/share/man/man1/guile.1 ec1fc9e27ee3dfba39c1ee72331ca1298025137170b222e25c505c0250f2dd5e /usr/share/info/r5rs.info f3ecca2e5a9209ba7491d6ceaac0e47c51451155718379e3d49cf8f4f9b7ef1c /usr/share/info/dir 256ad479fc0b4e346389534ba5d72dcc9b45790ecc1663066a4d65a268fb6841 /usr/share/info/guile.info-11 @@ -815,7 +814,9 @@ a272ec5ae54149333929f9bf51ee45eccf75d61af55f04161a69dd2c69d0ba9e /usr/share/gui 136bf32e0aa03d228330b2d3b68d79563ccd6ce4d9041c4ff91258037980e7d3 /usr/share/guile/3.0/ice-9/psyntax-pp.scm 7c72516475f8c1470d2488039ea53e3505f1779cdf80aaaabc6bdde6a725e3b0 /usr/share/guile/3.0/ice-9/eval.scm a78f2fcaf573a644576a67e3081335568bd4b77be31be228b33550d6bb189392 /usr/share/aclocal/guile.m4 -5a1af2046c855d107b5a49a157adc69c64bcd51cdcaadb619d30398be351dd6c /usr/bin/guile-snarf -512c5eb652a7470277cc62173640f85e63d76b3e0a8e315d29ae5097be81c61b /usr/bin/guile -62cb07dff2b51611f5d088e1aec406d2ba5db9fe249e849d2a798e5dffc26c01 /usr/bin/guild +f8a990f6b50d6d95fd3e9ad7258fd4af02ca63056828428ce72cb19cb2c96bbe /usr/bin/guile 1dde10bc8daad6f1c560dd5dbff0891be33dc8e0f3d3591fdef4aed51f61439b /usr/bin/guile-config +5a1af2046c855d107b5a49a157adc69c64bcd51cdcaadb619d30398be351dd6c /usr/bin/guile-snarf +62cb07dff2b51611f5d088e1aec406d2ba5db9fe249e849d2a798e5dffc26c01 /usr/bin/guile-tools +62cb07dff2b51611f5d088e1aec406d2ba5db9fe249e849d2a798e5dffc26c01 /usr/bin/guild +b8909c03a947096bb28597a16b95f68d2c1e7316b34d71a0305d2f0074ab3f36 /usr/share/man/man1/guile.1 diff --git a/sysc/guile-3.0.7/guile-3.0.7.sh b/sysc/guile-3.0.7/guile-3.0.7.sh index 71d8268..99420d2 100755 --- a/sysc/guile-3.0.7/guile-3.0.7.sh +++ b/sysc/guile-3.0.7/guile-3.0.7.sh @@ -6,12 +6,20 @@ src_prepare() { default + # If we are in chroot mode, we can make no assumptions about the host + # kernel. It appears the resulting binary is at least somewhat + # kernel-specific (in ways other than hardcoded string). Hence disable + # checksumming for guile binary under chroot. + if [ "$CHROOT" = True ]; then + sed -i '/guile$/d' ../../checksums + fi + find . -name '*.info*' -delete ../../import-gnulib.sh # Remove buildstamp - sed -i "s/date -u +'%Y-%m-%d %T'/1970-01-01 00:00:00/" libguile/Makefile.am + sed -i "s/\`date -u +'%Y-%m-%d %T'.*\`/1970-01-01 00:00:00/" libguile/Makefile.am autoreconf-2.71 -fi @@ -32,9 +40,9 @@ src_prepare() { src_configure() { PKG_CONFIG_PATH="${PREFIX}/lib/musl/pkgconfig" ./configure \ --prefix="${PREFIX}" \ - --libdir="${PREFIX}/lib/musl" \ - --disable-shared \ - --disable-jit + --libdir="${PREFIX}/lib/musl" \ + --disable-shared \ + --disable-jit } src_compile() { @@ -57,4 +65,16 @@ src_compile() { # Now proceed with the build default + + # Ordering of libguile.a is messed up + mkdir libguile/.libs/order + pushd libguile/.libs/order + ar x ../libguile-3.0.a + rm ../libguile-3.0.a + ar cr ../libguile-3.0.a *.o + popd + + # Recompile guile with fixed libguile + rm libguile/guile + make }