* Fixed the bug where -R pkgA pkgB failed when pkgA depended on pkgB
This commit is contained in:
parent
08dca1593f
commit
4488058900
3 changed files with 26 additions and 10 deletions
|
@ -1,4 +1,9 @@
|
||||||
== This is my custom TODO file ==
|
== This is my custom TODO file ==
|
||||||
|
|
||||||
|
**** BUGS ****
|
||||||
|
* Removal of conflicts on -A and -U (INCOMPLETE)
|
||||||
|
|
||||||
|
|
||||||
* gensync: get all info from packages instead of PKGBUILDs
|
* gensync: get all info from packages instead of PKGBUILDs
|
||||||
for now, we only need to check the PKGBUILD in case of a
|
for now, we only need to check the PKGBUILD in case of a
|
||||||
'force' option
|
'force' option
|
||||||
|
|
|
@ -332,19 +332,30 @@ pmlist_t *_alpm_checkdeps(pmtrans_t *trans, pmdb_t *db, unsigned char op, pmlist
|
||||||
|
|
||||||
found=0;
|
found=0;
|
||||||
for(j = tp->requiredby; j; j = j->next) {
|
for(j = tp->requiredby; j; j = j->next) {
|
||||||
|
/* Search for 'reqname' in packages for removal */
|
||||||
char *reqname = j->data;
|
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 */
|
/* check if a package in trans->packages provides this package */
|
||||||
for(k=trans->packages; !found && k; k=k->next) {
|
for(k=trans->packages; !found && k; k=k->next) {
|
||||||
pmpkg_t *spkg = NULL;
|
pmpkg_t *spkg = NULL;
|
||||||
if(trans->type == PM_TRANS_TYPE_SYNC) {
|
if(trans->type == PM_TRANS_TYPE_SYNC) {
|
||||||
pmsyncpkg_t *sync = k->data;
|
pmsyncpkg_t *sync = k->data;
|
||||||
spkg = sync->pkg;
|
spkg = sync->pkg;
|
||||||
} else {
|
} else {
|
||||||
spkg = k->data;
|
spkg = k->data;
|
||||||
}
|
}
|
||||||
if(spkg && _alpm_list_is_strin(tp->name, spkg->provides)) {
|
if(spkg) {
|
||||||
found=1;
|
if(_alpm_list_is_strin(tp->name, spkg->provides)) {
|
||||||
|
found = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!found) {
|
if(!found) {
|
||||||
|
|
|
@ -104,7 +104,7 @@ int pacman_remove(list_t *targets)
|
||||||
case PM_ERR_UNSATISFIED_DEPS:
|
case PM_ERR_UNSATISFIED_DEPS:
|
||||||
for(lp = alpm_list_first(data); lp; lp = alpm_list_next(lp)) {
|
for(lp = alpm_list_first(data); lp; lp = alpm_list_next(lp)) {
|
||||||
pmdepmissing_t *miss = alpm_list_getdata(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_dep_get_name(miss));
|
||||||
}
|
}
|
||||||
alpm_list_free(data);
|
alpm_list_free(data);
|
||||||
|
|
Loading…
Add table
Reference in a new issue