Commit 0f27ed17 authored by Natanael Copa's avatar Natanael Copa

abuild: fix for apk-tools-2.0.x

apk-tools-2.0's apk index will not show the arch so we need to use
tar to find arch if we have old apk. We prefer use apk index since
it will only read first block of file, regardless size, while tar
will read entire file. Reading entire file is slow if file is big.

So we check apk --version and use tar if needed, and apk index if
possible.
parent 88b5a2af
...@@ -777,6 +777,10 @@ apk_arch_prefix() { ...@@ -777,6 +777,10 @@ apk_arch_prefix() {
apk index -q "$1" | tar -zxO | awk -F: '$1 == "A" { print $2 }' apk index -q "$1" | tar -zxO | awk -F: '$1 == "A" { print $2 }'
} }
apk_arch_prefix_compat() {
tar -zxOf "$1" .PKGINFO | awk -F" = " '$1 == "arch" { print $2 }'
}
clean_abuildrepo() { clean_abuildrepo() {
local apk local apk
cd "$abuildrepo" || return 1 cd "$abuildrepo" || return 1
...@@ -795,13 +799,17 @@ clean_abuildrepo() { ...@@ -795,13 +799,17 @@ clean_abuildrepo() {
} }
mklinks_abuildrepo() { mklinks_abuildrepo() {
local apk local apk get_prefix=apk_arch_prefix
local version=$($APK --version | awk '{print $2}')
if [ "$($APK version --test $version 2.1)" = '<' ]; then
get_prefix=apk_arch_prefix_compat
fi
mkdir -p "$abuildrepo"/$CARCH "$abuildrepo"/noarch mkdir -p "$abuildrepo"/$CARCH "$abuildrepo"/noarch
cd "$abuildrepo" || return 1 cd "$abuildrepo" || return 1
# create links for this package # create links for this package
for apk in $(listpkg); do for apk in $(listpkg); do
[ -f "$PKGDEST"/$apk ] || continue [ -f "$PKGDEST"/$apk ] || continue
local prefix=$(apk_arch_prefix "$PKGDEST"/$apk) local prefix=$($get_prefix "$PKGDEST"/$apk)
mkdir -p "$abuildrepo"/$prefix mkdir -p "$abuildrepo"/$prefix
ln -sf "$PKGDEST"/$apk "$abuildrepo"/$prefix/$apk ln -sf "$PKGDEST"/$apk "$abuildrepo"/$prefix/$apk
done done
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment