mrrl

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

commit 136e5ea808059a690ca9ea84838f9d56d11b6c2e
parent 65a8ccc1aa0b03b5f34c9f786759e9f64769473d
Author: Jan Pobrislo <ccx@te2000.cz>
Date:   Wed,  5 Nov 2025 22:25:48 +0000

squashfs

Diffstat:
Mdownloadlist.sha256 | 1+
Atemplates/pkg/squashfs-tools | 41+++++++++++++++++++++++++++++++++++++++++
Mtemplates/pkg/userspace.environment | 1+
Mvariants/ccx-x86_64/default.environment | 1+
Avariants/ccx-x86_64/squashfs-tools | 125+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/ccx-x86_64/userspace.environment | 5+++--
Mvariants/root-x86_64/default.environment | 1+
Avariants/root-x86_64/squashfs-tools | 125+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/root-x86_64/userspace.environment | 5+++--
9 files changed, 301 insertions(+), 4 deletions(-)

diff --git a/downloadlist.sha256 b/downloadlist.sha256 @@ -96,3 +96,4 @@ e7cb473d4bffcf419f307c658cf2599fab03a2b4fe655bfd0be699f8f7af176e 7982 https://gi b1c2d176ff1444041f2775786ba605be796e46dfd2acb06c96f35d2bb88b8fb5 173019 https://github.com/ocaml-ppx/ocaml-migrate-parsetree/releases/download/v1.8.0/ocaml-migrate-parsetree-v1.8.0.tbz 6e62a8ee0217c9cc38d5860110eb18eb8d89c05c420353d298e1431fe8bac00f 43588 https://github.com/ocaml-community/cppo/archive/v1.8.0.tar.gz babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a 10163 https://github.com/ocaml/stdlib-shims/releases/download/0.3.0/stdlib-shims-0.3.0.tbz +4672b5c47d9418d3a5ae5b243defc6d9eae8275b9771022247c6a6082c815914 638262 https://github.com/plougher/squashfs-tools/archive/4.7.2.tar.gz diff --git a/templates/pkg/squashfs-tools b/templates/pkg/squashfs-tools @@ -0,0 +1,41 @@ +{%- set pkg_version="4.7.2" -%} +{% extends "genlinks" %} +{%- do import_functions.update(["check_static", "build_env_static"]) %} +{%- block package_deps -%} +#+{{pkg_install_name("busybox-diffutils")}} +#+{{pkg_install_name("musl-cross-make")}} +#+{{pkg_install_name("gnu-make")}} +#+{{pkg_install_name("attr")}} +#+{{pkg_install_name("zstd")}} +#@untar:-z:{{downloads["https://github.com/plougher/"~upstream_name~"/archive/"~pkg_version~".tar.gz"]}}:. +{% endblock package_deps %} +{% block build %} +build_env_static +make -C squashfs-tools \ + GZIP_SUPPORT=1 \ + XZ_SUPPORT=0 \ + LZO_SUPPORT=0 \ + LZ4_SUPPORT=0 \ + ZSTD_SUPPORT=1 \ + COMP_DEFAULT=zstd \ + XATTR_SUPPORT=1 \ + XATTR_OS_SUPPORT=1 \ + XATTR_DEFAULT=1 \ + USE_PREBUILT_MANPAGES=y \ + INSTALL_PREFIX="$prefix" \ + INSTALL_DIR="$prefix/command" \ + INSTALL_MANPAGES_DIR="$prefix/man/man1" +{% endblock build %} +{% block install %} +make -C squashfs-tools \ + INSTALL_PREFIX="$prefix" \ + INSTALL_DIR="$prefix/command" \ + INSTALL_MANPAGES_DIR="$prefix/man/man1" \ + install +{% endblock install %} +{% block check %} +check_static command/mksquashfs +{% endblock check %} +{% block genlinks_begin %} + x["./command/mksquashfs"]=1 +{% endblock genlinks_begin %} diff --git a/templates/pkg/userspace.environment b/templates/pkg/userspace.environment @@ -40,3 +40,4 @@ #+{{pkg_install_name("mlog")}} #+{{pkg_install_name("findutils")}} #+{{pkg_install_name("nawk")}} +#+{{pkg_install_name("squashfs-tools")}} diff --git a/variants/ccx-x86_64/default.environment b/variants/ccx-x86_64/default.environment @@ -40,6 +40,7 @@ #+mlog.2661b2d7c965bf9b955f31d9d9fcc3fdf1cbbfd8241c9fb54559f9626c77cb3b #+findutils.b97995c4629ad45a8c7cd488c649f6c6487560d6eadc10ba5ca62f7f5d47fd1e #+nawk.7a55f56635e44d1ae3762e2754ec61a73445bafd872483e4638f1de2e9f606c5 +#+squashfs-tools.cffdd27eaf3dbe50e08b23ba6f88645fdef7f3e97093401a72e0645d8371f8e1 #+system-config.56c97acb89573693e8e3f563a71504eb9b5591a43e21652d02371a16b09fffc2 #+system-config-rc.122d3d457173f9c711048d5a46a7c7ab4f24fa876e329a86fd2d97072273dadc #+system-config-scripts.08f6030d68edd03d9a95dd73ca8e1feebfc3604f19bc7ffe887679d81edd1495 diff --git a/variants/ccx-x86_64/squashfs-tools b/variants/ccx-x86_64/squashfs-tools @@ -0,0 +1,125 @@ +#!/usr/bin/env pthbs-build +#+busybox.47c820e8cf3f700bf5b693d7d379272d485e5078b2036912ce2e01bb998caf1f +#+busybox-findutils.79fab8ce17646e27c958348822c367903ddbef44dcebb134d16caa4fc287b716 +#+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b +#+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8 +#+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f +#+gnu-make.75a726f6c19f7bc10b95a84da3ce72fb785ebdf587504430c6b74cfb6610b728 +#+attr.bb0f6fc4d09323227b9d68e6e3a456ccc242871c94cce118555e852fa768c41b +#+zstd.78836b93084ce1741f46b6b22e7573aec234256b3fbd355edc72975bfc8f7130 +#@untar:-z:sha256:4672b5c47d9418d3a5ae5b243defc6d9eae8275b9771022247c6a6082c815914:. + + +# - build script start - + +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 'squashfs-tools-4.7.2' + + + +build_env_static +make -C squashfs-tools \ + GZIP_SUPPORT=1 \ + XZ_SUPPORT=0 \ + LZO_SUPPORT=0 \ + LZ4_SUPPORT=0 \ + ZSTD_SUPPORT=1 \ + COMP_DEFAULT=zstd \ + XATTR_SUPPORT=1 \ + XATTR_OS_SUPPORT=1 \ + XATTR_DEFAULT=1 \ + USE_PREBUILT_MANPAGES=y \ + INSTALL_PREFIX="$prefix" \ + INSTALL_DIR="$prefix/command" \ + INSTALL_MANPAGES_DIR="$prefix/man/man1" + +make -C squashfs-tools \ + INSTALL_PREFIX="$prefix" \ + INSTALL_DIR="$prefix/command" \ + INSTALL_MANPAGES_DIR="$prefix/man/man1" \ + install + + + +check_static command/mksquashfs + + +cd "$pthbs_destdir/home/ccx/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/mksquashfs"]=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/userspace.environment b/variants/ccx-x86_64/userspace.environment @@ -39,4 +39,5 @@ #+strace.5c717cf4161a8ad928956a03727247428a348e72a94c89a32ad7bc2a7028bcf8 #+mlog.2661b2d7c965bf9b955f31d9d9fcc3fdf1cbbfd8241c9fb54559f9626c77cb3b #+findutils.b97995c4629ad45a8c7cd488c649f6c6487560d6eadc10ba5ca62f7f5d47fd1e -#+nawk.7a55f56635e44d1ae3762e2754ec61a73445bafd872483e4638f1de2e9f606c5- \ No newline at end of file +#+nawk.7a55f56635e44d1ae3762e2754ec61a73445bafd872483e4638f1de2e9f606c5 +#+squashfs-tools.cffdd27eaf3dbe50e08b23ba6f88645fdef7f3e97093401a72e0645d8371f8e1+ \ No newline at end of file diff --git a/variants/root-x86_64/default.environment b/variants/root-x86_64/default.environment @@ -40,6 +40,7 @@ #+mlog.92af644369ffdc31db302c3777e519b54913ec535e87df1a4a775b98bd4f96c5 #+findutils.8fb6b0f98e900ae929a7a697bf0283f8c78df0571b5c508fd68b74aeea3eb750 #+nawk.8fa343bf9be41a9701620e63eced62e002ec008a1eeb1beb2ce7986e6d7351f9 +#+squashfs-tools.43cd51f3b2a977043b34d5946c04ba13d4c5c7e8bb402c368b5c88652b740d89 #+system-config.597773922b4d29324e535e8c23a640fe86f313f1a8808d43fe4dbd7b73136452 #+system-config-rc.a019fae4bf4f0dc7481fc6ada3a90c94a4b7bccc4b4bcfe8cfe332602be30406 #+system-config-scripts.9324b5eb412564369d5960e3db212e690260eee2e236e72668832ec6e4ef66ba diff --git a/variants/root-x86_64/squashfs-tools b/variants/root-x86_64/squashfs-tools @@ -0,0 +1,125 @@ +#!/usr/bin/env pthbs-build +#+busybox.05cde6bebcef146cc4de9201c82e0ef427702cc3bfe1acb48c0587542ba53002 +#+busybox-findutils.2c87d98d861d724e141128f395bed58e70601468aee2a192d77d5791d83772b7 +#+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b +#+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc +#+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 +#+gnu-make.6c204d453a2d9b4e29dd7b9f93fc7c5a928284402b8646493cf72004f748753c +#+attr.00636383b29a71bdf2ca7c89e48e6608e245de0c1e4e570b13e6743ca6761d6f +#+zstd.cab786b9c2ab7a9f45379d06b7c76011295a6725f374d1f5dbcd33e18df2bada +#@untar:-z:sha256:4672b5c47d9418d3a5ae5b243defc6d9eae8275b9771022247c6a6082c815914:. + + +# - build script start - + +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'/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 'squashfs-tools-4.7.2' + + + +build_env_static +make -C squashfs-tools \ + GZIP_SUPPORT=1 \ + XZ_SUPPORT=0 \ + LZO_SUPPORT=0 \ + LZ4_SUPPORT=0 \ + ZSTD_SUPPORT=1 \ + COMP_DEFAULT=zstd \ + XATTR_SUPPORT=1 \ + XATTR_OS_SUPPORT=1 \ + XATTR_DEFAULT=1 \ + USE_PREBUILT_MANPAGES=y \ + INSTALL_PREFIX="$prefix" \ + INSTALL_DIR="$prefix/command" \ + INSTALL_MANPAGES_DIR="$prefix/man/man1" + +make -C squashfs-tools \ + INSTALL_PREFIX="$prefix" \ + INSTALL_DIR="$prefix/command" \ + INSTALL_MANPAGES_DIR="$prefix/man/man1" \ + install + + + +check_static command/mksquashfs + + +cd "$pthbs_destdir/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/mksquashfs"]=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/userspace.environment b/variants/root-x86_64/userspace.environment @@ -39,4 +39,5 @@ #+strace.19444191f6ab164a01b3304017ed278635f340205b1d28fa6d3c7e2d5227167a #+mlog.92af644369ffdc31db302c3777e519b54913ec535e87df1a4a775b98bd4f96c5 #+findutils.8fb6b0f98e900ae929a7a697bf0283f8c78df0571b5c508fd68b74aeea3eb750 -#+nawk.8fa343bf9be41a9701620e63eced62e002ec008a1eeb1beb2ce7986e6d7351f9- \ No newline at end of file +#+nawk.8fa343bf9be41a9701620e63eced62e002ec008a1eeb1beb2ce7986e6d7351f9 +#+squashfs-tools.43cd51f3b2a977043b34d5946c04ba13d4c5c7e8bb402c368b5c88652b740d89+ \ No newline at end of file