[pacman-dev] [PATCH 08/10] makepkg: do not ignore optdepends array with empty members

Andres P aepd87 at gmail.com
Fri Jun 25 19:16:43 EDT 2010

If optdepends was defined with empty members; optdepends=('' '' ''), the
behaviour would've been exit later rather than now, defeating the whole point
of the aptly named check_sanity.

Fixing this required changing the regex from <atom>* to <atom>+.

Also, move the regex into a var so that it doesn't need to be escaped and use
the standard i index to avoid having a destinct local assignment for every for
loop, which are numerous in this function.

Signed-off-by: Andres P <aepd87 at gmail.com>
 scripts/makepkg.sh.in |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 0958797..50cdae7 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1213,15 +1213,14 @@ check_sanity() {
-	local optdepend
-	for optdepend in "${optdepends[@]}"; do
-		local pkg=${optdepend%%:*}
-		if [[ ! $pkg =~ ^[[:alnum:]\>\<\=\.\+\_\-]*$ ]]; then
-			error "$(gettext "Invalid syntax for optdepend : '%s'")" "$optdepend"
+	local regex='^[[:alnum:]><=.+_-]+$'
+	for i in "${optdepends[@]}"; do
+		i=${i%%:*}
+		if [[ ! $i =~ $regex ]]; then
+			error "$(gettext "Invalid syntax for optdepend: '%s'")" "$i"
-	local i
 	for i in 'changelog' 'install'; do
 		local filelist=$(sed -n "s/^[[:space:]]*$i=//p" "$BUILDFILE") 
 		local file

More information about the pacman-dev mailing list