index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
author | Olivier Brunel <i.am.jack.mail@gmail.com> | 2013-03-04 09:48:10 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-03-07 15:38:47 +1000 |
commit | 017184fab55b22c1efd8a7d6d6d832ca302d8e15 (patch) | |
tree | 29b1122d2a50ab708c7f320a06ece004bca39edf /lib | |
parent | 1b39653e9624db98c2e707a1991bc32bb26f2b67 (diff) |
-rw-r--r-- | lib/libalpm/sync.c | 26 |
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 2a56115b..147a8377 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -209,24 +209,26 @@ int SYMEXPORT alpm_sync_sysupgrade(alpm_handle_t *handle, int enable_downgrade) continue; } - /* Search for literal then replacers in each sync database. */ + /* Search for replacers then literal (if no replacer) in each sync database. */ for(j = handle->dbs_sync; j; j = j->next) { alpm_db_t *sdb = j->data; /* Check sdb */ - alpm_pkg_t *spkg = _alpm_db_get_pkgfromcache(sdb, lpkg->name); - int literal_upgrade = 0; - if(spkg) { - literal_upgrade = check_literal(handle, lpkg, spkg, enable_downgrade); - if(literal_upgrade) { - trans->add = alpm_list_add(trans->add, spkg); - } + alpm_list_t *replacers; + replacers = check_replacers(handle, lpkg, sdb); + if(replacers) { + trans->add = alpm_list_join(trans->add, replacers); /* jump to next local package */ break; } else { - alpm_list_t *replacers; - replacers = check_replacers(handle, lpkg, sdb); - if(replacers) { - trans->add = alpm_list_join(trans->add, replacers); + alpm_pkg_t *spkg = _alpm_db_get_pkgfromcache(sdb, lpkg->name); + if(spkg) { + int literal_upgrade = 0; + literal_upgrade = check_literal(handle, lpkg, spkg, enable_downgrade); + if(literal_upgrade) { + trans->add = alpm_list_add(trans->add, spkg); + } + /* jump to next local package */ + break; } } } |