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
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
========

View File

@ -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

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 bash-5.2.15
build bash-2.05b
cat > .env <<- EOF
export PATH=${PATH}

View File

@ -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 \

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
# 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

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"