From 796eaaed4064c36e3dd45178b2584115279a482e Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 15 Aug 2011 14:44:38 -0500 Subject: Further fixes to replacement iteration A partial fix for this was in commit 7de92cb22, but this should fix the remaining cases. There are still several issues dealing with "provision as replacement" selection however. Addresses FS#25538 and FS#25527. Signed-off-by: Dan McGee --- lib/libalpm/sync.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'lib') diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 3e38707e..3d581661 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -145,9 +145,9 @@ int SYMEXPORT alpm_sync_sysupgrade(alpm_handle_t *handle, int enable_downgrade) break; } else { /* 2. search for replacers in sdb */ - int found = 0; alpm_list_t *k, *l; for(k = _alpm_db_get_pkgcache(sdb); k; k = k->next) { + int found = 0; spkg = k->data; for(l = alpm_pkg_get_replaces(spkg); l; l = l->next) { alpm_depend_t *replace = l->data; @@ -160,16 +160,15 @@ int SYMEXPORT alpm_sync_sysupgrade(alpm_handle_t *handle, int enable_downgrade) /* check IgnorePkg/IgnoreGroup */ if(_alpm_pkg_should_ignore(handle, spkg) || _alpm_pkg_should_ignore(handle, lpkg)) { - _alpm_log(handle, ALPM_LOG_WARNING, _("ignoring package replacement (%s-%s => %s-%s)\n"), - lpkg->name, lpkg->version, spkg->name, spkg->version); - found = 0; + _alpm_log(handle, ALPM_LOG_WARNING, + _("ignoring package replacement (%s-%s => %s-%s)\n"), + lpkg->name, lpkg->version, spkg->name, spkg->version); continue; } int doreplace = 0; QUESTION(trans, ALPM_TRANS_CONV_REPLACE_PKG, lpkg, spkg, sdb->treename, &doreplace); if(!doreplace) { - found = 0; continue; } @@ -181,7 +180,6 @@ int SYMEXPORT alpm_sync_sysupgrade(alpm_handle_t *handle, int enable_downgrade) if(tpkg->origin_data.db != sdb) { _alpm_log(handle, ALPM_LOG_WARNING, _("cannot replace %s by %s\n"), lpkg->name, spkg->name); - found = 0; continue; } _alpm_log(handle, ALPM_LOG_DEBUG, "appending %s to the removes list of %s\n", @@ -202,10 +200,6 @@ int SYMEXPORT alpm_sync_sysupgrade(alpm_handle_t *handle, int enable_downgrade) } } } - if(found) { - /* jump to next local package */ - break; - } } } } -- cgit v1.2.3-24-g4f1b