logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
commit: db813f5e986a219318cf747e17b1a19fb6849012
parent da9a32205a2d3370ac4b0ea82c7c7476742b8696
Author: Andrius Štikonas <andrius@stikonas.eu>
Date:   Sat, 11 Mar 2023 09:20:27 +0000

Merge pull request #260 from fosslinux/bash-automake-v2


Diffstat:

Mparts.rst17+++++++++++------
Msysa/SHA256SUMS.pkgs3++-
Asysa/bash-2.05b/bash-2.05b.sh49+++++++++++++++++++++++++++++++++++++++++++++++++
Asysa/bash-2.05b/patches/size.patch24++++++++++++++++++++++++
Dsysa/bash-5.2.15/bash-5.2.15.sh53-----------------------------------------------------
Dsysa/bash-5.2.15/sources1-
Msysa/run.sh2+-
Asysc/bash-5.2.15/bash-5.2.15.sh57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asysc/bash-5.2.15/sources1+
Msysc/run.sh132+++----------------------------------------------------------------------------
Asysc/run2.sh141+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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" +