commit 136e5ea808059a690ca9ea84838f9d56d11b6c2e
parent 65a8ccc1aa0b03b5f34c9f786759e9f64769473d
Author: Jan Pobrislo <ccx@te2000.cz>
Date: Wed, 5 Nov 2025 22:25:48 +0000
squashfs
Diffstat:
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