abuild: implement getpkgver, default_fetch and default_unpack

to make life easier for volatile packages
This commit is contained in:
Natanael Copa 2009-11-24 10:53:58 +00:00
parent 78ca93d237
commit d87b10b9af

View File

@ -178,7 +178,7 @@ is_remote() {
return 1 return 1
} }
fetch() { default_fetch() {
local s local s
mkdir -p "$srcdir" mkdir -p "$srcdir"
for s in $source; do for s in $source; do
@ -191,8 +191,12 @@ fetch() {
done done
} }
fetch() {
default_fetch
}
# unpack the sources # unpack the sources
unpack() { default_unpack() {
local u local u
md5check || return 1 md5check || return 1
mkdir -p "$srcdir" mkdir -p "$srcdir"
@ -216,6 +220,10 @@ unpack() {
done done
} }
unpack() {
default_unpack
}
# cleanup source and package dir # cleanup source and package dir
clean() { clean() {
msg "Cleaning temporary build dirs..." msg "Cleaning temporary build dirs..."
@ -236,6 +244,7 @@ cleancache() {
cleanpkg() { cleanpkg() {
local i local i
getpkgver || return 1
msg "Cleaning built packages..." msg "Cleaning built packages..."
for i in $pkgname $subpackages; do for i in $pkgname $subpackages; do
local p="${i%:*}-$pkgver-r$pkgrel" local p="${i%:*}-$pkgver-r$pkgrel"
@ -248,6 +257,7 @@ cleanpkg() {
# clean all packages except current # clean all packages except current
cleanoldpkg() { cleanoldpkg() {
local i j local i j
getpkgver || return 1
msg "Cleaning all packages except $pkgver-r$pkgrel..." msg "Cleaning all packages except $pkgver-r$pkgrel..."
for i in $pkgname $subpackages; do for i in $pkgname $subpackages; do
for j in "$PKGDEST"/${i%:*}-[0-9]*.apk; do for j in "$PKGDEST"/${i%:*}-[0-9]*.apk; do
@ -282,6 +292,14 @@ runpart() {
} }
# override those in your build script # override those in your build script
getpkgver() {
# this func is supposed to be overridden by volatile packages
if [ "$pkgver" = "volatile" ]; then
error "Please provide a getpkgver() function in your APKBUILD"
return 1
fi
}
prepare() { prepare() {
: :
} }
@ -315,6 +333,7 @@ prepare_subpackages() {
} }
prepare_metafiles() { prepare_metafiles() {
getpkgver || return 1
local name=${subpkgname:-$pkgname} local name=${subpkgname:-$pkgname}
[ -z "${name##* *}" ] && die "package name contains spaces" [ -z "${name##* *}" ] && die "package name contains spaces"
local dir=${subpkgdir:-$pkgdir} local dir=${subpkgdir:-$pkgdir}
@ -411,8 +430,7 @@ prepare_tracedeps() {
prepare_package() { prepare_package() {
msg "Preparing ${subpkgname:+sub}package ${subpkgname:-$pkgname}..." msg "Preparing ${subpkgname:+sub}package ${subpkgname:-$pkgname}..."
stripbin stripbin
prepare_metafiles prepare_metafiles && prepare_tracedeps
prepare_tracedeps
} }
pkginfo_val() { pkginfo_val() {
@ -465,6 +483,7 @@ trace_apk_deps() {
create_apks() { create_apks() {
local file local file
getpkgver || return 1
for file in "$pkgbasedir"/.control.*/.PKGINFO; do for file in "$pkgbasedir"/.control.*/.PKGINFO; do
local dir="${file%/.PKGINFO}" local dir="${file%/.PKGINFO}"
local name=$(pkginfo_val pkgname $file) local name=$(pkginfo_val pkgname $file)
@ -635,6 +654,7 @@ rootpkg() {
} }
srcpkg() { srcpkg() {
getpkgver || return 1
local p="$pkgname-$pkgver-$pkgrel" local p="$pkgname-$pkgver-$pkgrel"
local prefix="${startdir##*/}" local prefix="${startdir##*/}"
local i files="$prefix/APKBUILD" local i files="$prefix/APKBUILD"
@ -648,6 +668,7 @@ srcpkg() {
# check if package is up to date # check if package is up to date
apk_up2date() { apk_up2date() {
getpkgver || return 1
local pkg="$PKGDEST/$pkgname-$pkgver-r$pkgrel.apk" local pkg="$PKGDEST/$pkgname-$pkgver-r$pkgrel.apk"
local i s local i s
cd "$startdir" cd "$startdir"
@ -672,6 +693,7 @@ apk_up2date() {
cache_up2date() { cache_up2date() {
local i apk local i apk
getpkgver || return 1
for i in $pkgname $subpackages; do for i in $pkgname $subpackages; do
apk="${i%:*}-$pkgver-r$pkgrel.apk" apk="${i%:*}-$pkgver-r$pkgrel.apk"
[ "$apkcache"/APKINDEX.tar.gz -nt "$apkcache"/$apk ] || return 1 [ "$apkcache"/APKINDEX.tar.gz -nt "$apkcache"/$apk ] || return 1
@ -842,6 +864,7 @@ stripbin() {
# simply list target apks # simply list target apks
listpkg() { listpkg() {
local i local i
getpkgver || return 1
for i in $pkgname $subpackages; do for i in $pkgname $subpackages; do
echo "${i%:*}-$pkgver-r$pkgrel.apk" echo "${i%:*}-$pkgver-r$pkgrel.apk"
done done
@ -909,6 +932,7 @@ install_has() {
# install package after build # install package after build
post_add() { post_add() {
getpkgver || return 1
local pkgf="$PKGDEST/$1-$pkgver-r$pkgrel.apk" local pkgf="$PKGDEST/$1-$pkgver-r$pkgrel.apk"
local deps i local deps i
if ! subpackages_has $1 && [ "$1" != "$pkgname" ]; then if ! subpackages_has $1 && [ "$1" != "$pkgname" ]; then