implement basic sanity check of APKBUILD

This commit is contained in:
Natanael Copa 2008-11-06 14:23:04 +00:00
parent 45ff2bfefe
commit 5a9827a1b5

32
abuild
View File

@ -23,7 +23,7 @@ pkgrel=0
SRCDEST=${SRCDEST:-$startdir} SRCDEST=${SRCDEST:-$startdir}
PKGDEST=${PKGDEST:-$startdir} PKGDEST=${PKGDEST:-$startdir}
default_cmds="checkdeps clean fetch checkmd5 unpack rootpkg" default_cmds="makedepcheck clean fetch md5check unpack rootpkg"
all_cmds="checksum fetch unpack rootpkg build package cleancache clean srcpkg" all_cmds="checksum fetch unpack rootpkg build package cleancache clean srcpkg"
# functions # functions
@ -43,8 +43,27 @@ die() {
exit 1 exit 1
} }
# check if apkbuild is basicly sane
sanitycheck() {
[ -z "$pkgname" ] && die "Missing pkgname in APKBUILD"
[ -z "${pkgname##* *}" ] && die "pkgname contains spaces"
[ -z "$pkgver" ] && die "Missing pkgver in APKBUILD"
[ "${pkgver##[0-9]}" != "$pkgver" ] && \
die "pkgver does not start with a digit"
[ -z "$pkgrel" ] && warning "Missing pkgrel in APKBUILD. Using pkgrel=0"
[ -z "$pkgdesc" ] && die "Missing pkgdesc in APKBUILD"
[ -z "$url" ] && die "Missing url in APKBUILD"
[ -z "$license" ] && die "Missing license in APKBULID"
# common spelling errors
[ -n "$depend" ] && die "APKBUILD contains 'depend'. It should be depends"
[ -n "$makedepend" ] && die "APKBUILD contains 'makedepend'. It should be makedepends"
return 0
}
# check if we have needed packages to build this thing # check if we have needed packages to build this thing
checkdeps() { makedepcheck() {
local i local i
local missing= local missing=
for i in $makedepends; do for i in $makedepends; do
@ -55,13 +74,17 @@ checkdeps() {
return 1 return 1
} }
checkmd5() { md5check() {
if [ -z "$source" ]; then if [ -z "$source" ]; then
return 0 return 0
fi fi
if [ -z "$md5sums" ]; then if [ -z "$md5sums" ]; then
die "Use 'abuild checksum >>$APKBUILD' to generate a checksum" die "Use 'abuild checksum >>$APKBUILD' to generate a checksum"
fi fi
if [ "$(echo $source | wc -l)" -ne "$(echo $md5sums | wc -l)" ]; then
die "Number of md5sums does not correspond to number of sources"
fi
cd "$srcdir" && echo "$md5sums" | md5sum -c cd "$srcdir" && echo "$md5sums" | md5sum -c
} }
@ -161,6 +184,7 @@ subpkg() {
} }
package_apk() { package_apk() {
[ -z "${pkgname##* *}" ] && die "pkgname contains spaces"
local dir=${subpkgdir:-$pkgdir} local dir=${subpkgdir:-$pkgdir}
local p="$pkgname-$pkgver" local p="$pkgname-$pkgver"
[ "$pkgrel" -ne 0 ] && p="$p-r$pkgrel" [ "$pkgrel" -ne 0 ] && p="$p-r$pkgrel"
@ -327,6 +351,8 @@ usage() {
echo "Commands:" echo "Commands:"
echo " checksum Generate checksum to be included in $APKBUILD" echo " checksum Generate checksum to be included in $APKBUILD"
echo " fetch Fetch sources to \$SRCDEST and verify checksums" echo " fetch Fetch sources to \$SRCDEST and verify checksums"
echo " sanitycheck Basic sanity check of APKBUILD"
echo " md5check Check md5sums"
echo " unpack Unpack sources to \$srcdir" echo " unpack Unpack sources to \$srcdir"
echo " build Compile and install package into \$pkgdir" echo " build Compile and install package into \$pkgdir"
echo " package Create package in \$PKGDEST" echo " package Create package in \$PKGDEST"