1
0
mirror of https://github.com/moparisthebest/pacman synced 2024-08-13 17:03:46 -04:00

* Fixed the bug where -R pkgA pkgB failed when pkgA depended on pkgB

This commit is contained in:
Aaron Griffin 2006-12-01 09:51:54 +00:00
parent 08dca1593f
commit 4488058900
3 changed files with 26 additions and 10 deletions

View File

@ -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

View File

@ -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) {

View File

@ -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);