commit: 16cd5be62610fbc5e0eae90358cf0c15ca72316c
parent da9a32205a2d3370ac4b0ea82c7c7476742b8696
Author: fosslinux <fosslinux@aussies.space>
Date: Sat, 11 Mar 2023 16:31:55 +1100
Move bash 5.2 to sysc and rebuild 2.05b in sysa
This unblocks Fiwix.
Diffstat:
11 files changed, 290 insertions(+), 190 deletions(-)
diff --git a/parts.rst b/parts.rst
@@ -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
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
-interactively. 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 an interactive shell. ``autoconf-2.69`` is used to regenerate the configure
-script and ``bison`` is used to recreate some included generated files.
+interactively. Rebuilding bash makes this functionality work.
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).
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
========
diff --git a/sysa/SHA256SUMS.pkgs b/sysa/SHA256SUMS.pkgs
@@ -20,7 +20,8 @@ ef08694bf8e78ffcf56f9c8a63b0f189e301c06f02ab240e15e4c7fe354c2a0d automake-1.7_0
e8ff13753943e43972a8cf1672819f001718ed38e5497cf7b554c21a507ba22b automake-1.7.8_0.tar.bz2
9922651b64ad2e29b944082f26db223008220155048f25d64df1f6d82071ff1c automake-1.8.5_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
25fc6ea74005ae5677ea790e228a710fb82a80d9a7a56b5a8ddc5789aff4e209 binutils-2.30_0.tar.bz2
a21157791cb5e7ec941de09f275286d90efe1b463dc4302b238af9ba53fae49e binutils-2.38_0.tar.bz2
diff --git a/sysa/bash-2.05b/bash-2.05b.sh b/sysa/bash-2.05b/bash-2.05b.sh
@@ -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"
+}
diff --git a/sysa/bash-2.05b/patches/size.patch b/sysa/bash-2.05b/patches/size.patch
@@ -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
diff --git a/sysa/bash-5.2.15/bash-5.2.15.sh b/sysa/bash-5.2.15/bash-5.2.15.sh
@@ -1,53 +0,0 @@
-# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
-# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
-# SPDX-FileCopyrightText: 2021 Bastian Bittorf <bb@npl.de>
-# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-src_prepare() {
- # Remove bison generated files
- rm y.tab.c y.tab.h
-
- # Remove prebuilt translation catalogs
- rm po/*.gmo
-
- # 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-unknown-linux-musl \
- --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"
-}
diff --git a/sysa/bash-5.2.15/sources b/sysa/bash-5.2.15/sources
@@ -1 +0,0 @@
-https://mirrors.kernel.org/gnu/bash/bash-5.2.15.tar.gz 13720965b5f4fc3a0d4b61dd37e7565c741da9a5be24edc2ae00182fc1b3588c
diff --git a/sysa/run.sh b/sysa/run.sh
@@ -170,7 +170,7 @@ build autoconf-2.69
build libtool-2.2.4
-build bash-5.2.15
+build bash-2.05b
cat > .env <<- EOF
export PATH=${PATH}
diff --git a/sysc/bash-5.2.15/bash-5.2.15.sh b/sysc/bash-5.2.15/bash-5.2.15.sh
@@ -0,0 +1,57 @@
+# SPDX-FileCopyrightText: 2021 Paul Dersey <pdersey@gmail.com>
+# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
+# SPDX-FileCopyrightText: 2021 Bastian Bittorf <bb@npl.de>
+# SPDX-FileCopyrightText: 2022 fosslinux <fosslinux@aussies.space>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+src_prepare() {
+ # Remove bison generated files
+ rm y.tab.c y.tab.h
+
+ # Remove prebuilt translation catalogs
+ rm po/*.gmo
+
+ # Skip documentation
+ mv doc/Makefile.in Makefile.in.doc
+ rm doc/*
+ 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
+ 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.
+ ./configure --prefix="${PREFIX}" \
+ --without-bash-malloc \
+ --disable-nls \
+ --build=i386-unknown-linux-musl \
+ --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"
+}
diff --git a/sysc/bash-5.2.15/sources b/sysc/bash-5.2.15/sources
@@ -0,0 +1 @@
+http://mirrors.kernel.org/gnu/bash/bash-5.2.15.tar.gz 13720965b5f4fc3a0d4b61dd37e7565c741da9a5be24edc2ae00182fc1b3588c
diff --git a/sysc/run.sh b/sysc/run.sh
@@ -1,9 +1,6 @@
#!/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-FileCopyrightText: © 2023 fosslinux <fosslinux@aussies.space>
#
# SPDX-License-Identifier: GPL-3.0-or-later
@@ -12,14 +9,11 @@ set -e
# shellcheck source=/dev/null
. .env
-# shellcheck disable=SC2153
-trap 'env - PATH=${PREFIX}/bin PS1="\w # " bash -i' EXIT
+trap bash EXIT
# shellcheck source=sysa/helpers.sh
. helpers.sh
-trap bash EXIT
-
umask 0022
create_fhs() {
@@ -64,124 +58,6 @@ else
mkdir -p "${DISTFILES}"
fi
-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"
+build bash-5.2.15
+exec env -i PATH="${PATH}" HOME="${HOME}" SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" bash run2.sh
diff --git a/sysc/run2.sh b/sysc/run2.sh
@@ -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"
+