From f1faef7868a0f31f516889f56b69bf59cddc14d1 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Sun, 13 Aug 2017 17:28:30 +0000 Subject: abuild: ensure a package has deps before printing them After the first dep is printed, `shift` is called to avoid the special case where the first dep cannot have a comma prepended. However, if there are no deps for a package (seen early on in the aports main repo in acf-jquery), $# is 0. POSIX specifies that `shift` has two options when the shift operand (1) is greater than $#: - if non-interactive, it can exit the shell - if it does not exit the shell, it must return a non-zero exit code Since we run the shell with -e, the second case folds in to the first. BusyBox ash does not implement this behaviour, but bash does when called as /bin/sh or when the `posix` shopt is set. --- abuild.in | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/abuild.in b/abuild.in index 2ec401a..7f31dbe 100644 --- a/abuild.in +++ b/abuild.in @@ -1838,6 +1838,10 @@ parse_aports_makedepends() { for j in $pkgname $subpackages; do echo "o ${j%%:*} $dir" set -- $deps + if [ $# -eq 0 ]; then + echo "d ${j%%:*}" + continue + fi echo -n "d ${j%%:*} $1" shift while [ $# -gt 0 ]; do -- cgit v1.2.3-60-g2f50