commit 65a8ccc1aa0b03b5f34c9f786759e9f64769473d
parent ac45665e093b9666e24f9be22607bc5b67f8b571
Author: Jan Pobrislo <ccx@te2000.cz>
Date: Wed, 5 Nov 2025 21:49:00 +0000
optional packages & kernel management
Diffstat:
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
-