Update to Guile 3.0.9

This is achieved by transplanting 3.0.7's psyntax-pp.scm into 3.0.9
which works flawlessly.

This is required for parallelism, since <3.0.8 is irreproducible when
-jN is used.
This commit is contained in:
fosslinux 2023-04-10 15:27:34 +10:00
parent 343843dfdd
commit f2a0d74bfb
7 changed files with 176 additions and 16 deletions

View File

@ -965,15 +965,16 @@ boehm-gc 8.0.4
The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage
collecting replacement for C malloc or C++ new. collecting replacement for C malloc or C++ new.
guile 3.0.7 guile 3.0.9
=========== ===========
GNU Ubiquitous Intelligent Language for Extensions (GNU Guile) is the preferred GNU Ubiquitous Intelligent Language for Extensions (GNU Guile) is the preferred
extension language system for the GNU Project and features an implementation extension language system for the GNU Project and features an implementation
of the programming language Scheme. of the programming language Scheme.
We use ``guile-psyntax-bootstrapping`` project to bootstrap Guile's ``psyntax.pp`` We use ``guile-psyntax-bootstrapping`` project on Guile 3.0.7 to bootstrap
without relying on pre-expanded code. Guile's ``psyntax.pp`` without relying on pre-expanded code. This is then
transplanted into Guile 3.0.9.
which 2.21 which 2.21
========== ==========

View File

@ -9,7 +9,7 @@ d5fcce4baea5e11f983a7e4b7148545ab6720bb4e010898c73387f6711be67f4 autoconf-2.64_
298dcf17a439adb306237b308e3c4ed3d376cb863ae0f0f08bfdf1f3199a548b autoconf-2.69_0.tar.bz2 298dcf17a439adb306237b308e3c4ed3d376cb863ae0f0f08bfdf1f3199a548b autoconf-2.69_0.tar.bz2
8c2401edf1c68910005bbcb8b8e84727a46f7d9643d2ad1267bd0259078dadc4 autoconf-2.71_0.tar.bz2 8c2401edf1c68910005bbcb8b8e84727a46f7d9643d2ad1267bd0259078dadc4 autoconf-2.71_0.tar.bz2
6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2 6ff691e3ddd4f3d1796d28b07a2a96691dbd9801844c99ccbe660da59dabd74b autoconf-archive-2021.02.19_0.tar.bz2
986995c084f3542b61938d11ddb6f1dc3b33263e4681abdce5ede2b724a1d5ea autogen-5.18.16_0.tar.bz2 ebd9b5168122561aca6f9c686f97cf1b61b035eccb716f36710efe72aad694f0 autogen-5.18.16_0.tar.bz2
02a426e82a52d4a2cd7e73fe3dc5a2c58b3ed100f24a92c57e42511fd86e247c automake-1.10.3_0.tar.bz2 02a426e82a52d4a2cd7e73fe3dc5a2c58b3ed100f24a92c57e42511fd86e247c automake-1.10.3_0.tar.bz2
34925adeaa2876a5e068adeb17b71fe7c7105244c3cb5439d33f7406310674da automake-1.11.2_0.tar.bz2 34925adeaa2876a5e068adeb17b71fe7c7105244c3cb5439d33f7406310674da automake-1.11.2_0.tar.bz2
a7bd12bd0c639783ce1c0e9f640cf004a87460bbda8154bc550c5e6884457b48 automake-1.15.1_0.tar.bz2 a7bd12bd0c639783ce1c0e9f640cf004a87460bbda8154bc550c5e6884457b48 automake-1.15.1_0.tar.bz2
@ -57,7 +57,7 @@ a2301d8dbbfbfcdd18444f01848e8e4366780281009640acbd3af0fab9b11aea gcc-4.7.4_0.ta
db3f8088a8aa74a7ff300b45c2070397ed7538fe5cc45480ea968014ccf7bc20 gperf-3.1_0.tar.bz2 db3f8088a8aa74a7ff300b45c2070397ed7538fe5cc45480ea968014ccf7bc20 gperf-3.1_0.tar.bz2
67d706423e079a9cd764fd9607027d296c0ff2380c1104006a2230a299eb2c1d grep-2.4_0.tar.bz2 67d706423e079a9cd764fd9607027d296c0ff2380c1104006a2230a299eb2c1d grep-2.4_0.tar.bz2
d85cff8f9ff76533287891ec2019416fa585815e514743e5b76efd9f17f5ef5c grep-3.7_0.tar.bz2 d85cff8f9ff76533287891ec2019416fa585815e514743e5b76efd9f17f5ef5c grep-3.7_0.tar.bz2
adcd3633d004a608cb36e306dd887d96e2ab77bfc5d5b4d6fa93ccc871ae2285 guile-3.0.7_0.tar.bz2 b38422d646590600444f0ff12fee6fd738baaf471338aa67899db950d3521127 guile-3.0.9_0.tar.bz2
8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2 8d2015b87337abbf287f7a39ee4cf53514120b5d3e90a93fe7d533dcc43f14fa help2man-1.36.4_0.tar.bz2
3f06d1a7f1b1770d4550ff6316c7f06fd26e30bddad7c1b665f1fae80e409c8c kbd-1.15_0.tar.bz2 3f06d1a7f1b1770d4550ff6316c7f06fd26e30bddad7c1b665f1fae80e409c8c kbd-1.15_0.tar.bz2
2a661da13801028f5af98e5d9f6de417c21c90df1bcef4809caf0c2094fdd8f4 kexec-tools-2.0.22_0.tar.bz2 2a661da13801028f5af98e5d9f6de417c21c90df1bcef4809caf0c2094fdd8f4 kexec-tools-2.0.22_0.tar.bz2

View File

@ -4,17 +4,30 @@
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() { # guile-psyntax-bootstrapping only supports Guile 3.0.7
default # We need Guile 3.0.8 or later in order to have reproducible builds when
# parallelism (-jX) is enabled.
#
# To work around this issue, we;
# 1. run guile-psyntax-bootstrapping on Guile 3.0.7
# 2. take psyntax-pp.scm from Guile 3.0.7 and transplant into 3.0.9
# 3. compile guile 3.0.9
common_prepare() {
find . -name '*.info*' -delete find . -name '*.info*' -delete
rm -r prebuilt/*/ice-9
../../import-gnulib.sh
# Remove buildstamp # 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 autoreconf-2.71 -fi
}
src_prepare() {
# First, prepare Guile 3.0.7
cd ../guile-3.0.7
../../import-gnulib-3.0.7.sh
common_prepare
# pp-syntax bootstrap: remove pre-gen file # pp-syntax bootstrap: remove pre-gen file
sha256sum module/ice-9/psyntax-pp.scm | tee psyntax-pp.sha256 sha256sum module/ice-9/psyntax-pp.scm | tee psyntax-pp.sha256
@ -28,19 +41,30 @@ src_prepare() {
cp psyntax.scm psyntax-patched.scm cp psyntax.scm psyntax-patched.scm
patch <../../../guile-psyntax-bootstrapping-guile-3.0.7/stage2.patch patch <../../../guile-psyntax-bootstrapping-guile-3.0.7/stage2.patch
cd ../.. cd ../..
# Now, Guile 3.0.9
cd ../guile-3.0.9
default
../../import-gnulib.sh
common_prepare
} }
src_configure() { src_configure() {
PKG_CONFIG_PATH="${LIBDIR}/pkgconfig" ./configure \ for d in . ../guile-3.0.7; do
--prefix="${PREFIX}" \ pushd "${d}"
--libdir="${LIBDIR}" \ PKG_CONFIG_PATH="${LIBDIR}/pkgconfig" ./configure \
--build=i386-unknown-linux-musl \ --prefix="${PREFIX}" \
--disable-shared \ --libdir="${LIBDIR}" \
--disable-jit --build=i386-unknown-linux-musl \
--disable-shared \
--disable-jit
popd
done
} }
src_compile() { src_compile() {
# pp-syntax: rebuild # pp-syntax: rebuild
pushd ../guile-3.0.7
make config.h make config.h
make libguile/scmconfig.h make libguile/scmconfig.h
make .version make .version
@ -56,6 +80,10 @@ src_compile() {
# Note that on 32-bit systems psyntax-pp is not identical to the original # Note that on 32-bit systems psyntax-pp is not identical to the original
# and some identifier names are different. # and some identifier names are different.
popd
# Transplant psyntax-pp.scm
cp -f ../guile-3.0.7/module/ice-9/psyntax-pp.scm module/ice-9/
# Now proceed with the build # Now proceed with the build
default default

129
sysc/guile-3.0.9/import-gnulib.sh Executable file
View File

@ -0,0 +1,129 @@
#!/bin/sh
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
../gnulib-356a414e/gnulib-tool --import --local-dir=gnulib-local \
--lib=libgnu \
--source-base=lib \
--m4-base=m4 \
--doc-base=doc \
--tests-base=tests \
--aux-dir=build-aux \
--lgpl=3 \
--conditional-dependencies \
--libtool \
--macro-prefix=gl \
--no-vc-files \
--avoid=lock \
--avoid=unistr/base \
--avoid=unistr/u8-mbtouc \
--avoid=unistr/u8-mbtouc-unsafe \
--avoid=unistr/u8-mbtoucr \
--avoid=unistr/u8-prev \
--avoid=unistr/u8-uctomb \
--avoid=unitypes \
accept4 \
alignof \
alloca-opt \
announce-gen \
autobuild \
bind \
byteswap \
c-strcase \
canonicalize-lgpl \
ceil \
clock-time \
close \
connect \
copysign \
dirfd \
dirname-lgpl \
duplocale \
environ \
extensions \
flexmember \
flock \
floor \
fpieee \
frexp \
fstat \
fsync \
full-read \
full-write \
func \
gendocs \
getaddrinfo \
gethostname \
getlogin \
getpeername \
getsockname \
getsockopt \
git-version-gen \
gitlog-to-changelog \
gnu-web-doc-update \
gnupload \
havelib \
iconv_open-utf \
inet_ntop \
inet_pton \
isfinite \
isinf \
isnan \
ldexp \
lib-symbol-versions \
lib-symbol-visibility \
libunistring \
link \
listen \
localcharset \
locale \
log1p \
lstat \
maintainer-makefile \
malloc-gnu \
malloca \
mkdir \
mkostemp \
nl_langinfo \
nproc \
nstrftime \
open \
pipe-posix \
pipe2 \
poll \
posix_spawn \
posix_spawn_file_actions_addclose \
posix_spawn_file_actions_adddup2 \
posix_spawn_file_actions_addopen \
posix_spawn_file_actions_init \
posix_spawnp \
putenv \
readlink \
recv \
recvfrom \
regex \
rename \
rmdir \
select \
send \
sendto \
setenv \
setsockopt \
shutdown \
socket \
stat-time \
stdlib \
striconveh \
string \
sys_select \
sys_stat \
time \
times \
trunc \
unistd \
verify \
vsnprintf \
warnings \
wchar

View File

@ -1,3 +1,5 @@
https://mirrors.kernel.org/gnu/guile/guile-3.0.7.tar.xz f57d86c70620271bfceb7a9be0c81744a033f08adc7ceba832c9917ab3e691b7 https://mirrors.kernel.org/gnu/guile/guile-3.0.7.tar.xz f57d86c70620271bfceb7a9be0c81744a033f08adc7ceba832c9917ab3e691b7
https://mirrors.kernel.org/gnu/guile/guile-3.0.9.tar.xz 1a2625ac72b2366e95792f3fe758fd2df775b4044a90a4a9787326e66c0d750d
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-901694b9.tar.gz f9aad85de1f41d57c9368d304020ffbf354a5e56db1297f022c3d12181134e56 https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-901694b9.tar.gz f9aad85de1f41d57c9368d304020ffbf354a5e56db1297f022c3d12181134e56
https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-356a414e.tar.gz fc9973f1a9243fdc4b98d33d7704f3c71bfdc4c2ef96899b8f28cade7290a714
https://github.com/schierlm/guile-psyntax-bootstrapping/archive/refs/tags/guile-3.0.7.tar.gz 14cda9c416506dfadf60c14fc623ff01ef99b87564a78d0a29c5d17143c97609 https://github.com/schierlm/guile-psyntax-bootstrapping/archive/refs/tags/guile-3.0.7.tar.gz 14cda9c416506dfadf60c14fc623ff01ef99b87564a78d0a29c5d17143c97609

View File

@ -86,7 +86,7 @@ build libatomic_ops-7.6.10
build gc-8.0.4 build gc-8.0.4
build guile-3.0.7 build guile-3.0.9
build which-2.21 build which-2.21