[pacman-dev] [PATCH] [makepkg] fix -r and --needed conflict
William Giokas
1007380 at gmail.com
Sat Feb 9 02:54:42 EST 2013
In makepkg, passing -sr --needed causes there to be a conflict when
pacman goes to remove the dependencies, as the --needed flag is not an
option for pacman -R. This patch sanitizes the PACMAN_OPTS in the
remove_deps() function so that it can still run even with the --needed
option passed to makepkg. (Useful when doing `makepkg -sir --needed` to
get rid of unneeded {make,check}depends automatically). At the end of
the remove_deps() function, PACMAN_OPTS is restored to its original
value.
Signed-off-by: William Giokas <1007380 at gmail.com>
---
Noticed this today when building a series of git packges on my system.
Sorry for not catching this earlier.
scripts/makepkg.sh.in | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index c464ec7..fc1976a 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -984,10 +984,23 @@ remove_deps() {
msg "Removing installed dependencies..."
# exit cleanly on failure to remove deps as package has been built successfully
+
+ opts_backup="${PACMAN_OPTS[@]}"
+ for i in ${PACMAN_OPTS[@]}; do
+ if [[ $i == "--needed" ]]; then
+ opts2=("${rm_opts[@]}")
+ else
+ opts2=("${rm_opts[@]}" "$i")
+ fi
+ done
+ PACMAN_OPTS="${rm_opts[@]}"
+
if ! run_pacman -Rn ${deplist[@]}; then
warning "$(gettext "Failed to remove installed dependencies.")"
return 0
fi
+
+ PACMAN_OPTS="${opts_backup[@]}"
}
get_integlist() {
--
1.8.1.3.535.ga923c31
More information about the pacman-dev
mailing list