Move bash 5.2 to sysc and rebuild 2.05b in sysa

This unblocks Fiwix.
This commit is contained in:
fosslinux 2023-03-11 16:31:55 +11:00
parent da9a32205a
commit 16cd5be626
10 changed files with 238 additions and 138 deletions

View File

@ -539,14 +539,11 @@ libtool 2.2.4
GNU Libtool is the final part of GNU Autotools. It is a script used to hide away differences GNU Libtool is the final part of GNU Autotools. It is a script used to hide away differences
when compiling shared libraries on different platforms. when compiling shared libraries on different platforms.
bash 5.2.15 bash 2.05b
=========== ==========
Up to this point, our build of ``bash`` could run scripts but could not be used Up to this point, our build of ``bash`` could run scripts but could not be used
interactively. This new version of ``bash`` compiles without any patches, interactively. Rebuilding bash makes this functionality work.
provides new features, and is built with GNU readline support so it can be used
as an interactive shell. ``autoconf-2.69`` is used to regenerate the configure
script and ``bison`` is used to recreate some included generated files.
automake 1.15.1 automake 1.15.1
=============== ===============
@ -697,6 +694,14 @@ sysb is purely a transition to sysc, allowing binaries from sysa to get onto a
disk (as sysa does not necessarily have hard disk support in the kernel). disk (as sysa does not necessarily have hard disk support in the kernel).
It populates device nodes, mounts sysc, copies over data, and executes sysc. It populates device nodes, mounts sysc, copies over data, and executes sysc.
bash 5.2.15
===========
This new version of ``bash`` compiles without any patches, provides new features,
and is built with GNU readline support so it can be used as a fully-featured
interactive shell. ``autoconf-2.69`` is used to regenerate the configure
script and ``bison`` is used to recreate some included generated files.
xz 5.4.1 xz 5.4.1
======== ========

View File

@ -20,7 +20,8 @@ ef08694bf8e78ffcf56f9c8a63b0f189e301c06f02ab240e15e4c7fe354c2a0d automake-1.7_0
e8ff13753943e43972a8cf1672819f001718ed38e5497cf7b554c21a507ba22b automake-1.7.8_0.tar.bz2 e8ff13753943e43972a8cf1672819f001718ed38e5497cf7b554c21a507ba22b automake-1.7.8_0.tar.bz2
9922651b64ad2e29b944082f26db223008220155048f25d64df1f6d82071ff1c automake-1.8.5_0.tar.bz2 9922651b64ad2e29b944082f26db223008220155048f25d64df1f6d82071ff1c automake-1.8.5_0.tar.bz2
c5807850a377e4bb9aa4121d9781d145bdd80327626a9419630a75ce2c8d9c71 automake-1.9.6_0.tar.bz2 c5807850a377e4bb9aa4121d9781d145bdd80327626a9419630a75ce2c8d9c71 automake-1.9.6_0.tar.bz2
ca49c0338d6aed5131f907d375384bf42e70f2875f58973da0015b4fb73156cc bash-5.2.15_0.tar.bz2 8bc756e8212ce6fad575f0863ff0bc7f5f125c63affc6d4a6e8d9b841259ff89 bash-2.05b_0.tar.bz2
46282b2a7c2e3d50bac2d3f90fee56629c4a533a962ad61eabac6395a3b676db bash-5.2.15_0.tar.bz2
438f0b623af8d7a558696d47554554d3a6c9e9a655569d059bfd1e679723d037 bc-1.07.1_0.tar.bz2 438f0b623af8d7a558696d47554554d3a6c9e9a655569d059bfd1e679723d037 bc-1.07.1_0.tar.bz2
25fc6ea74005ae5677ea790e228a710fb82a80d9a7a56b5a8ddc5789aff4e209 binutils-2.30_0.tar.bz2 25fc6ea74005ae5677ea790e228a710fb82a80d9a7a56b5a8ddc5789aff4e209 binutils-2.30_0.tar.bz2
a21157791cb5e7ec941de09f275286d90efe1b463dc4302b238af9ba53fae49e binutils-2.38_0.tar.bz2 a21157791cb5e7ec941de09f275286d90efe1b463dc4302b238af9ba53fae49e binutils-2.38_0.tar.bz2

49
sysa/bash-2.05b/bash-2.05b.sh Executable file
View File

@ -0,0 +1,49 @@
# SPDX-FileCopyrightText: © 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
# Remove bison generated files
rm y.tab.c y.tab.h
# Skip documentation
mv doc/Makefile.in Makefile.in.doc
rm doc/*
mv Makefile.in.doc doc/Makefile.in
# Rebuild configure script
rm configure
autoconf-2.69
# avoid non-deterministic build:
printf '%s\n%s\n' \
'#!/bin/sh' \
'echo "#define PIPESIZE 65536"' >builtins/psize.sh
}
src_configure() {
# --build argument needed for reproducibility
# bash_cv_dev_stdin and bash_cv_dev_fd are also used to
# improve reproducibility because they make configure
# skip checking for /dev/{fd,stdin,stdout,stderr} (build
# output is affected by their availability otherwise).
# size is part of binutils and is not yet available.
CC=tcc LD=tcc AR="tcc -ar" SIZE=true ./configure --prefix="${PREFIX}" \
--without-bash-malloc \
--disable-nls \
--build=i386-linux-gnu \
--enable-static-link \
bash_cv_dev_stdin=absent \
bash_cv_dev_fd=whacky
}
src_install() {
install -D bash "${DESTDIR}${PREFIX}/bin/bash"
# Work around weird symlink bug
install bash "${DESTDIR}${PREFIX}/bin/sh"
# Needs special handling b/c is currently running - tar doesn't like this
rm -f "${PREFIX}/bin/bash" "${PREFIX}/bin/sh"
}

View File

@ -0,0 +1,24 @@
SPDX-FileCopyrightText: © 2023 fosslinux <fosslinux@aussies.space>
SPDX-License-Identifier: GPL-2.0-or-later
We don't yet have the size command.
--- Makefile.in 2023-03-11 15:41:13.297307977 +1100
+++ Makefile.in 2023-03-11 15:43:51.677298993 +1100
@@ -471,7 +471,6 @@
$(RM) $@
$(PURIFY) $(CC) $(BUILTINS_LDFLAGS) $(LIBRARY_LDFLAGS) $(LDFLAGS) -o $(Program) $(OBJECTS) $(LIBS)
ls -l $(Program)
- size $(Program)
.build: $(SOURCES) config.h Makefile version.h $(VERSPROG)
@echo
@@ -493,7 +492,6 @@
strip: $(Program) .made
strip $(Program)
ls -l $(Program)
- size $(Program)
lint:
${MAKE} ${MFLAGS} CFLAGS='${GCC_LINT_FLAGS}' .made

View File

@ -1 +0,0 @@
https://mirrors.kernel.org/gnu/bash/bash-5.2.15.tar.gz 13720965b5f4fc3a0d4b61dd37e7565c741da9a5be24edc2ae00182fc1b3588c

View File

@ -170,7 +170,7 @@ build autoconf-2.69
build libtool-2.2.4 build libtool-2.2.4
build bash-5.2.15 build bash-2.05b
cat > .env <<- EOF cat > .env <<- EOF
export PATH=${PATH} export PATH=${PATH}

View File

@ -17,6 +17,10 @@ src_prepare() {
rm doc/* rm doc/*
mv Makefile.in.doc doc/Makefile.in mv Makefile.in.doc doc/Makefile.in
# Erroneously included file (configure checks do not work)
rm lib/sh/strtoimax.c
touch lib/sh/strtoimax.c
# Rebuild configure script # Rebuild configure script
rm configure rm configure
autoconf-2.69 autoconf-2.69
@ -34,7 +38,7 @@ src_configure() {
# skip checking for /dev/{fd,stdin,stdout,stderr} (build # skip checking for /dev/{fd,stdin,stdout,stderr} (build
# output is affected by their availability otherwise). # output is affected by their availability otherwise).
# size is part of binutils and is not yet available. # size is part of binutils and is not yet available.
CC=tcc LD=tcc AR="tcc -ar" SIZE=true ./configure --prefix="${PREFIX}" \ ./configure --prefix="${PREFIX}" \
--without-bash-malloc \ --without-bash-malloc \
--disable-nls \ --disable-nls \
--build=i386-unknown-linux-musl \ --build=i386-unknown-linux-musl \

1
sysc/bash-5.2.15/sources Normal file
View File

@ -0,0 +1 @@
http://mirrors.kernel.org/gnu/bash/bash-5.2.15.tar.gz 13720965b5f4fc3a0d4b61dd37e7565c741da9a5be24edc2ae00182fc1b3588c

View File

@ -1,9 +1,6 @@
#!/usr/bin/bash #!/usr/bin/bash
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu> # SPDX-FileCopyrightText: © 2023 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
# #
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
@ -12,14 +9,11 @@ set -e
# shellcheck source=/dev/null # shellcheck source=/dev/null
. .env . .env
# shellcheck disable=SC2153 trap bash EXIT
trap 'env - PATH=${PREFIX}/bin PS1="\w # " bash -i' EXIT
# shellcheck source=sysa/helpers.sh # shellcheck source=sysa/helpers.sh
. helpers.sh . helpers.sh
trap bash EXIT
umask 0022 umask 0022
create_fhs() { create_fhs() {
@ -64,124 +58,6 @@ else
mkdir -p "${DISTFILES}" mkdir -p "${DISTFILES}"
fi fi
build xz-5.4.1 build bash-5.2.15
build file-5.44
build libtool-2.4.7
build tar-1.34
build coreutils-8.32
build pkg-config-0.29.2
build make-4.2.1
build gmp-6.2.1
build autoconf-archive-2021.02.19
build mpfr-4.1.0
build mpc-1.2.1
build flex-2.5.33
build bison-2.3
build bison-3.4.2
build perl-5.10.1
build dist-3.5-236
build perl-5.32.1
build libarchive-3.5.2
build openssl-1.1.1l
build ca-certificates-3.86
build curl-7.83.0
build zlib-1.2.13
build automake-1.16.3
build autoconf-2.71
build patch-2.7.6
build gettext-0.21
build texinfo-6.7
build gcc-4.7.4
build binutils-2.38
build gperf-3.1
build libunistring-0.9.10
build libffi-3.3
build libatomic_ops-7.6.10
build gc-8.0.4
build guile-3.0.7
build which-2.21
build grep-3.7
build sed-4.8
build autogen-5.18.16 autogen-5.18.16.sh
build musl-1.2.3
build python-2.0.1 stage1.sh
build python-2.0.1 stage2.sh
build python-2.3.7 stage1.sh
build python-2.3.7 stage2.sh
build python-2.5.6
build python-3.1.5 stage1.sh
build python-3.1.5 stage2.sh
build python-3.3.7
build python-3.4.10
build python-3.8.16
build python-3.11.1
build gcc-10.4.0
if [ "$FORCE_TIMESTAMPS" = True ] ; then
echo 'Forcing all files timestamps to be 0 unix time.'
canonicalise_all_files_timestamp
fi
shopt -s extglob
if [ "$UPDATE_CHECKSUMS" = True ] ; then
pushd /usr/src/repo
sha256sum -- !(*-repodata) | tee "${SOURCES}/SHA256SUMS.pkgs"
popd
fi
echo "Bootstrapping completed."
cd "/"
exec env -i bash "${SOURCES}/after.sh"
exec env -i PATH="${PATH}" HOME="${HOME}" SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" bash run2.sh

141
sysc/run2.sh Executable file
View File

@ -0,0 +1,141 @@
#!/usr/bin/bash
# SPDX-FileCopyrightText: 2022 Andrius Štikonas <andrius@stikonas.eu>
# SPDX-FileCopyrightText: 2021-22 fosslinux <fosslinux@aussies.space>
# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
# SPDX-FileCopyrightText: 2021 Melg Eight <public.melg8@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
set -e
# shellcheck source=/dev/null
. .env
# shellcheck disable=SC2153
trap 'env - PATH=${PREFIX}/bin PS1="\w # " bash -i' EXIT
# shellcheck source=sysa/helpers.sh
. helpers.sh
build xz-5.4.1
build file-5.44
build libtool-2.4.7
build tar-1.34
build coreutils-8.32
build pkg-config-0.29.2
build make-4.2.1
build gmp-6.2.1
build autoconf-archive-2021.02.19
build mpfr-4.1.0
build mpc-1.2.1
build flex-2.5.33
build bison-2.3
build bison-3.4.2
build perl-5.10.1
build dist-3.5-236
build perl-5.32.1
build libarchive-3.5.2
build openssl-1.1.1l
build ca-certificates-3.86
build curl-7.83.0
build zlib-1.2.13
build automake-1.16.3
build autoconf-2.71
build patch-2.7.6
build gettext-0.21
build texinfo-6.7
build gcc-4.7.4
build binutils-2.38
build gperf-3.1
build libunistring-0.9.10
build libffi-3.3
build libatomic_ops-7.6.10
build gc-8.0.4
build guile-3.0.7
build which-2.21
build grep-3.7
build sed-4.8
build autogen-5.18.16 autogen-5.18.16.sh
build musl-1.2.3
build python-2.0.1 stage1.sh
build python-2.0.1 stage2.sh
build python-2.3.7 stage1.sh
build python-2.3.7 stage2.sh
build python-2.5.6
build python-3.1.5 stage1.sh
build python-3.1.5 stage2.sh
build python-3.3.7
build python-3.4.10
build python-3.8.16
build python-3.11.1
build gcc-10.4.0
if [ "$FORCE_TIMESTAMPS" = True ] ; then
echo 'Forcing all files timestamps to be 0 unix time.'
canonicalise_all_files_timestamp
fi
shopt -s extglob
if [ "$UPDATE_CHECKSUMS" = True ] ; then
pushd /usr/src/repo
sha256sum -- !(*-repodata) | tee "${SOURCES}/SHA256SUMS.pkgs"
popd
fi
echo "Bootstrapping completed."
cd "/"
exec env -i bash "${SOURCES}/after.sh"