mrrl

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

commit 65a8ccc1aa0b03b5f34c9f786759e9f64769473d
parent ac45665e093b9666e24f9be22607bc5b67f8b571
Author: Jan Pobrislo <ccx@te2000.cz>
Date:   Wed,  5 Nov 2025 21:49:00 +0000

optional packages & kernel management

Diffstat:
Mtemplates/pkg/busybox:modutils | 5+++--
Mtemplates/pkg/default.environment | 2+-
Mtemplates/pkg/kernel.environment | 3++-
Mtemplates/pkg/linux | 1+
Mtemplates/pkg/mdevd.environment | 2+-
Mtemplates/pkg/system-config | 2+-
Mvariants/ccx-x86_64/busybox:modutils | 2+-
Mvariants/ccx-x86_64/default.environment | 10+++++-----
Mvariants/ccx-x86_64/kernel.environment | 4++--
Mvariants/ccx-x86_64/mdevd.environment | 4++--
Mvariants/ccx-x86_64/system-config | 4++--
Mvariants/ccx-x86_64/system-config-init | 4++--
Mvariants/ccx-x86_64/system-config-rc | 4++--
Dvariants/root-x86_64/busybox:modutils | 61-------------------------------------------------------------
Dvariants/root-x86_64/kernel.environment | 4----
Dvariants/root-x86_64/linux | 136-------------------------------------------------------------------------------
16 files changed, 25 insertions(+), 223 deletions(-)

diff --git a/templates/pkg/busybox:modutils b/templates/pkg/busybox:modutils @@ -1,8 +1,9 @@ {%- set pkg_source="git" -%} {% extends "generic" %} +{% if kernel is undefined %}{% do skip("kernel variable is undefined") %}{% endif -%} {%- do import_functions.add("check_static") %} {% block package_deps -%} -#+{{pkg_install_name(kernel|default("linux"))}} +#+{{pkg_install_name(kernel)}} #+{{pkg_install_name("musl-cross-make")}} #+{{pkg_install_name("gnu-make")}} #+{{pkg_install_name("busybox")}} @@ -16,7 +17,7 @@ export CFLAGS="-D_GNU_SOURCE" export LDFLAGS="-static" # TODO: indirection via deps directory/symlink cat >>.config <<EOF -CONFIG_DEFAULT_MODULES_DIR="{{pkg_install_dir("linux")}}" +CONFIG_DEFAULT_MODULES_DIR="{{pkg_install_dir(kernel)}}" EOF make oldconfig cat .config diff --git a/templates/pkg/default.environment b/templates/pkg/default.environment @@ -4,5 +4,5 @@ #+{{pkg_install_name("system-config-scripts")}} #+{{pkg_install_name("system-config-init")}} #+{{pkg_install_name("system-config-zsh")}} -#+{{pkg_install_name("busybox-modutils")}}{# for normal module location / hand-built kernel #} +#+{{pkg_install_name(["busybox-modutils", "busybox:modutils"][kernel is defined|int])}} {#- {% include "pkg/kernel.environment" %} #} diff --git a/templates/pkg/kernel.environment b/templates/pkg/kernel.environment @@ -1,3 +1,4 @@ +{% if kernel is undefined %}{% do skip("kernel variable is undefined") %}{% endif -%} {{ shebang }} -#+{{pkg_install_name(kernel|default("linux"))}} +#+{{pkg_install_name(kernel)}} #+{{pkg_install_name("busybox:modutils")}} diff --git a/templates/pkg/linux b/templates/pkg/linux @@ -1,3 +1,4 @@ +{% if kernel is undefined %}{% do skip("kernel variable is undefined") %}{% endif -%} {%- set tarball_version="6.1" -%} {%- set tarball_shasum="2ca1f17051a430f6fed1196e4952717507171acfd97d96577212502703b25deb" -%} {%- set patch_version="6.1.34" -%} diff --git a/templates/pkg/mdevd.environment b/templates/pkg/mdevd.environment @@ -4,4 +4,4 @@ #+{{pkg_install_name("s6")}} #+{{pkg_install_name("mdev-scripts")}} #+{{pkg_install_name("mdevd")}} -#+{{pkg_install_name("busybox-modutils")}} +#+{{pkg_install_name(["busybox-modutils", "busybox:modutils"][kernel is defined|int])}} diff --git a/templates/pkg/system-config b/templates/pkg/system-config @@ -20,7 +20,7 @@ #+{{pkg_install_name("zsh")}} #+{{pkg_install_name("system-config-scripts")}} #+{{pkg_install_name("logincaps")}} -#+{{pkg_install_name("busybox-modutils")}} +#+{{pkg_install_name(["busybox-modutils", "busybox:modutils"][kernel is defined|int])}} {% endblock %} {% block build_and_install -%} err_notfound() { diff --git a/variants/ccx-x86_64/busybox:modutils b/variants/ccx-x86_64/busybox:modutils @@ -35,7 +35,7 @@ export CFLAGS="-D_GNU_SOURCE" export LDFLAGS="-static" # TODO: indirection via deps directory/symlink cat >>.config <<EOF -CONFIG_DEFAULT_MODULES_DIR="/home/ccx/versions/linux.1d9e08850bf807075c28703d6b40ec34c04f2061ee42efee573d337d30e19ec5" +CONFIG_DEFAULT_MODULES_DIR="/home/ccx/versions/linux-qemu-guest.fe42380c34918eb439180c9046386ce9c898ddce4c7e64d917eaa7672b9d5e45" EOF make oldconfig cat .config diff --git a/variants/ccx-x86_64/default.environment b/variants/ccx-x86_64/default.environment @@ -40,9 +40,9 @@ #+mlog.2661b2d7c965bf9b955f31d9d9fcc3fdf1cbbfd8241c9fb54559f9626c77cb3b #+findutils.b97995c4629ad45a8c7cd488c649f6c6487560d6eadc10ba5ca62f7f5d47fd1e #+nawk.7a55f56635e44d1ae3762e2754ec61a73445bafd872483e4638f1de2e9f606c5 -#+system-config.163670701ea1bf9323c5e2551137213fd086b1fdf5adb9522a3376d5f23e9024 -#+system-config-rc.2828d900092b3d942fe86ca1158dd88690fe53f285e5cbb219fbcb88616ed8e6 +#+system-config.56c97acb89573693e8e3f563a71504eb9b5591a43e21652d02371a16b09fffc2 +#+system-config-rc.122d3d457173f9c711048d5a46a7c7ab4f24fa876e329a86fd2d97072273dadc #+system-config-scripts.08f6030d68edd03d9a95dd73ca8e1feebfc3604f19bc7ffe887679d81edd1495 -#+system-config-init.2bb4592b5d03937762fcd9f54eb74e7a1166574b448381e5689b42c80d29ae0e +#+system-config-init.8fd551ae14f117fe58bf6ba80129348f13e63a7870051cf4bb3091d5d664b553 #+system-config-zsh.d7805c621c4a170d0b904f7a58b6d8eaa7f747ef6ed47d2704618619c0b00d8b -#+busybox-modutils.4b75849c60eb1dc2a0435cd9072816ef60dd80565ff6892d1b00cc664656ec87- \ No newline at end of file +#+busybox.43bb5cab60f0da5b5c0277f13addb004641743cf9389c7d12f98a0ba8c029a11+ \ No newline at end of file diff --git a/variants/ccx-x86_64/kernel.environment b/variants/ccx-x86_64/kernel.environment @@ -1,3 +1,3 @@ #!/usr/bin/env pthbs-build #+linux-qemu-guest.fe42380c34918eb439180c9046386ce9c898ddce4c7e64d917eaa7672b9d5e45 -#+busybox.ab78772366b22bbd94c2a67a2f49b5d184bbc3249eaa74f1ee479697d7714660- \ No newline at end of file +#+busybox.43bb5cab60f0da5b5c0277f13addb004641743cf9389c7d12f98a0ba8c029a11+ \ No newline at end of file diff --git a/variants/ccx-x86_64/mdevd.environment b/variants/ccx-x86_64/mdevd.environment @@ -4,4 +4,4 @@ #+s6.625d36f529cb11a792f72464c287123f3ba74c0307c4f91293811507ec390df4 #+mdev-scripts.00e06adec035e09310f3550d4c15a61d8c0b7a268a976c5808e6edcf363f099a #+mdevd.539bd0d22229d122851685067b8138fd1e185932d1dce8b8c2a7f1167e8ac7b6 -#+busybox-modutils.4b75849c60eb1dc2a0435cd9072816ef60dd80565ff6892d1b00cc664656ec87- \ No newline at end of file +#+busybox.43bb5cab60f0da5b5c0277f13addb004641743cf9389c7d12f98a0ba8c029a11+ \ No newline at end of file diff --git a/variants/ccx-x86_64/system-config b/variants/ccx-x86_64/system-config @@ -16,7 +16,7 @@ #+zsh.6b63a085e8fb430ea9a23e76bc73e3c5eabe03f82f9be10ae52fd1102173a4c2 #+system-config-scripts.08f6030d68edd03d9a95dd73ca8e1feebfc3604f19bc7ffe887679d81edd1495 #+logincaps.b2cf373b3a33dcddc0b49513d5267b0cdb62398d981980b7f5b17785b86c80f8 -#+busybox-modutils.4b75849c60eb1dc2a0435cd9072816ef60dd80565ff6892d1b00cc664656ec87 +#+busybox.43bb5cab60f0da5b5c0277f13addb004641743cf9389c7d12f98a0ba8c029a11 #@git:ddb20e067ab184cd18ee8b88d74044dfeeaaad4c:system-config @@ -54,7 +54,7 @@ chmod +x config/etc/skel/loginexec env 'pthbs_path_system-config'="$prefix" \ 'pthbs_path_containers=/home/ccx/versions/env.c9a770619294ee1815494bb940c31a1b37e2d3a1fc15e278d4b6c409878a1674' \ - 'pthbs_path_mdevd=/home/ccx/versions/env.e793a3cc342d49c6e3807bc913b6d3863a521e579b72d6149e5a366e5eee70a2' \ + 'pthbs_path_mdevd=/home/ccx/versions/env.cda5532d810d744228b40755af5ccc2d4ea2dad1d247cc0c313b9088224f4bb8' \ make -j${JOBS:-1} -l$((1+${JOBS:-1})) all sort -u build/execfile | while IFS= read exename; do diff --git a/variants/ccx-x86_64/system-config-init b/variants/ccx-x86_64/system-config-init @@ -7,7 +7,7 @@ #+s6-portable-utils.ad8ffe8c50f21cb1a5e68432a843538ffed4c36cfea3a44045e43feef09c49bc #+s6-linux-init.5b8d42d87162efd6b55396f493f876a871daeb3e45c218e1347287db700179e4 #+execline.7102a2ddde68a289705375865c9485103ebfb43724ca3335656c868e46e161d7 -#+system-config-rc.2828d900092b3d942fe86ca1158dd88690fe53f285e5cbb219fbcb88616ed8e6 +#+system-config-rc.122d3d457173f9c711048d5a46a7c7ab4f24fa876e329a86fd2d97072273dadc # - build script start - @@ -32,7 +32,7 @@ dest=${pthbs_destdir%/}${prefix} cd '.' -s6rcdb=/home/ccx/versions/system-config-rc.2828d900092b3d942fe86ca1158dd88690fe53f285e5cbb219fbcb88616ed8e6/config/s6-rc-db +s6rcdb=/home/ccx/versions/system-config-rc.122d3d457173f9c711048d5a46a7c7ab4f24fa876e329a86fd2d97072273dadc/config/s6-rc-db # Generate init (${dest} must not exist but parent dir does) mkdir -p "$pthbs_destdir//home/ccx/versions" diff --git a/variants/ccx-x86_64/system-config-rc b/variants/ccx-x86_64/system-config-rc @@ -5,7 +5,7 @@ #+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8 #+s6-rc.b356246ab14ce71be59e9cdc5dfca373b0c38c5b4bfc37899f379be01849a1bc #+fileset.0738b332782461b91070e25524a61bd78594c82b249ef0c0c75e93ff78c92c26 -#+system-config.163670701ea1bf9323c5e2551137213fd086b1fdf5adb9522a3376d5f23e9024 +#+system-config.56c97acb89573693e8e3f563a71504eb9b5591a43e21652d02371a16b09fffc2 # - build script start - @@ -15,7 +15,7 @@ dest=${pthbs_destdir%/}${prefix} cd '.' -src=/home/ccx/versions/system-config.163670701ea1bf9323c5e2551137213fd086b1fdf5adb9522a3376d5f23e9024/config/s6-rc-source +src=/home/ccx/versions/system-config.56c97acb89573693e8e3f563a71504eb9b5591a43e21652d02371a16b09fffc2/config/s6-rc-source s6-rc-compile ./s6-rc-db "$src" mkdir -p "$dest/config" mv -v s6-rc-db "$dest/config/" diff --git a/variants/root-x86_64/busybox:modutils b/variants/root-x86_64/busybox:modutils @@ -1,61 +0,0 @@ -#!/usr/bin/env pthbs-build -#+linux.0969663b3937c0dc4d55b25b0412de65b89c6067ba22085a3a34b987fa82dcbc -#+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 -#+gnu-make.6c204d453a2d9b4e29dd7b9f93fc7c5a928284402b8646493cf72004f748753c -#+busybox.05cde6bebcef146cc4de9201c82e0ef427702cc3bfe1acb48c0587542ba53002 -#+busybox-findutils.2c87d98d861d724e141128f395bed58e70601468aee2a192d77d5791d83772b7 -#+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc -#@sha256:ccb459010923e1a9b49cb39d45bc93d0fc8749acea6efd7b19cfb00e76a5562e:busybox/.config -#@git:3621595939e43a831d66f6b757d4f410029bff95:busybox - - -# - build script start - - -check_static() { - local exe || true - exe=$pthbs_destdir'/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=/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" -# TODO: indirection via deps directory/symlink -cat >>.config <<EOF -CONFIG_DEFAULT_MODULES_DIR="/versions/linux.0969663b3937c0dc4d55b25b0412de65b89c6067ba22085a3a34b987fa82dcbc" -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} -./make_single_applets.sh -mkdir -p "${dest}/command" - -for exe in depmod insmod lsmod modinfo modprobe rmmod; do - mv -v "busybox_$(printf '%s' $exe | tr '[a-z]' '[A-Z]')" "${dest}/command/${exe}" - check_static command/$exe - printf './command/%s\t./command/%s\n' "$exe" "$exe" \ - >>"${dest}/.install-links.new" -done - - - - -cd "$pthbs_destdir/versions/$pthbs_package" -mv .install-links.new .install-links - diff --git a/variants/root-x86_64/kernel.environment b/variants/root-x86_64/kernel.environment @@ -1,3 +0,0 @@ -#!/usr/bin/env pthbs-build -#+linux.0969663b3937c0dc4d55b25b0412de65b89c6067ba22085a3a34b987fa82dcbc -#+busybox.b75f4199f8308de3809ac351459d080c9bedaf10336189a6968eaf7f98dcc39e- \ No newline at end of file diff --git a/variants/root-x86_64/linux b/variants/root-x86_64/linux @@ -1,136 +0,0 @@ -#!/usr/bin/env pthbs-build -#+busybox.05cde6bebcef146cc4de9201c82e0ef427702cc3bfe1acb48c0587542ba53002 -#+busybox-modutils.ebb7b2cc2e280cc5c68f2c7ccd8dd75304de57061e314de8459057fb2b7c0209 -#+gnu-make.6c204d453a2d9b4e29dd7b9f93fc7c5a928284402b8646493cf72004f748753c -#+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 -#+findutils.8fb6b0f98e900ae929a7a697bf0283f8c78df0571b5c508fd68b74aeea3eb750 -#+diffutils.566986f3321e239718d1356b3131c82833ade565b9c1a5d0dfe1b03be65f5701 -#+patch.aaad0551089641f4c59cb166e6c41262d1a1b95ab18c52f4c02746951a141602 -#+flex.23f90e59737b0916506d7a180a53ad1ea620592ecff2d7e3aa8ece88c152af33 -#+bison.5aa6c06f7231813e87b8417220b93d58ff09fbde70b348f781fb42aec2880251 -#+rsync.88a1ff8658f8a443a45b185c6099a3859966230ecb535a1c230f48fd9b74d6d0 -#+zstd.cab786b9c2ab7a9f45379d06b7c76011295a6725f374d1f5dbcd33e18df2bada -#+libelf.568856eb2053f40104a6ed71caf9d204af7699af0e6a1baee44eee12822f502b -#+pkgconf-pkg-config.f468b6bdd77bccfc86d0814786e4a380f1370e89c2849de59ec2ef56fec84710 -#+nawk.8fa343bf9be41a9701620e63eced62e002ec008a1eeb1beb2ce7986e6d7351f9 -#@untar:-J:sha256:2ca1f17051a430f6fed1196e4952717507171acfd97d96577212502703b25deb:. -#@sha256:d9b01e4dac3dd140c394227603c8b3339bb2f1e10c97afd3607d84e3003ec75a:patch-6.1.34.xz -#@sha256:cc2633ee136db0283d4faf7c27c890641e90cd835fc3adb19eaf0569e4078867:linux.config -#@sha256:ff3ddd131d73fee6838b11a6c4773bdb85c5f60fdd4b9ac4120ced021c341417:noobjtool.patch - - -# - build script start - - - -prefix=/versions/$pthbs_package -dest=${pthbs_destdir%/}${prefix} -cd 'linux-6.1' - -unxz -c < '../patch-6.1.34.xz' | patch -p1 -N -patch -p1 -N <../noobjtool.patch - - -export CPATH="$pthbs_build_environment/include" - -cp -v ../linux.config .config - make olddefconfig -diff -u ../linux.config .config || true - - - - make -j${JOBS:-1} -l$((1+${JOBS:-1})) \ - V=1 \ - HOSTLDFLAGS="-static -L$pthbs_build_environment/library" \ - HOSTCFLAGS="-L$pthbs_build_environment/library" - - -mkdir -p "${dest}/doc/linux" "${dest}/boot" -cp -v .config "${dest}/config" -mv Documentation/* "${dest}/doc/linux" - make modules_install install \ - INSTALL_MOD_PATH="${dest}/kernel" \ - INSTALL_MOD_STRIP=1 \ - INSTALL_PATH="${dest}/boot" \ - INSTALL_DTBS_PATH="${dest}/boot/dtbs" - -# remove dangling symlinks -module_dir="${dest}/kernel/lib/modules/6.1.34" -rm -f "$module_dir/build" "$module_dir/source" -ls -lhA "$module_dir" - - - - - -cd "$pthbs_destdir/versions/$pthbs_package" -find -type d -o -print | awk -F/ ' -BEGIN { - kernel_name="6.1.34" - x["./boot/vmlinuz"]=1 - x["./boot/System.map"]=1 - x["./kernel/lib/modules/" kernel_name "/modules.alias"]=1 - x["./kernel/lib/modules/" kernel_name "/modules.builtin"]=1 - x["./kernel/lib/modules/" kernel_name "/modules.dep"]=1 - x["./kernel/lib/modules/" kernel_name "/modules.order"]=1 - x["./kernel/lib/modules/" kernel_name "/modules.symbols"]=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 == "boot" { link($0); next } -$2 == "lib" && $3 == "modules" { exit 3 } # make sure kernel modules do not mix with userspace libraries -function mod_path(s) { - sub("^[.]/kernel/lib/", "./kernel/", s) - return s -} -$2 == "kernel" && $3 == "lib" && $4 == "modules" { link(mod_path($0)); next } - -$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 -