mrrl

Minimal Reliable Reproducible Linux
git clone https://ccx.te2000.cz/git/mrrl
Log | Files | Refs | Submodules | README

commit 6642e31f8330e79812d30573c71fed626341d4de
parent 6e72e118159b5e05001e901fd6e695c014271181
Author: Jan Pobrislo <ccx@te2000.cz>
Date:   Wed,  3 Dec 2025 18:54:54 +0000

More oldsystem packages

Diffstat:
Atemplates/pkg/busybox:old | 40++++++++++++++++++++++++++++++++++++++++
Atemplates/pkg/gnu-make:old | 131+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtemplates/pkg/oldsystem.environment | 2++
Avariants/ccx-x86_64/busybox:old | 39+++++++++++++++++++++++++++++++++++++++
Avariants/ccx-x86_64/gnu-make:old | 130+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/ccx-x86_64/oldsystem.environment | 6++++--
Avariants/root-x86_64/busybox:old | 39+++++++++++++++++++++++++++++++++++++++
Avariants/root-x86_64/gnu-make:old | 130+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/root-x86_64/oldsystem.environment | 6++++--
9 files changed, 519 insertions(+), 4 deletions(-)

diff --git a/templates/pkg/busybox:old b/templates/pkg/busybox:old @@ -0,0 +1,40 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.74cd95cd7bd1db21d28d9a8579d924d588b9cbfd0f9744c0fb890188d71646aa +#+gnu-make.0a6fbda1db6316eb5ed666a1697e7bf0e4604d371ac4cf5d24a5151e76280074 +#+busybox.a0af8a5860e7fa278d39404f06a382633b7e2122d85c16bb2e22b1804cdd1654 +#@sha256:31b8f61d2173fa36d4409e8e91f52088691d6ba4db13efe19ea7ae7512e64275:busybox/.config +#@git:3621595939e43a831d66f6b757d4f410029bff95:busybox + + +# - build script start - + +prefix=/home/ccx/versions/$pthbs_package +dest=${pthbs_destdir%/}${prefix} +cd 'busybox' + +export CC="$pthbs_build_environment/command/x86_64-linux-musl-gcc" +export CFLAGS="-D_GNU_SOURCE" +export LDFLAGS="-static" + +cat >>.config <<EOF +CONFIG_BUSYBOX_EXEC_PATH="${prefix}/command/busybox" +EOF +make oldconfig +cat .config + + +make V=1 CROSS_COMPILE=x86_64-linux-musl- LDFLAGS=-static HOSTLDFLAGS=-static \ + HOSTCC="$CC -static" CC="$CC -static" HOSTCFLAGS=-D_GNU_SOURCE -j${JOBS:-1} + +mkdir -p "${dest}/command" +cp -a busybox "${dest}/command/" + + + + +cd "${dest}" +echo false | ./command/busybox --list >/dev/null # test if it works +printf "./command/busybox\t./command/%s\n" busybox bbconfig >.install-links.new +mv .install-links.new .install-links + +{# extra line for matching hash #} diff --git a/templates/pkg/gnu-make:old b/templates/pkg/gnu-make:old @@ -0,0 +1,131 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.74cd95cd7bd1db21d28d9a8579d924d588b9cbfd0f9744c0fb890188d71646aa +#+gnu-make.0a6fbda1db6316eb5ed666a1697e7bf0e4604d371ac4cf5d24a5151e76280074 +#+busybox.a0af8a5860e7fa278d39404f06a382633b7e2122d85c16bb2e22b1804cdd1654 +#@untar:-z:sha256:dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3:. + + +# - build script start - + +autotools_config() { + prefix=/home/ccx/versions/$pthbs_package + ./configure -C \ + --prefix="$prefix" \ + --build="$(${CC:-gcc} -dumpmachine)" \ + --bindir="$prefix/command" \ + --sbindir="$prefix/command" \ + --infodir="$prefix/info" \ + --localedir="$prefix/locale" \ + --mandir="$prefix/man" \ + --libdir="$prefix/library" \ + --docdir="$prefix/doc/gnu-make" \ + --datadir="$prefix/data" \ + --datarootdir="$prefix/data" \ + --localstatedir='/var/pthbs' \ + "$@" + +} + +autotools_config_static() { + build_env_static + autotools_config "$@" --enable-static --disable-shared +} + +build_env_static() { + export LD_LIBRARY_PATH="$pthbs_build_environment/library" + export CPATH="$pthbs_build_environment/include" + export LDFLAGS="-static -L$pthbs_build_environment/library $LDFLAGS" +} + +check_static() { + local exe || true + exe=$pthbs_destdir'/home/ccx/versions'/$pthbs_package/$1 + if ! test -f $exe; then + printf '%s\n' "Error: file '$1' doesn't exist!" + exit 1 + fi + local interp_info || true + interp_info=$(readelf --string-dump=.interp "$exe") || exit $? + if test x '!=' "x$interp_info"; then + printf '%s\n' "Error: '$1' is a dynamic binary!" + exit 1 + fi +} + +prefix=/home/ccx/versions/$pthbs_package +dest=${pthbs_destdir%/}${prefix} +cd 'make-4.4.1' + + +autotools_config_static --disable-nls + + +make -j${JOBS:-1} -l$((1+${JOBS:-1})) + +make DESTDIR="$pthbs_destdir" install + + + +check_static command/make + + + +cd "$pthbs_destdir/home/ccx/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/make"]=1 + x["./man/man1/make.1"]=1 +} + +function r1(s) { + sub("^[.]/[^/]*", ".", s) + return s +} +function s1(repl, s) { + sub("^[.]/[^/]*", "./"repl, s) + return s +} +function link(src) { + x[$0]=0 + printf "%s\t%s\n", $0, src + printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" +} +$1!="."{exit 1} + + +$2 == "config" { link($0); next } +$2 == "keys" { link($0); next } +$2 == "zsh" { link($0); next } +$2 == "env" { link($0); next } +$2 == "command" { link($0); next } +$2 == "bin" { link(s1("command", $0)); next } + +$2 == "library.so" { link($0); next } +$2 == "library" { link($0); next } +$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } +$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next } + +$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } + +$2 == "man" { link($0); next } +$2 == "info" { link($0); next } +$2 == "doc" { link($0); next } +$2 == "icons" { link($0); next } +$2 == "terminfo" { link($0); next } +$2 == "data" { link($0); next } +$2 == "include" { link($0); next } + +{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } + +END { + for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } + for(fname in x) { + if(x[fname]) { + printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" + exit 3 + } + } +}' >.install-links.new +mv .install-links.new .install-links + +{# extra line for matching hash #} diff --git a/templates/pkg/oldsystem.environment b/templates/pkg/oldsystem.environment @@ -3,3 +3,5 @@ #+gnu-make.0a6fbda1db6316eb5ed666a1697e7bf0e4604d371ac4cf5d24a5151e76280074 #+musl-cross-make.513f0acae3d9d88d67a9151a33515f34995d3ff3d69f38b47239070d1b02c731 #+{{pkg_install_name("musl-cross-make:old")}} +#+{{pkg_install_name("busybox:old")}} +#+{{pkg_install_name("gnu-make:old")}} diff --git a/variants/ccx-x86_64/busybox:old b/variants/ccx-x86_64/busybox:old @@ -0,0 +1,39 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.74cd95cd7bd1db21d28d9a8579d924d588b9cbfd0f9744c0fb890188d71646aa +#+gnu-make.0a6fbda1db6316eb5ed666a1697e7bf0e4604d371ac4cf5d24a5151e76280074 +#+busybox.a0af8a5860e7fa278d39404f06a382633b7e2122d85c16bb2e22b1804cdd1654 +#@sha256:31b8f61d2173fa36d4409e8e91f52088691d6ba4db13efe19ea7ae7512e64275:busybox/.config +#@git:3621595939e43a831d66f6b757d4f410029bff95:busybox + + +# - build script start - + +prefix=/home/ccx/versions/$pthbs_package +dest=${pthbs_destdir%/}${prefix} +cd 'busybox' + +export CC="$pthbs_build_environment/command/x86_64-linux-musl-gcc" +export CFLAGS="-D_GNU_SOURCE" +export LDFLAGS="-static" + +cat >>.config <<EOF +CONFIG_BUSYBOX_EXEC_PATH="${prefix}/command/busybox" +EOF +make oldconfig +cat .config + + +make V=1 CROSS_COMPILE=x86_64-linux-musl- LDFLAGS=-static HOSTLDFLAGS=-static \ + HOSTCC="$CC -static" CC="$CC -static" HOSTCFLAGS=-D_GNU_SOURCE -j${JOBS:-1} + +mkdir -p "${dest}/command" +cp -a busybox "${dest}/command/" + + + + +cd "${dest}" +echo false | ./command/busybox --list >/dev/null # test if it works +printf "./command/busybox\t./command/%s\n" busybox bbconfig >.install-links.new +mv .install-links.new .install-links + diff --git a/variants/ccx-x86_64/gnu-make:old b/variants/ccx-x86_64/gnu-make:old @@ -0,0 +1,130 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.74cd95cd7bd1db21d28d9a8579d924d588b9cbfd0f9744c0fb890188d71646aa +#+gnu-make.0a6fbda1db6316eb5ed666a1697e7bf0e4604d371ac4cf5d24a5151e76280074 +#+busybox.a0af8a5860e7fa278d39404f06a382633b7e2122d85c16bb2e22b1804cdd1654 +#@untar:-z:sha256:dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3:. + + +# - build script start - + +autotools_config() { + prefix=/home/ccx/versions/$pthbs_package + ./configure -C \ + --prefix="$prefix" \ + --build="$(${CC:-gcc} -dumpmachine)" \ + --bindir="$prefix/command" \ + --sbindir="$prefix/command" \ + --infodir="$prefix/info" \ + --localedir="$prefix/locale" \ + --mandir="$prefix/man" \ + --libdir="$prefix/library" \ + --docdir="$prefix/doc/gnu-make" \ + --datadir="$prefix/data" \ + --datarootdir="$prefix/data" \ + --localstatedir='/var/pthbs' \ + "$@" + +} + +autotools_config_static() { + build_env_static + autotools_config "$@" --enable-static --disable-shared +} + +build_env_static() { + export LD_LIBRARY_PATH="$pthbs_build_environment/library" + export CPATH="$pthbs_build_environment/include" + export LDFLAGS="-static -L$pthbs_build_environment/library $LDFLAGS" +} + +check_static() { + local exe || true + exe=$pthbs_destdir'/home/ccx/versions'/$pthbs_package/$1 + if ! test -f $exe; then + printf '%s\n' "Error: file '$1' doesn't exist!" + exit 1 + fi + local interp_info || true + interp_info=$(readelf --string-dump=.interp "$exe") || exit $? + if test x '!=' "x$interp_info"; then + printf '%s\n' "Error: '$1' is a dynamic binary!" + exit 1 + fi +} + +prefix=/home/ccx/versions/$pthbs_package +dest=${pthbs_destdir%/}${prefix} +cd 'make-4.4.1' + + +autotools_config_static --disable-nls + + +make -j${JOBS:-1} -l$((1+${JOBS:-1})) + +make DESTDIR="$pthbs_destdir" install + + + +check_static command/make + + + +cd "$pthbs_destdir/home/ccx/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/make"]=1 + x["./man/man1/make.1"]=1 +} + +function r1(s) { + sub("^[.]/[^/]*", ".", s) + return s +} +function s1(repl, s) { + sub("^[.]/[^/]*", "./"repl, s) + return s +} +function link(src) { + x[$0]=0 + printf "%s\t%s\n", $0, src + printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" +} +$1!="."{exit 1} + + +$2 == "config" { link($0); next } +$2 == "keys" { link($0); next } +$2 == "zsh" { link($0); next } +$2 == "env" { link($0); next } +$2 == "command" { link($0); next } +$2 == "bin" { link(s1("command", $0)); next } + +$2 == "library.so" { link($0); next } +$2 == "library" { link($0); next } +$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } +$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next } + +$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } + +$2 == "man" { link($0); next } +$2 == "info" { link($0); next } +$2 == "doc" { link($0); next } +$2 == "icons" { link($0); next } +$2 == "terminfo" { link($0); next } +$2 == "data" { link($0); next } +$2 == "include" { link($0); next } + +{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } + +END { + for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } + for(fname in x) { + if(x[fname]) { + printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" + exit 3 + } + } +}' >.install-links.new +mv .install-links.new .install-links + diff --git a/variants/ccx-x86_64/oldsystem.environment b/variants/ccx-x86_64/oldsystem.environment @@ -2,4 +2,6 @@ #+busybox.a0af8a5860e7fa278d39404f06a382633b7e2122d85c16bb2e22b1804cdd1654 #+gnu-make.0a6fbda1db6316eb5ed666a1697e7bf0e4604d371ac4cf5d24a5151e76280074 #+musl-cross-make.513f0acae3d9d88d67a9151a33515f34995d3ff3d69f38b47239070d1b02c731 -#+musl-cross-make.74cd95cd7bd1db21d28d9a8579d924d588b9cbfd0f9744c0fb890188d71646aa- \ No newline at end of file +#+musl-cross-make.74cd95cd7bd1db21d28d9a8579d924d588b9cbfd0f9744c0fb890188d71646aa +#+busybox.379b7b2d8316b3678245563c8e592d71e6c380bc22a735c30c1c0e6f8f60caf3 +#+gnu-make.31d90a55d6506852f9784f6f6febf0d843f8051f63bc18795fd5275baa369f50+ \ No newline at end of file diff --git a/variants/root-x86_64/busybox:old b/variants/root-x86_64/busybox:old @@ -0,0 +1,39 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.74cd95cd7bd1db21d28d9a8579d924d588b9cbfd0f9744c0fb890188d71646aa +#+gnu-make.0a6fbda1db6316eb5ed666a1697e7bf0e4604d371ac4cf5d24a5151e76280074 +#+busybox.a0af8a5860e7fa278d39404f06a382633b7e2122d85c16bb2e22b1804cdd1654 +#@sha256:31b8f61d2173fa36d4409e8e91f52088691d6ba4db13efe19ea7ae7512e64275:busybox/.config +#@git:3621595939e43a831d66f6b757d4f410029bff95:busybox + + +# - build script start - + +prefix=/home/ccx/versions/$pthbs_package +dest=${pthbs_destdir%/}${prefix} +cd 'busybox' + +export CC="$pthbs_build_environment/command/x86_64-linux-musl-gcc" +export CFLAGS="-D_GNU_SOURCE" +export LDFLAGS="-static" + +cat >>.config <<EOF +CONFIG_BUSYBOX_EXEC_PATH="${prefix}/command/busybox" +EOF +make oldconfig +cat .config + + +make V=1 CROSS_COMPILE=x86_64-linux-musl- LDFLAGS=-static HOSTLDFLAGS=-static \ + HOSTCC="$CC -static" CC="$CC -static" HOSTCFLAGS=-D_GNU_SOURCE -j${JOBS:-1} + +mkdir -p "${dest}/command" +cp -a busybox "${dest}/command/" + + + + +cd "${dest}" +echo false | ./command/busybox --list >/dev/null # test if it works +printf "./command/busybox\t./command/%s\n" busybox bbconfig >.install-links.new +mv .install-links.new .install-links + diff --git a/variants/root-x86_64/gnu-make:old b/variants/root-x86_64/gnu-make:old @@ -0,0 +1,130 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.74cd95cd7bd1db21d28d9a8579d924d588b9cbfd0f9744c0fb890188d71646aa +#+gnu-make.0a6fbda1db6316eb5ed666a1697e7bf0e4604d371ac4cf5d24a5151e76280074 +#+busybox.a0af8a5860e7fa278d39404f06a382633b7e2122d85c16bb2e22b1804cdd1654 +#@untar:-z:sha256:dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3:. + + +# - build script start - + +autotools_config() { + prefix=/home/ccx/versions/$pthbs_package + ./configure -C \ + --prefix="$prefix" \ + --build="$(${CC:-gcc} -dumpmachine)" \ + --bindir="$prefix/command" \ + --sbindir="$prefix/command" \ + --infodir="$prefix/info" \ + --localedir="$prefix/locale" \ + --mandir="$prefix/man" \ + --libdir="$prefix/library" \ + --docdir="$prefix/doc/gnu-make" \ + --datadir="$prefix/data" \ + --datarootdir="$prefix/data" \ + --localstatedir='/var/pthbs' \ + "$@" + +} + +autotools_config_static() { + build_env_static + autotools_config "$@" --enable-static --disable-shared +} + +build_env_static() { + export LD_LIBRARY_PATH="$pthbs_build_environment/library" + export CPATH="$pthbs_build_environment/include" + export LDFLAGS="-static -L$pthbs_build_environment/library $LDFLAGS" +} + +check_static() { + local exe || true + exe=$pthbs_destdir'/home/ccx/versions'/$pthbs_package/$1 + if ! test -f $exe; then + printf '%s\n' "Error: file '$1' doesn't exist!" + exit 1 + fi + local interp_info || true + interp_info=$(readelf --string-dump=.interp "$exe") || exit $? + if test x '!=' "x$interp_info"; then + printf '%s\n' "Error: '$1' is a dynamic binary!" + exit 1 + fi +} + +prefix=/home/ccx/versions/$pthbs_package +dest=${pthbs_destdir%/}${prefix} +cd 'make-4.4.1' + + +autotools_config_static --disable-nls + + +make -j${JOBS:-1} -l$((1+${JOBS:-1})) + +make DESTDIR="$pthbs_destdir" install + + + +check_static command/make + + + +cd "$pthbs_destdir/home/ccx/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/make"]=1 + x["./man/man1/make.1"]=1 +} + +function r1(s) { + sub("^[.]/[^/]*", ".", s) + return s +} +function s1(repl, s) { + sub("^[.]/[^/]*", "./"repl, s) + return s +} +function link(src) { + x[$0]=0 + printf "%s\t%s\n", $0, src + printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" +} +$1!="."{exit 1} + + +$2 == "config" { link($0); next } +$2 == "keys" { link($0); next } +$2 == "zsh" { link($0); next } +$2 == "env" { link($0); next } +$2 == "command" { link($0); next } +$2 == "bin" { link(s1("command", $0)); next } + +$2 == "library.so" { link($0); next } +$2 == "library" { link($0); next } +$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } +$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next } + +$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } + +$2 == "man" { link($0); next } +$2 == "info" { link($0); next } +$2 == "doc" { link($0); next } +$2 == "icons" { link($0); next } +$2 == "terminfo" { link($0); next } +$2 == "data" { link($0); next } +$2 == "include" { link($0); next } + +{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } + +END { + for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } + for(fname in x) { + if(x[fname]) { + printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" + exit 3 + } + } +}' >.install-links.new +mv .install-links.new .install-links + diff --git a/variants/root-x86_64/oldsystem.environment b/variants/root-x86_64/oldsystem.environment @@ -2,4 +2,6 @@ #+busybox.a0af8a5860e7fa278d39404f06a382633b7e2122d85c16bb2e22b1804cdd1654 #+gnu-make.0a6fbda1db6316eb5ed666a1697e7bf0e4604d371ac4cf5d24a5151e76280074 #+musl-cross-make.513f0acae3d9d88d67a9151a33515f34995d3ff3d69f38b47239070d1b02c731 -#+musl-cross-make.884725bf380e0e537bcd0e07975a2cc8faa6597fc199d2b63db309e9fcea4e4f- \ No newline at end of file +#+musl-cross-make.884725bf380e0e537bcd0e07975a2cc8faa6597fc199d2b63db309e9fcea4e4f +#+busybox.379b7b2d8316b3678245563c8e592d71e6c380bc22a735c30c1c0e6f8f60caf3 +#+gnu-make.31d90a55d6506852f9784f6f6febf0d843f8051f63bc18795fd5275baa369f50+ \ No newline at end of file