[pacman-dev] [PATCH] remove.c: downgrade TRANS_DUP_TARGET to warning
Matches the behavior for sync packages. Signed-off-by: Andrew Gregory <andrew.gregory.8@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
On 06/05/14 12:34, Andrew Gregory wrote:
Matches the behavior for sync packages.
Signed-off-by: Andrew Gregory <andrew.gregory.8@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);
Ack. It would be good if this message could be clarified here and in other places. How about "skipping duplicate 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")
participants (2)
-
Allan McRae
-
Andrew Gregory