summaryrefslogtreecommitdiff
path: root/abuild
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2008-11-06 14:23:04 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2008-11-06 14:23:04 +0000
commit5a9827a1b54eda38a04aed33281d383c455f4eaf (patch)
tree89b36a9e8938dcf2447e61dd3033b544b075bc02 /abuild
parent45ff2bfefe41c36d548fc4da5523f9b13f613560 (diff)
downloadabuild-5a9827a1b54eda38a04aed33281d383c455f4eaf.tar.gz
abuild-5a9827a1b54eda38a04aed33281d383c455f4eaf.tar.bz2
abuild-5a9827a1b54eda38a04aed33281d383c455f4eaf.tar.xz
abuild-5a9827a1b54eda38a04aed33281d383c455f4eaf.zip
implement basic sanity check of APKBUILD
Diffstat (limited to 'abuild')
-rwxr-xr-xabuild54
1 files changed, 40 insertions, 14 deletions
diff --git a/abuild b/abuild
index ec880b0..87832df 100755
--- a/abuild
+++ b/abuild
@@ -23,7 +23,7 @@ pkgrel=0
SRCDEST=${SRCDEST:-$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"
# functions
@@ -43,8 +43,27 @@ die() {
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
-checkdeps() {
+makedepcheck() {
local i
local missing=
for i in $makedepends; do
@@ -55,13 +74,17 @@ checkdeps() {
return 1
}
-checkmd5() {
+md5check() {
if [ -z "$source" ]; then
return 0
fi
if [ -z "$md5sums" ]; then
die "Use 'abuild checksum >>$APKBUILD' to generate a checksum"
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
}
@@ -161,6 +184,7 @@ subpkg() {
}
package_apk() {
+ [ -z "${pkgname##* *}" ] && die "pkgname contains spaces"
local dir=${subpkgdir:-$pkgdir}
local p="$pkgname-$pkgver"
[ "$pkgrel" -ne 0 ] && p="$p-r$pkgrel"
@@ -325,17 +349,19 @@ usage() {
echo " -q Quiet"
echo ""
echo "Commands:"
- echo " checksum Generate checksum to be included in $APKBUILD"
- echo " fetch Fetch sources to \$SRCDEST and verify checksums"
- echo " unpack Unpack sources to \$srcdir"
- echo " build Compile and install package into \$pkgdir"
- echo " package Create package in \$PKGDEST"
- echo " rootpkg Run '$0 build package' as fakeroot"
- echo " clean Remove temp build and install dirs"
- echo " cleanpkg Remove already built binary and source package"
- echo " cleancache Remove downloaded files from \$SRCDEST"
- echo " srcpkg Make a source package"
- echo " up2date Compare target and sources dates"
+ echo " checksum Generate checksum to be included in $APKBUILD"
+ 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 " build Compile and install package into \$pkgdir"
+ echo " package Create package in \$PKGDEST"
+ echo " rootpkg Run '$0 build package' as fakeroot"
+ echo " clean Remove temp build and install dirs"
+ echo " cleanpkg Remove already built binary and source package"
+ echo " cleancache Remove downloaded files from \$SRCDEST"
+ echo " srcpkg Make a source package"
+ echo " up2date Compare target and sources dates"
echo ""
exit 0
}