[pacman-dev] [PATCH] remove.c: downgrade TRANS_DUP_TARGET to warning

Andrew Gregory andrew.gregory.8 at gmail.com
Mon May 5 22:34:15 EDT 2014


Matches the behavior for sync packages.

Signed-off-by: Andrew Gregory <andrew.gregory.8 at gmail.com>
---

 src/pacman/remove.c            | 12 +++++++++---
 test/pacman/tests/remove001.py |  4 ++--
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/pacman/remove.c b/src/pacman/remove.c
index 933e6f7..38ad2a2 100644
--- a/src/pacman/remove.c
+++ b/src/pacman/remove.c
@@ -43,9 +43,15 @@ static int remove_target(const char *target)
 
 	if((pkg = alpm_db_get_pkg(db_local, target)) != NULL) {
 		if(alpm_remove_pkg(config->handle, pkg) == -1) {
-			pm_printf(ALPM_LOG_ERROR, "'%s': %s\n", target,
-					alpm_strerror(alpm_errno(config->handle)));
-			return -1;
+			alpm_errno_t err = alpm_errno(config->handle);
+			if(err == ALPM_ERR_TRANS_DUP_TARGET) {
+				/* just skip duplicate targets */
+				pm_printf(ALPM_LOG_WARNING, _("skipping target: %s\n"), target);
+				return 0;
+			} else {
+				pm_printf(ALPM_LOG_ERROR, "'%s': %s\n", target, alpm_strerror(err));
+				return -1;
+			}
 		}
 		config->explicit_removes = alpm_list_add(config->explicit_removes, pkg);
 		return 0;
diff --git a/test/pacman/tests/remove001.py b/test/pacman/tests/remove001.py
index 02d00a4..263418b 100644
--- a/test/pacman/tests/remove001.py
+++ b/test/pacman/tests/remove001.py
@@ -5,5 +5,5 @@
 
 self.args = "-R " + "foo "*5
 
-self.addrule("PACMAN_RETCODE=1")
-self.addrule("PKG_EXIST=foo")
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("!PKG_EXIST=foo")
-- 
1.9.2



More information about the pacman-dev mailing list