logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: ea3cbbd89c92c107b719e121e2675d22a75585f7
parent 95cf1ad5e0a86b62260f6a5eb24cc9cf33d92d0a
Author: Michael Forney <mforney@mforney.org>
Date:   Mon, 28 Apr 2025 14:27:49 -0700

Use our own pax for extracting archives

This reduces dependencies and variability in pax implementations.

Diffstat:

Mninja.lua6+++++-
Mrules.ninja2+-
Mscripts/extract.sh9+--------
Mscripts/fetch-curl.sh2+-
4 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/ninja.lua b/ninja.lua @@ -392,12 +392,16 @@ end function fetch(method) local script + local deps = {'|', '$dir/ver', script} if method == 'local' then script = '$dir/fetch.sh' else script = '$basedir/scripts/fetch-'..method..'.sh' + if method == 'curl' then + table.insert(deps, '$builddir/pkg/pax/host/pax') + end end - build('fetch', '$dir/fetch', {'|', '$dir/ver', script}, {script=script}) + build('fetch', '$dir/fetch', deps, {script=script}) if basedir ~= '.' then build('phony', '$gendir/fetch', '$dir/fetch') end diff --git a/rules.ninja b/rules.ninja @@ -125,7 +125,7 @@ rule fspec-tar command = $builddir/pkg/fspec-sync/host/fspec-tar <$in | zstd >$out rule fetch - command = cd $basedir && sh $$OLDPWD/$script $gendir && touch $$OLDPWD/$out + command = cd $basedir && PAX=$$OLDPWD/$builddir/pkg/pax/host/pax sh $$OLDPWD/$script $gendir && touch $$OLDPWD/$out description = FETCH $gendir restat = 1 generator = 1 diff --git a/scripts/extract.sh b/scripts/extract.sh @@ -8,11 +8,4 @@ case $file in *) exit 0 esac -if command -v bsdtar >/dev/null; then - exec bsdtar -xf "$file" "$@" -elif command -v pax >/dev/null; then - "$tool" -d -c "$file" | pax -r "$@" -else - printf '%s: bsdtar or pax is required' "$0" >&2 - exit 1 -fi +"$tool" -d -c "$file" | "$PAX" -r "$@" diff --git a/scripts/fetch-curl.sh b/scripts/fetch-curl.sh @@ -20,7 +20,7 @@ if ! sh "$OLDPWD/scripts/checksum.sh" -c sha256 2>/dev/null ; then fi while read -r _ archive ; do - sh "$OLDPWD/scripts/extract.sh" "$archive" -s ',^[^/]*,src,' '*/*' + sh "$OLDPWD/scripts/extract.sh" "$archive" -s ',^[^/]*,src,' done <sha256 if [ -d patch ] ; then