diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2008-11-06 14:23:04 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2008-11-06 14:23:04 +0000 |
commit | 5a9827a1b54eda38a04aed33281d383c455f4eaf (patch) | |
tree | 89b36a9e8938dcf2447e61dd3033b544b075bc02 /abuild | |
parent | 45ff2bfefe41c36d548fc4da5523f9b13f613560 (diff) | |
download | abuild-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-x | abuild | 54 |
1 files changed, 40 insertions, 14 deletions
@@ -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 } |