libalpm/remove.c : avoid duplicated packages in removal list.
Suppose a package foo depends on foo1, foo2, ..., foon. Doing pacman -Rc foo1 foo2 ... foon added foo n times to the removal list, because what checkdeps return is something like : foo1 is requiredby foo foo2 is requiredby foo ... foon is requiredby foo Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
788fcee0dc
commit
aef1c88f3b
1 changed files with 5 additions and 3 deletions
|
@ -113,9 +113,11 @@ int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data)
|
||||||
pmdepmissing_t *miss = (pmdepmissing_t *)i->data;
|
pmdepmissing_t *miss = (pmdepmissing_t *)i->data;
|
||||||
pmpkg_t *info = _alpm_db_scan(db, miss->target);
|
pmpkg_t *info = _alpm_db_scan(db, miss->target);
|
||||||
if(info) {
|
if(info) {
|
||||||
|
if(!_alpm_pkg_find(alpm_pkg_get_name(info), trans->packages)) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "pulling %s in the targets list\n",
|
_alpm_log(PM_LOG_DEBUG, "pulling %s in the targets list\n",
|
||||||
alpm_pkg_get_name(info));
|
alpm_pkg_get_name(info));
|
||||||
trans->packages = alpm_list_add(trans->packages, info);
|
trans->packages = alpm_list_add(trans->packages, info);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not find %s in database -- skipping\n"),
|
_alpm_log(PM_LOG_ERROR, _("could not find %s in database -- skipping\n"),
|
||||||
miss->depend.name);
|
miss->depend.name);
|
||||||
|
|
Loading…
Add table
Reference in a new issue