From a521cea96f24ba9d060e019c74ccbe63a1e06392 Mon Sep 17 00:00:00 2001
From: Dave Reisner <dreisner@archlinux.org>
Date: Mon, 21 Nov 2011 23:03:33 -0500
Subject: makepkg: avoid using comm for diff'ing package lists

Whereas comm will check inputs to see if they're sorted (and warn when
they aren't), grep doesn't even care about ordering. In this particular
instance -- neither do we. We're only interested that the two lists are
equivalent.

Fixes FS#26580.

Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
---
 scripts/makepkg.sh.in | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

(limited to 'scripts')

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index f39e9d1e..7cf4844d 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -506,15 +506,17 @@ remove_deps() {
 
 	# check for packages removed during dependency install (e.g. due to conflicts)
 	# removing all installed packages is risky in this case
-	if [[ -n  $(comm -23 <(printf "%s\n" "${original_pkglist[@]}") \
-			<(printf "%s\n" "${current_pkglist[@]}")) ]]; then
-	  warning "$(gettext "Failed to remove installed dependencies.")"
-	  return 0
+	if [[ -n $(grep -xvFf <(printf '%s\n' "${current_packagelist[@]}") \
+			<(printf '%s\n' "${original_packagelist[@]}") ) ]]; then
+		warning "$(gettext "Failed to remove installed dependencies.")"
+		return 0
 	fi
 
-	local deplist=($(comm -13  <(printf "%s\n" "${original_pkglist[@]}") \
-			<(printf "%s\n" "${current_pkglist[@]}")))
-	(( ${#deplist[@]} == 0 )) && return
+	local deplist
+	if ! deplist=($(grep -xvFf <(printf "%s\n" "${original_pkglist[@]}") \
+			<(printf "%s\n" "${current_pkglist[@]}"))); then
+		return
+	fi
 
 	msg "Removing installed dependencies..."
 	# exit cleanly on failure to remove deps as package has been built successfully
-- 
cgit v1.2.3-70-g09d2