summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPang Yan Han <pangyanhan@gmail.com>2011-03-19 16:09:27 +0800
committerDan McGee <dan@archlinux.org>2011-03-20 11:17:41 -0500
commit58df372be6758cfe00069ac7279cd92e3b61edef (patch)
tree0b005726472f6a1d19c0a3d53d512d226b79bf70
parentf6716ae94a5f299569b35bebb4d0aae23cd9af97 (diff)
Fix handling of ignored packages
Noted in FS#23342. When the user attempts to install an ignored package and answers no when asked whether to install it, pacman bails out with: "error: target not found: packagename" This is because satisfiers are not found for the package and execution continues to process_group(), where the package is treated as a group (which does not exist). In addition, test ignore006.py is updated with PACMAN_RETCODE=0 since saying no to installing an ignored package should not be considered an error. Signed-off-by: Pang Yan Han <pangyanhan@gmail.com> Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--src/pacman/sync.c7
-rw-r--r--test/pacman/tests/ignore006.py2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index 26f6f824..29bcf540 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -663,6 +663,13 @@ static int process_targname(alpm_list_t *dblist, char *targname)
{
pmpkg_t *pkg = alpm_find_dbs_satisfier(dblist, targname);
+ /* #FS23342 - skip ignored packages when user says no */
+ if(pm_errno == PM_ERR_PKG_IGNORED) {
+ pm_printf(PM_LOG_WARNING, _("skipping target: %s\n"), targname);
+ pm_errno = 0;
+ return(0);
+ }
+
if(pkg) {
return(process_pkg(pkg));
}
diff --git a/test/pacman/tests/ignore006.py b/test/pacman/tests/ignore006.py
index d80ff81f..4c1c1cac 100644
--- a/test/pacman/tests/ignore006.py
+++ b/test/pacman/tests/ignore006.py
@@ -6,5 +6,5 @@ self.addpkg2db("sync", pkg)
self.option["IgnorePkg"] = ["package1"]
self.args = "--ask=1 -S %s" % pkg.name
-self.addrule("PACMAN_RETCODE=1")
+self.addrule("PACMAN_RETCODE=0")
self.addrule("!PKG_EXIST=package1")