From 34081a17198f96d131a64ea0ee454a2e13967df7 Mon Sep 17 00:00:00 2001 From: Timo Teräs Date: Tue, 26 Jul 2016 10:02:24 +0000 Subject: abuild: treat subpackages items as colon separated lists This is in preparation to support subpackages="pkg:split:arch" syntax, and just makes the current code ignore anything after the second colon if it exists. This allows to use the new syntax in aports git without running experimental abuild on the official builders. --- abuild.in | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/abuild.in b/abuild.in index d3e4b02..ee36517 100644 --- a/abuild.in +++ b/abuild.in @@ -128,7 +128,7 @@ default_sanitycheck() { # check so no package names starts with - for i in $pkgname $subpackages; do case $i in - -*) die "${i%:*} is not a valid package name";; + -*) die "${i%%:*} is not a valid package name";; esac done @@ -444,7 +444,7 @@ cleancache() { listpkgnames() { local i for i in $pkgname $subpackages; do - echo ${i%:*} + echo ${i%%:*} done for i in $linguas; do echo $pkgname-lang-$i @@ -456,7 +456,7 @@ cleanpkg() { getpkgver || return 1 msg "Cleaning built packages..." for i in $(listpkgnames); do - local p="${i%:*}-$pkgver-r$pkgrel" + local p="${i%%:*}-$pkgver-r$pkgrel" rm -f "$PKGDEST/$p.apk" "$PKGDEST/$p.src.tar.gz" \ "$abuildrepo"/$p.apk "$abuildrepo"/*/$p.apk done @@ -470,7 +470,7 @@ cleanoldpkg() { getpkgver || return 1 msg "Cleaning all packages except $pkgver-r$pkgrel..." for i in $(listpkgnames); do - local pn=${i%:*} + local pn=${i%%:*} for j in "$PKGDEST"/$pn-[0-9]*.apk ; do [ "$j" = "$PKGDEST/$pn-$pkgver-r$pkgrel.apk" ] \ && continue @@ -576,12 +576,15 @@ targz() { } get_split_func() { - # get the 'func' from "sub-pkg:func" - local func=${1##*:} - - # get 'func' from "sub-pkg-func" if there was no :func - [ "$func" = "$1" ] && func=${func##*-} - echo $func + # get the 'func' from "sub-pkg:func:arch" + local _splitarch=${1#*:} + [ "$_splitarch" = "$1" ] && _splitarch="" + local _split=${_splitarch%:*} + if [ -z "$_split" ]; then + local _name=${1%%:*} + _split="${_name##*-}" + fi + echo $_split } postcheck() { @@ -685,7 +688,7 @@ prepare_subpackages() { local func=$(get_split_func $i) # call abuild recursively, setting subpkg{dir,name} msg "Running split function $func..." - local dir="$pkgbasedir/${i%:*}" name="${i%:*}" + local dir="$pkgbasedir/${i%%:*}" name="${i%%:*}" ( subpkgdir="$dir" subpkgname="$name" \ $0 pre_split $func prepare_package \ && postcheck "$dir" "$name" ) || return 1 @@ -1652,7 +1655,7 @@ apk_up2date() { local i s cd "$startdir" for i in $pkgname $subpackages; do - [ -f "$PKGDEST/${i%:*}-$pkgver-r$pkgrel.apk" ] || return 1 + [ -f "$PKGDEST/${i%%:*}-$pkgver-r$pkgrel.apk" ] || return 1 done [ -n "$keep" ] && return 0 @@ -1674,7 +1677,7 @@ abuildindex_up2date() { local i getpkgver || return 1 local dir="$abuildrepo"/$CARCH - local apk="${pkgname%:*}-$pkgver-r$pkgrel.apk" + local apk="${pkgname%%:*}-$pkgver-r$pkgrel.apk" local idx="$dir"/APKINDEX.tar.gz local file="$dir"/$apk @@ -1959,7 +1962,7 @@ source_has() { subpackages_has() { local i for i in $subpackages; do - [ "$1" = "${i%:*}" ] && return 0 + [ "$1" = "${i%%:*}" ] && return 0 done return 1 } @@ -1967,7 +1970,8 @@ subpackages_has() { subpackage_types_has() { local i for i in $subpackages; do - [ "$1" = "${i##*-}" ] && return 0 + local _name="${i%%:*}" + [ "$1" = "${_name##*-}" ] && return 0 done return 1 } -- cgit v1.2.3-70-g09d2