summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-08-13 19:33:12 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-08-14 05:56:34 +0000
commitdf8e468f0e527ca9158d3c27fc80f91262834b7b (patch)
treed8e53b9331dad77829eddada4f9b64dc1af0d534
parent8e52bdff144d35745a54ddd045a8b88b289fad9f (diff)
downloadalpine-iso-df8e468f0e527ca9158d3c27fc80f91262834b7b.tar.bz2
alpine-iso-df8e468f0e527ca9158d3c27fc80f91262834b7b.tar.xz
abuild: implement triggers
and install scripts should not be in $source
-rwxr-xr-xabuild.in34
1 files changed, 27 insertions, 7 deletions
diff --git a/abuild.in b/abuild.in
index 2bb0ed3..c228d5f 100755
--- a/abuild.in
+++ b/abuild.in
@@ -102,8 +102,19 @@ sanitycheck() {
[ -z "$url" ] && die "Missing url in APKBUILD"
[ -z "$license" ] && die "Missing license in APKBULID"
+ for i in $install; do
+ [ -e "$startdir/$i" ] || die "install script $startdir/$i is missing"
+ done
+
+ [ -n "${triggers%%:*}" ] && [ ! -e "$startdir"/${triggers%%:*} ] \
+ && die "trigger script $startdir/${triggers%%:*} is missing"
+
if [ -n "$source" ]; then
for i in $source; do
+ if install_has "$i"; then
+ warning "You should not have \$install in source"
+ continue
+ fi
md5sums_has ${i##*/} || die "${i##*/} is missing in md5sums"
case "$i" in
https://*) makedepends_has wget || die "wget must be in makedepends when source has https://" ;;
@@ -113,7 +124,7 @@ sanitycheck() {
if [ -n "$md5sums" ]; then
for i in $(echo "$md5sums" | awk '{ print $2 }'); do
- source_has $i || die "$i is missing in source"
+ source_has $i || die "$i exists in md5sums but is missing in source"
done
fi
@@ -320,8 +331,8 @@ EOF
local i deps
deps="$depends"
if [ "$pkgname" != "busybox" ] && ! depends_has busbox; then
- for i in $install; do
- if head -n 1 "$srcdir/$i" | grep '^#!/bin/sh' >/dev/null ; then
+ for i in $install ${triggers%%:*}; do
+ if head -n 1 "$startdir/$i" | grep '^#!/bin/sh' >/dev/null ; then
msg "Script found. busybox added as a dependency for $pkg"
deps="$deps busybox"
break
@@ -347,19 +358,22 @@ EOF
for i in $backup; do
echo "backup = $i" >> "$pkginfo"
done
+ if [ -n "$triggers" ]; then
+ echo "triggers = ${triggers#*:}" >> "$pkginfo"
+ fi
local metafiles=".PKGINFO"
- for i in $install; do
+ for i in $install ${triggers%%:*}; do
script=${i#$name}
case "$script" in
- .pre-install|.post-install|.pre-upgrade|.post-upgrade|.pre-deinstall|.post-deinstall)
+ .pre-install|.post-install|.pre-upgrade|.post-upgrade|.pre-deinstall|.post-deinstall|.trigger)
msg "Adding $script"
;;
- *) error "$script: Invalid install script"
+ *) error "$script: Invalid install/trigger script"
return 1
;;
esac
- cp "$srcdir/$i" "$controldir/$script" || return 1
+ cp "$startdir/$i" "$controldir/$script" || return 1
chmod +x "$controldir/$script"
metafiles="$metafiles $script"
done
@@ -510,6 +524,7 @@ apkcache() {
default_doc() {
depends="$depends_doc"
install="$install_doc"
+ triggers="$triggers_doc"
local i
for i in doc man info html sgml licenses gtk-doc; do
if [ -d "$pkgdir/usr/share/$i" ]; then
@@ -556,6 +571,7 @@ mod() {
default_dev() {
depends="$pkgname $depends_dev"
install="$install_dev"
+ triggers="$triggers_dev"
cd "$pkgdir" || return 0
for i in usr/include usr/lib/pkgconfig usr/share/aclocal\
usr/share/gettext usr/bin/*-config \
@@ -855,6 +871,10 @@ md5sums_has() {
list_has "$1" $md5sums
}
+install_has() {
+ list_has "$1" $install
+}
+
# install package after build
post_add() {
local pkgf="$PKGDEST/$1-$pkgver-r$pkgrel.apk"