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.
This commit is contained in:
parent
88b5a2af36
commit
0f27ed17ab
12
abuild.in
12
abuild.in
|
@ -777,6 +777,10 @@ apk_arch_prefix() {
|
|||
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() {
|
||||
local apk
|
||||
cd "$abuildrepo" || return 1
|
||||
|
@ -795,13 +799,17 @@ clean_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
|
||||
cd "$abuildrepo" || return 1
|
||||
# create links for this package
|
||||
for apk in $(listpkg); do
|
||||
[ -f "$PKGDEST"/$apk ] || continue
|
||||
local prefix=$(apk_arch_prefix "$PKGDEST"/$apk)
|
||||
local prefix=$($get_prefix "$PKGDEST"/$apk)
|
||||
mkdir -p "$abuildrepo"/$prefix
|
||||
ln -sf "$PKGDEST"/$apk "$abuildrepo"/$prefix/$apk
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue