opkg

statically linked package installer
git clone anongit@rnpnr.xyz:opkg.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

Commit: fb9b77c5413fc2071c6604626c7a7c0e078a3ecd
Parent: 38996f9988866b4bfda237f7a058a9963bcde1d3
Author: Michael Forney
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.lua | 6+++++-
Mrules.ninja | 2+-
Mscripts/extract.sh | 9+--------
Mscripts/fetch-curl.sh | 2+-
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/arch/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/devel/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/arch/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