https://bugzilla.novell.com/show_bug.cgi?id=625426 https://bugzilla.novell.com/show_bug.cgi?id=625426#c13 --- Comment #13 from Michael Andres <ma@suse.com> 2011-11-14 14:20:03 CET --- (In reply to comment #11)
Could you please explain how YQPackageSelector::globalUpdatePkg( bool force ) and YQPkgObjList::setAllItemStatus( S_Update) needs to be improved?
- In YQPkgObjListItem::init I see _installedIsNewer/_candidateIsNewer set based on a simple version compare: ( candidate->edition() < installed->edition() ) - In YQPkgList::globalSetPkgStatus I see in 'case S_Update:' 'doChange = ( installed->edition() < candidate->edition() );' - In YQPkgObjList::setAllItemStatus I see 'if ( newStatus == S_Update ) if ( item->candidateIsNewer()': 'item->setStatus( newStatus ). So the UI simply looks at the version and then selects the package. This is bad, because the highest version is not necessarily the best choice, especially if the same package is provided by multiple repos/vendors. The flaw in the current approach is that the UI should not look for a higher version, but check whether there is an 'updateCandidateObj' for this selectable. The Selectable will return an item which is likely to be chosen by the solver as well (at least an item that fits all active solver policies), or NULL if no available package fits the current solver policies. (Keep in mind that you need to call setCandidate, if the updateCandidateObj and candidateObj are different) -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.