pacman_deptest() rework
This commit is contained in:
parent
0a072b57c5
commit
2da0b2263e
1 changed files with 18 additions and 13 deletions
|
@ -233,25 +233,25 @@ int pacman_deptest(list_t *targets)
|
||||||
PM_PKG *dummy;
|
PM_PKG *dummy;
|
||||||
|
|
||||||
if(pmo_d_vertest) {
|
if(pmo_d_vertest) {
|
||||||
/* ORE
|
|
||||||
if(targets && targets->data && targets->next && targets->next->data) {
|
if(targets && targets->data && targets->next && targets->next->data) {
|
||||||
int ret = rpmvercmp(targets->data, targets->next->data);
|
int ret = alpm_pkg_vercmp(targets->data, targets->next->data);
|
||||||
printf("%d\n", ret);
|
printf("%d\n", ret);
|
||||||
return(ret);
|
return(ret);
|
||||||
}*/
|
}
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we create a transaction to hold a dummy package to be able to use
|
/* we create a transaction to hold a dummy package to be able to use
|
||||||
* pm_trans_prepare() */
|
* deps checkings from alpm_trans_prepare() */
|
||||||
/* ORE
|
if(alpm_trans_init(PM_TRANS_TYPE_ADD, 0, NULL) == -1) {
|
||||||
trans = alpm_trans_new(PM_TRANS_ADD, 0);
|
ERR(NL, "error: %s\n", alpm_strerror(pm_errno));
|
||||||
if(trans == NULL) {
|
return(1);
|
||||||
FREEPKG(dummy);
|
|
||||||
ERR(NL, "error: can't allocate %d bytes\n", sizeof(pm_pkginfo_t));
|
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dummy = NULL;
|
||||||
|
/* ORE
|
||||||
|
find a way to create a fake package and to add it to the transaction
|
||||||
|
targets
|
||||||
dummy = (pm_pkginfo_t *)malloc(sizeof(pm_pkginfo_t));
|
dummy = (pm_pkginfo_t *)malloc(sizeof(pm_pkginfo_t));
|
||||||
if(dummy == NULL) {
|
if(dummy == NULL) {
|
||||||
ERR(NL, "error: can't allocate %d bytes\n", sizeof(pm_pkginfo_t));
|
ERR(NL, "error: can't allocate %d bytes\n", sizeof(pm_pkginfo_t));
|
||||||
|
@ -267,9 +267,16 @@ int pacman_deptest(list_t *targets)
|
||||||
|
|
||||||
trans->targets = list_add(trans->targets, strdup(dummy->name));*/
|
trans->targets = list_add(trans->targets, strdup(dummy->name));*/
|
||||||
|
|
||||||
|
if(alpm_trans_addtarget(NULL) == -1) {
|
||||||
|
ERR(NL, "error: %s\n", alpm_strerror(pm_errno));
|
||||||
|
alpm_trans_release();
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
if(alpm_trans_prepare(&data) == -1) {
|
if(alpm_trans_prepare(&data) == -1) {
|
||||||
int ret = 126;
|
int ret = 126;
|
||||||
list_t *synctargs = NULL;
|
list_t *synctargs = NULL;
|
||||||
|
|
||||||
switch(pm_errno) {
|
switch(pm_errno) {
|
||||||
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)) {
|
||||||
|
@ -300,6 +307,7 @@ int pacman_deptest(list_t *targets)
|
||||||
ret = 127;
|
ret = 127;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* attempt to resolve missing dependencies */
|
/* attempt to resolve missing dependencies */
|
||||||
/* TODO: handle version comparators (eg, glibc>=2.2.5) */
|
/* TODO: handle version comparators (eg, glibc>=2.2.5) */
|
||||||
if(ret == 126 && synctargs != NULL) {
|
if(ret == 126 && synctargs != NULL) {
|
||||||
|
@ -309,12 +317,9 @@ int pacman_deptest(list_t *targets)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FREELIST(synctargs);
|
FREELIST(synctargs);
|
||||||
FREEPKG(dummy);
|
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
FREEPKG(dummy);
|
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue