libalpm/sync.c: change alpm_sync_newversion() to alpm_sync_get_new_version()
The behaviour of "pacman -Qu" was very strange... It would only consider packages from repos with Usage = Search (or All), and ignore those with Usage = Sync, Install or Upgrade. This is because the function alpm_sync_newversion() used ALPM_DB_USAGE_SEARCH for its filtering. Given this function is documented (at least in the source) to "Check for new version of pkg in sync repos", I would expect that to look at all repos. However, just changing this parameter, would result in a fairly silent change in behaviour of this function. Instead, rename the function and remove this filtering altogether. Users of this function can filter the dbs passed to this function to achieve their desired output. Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
9b2a90cfb1
commit
e9d91a688d
3 changed files with 4 additions and 8 deletions
|
@ -1452,7 +1452,7 @@ alpm_list_t *alpm_find_group_pkgs(alpm_list_t *dbs, const char *name);
|
||||||
* Sync
|
* Sync
|
||||||
*/
|
*/
|
||||||
|
|
||||||
alpm_pkg_t *alpm_sync_newversion(alpm_pkg_t *pkg, alpm_list_t *dbs_sync);
|
alpm_pkg_t *alpm_sync_get_new_version(alpm_pkg_t *pkg, alpm_list_t *dbs_sync);
|
||||||
|
|
||||||
/** @addtogroup alpm_api_trans Transaction Functions
|
/** @addtogroup alpm_api_trans Transaction Functions
|
||||||
* Functions to manipulate libalpm transactions
|
* Functions to manipulate libalpm transactions
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
/** Check for new version of pkg in sync repos
|
/** Check for new version of pkg in sync repos
|
||||||
* (only the first occurrence is considered in sync)
|
* (only the first occurrence is considered in sync)
|
||||||
*/
|
*/
|
||||||
alpm_pkg_t SYMEXPORT *alpm_sync_newversion(alpm_pkg_t *pkg, alpm_list_t *dbs_sync)
|
alpm_pkg_t SYMEXPORT *alpm_sync_get_new_version(alpm_pkg_t *pkg, alpm_list_t *dbs_sync)
|
||||||
{
|
{
|
||||||
alpm_list_t *i;
|
alpm_list_t *i;
|
||||||
alpm_pkg_t *spkg = NULL;
|
alpm_pkg_t *spkg = NULL;
|
||||||
|
@ -61,10 +61,6 @@ alpm_pkg_t SYMEXPORT *alpm_sync_newversion(alpm_pkg_t *pkg, alpm_list_t *dbs_syn
|
||||||
|
|
||||||
for(i = dbs_sync; !spkg && i; i = i->next) {
|
for(i = dbs_sync; !spkg && i; i = i->next) {
|
||||||
alpm_db_t *db = i->data;
|
alpm_db_t *db = i->data;
|
||||||
if(!(db->usage & ALPM_DB_USAGE_SEARCH)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
spkg = _alpm_db_get_pkgfromcache(db, pkg->name);
|
spkg = _alpm_db_get_pkgfromcache(db, pkg->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -286,7 +286,7 @@ static int filter(alpm_pkg_t *pkg)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* check if this pkg is outdated */
|
/* check if this pkg is outdated */
|
||||||
if(config->op_q_upgrade && (alpm_sync_newversion(pkg,
|
if(config->op_q_upgrade && (alpm_sync_get_new_version(pkg,
|
||||||
alpm_get_syncdbs(config->handle)) == NULL)) {
|
alpm_get_syncdbs(config->handle)) == NULL)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -325,7 +325,7 @@ static int display(alpm_pkg_t *pkg)
|
||||||
colstr->version, alpm_pkg_get_version(pkg), colstr->nocolor);
|
colstr->version, alpm_pkg_get_version(pkg), colstr->nocolor);
|
||||||
|
|
||||||
if(config->op_q_upgrade) {
|
if(config->op_q_upgrade) {
|
||||||
alpm_pkg_t *newpkg = alpm_sync_newversion(pkg, alpm_get_syncdbs(config->handle));
|
alpm_pkg_t *newpkg = alpm_sync_get_new_version(pkg, alpm_get_syncdbs(config->handle));
|
||||||
printf(" -> %s%s%s", colstr->version, alpm_pkg_get_version(newpkg), colstr->nocolor);
|
printf(" -> %s%s%s", colstr->version, alpm_pkg_get_version(newpkg), colstr->nocolor);
|
||||||
|
|
||||||
if(alpm_pkg_should_ignore(config->handle, pkg)) {
|
if(alpm_pkg_should_ignore(config->handle, pkg)) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue