diff --git a/parts.rst b/parts.rst index 960d496..13157a5 100644 --- 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 index 1ecc25d..9b79613 100644 --- 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 new file mode 100755 index 0000000..c6efb71 --- /dev/null +++ b/sysa/bash-2.05b/bash-2.05b.sh @@ -0,0 +1,49 @@ +# SPDX-FileCopyrightText: © 2023 fosslinux +# +# 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 new file mode 100644 index 0000000..87a1b57 --- /dev/null +++ b/sysa/bash-2.05b/patches/size.patch @@ -0,0 +1,24 @@ +SPDX-FileCopyrightText: © 2023 fosslinux + +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/sources b/sysa/bash-5.2.15/sources deleted file mode 100644 index 0a5427a..0000000 --- a/sysa/bash-5.2.15/sources +++ /dev/null @@ -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 index 75a14d2..a19b3b2 100755 --- 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/sysa/bash-5.2.15/bash-5.2.15.sh b/sysc/bash-5.2.15/bash-5.2.15.sh similarity index 91% rename from sysa/bash-5.2.15/bash-5.2.15.sh rename to sysc/bash-5.2.15/bash-5.2.15.sh index 75f9987..a6e6749 100755 --- a/sysa/bash-5.2.15/bash-5.2.15.sh +++ b/sysc/bash-5.2.15/bash-5.2.15.sh @@ -17,6 +17,10 @@ src_prepare() { 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 @@ -34,7 +38,7 @@ src_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}" \ + ./configure --prefix="${PREFIX}" \ --without-bash-malloc \ --disable-nls \ --build=i386-unknown-linux-musl \ diff --git a/sysc/bash-5.2.15/sources b/sysc/bash-5.2.15/sources new file mode 100644 index 0000000..f3b838e --- /dev/null +++ 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 index ca5bda9..c207f19 100755 --- a/sysc/run.sh +++ b/sysc/run.sh @@ -1,9 +1,6 @@ #!/usr/bin/bash -# SPDX-FileCopyrightText: 2022 Andrius Štikonas -# SPDX-FileCopyrightText: 2021-22 fosslinux -# SPDX-FileCopyrightText: 2021 Paul Dersey -# SPDX-FileCopyrightText: 2021 Melg Eight +# SPDX-FileCopyrightText: © 2023 fosslinux # # 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 new file mode 100755 index 0000000..b591e0b --- /dev/null +++ b/sysc/run2.sh @@ -0,0 +1,141 @@ +#!/usr/bin/bash + +# SPDX-FileCopyrightText: 2022 Andrius Štikonas +# SPDX-FileCopyrightText: 2021-22 fosslinux +# SPDX-FileCopyrightText: 2021 Paul Dersey +# SPDX-FileCopyrightText: 2021 Melg Eight +# +# 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" +