Cleanup and more debug info for alpm_pkg_compare_versions
This commit is contained in:
parent
ad224b2703
commit
6c5066471c
3 changed files with 20 additions and 13 deletions
|
@ -123,39 +123,46 @@ void _alpm_pkg_free(void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Is pkgB an upgrade for pkgA ? */
|
/* Is pkgB an upgrade for pkgA ? */
|
||||||
int alpm_pkg_compare_versions(pmpkg_t *pkgA, pmpkg_t *pkgB)
|
int alpm_pkg_compare_versions(pmpkg_t *local_pkg, pmpkg_t *pkg)
|
||||||
{
|
{
|
||||||
if(pkgB->origin == PKG_FROM_CACHE) {
|
int cmp = 0;
|
||||||
|
|
||||||
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
if(pkg->origin == PKG_FROM_CACHE) {
|
||||||
/* ensure we have the /desc file, which contains the 'force' option */
|
/* ensure we have the /desc file, which contains the 'force' option */
|
||||||
_alpm_db_read(pkgB->data, INFRQ_DESC, pkgB);
|
_alpm_db_read(pkg->data, INFRQ_DESC, pkg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(pkgB->force) {
|
if(pkg->force) {
|
||||||
/* skip the version compare call if this is a 'force' package */
|
/* skip the version compare call if this is a 'force' package */
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* compare versions and see if we need to upgrade */
|
/* compare versions and see if we need to upgrade */
|
||||||
int cmp = alpm_versioncmp(pkgA->version, pkgB->version);
|
cmp = alpm_versioncmp(local_pkg->version, pkg->version);
|
||||||
|
|
||||||
if(cmp > 0) {
|
if(cmp > 0) {
|
||||||
/* local version is newer */
|
/* local version is newer */
|
||||||
pmdb_t *db = pkgB->data;
|
pmdb_t *db = pkg->data;
|
||||||
_alpm_log(PM_LOG_WARNING, _("%s: local (%s) is newer than %s (%s)"),
|
_alpm_log(PM_LOG_WARNING, _("%s: local (%s) is newer than %s (%s)"),
|
||||||
pkgA->name, pkgA->version, db->treename, pkgB->version);
|
local_pkg->name, local_pkg->version, db->treename, pkg->version);
|
||||||
cmp = 0;
|
cmp = 0;
|
||||||
} else if(alpm_list_find_str(handle->ignorepkg, pkgB->name)) {
|
} else if(alpm_list_find_str(handle->ignorepkg, pkg->name)) {
|
||||||
/* package should be ignored (IgnorePkg) */
|
/* package should be ignored (IgnorePkg) */
|
||||||
_alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (%s)"),
|
_alpm_log(PM_LOG_WARNING, _("%s-%s: ignoring package upgrade (%s)"),
|
||||||
pkgA->name, pkgA->version, pkgB->version);
|
local_pkg->name, local_pkg->version, pkg->version);
|
||||||
cmp = 0;
|
cmp = 0;
|
||||||
} else if(_alpm_pkg_istoonew(pkgB)) {
|
} else if(_alpm_pkg_istoonew(pkg)) {
|
||||||
/* package too new (UpgradeDelay) */
|
/* package too new (UpgradeDelay) */
|
||||||
_alpm_log(PM_LOG_DEBUG, _("%s-%s: delaying upgrade of package (%s)"),
|
_alpm_log(PM_LOG_DEBUG, _("%s-%s: delaying upgrade of package (%s)"),
|
||||||
pkgA->name, pkgA->version, pkgB->version);
|
local_pkg->name, local_pkg->version, pkg->version);
|
||||||
cmp = 0;
|
cmp = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_alpm_log(PM_LOG_DEBUG, _("compare versions for %s: %s vs %s, result=%d"),
|
||||||
|
local_pkg->name, local_pkg->version, pkg->version, cmp);
|
||||||
|
|
||||||
return(cmp);
|
return(cmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,7 @@ pmpkg_t* _alpm_pkg_new(const char *name, const char *version);
|
||||||
pmpkg_t *_alpm_pkg_dup(pmpkg_t *pkg);
|
pmpkg_t *_alpm_pkg_dup(pmpkg_t *pkg);
|
||||||
void _alpm_pkg_free(void *data);
|
void _alpm_pkg_free(void *data);
|
||||||
int _alpm_pkg_cmp(const void *p1, const void *p2);
|
int _alpm_pkg_cmp(const void *p1, const void *p2);
|
||||||
|
int alpm_pkg_compare_versions(pmpkg_t *pkgA, pmpkg_t *pkgB);
|
||||||
pmpkg_t *_alpm_pkg_load(char *pkgfile);
|
pmpkg_t *_alpm_pkg_load(char *pkgfile);
|
||||||
pmpkg_t *_alpm_pkg_isin(char *needle, alpm_list_t *haystack);
|
pmpkg_t *_alpm_pkg_isin(char *needle, alpm_list_t *haystack);
|
||||||
int _alpm_pkg_splitname(char *target, char *name, char *version, int witharch);
|
int _alpm_pkg_splitname(char *target, char *name, char *version, int witharch);
|
||||||
|
|
|
@ -199,7 +199,6 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s
|
||||||
/* match installed packages with the sync dbs and compare versions */
|
/* match installed packages with the sync dbs and compare versions */
|
||||||
_alpm_log(PM_LOG_DEBUG, _("checking for package upgrades"));
|
_alpm_log(PM_LOG_DEBUG, _("checking for package upgrades"));
|
||||||
for(i = _alpm_db_get_pkgcache(db_local, INFRQ_NONE); i; i = i->next) {
|
for(i = _alpm_db_get_pkgcache(db_local, INFRQ_NONE); i; i = i->next) {
|
||||||
int cmp;
|
|
||||||
int replace=0;
|
int replace=0;
|
||||||
pmpkg_t *local = i->data;
|
pmpkg_t *local = i->data;
|
||||||
pmpkg_t *spkg = NULL;
|
pmpkg_t *spkg = NULL;
|
||||||
|
@ -262,7 +261,7 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy
|
||||||
pmpkg_t *local;
|
pmpkg_t *local;
|
||||||
pmpkg_t *spkg = NULL;
|
pmpkg_t *spkg = NULL;
|
||||||
pmsyncpkg_t *sync;
|
pmsyncpkg_t *sync;
|
||||||
int cmp, repo_found = 0;
|
int repo_found = 0;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue