[pacman-dev] [PATCH] makepkg: avoid using comm for diff'ing package lists
Dave Reisner
d at falconindy.com
Tue Nov 22 00:02:48 EST 2011
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 at archlinux.org>
---
scripts/makepkg.sh.in | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 26a2789..0fa05dc 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
--
1.7.7.4
More information about the pacman-dev
mailing list