mirror of
https://github.com/moparisthebest/pacman
synced 2024-11-11 11:55:12 -05:00
* Fixed the bug where -R pkgA pkgB failed when pkgA depended on pkgB
This commit is contained in:
parent
08dca1593f
commit
4488058900
@ -1,4 +1,9 @@
|
||||
== This is my custom TODO file ==
|
||||
|
||||
**** BUGS ****
|
||||
* Removal of conflicts on -A and -U (INCOMPLETE)
|
||||
|
||||
|
||||
* gensync: get all info from packages instead of PKGBUILDs
|
||||
for now, we only need to check the PKGBUILD in case of a
|
||||
'force' option
|
||||
|
@ -332,19 +332,30 @@ pmlist_t *_alpm_checkdeps(pmtrans_t *trans, pmdb_t *db, unsigned char op, pmlist
|
||||
|
||||
found=0;
|
||||
for(j = tp->requiredby; j; j = j->next) {
|
||||
/* Search for 'reqname' in packages for removal */
|
||||
char *reqname = j->data;
|
||||
if(!_alpm_list_is_strin(reqname, packages)) {
|
||||
pmlist_t *x = NULL;
|
||||
for(x = packages; x; x = x->next) {
|
||||
pmpkg_t *xp = x->data;
|
||||
if(strcmp(reqname, xp->name) == 0) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
/* check if a package in trans->packages provides this package */
|
||||
for(k=trans->packages; !found && k; k=k->next) {
|
||||
pmpkg_t *spkg = NULL;
|
||||
if(trans->type == PM_TRANS_TYPE_SYNC) {
|
||||
pmsyncpkg_t *sync = k->data;
|
||||
spkg = sync->pkg;
|
||||
} else {
|
||||
spkg = k->data;
|
||||
}
|
||||
if(spkg && _alpm_list_is_strin(tp->name, spkg->provides)) {
|
||||
found=1;
|
||||
if(trans->type == PM_TRANS_TYPE_SYNC) {
|
||||
pmsyncpkg_t *sync = k->data;
|
||||
spkg = sync->pkg;
|
||||
} else {
|
||||
spkg = k->data;
|
||||
}
|
||||
if(spkg) {
|
||||
if(_alpm_list_is_strin(tp->name, spkg->provides)) {
|
||||
found = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
|
@ -104,7 +104,7 @@ int pacman_remove(list_t *targets)
|
||||
case PM_ERR_UNSATISFIED_DEPS:
|
||||
for(lp = alpm_list_first(data); lp; lp = alpm_list_next(lp)) {
|
||||
pmdepmissing_t *miss = alpm_list_getdata(lp);
|
||||
MSG(NL, _(" %s is required by %s\n"), alpm_dep_get_target(miss),
|
||||
MSG(NL, _(":: %s is required by %s\n"), alpm_dep_get_target(miss),
|
||||
alpm_dep_get_name(miss));
|
||||
}
|
||||
alpm_list_free(data);
|
||||
|
Loading…
Reference in New Issue
Block a user