mirror of
https://github.com/moparisthebest/pacman
synced 2025-01-10 21:38:19 -05:00
882bff36ac
"Foo replaces bar" simply means that "foo is a new version of bar". So this patch refactors the code to use this "rule". _alpm_sync_sysupgrade now does the following for each local package [bar] (pseudo-code): for db in syncdbs { if(db contains bar) {check if db/bar is an upgrade; break;} replacers = find(bar replacers in db); if(replacers!=NULL) {ask_user; break;} } Note: 1. Replacers are grouped per repo. If more than one package replace bar in a repo, all of them are considered ("package set of bar replacers"). 2. If repo1/foo1 and repo2/foo2 both replaces bar, only repo1/foo1 is considered (if repo1 stands before repo2 in pacman.conf). FS#11737 is fixed. 3. It can happen that pacman doesn't consider any replacer, if it found a literal "earlier", so sync132.py modified accordingly (btw, that situation should not appear irl). The new sysupgrade code doesn't use sync_newversion(), so I removed the "local is newer than repo" message, which was annoying with -Qu and SyncFirst. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu> Signed-off-by: Dan McGee <dan@archlinux.org> |
||
---|---|---|
.. | ||
po | ||
.gitignore | ||
add.c | ||
add.h | ||
alpm_list.c | ||
alpm_list.h | ||
alpm.c | ||
alpm.h | ||
backup.c | ||
backup.h | ||
be_files.c | ||
be_package.c | ||
cache.c | ||
cache.h | ||
conflict.c | ||
conflict.h | ||
db.c | ||
db.h | ||
delta.c | ||
delta.h | ||
deps.c | ||
deps.h | ||
dload.c | ||
dload.h | ||
error.c | ||
graph.h | ||
group.c | ||
group.h | ||
handle.c | ||
handle.h | ||
log.c | ||
log.h | ||
Makefile.am | ||
md5.c | ||
md5.h | ||
package.c | ||
package.h | ||
remove.c | ||
remove.h | ||
sync.c | ||
sync.h | ||
trans.c | ||
trans.h | ||
util.c | ||
util.h |