[pacman-dev] CVS update of pacman-lib/scripts (makepkg)

Aaron Griffin aaron at archlinux.org
Wed Feb 14 00:52:49 EST 2007


    Date: Wednesday, February 14, 2007 @ 00:52:49
  Author: aaron
    Path: /home/cvs-pacman/pacman-lib/scripts

Modified: makepkg (1.49 -> 1.50)

While trying to change the number of missing deps output by makepkg, I noticed
some needless complication in a few of these functions (checkdeps required
stderr output due to the way it was called/used) so that's all cleaned up now.
Also, makepkg no longer outputs a single dep when they are missing, it lists all
at once, including makedeps


---------+
 makepkg |   81 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 44 insertions(+), 37 deletions(-)


Index: pacman-lib/scripts/makepkg
diff -u pacman-lib/scripts/makepkg:1.49 pacman-lib/scripts/makepkg:1.50
--- pacman-lib/scripts/makepkg:1.49	Tue Feb 13 15:47:34 2007
+++ pacman-lib/scripts/makepkg	Wed Feb 14 00:52:49 2007
@@ -182,32 +182,15 @@
 
 	[ $# -gt 0 ] || return
 
-	missdep=$(pacman $PACMAN_OPTS -T $*)
+	pmout=$(pacman $PACMAN_OPTS -T $*)
 	ret=$?
-	if [ "$ret" != "0" ]; then
-		if [ "$ret" = "127" ]; then
-			msg "Missing Dependencies:"
-			msg ""
-			nl=0
-			for dep in $missdep; do
-				echo -ne "$dep " >&2
-				if [ "$nl" = "1" ]; then
-					nl=0
-					echo -ne "\n" >&2
-					# add this dep to the list
-					depname=$(echo $dep | sed 's|=.*$||' | sed 's|>.*$||' | sed 's|<.*$||')
-					deplist="$deplist $depname"
-					continue
-				fi
-				nl=1
-			done
-			msg ""
-		else
-			error "pacman returned a fatal error."
-			exit 1
-		fi
+	if [ $ret -eq 127 ]; then #unresolved deps
+		#strip out the pacman prefix from "requires: xyz"
+		echo $pmout | sed 's|requires:||g'
+	elif [ $ret -ne 0 ]; then
+		error "pacman returned a fatal error ($ret): $pmout"
+		exit 1
 	fi
-	echo $deplist
 }
 
 handledeps() {
@@ -302,6 +285,30 @@
 	return $missingdeps
 }
 
+resolvedeps() {
+	deplist=$(checkdeps $*)
+	if [ -n "${deplist}" ]; then
+		handledeps $deplist
+		if [ $? -eq 0 ]; then
+			# check deps again to make sure they were resolved
+			deplist=$(checkdeps ${depends[@]})
+			if [ -n "${deplist}" ]; then
+				error "Failed to install missing dependencies."
+			fi
+		fi
+	fi
+
+	if [ -n "${deplist}" ]; then
+		msg "Missing Dependencies:"
+		for dep in ${deplist}; do
+			msg2 "${dep}"
+		done
+		return 1
+	else
+		return 0
+	fi
+}
+
 # fix flyspray bug #5923
 removedeps() {
 	if [ "$RMDEPS" = "1" -a "$SUDO" = "1" -a \( ! -z "$deplist" -o ! -z "$makedeplist" \) ]; then
@@ -591,22 +598,22 @@
 	fi
 	# skip printing a warning message for the others: geninteg, nobuild, repkg
 elif [ $(type -p pacman) ]; then
+	deperr=0
+
 	msg "Checking Runtime Dependencies..."
-	deplist=$(checkdeps ${depends[@]})
-	handledeps $deplist
-	if [ $? -gt 0 ]; then
-		exit 1
-	fi
-	# check deps again to make sure they were resolved
-	deplist=$(checkdeps ${depends[@]})
-	if [ ! -z "$deplist" ]; then
-		error "Failed to install missing dependencies."
-		exit 1
+	resolvedeps ${depends[@]}
+	if [ $? -ne 0 ]; then
+		deperr=1
 	fi
+
 	msg "Checking Buildtime Dependencies..."
-	makedeplist=$(checkdeps ${makedepends[@]})
-	handledeps $makedeplist
-	if [ $? -gt 0 ]; then
+	resolvedeps ${makedepends[@]}
+	if [ $? -ne 0 ]; then
+		deperr=1
+	fi
+
+	if [ $deperr -eq 1 ]; then
+		error "could not resolve all dependencies."
 		exit 1
 	fi
 else




More information about the pacman-dev mailing list