abuild: support for overriding apk binary

so we can do: APK=apk.static abuild ....
This commit is contained in:
Natanael Copa 2010-05-04 08:32:22 +00:00
parent f4e9b5d3a9
commit f795040b6b
1 changed files with 15 additions and 14 deletions

View File

@ -20,6 +20,7 @@ abuild_path=$(readlink -f $0)
BUILD_BASE="build-base" BUILD_BASE="build-base"
SUDO=${SUDO:-"sudo"} SUDO=${SUDO:-"sudo"}
FAKEROOT=${FAKEROOT:-"fakeroot"} FAKEROOT=${FAKEROOT:-"fakeroot"}
APK=${APK:-apk}
# read config # read config
ABUILD_CONF=${ABUILD_CONF:-"$sysconfdir/abuild.conf"} ABUILD_CONF=${ABUILD_CONF:-"$sysconfdir/abuild.conf"}
@ -69,7 +70,7 @@ set_xterm_title() {
cleanup() { cleanup() {
set_xterm_title "" set_xterm_title ""
if [ -z "$install_after" ] && [ -n "$uninstall_after" ]; then if [ -z "$install_after" ] && [ -n "$uninstall_after" ]; then
$SUDO apk del $uninstall_after $SUDO $APK del $uninstall_after
fi fi
} }
@ -87,7 +88,7 @@ sanitycheck() {
[ -z "${pkgname##* *}" ] && die "pkgname contains spaces" [ -z "${pkgname##* *}" ] && die "pkgname contains spaces"
[ -z "$pkgver" ] && die "Missing pkgver in APKBUILD" [ -z "$pkgver" ] && die "Missing pkgver in APKBUILD"
if [ "$pkgver" != "volatile" ] && [ -z "$nodeps" ]; then if [ "$pkgver" != "volatile" ] && [ -z "$nodeps" ]; then
apk version --check -q "$pkgver" ||\ $APK version --check -q "$pkgver" ||\
die "$pkgver is not a valid version" die "$pkgver is not a valid version"
fi fi
[ -z "$pkgrel" ] && warning "Missing pkgrel in APKBUILD. Using pkgrel=0" [ -z "$pkgrel" ] && warning "Missing pkgrel in APKBUILD. Using pkgrel=0"
@ -476,7 +477,7 @@ trace_apk_deps() {
done done
# check apk db if not provided by a subpackage # check apk db if not provided by a subpackage
if [ -z "$found" ]; then if [ -z "$found" ]; then
found=$(apk info -q -W /lib/$i /usr/lib/$i) found=$($APK info -q -W /lib/$i /usr/lib/$i)
fi fi
if [ -z "$found" ]; then if [ -z "$found" ]; then
error "Could not find dependency for $i" error "Could not find dependency for $i"
@ -562,7 +563,7 @@ apkcache() {
if [ -f APKINDEX.tar.gz ]; then if [ -f APKINDEX.tar.gz ]; then
oldindex="--index APKINDEX.tar.gz" oldindex="--index APKINDEX.tar.gz"
fi fi
apk index $oldindex --output APKINDEX.tar.gz.unsigned \ $APK index $oldindex --output APKINDEX.tar.gz.unsigned \
--description "$repo $(cd $startdir && git describe)" \ --description "$repo $(cd $startdir && git describe)" \
*.apk || exit 1 *.apk || exit 1
msg "Signing the index..." msg "Signing the index..."
@ -768,7 +769,7 @@ deptrace() {
( depparse_aports ( depparse_aports
if [ -z "$upgrade" ]; then if [ -z "$upgrade" ]; then
# list installed pkgs and prefix with 'i ' # list installed pkgs and prefix with 'i '
apk info -q | sort | sed 's/^/i /' $APK info -q | sort | sed 's/^/i /'
fi fi
) | awk -v pkgs="$deps" ' ) | awk -v pkgs="$deps" '
@ -807,7 +808,7 @@ builddeps() {
subpackages_has ${i%[<>=]*} || deps="$deps $i" subpackages_has ${i%[<>=]*} || deps="$deps $i"
done done
installed_deps=$(apk info -e $deps) installed_deps=$($APK info -e $deps)
# find which deps are missing # find which deps are missing
for i in $deps; do for i in $deps; do
if [ "${i#\!}" != "$i" ]; then if [ "${i#\!}" != "$i" ]; then
@ -828,10 +829,10 @@ builddeps() {
if [ -n "$install_deps" ] && [ -z "$recursive" ]; then if [ -n "$install_deps" ] && [ -z "$recursive" ]; then
# make a --simluate run first to detect missing deps # make a --simluate run first to detect missing deps
# apk-tools --virtual is no goot at reporting those. # apk-tools --virtual is no goot at reporting those.
$SUDO apk add --repository "$apkcache" \ $SUDO $APK add --repository "$apkcache" \
--wait 30 \ --wait 30 \
--simulate --quiet $deps || return 1 --simulate --quiet $deps || return 1
$SUDO apk add --repository "$apkcache" \ $SUDO $APK add --repository "$apkcache" \
--wait 30 \ --wait 30 \
--virtual .makedepends-$pkgname $deps \ --virtual .makedepends-$pkgname $deps \
&& return 0 && return 0
@ -841,7 +842,7 @@ builddeps() {
# find dependencies that are installed but missing in repo. # find dependencies that are installed but missing in repo.
for i in $deps; do for i in $deps; do
local m=$(apk search --repository "$apkcache" ${i%[<>=]*}) local m=$($APK search --repository "$apkcache" ${i%[<>=]*})
if [ -z "$m" ]; then if [ -z "$m" ]; then
missing="$missing $i" missing="$missing $i"
fi fi
@ -856,7 +857,7 @@ builddeps() {
cd "$dir" && $0 -k -r apkcache || return 1 cd "$dir" && $0 -k -r apkcache || return 1
fi fi
done done
$SUDO apk add -u --repository "$apkcache" \ $SUDO $APK add -u --repository "$apkcache" \
--wait 30 \ --wait 30 \
--virtual .makedepends-$pkgname $deps --virtual .makedepends-$pkgname $deps
} }
@ -963,24 +964,24 @@ post_add() {
die "$1 is not built by this APKBUILD" die "$1 is not built by this APKBUILD"
fi fi
# recursively install dependencies that are provided by this APKBUILD # recursively install dependencies that are provided by this APKBUILD
deps=$(apk index "$pkgf" 2>/dev/null | awk -F: '$1=="D" { print $2 }') deps=$($APK index "$pkgf" 2>/dev/null | awk -F: '$1=="D" { print $2 }')
for i in $deps; do for i in $deps; do
if subpackages_has $i || [ "$i" = "$pkgname" ]; then if subpackages_has $i || [ "$i" = "$pkgname" ]; then
post_add $i || return 1 post_add $i || return 1
fi fi
done done
$SUDO apk add --wait 30 -u "$pkgf" || die "Failed to install $1" $SUDO $APK add --wait 30 -u "$pkgf" || die "Failed to install $1"
} }
installdeps() { installdeps() {
local deps i local deps i
sudo apk add --wait 30 --repository "$apkcache" \ sudo $APK add --wait 30 --repository "$apkcache" \
--virtual .makedepends-$pkgname \ --virtual .makedepends-$pkgname \
$makedepends $makedepends
} }
uninstalldeps (){ uninstalldeps (){
sudo apk del .makedepends-$pkgname sudo $APK del .makedepends-$pkgname
} }
all() { all() {