aboutsummaryrefslogtreecommitdiffstats
path: root/URPM/Resolve.pm
Commit message (Collapse)AuthorAgeFilesLines
* add basic support for --downgrade (mga#6655)Thierry Vignaud2013-02-091-4/+4
| | | | | enabling eg to switching back to packages from core/release after having installed some from core/updates_testing, then disabling it
* (_is_selected_or_installed ) fix scoring locale packagesThierry Vignaud2013-01-201-1/+1
| | | | revert part of commit r5052 (June 28 2012, "light speedups")
* prevent creating empty transactions in rare casesThierry Vignaud2012-12-171-1/+1
| | | | (that cause rpm to abort on assert while creating a new pool)
* (find_required_package) previous commit enables us to not reinvent ↵Thierry Vignaud2012-12-041-3/+2
| | | | packages_providing()
* (get_installed_arch) silent a warning (mga#8287)Thierry Vignaud2012-12-041-1/+1
|
* further bump threshold for detecting looping foreverThierry Vignaud2012-11-211-1/+1
|
* workaround a segfault (mga#8158)Thierry Vignaud2012-11-211-2/+2
| | | | | | | | | calling ->provides or ->requires in traverse_tag_find() results in an invalid read if provides/requires list is big (or if called several times) basically reverting commit r6476 on 2012-11-16 ("(unsatisfied_requires) (slightly) optimize")
* bump threshold for detecting looping forever (mga#8106)Thierry Vignaud2012-11-191-1/+1
|
* (unsatisfied_requires) (slightly) optimizeThierry Vignaud2012-11-161-2/+2
|
* (resolve_requested__no_suggests_) prevent urpmi from looping forever when ↵Thierry Vignaud2012-11-161-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | some packages are broken alternatively, we could try detecting if diff_provides doesn't change for a couple loops or not going over already rejected packages (selecting/promoting/rejecting the same package forever) eg: gtk+3.0-3.6.1-3.mga3.x86_64 is on the mirrors but not lib64gtk+3_0-3.6.1-3.mga3.x86_64 we will then loop forever: set_rejected: gtk+3.0-3.6.1-2.mga3.x86_64 installed lib64gtk+3_0-3.6.1-2.mga3.x86_64 is conflicting because of unsatisfied gtk+3.0[== 3.6.1-2.mga3] gtk+3.0[*][== 3.6.1-2.mga3] set_rejected: lib64gtk+3_0-3.6.1-2.mga3.x86_64 installed lib64gtk+3.0-devel-3.6.1-2.mga3.x86_64 is conflicting because of unsatisfied lib64gtk+3_0[== 3.6.1] set_rejected: lib64gtk+3.0-devel-3.6.1-2.mga3.x86_64 installed lib64gtk-gir3.0-3.6.1-2.mga3.x86_64 is conflicting because of unsatisfied lib64gtk+3_0[== 3.6.1-2.mga3] set_rejected: lib64gtk-gir3.0-3.6.1-2.mga3.x86_64 installed gtk+3.0-3.6.1-2.mga3.x86_64 is conflicting because of unsatisfied lib64gtk+3_0[== 3.6.1] promoting gtk+3.0-3.6.1-3.mga3.x86_64 because of conflict above unselecting gtk+3.0-3.6.1-3.mga3.x86_64 set_rejected: gtk+3.0-3.6.1-2.mga3.x86_64 (...)
* rename find_candidate_packages_() as find_candidate_packages()Thierry Vignaud2012-09-261-7/+7
|
* remove deprecated find_chosen_packages() & find_candidate_packages()Thierry Vignaud2012-09-261-16/+0
|
* (strict_arch_check,strict_arch_check_installed) simplifyThierry Vignaud2012-09-261-5/+8
|
* introduce any() from MDK::Common and resuse itThierry Vignaud2012-09-261-3/+8
|
* (_find_required_package__kmod) simplifyThierry Vignaud2012-09-261-1/+1
|
* (_handle_conflicts_with_selected) simplifyThierry Vignaud2012-09-261-1/+1
|
* (resolve_requested_suggests) micro-optimizationThierry Vignaud2012-09-171-1/+1
|
* (resolve_requested_suggests) split it out of resolve_requested()Thierry Vignaud2012-09-171-4/+11
|
* (compute_flags) drop compatibility with urpmi <= 4.5-13mdk (2004-07-09)Thierry Vignaud2012-08-101-1/+0
|
* light speedupsThierry Vignaud2012-06-281-3/+3
|
* (_selected_size_filesize) simplifyThierry Vignaud2012-06-221-5/+1
|
* minor style enhancementsThierry Vignaud2012-06-221-7/+3
|
* provides_overlap() defaults to direction=1Thierry Vignaud2012-06-181-2/+2
|
* (ranges_overlap,obsoletes_overlap) drop unused no_promote parameterThierry Vignaud2012-06-151-1/+1
| | | | | | | | rationale: it was never set to 0 for nearly a decade this should have been ripped rigth after commit r227323 by pixel on Sep 7 2007: "simplify: nopromoteepoch is always 1 (no caller ever define it)"
* Revert "(backtrack_selected) help perl_checker"Thierry Vignaud2012-03-191-1/+1
| | | | | This reverts commit 2873 from Feb 1 2012 (perl_checker has better fake packages now)
* (min) kill unused functionThierry Vignaud2012-03-161-1/+0
|
* (listlenght,uniq) enable perl_checker to see how many arguments are expectedThierry Vignaud2012-03-161-2/+10
|
* (find_required_package) perl_checker cleanupThierry Vignaud2012-03-161-1/+1
|
* (property2name,property2name_range,property2name_op_version) enable ↵Thierry Vignaud2012-03-161-3/+8
| | | | perl_checker to see how many arguments are expected
* (_find_packages_obsoleting) fix for a rare unreproductable crash (mga#4425)Thierry Vignaud2012-02-151-0/+1
|
* (find_required_package) really prefer packages from first media, thusThierry Vignaud2012-02-071-1/+1
| | | | fixing downloading noarch packages from 32 bit repository (mga#1603)
* (_selected_size_filesize) fix computing size of added/freed disk spaceThierry Vignaud2012-02-071-1/+5
| | | | | | when updating involves removing some packages (mga#4427) (bug introduced by fpons in r11176 on Jun 26 2003 ("0.91-7mdk"))
* (backtrack_selected) help perl_checkerThierry Vignaud2012-02-011-1/+1
|
* remove some perl_checker hints, better managed in fake packagesThierry Vignaud2012-01-301-1/+0
|
* support kernel 3.x in kmod resolutionOlivier Blin2012-01-151-2/+2
|
* reduce even more perl_checker SNR by also checking against URPM's perlThierry Vignaud2011-09-211-0/+1
| | | | methods instead of only the XS ones
* perl_checker cleanupThierry Vignaud2011-09-211-1/+1
|
* (compute_flags) fix slow matching of individual regexes for skippingThierry Vignaud2011-09-201-2/+4
| | | | | dependencies by creating a large regex to match them all at once (mdv#61389, Shlomi Fish)
* add perl_checker hintsThierry Vignaud2011-09-201-0/+1
|
* perl_checker cleanupsThierry Vignaud2011-09-201-5/+5
|
* (request_packages_to_upgrade) fix calling method in stringThierry Vignaud2011-09-171-1/+1
| | | | | (spoted by perl_checker, introduced in revision mga#267800 ("honour search medias when using --auto-select") but teuf on Fri Apr 23 2010
* Synthesized commit during git-svn import combining previous Mandriva history ↵Mageia SVN-Git Migration2011-02-041-2/+2
| | | | | | | | | | | | with Magiea. This commit consitsts of the following subversion commits: ------------------------------------------------------------------------ r419 | dmorgan | 2011-02-04 13:41:50 +0000 (Fri, 04 Feb 2011) | 1 line Import cleaned perl-URPM ------------------------------------------------------------------------
* - enable 'use warnings'Olivier Thauvin2010-07-301-1/+3
| | | | - fix some warnings
* - fix warning on perl 5.12, spotted by olivier thauvin ( Odd number of ↵Michael Scherer2010-07-301-1/+1
| | | | elements in anonymous hash at URPM/Resolve.pm line 1192. )
* - fix deferencement on hash (instead hashref), warning triggered by perl 5.12Olivier Thauvin2010-07-231-1/+1
|
* only print debug message if debug callback is definedChristophe Fergeau2010-04-231-1/+1
|
* honour search medias when using --auto-selectChristophe Fergeau2010-04-231-1/+4
|
* check selected packages for unsatisfied requires when a promoted package is ↵Christophe Fergeau2010-03-231-0/+5
| | | | | | backtracked and no replacement is found (#57224, Anssi Hannula)
* check for conflicting selected packages before selecting a packageChristophe Fergeau2010-02-121-4/+5
| | | | | | | | | | | | | | | | check for conflicting selected packages before selecting a package instead of after selecting it, to avoid having to unselect package in case of conflict (which incorrectly unselected packages with unsatisfied dependencies as well, making the following backtrack_selected call behave wrongly as it simply noticed that the package is no longer required) Here's the second patch again, now with the function comment updated and added _remove_all_rejected_from() call so that prerejections are still cleared (this was previously called from the removed disable_selected() call). Testsuites pass. Patch by Anssi Hannula, fixes #57224
* use set_rejected_and_compute_diff_provides for package removalChristophe Fergeau2009-08-101-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch by Anssi Hannula, fixes bug #52667 k1-1 provides k, but not k1-2 l-1 and l-2 requires k m-1 requires k but not m-2 n requires m User has l-1, m-1, n-1, k1-1. There is only one upgrade path: k1-1 -> k1-2 m-1 -> m-2 removal of l-1 When transaction is created with all of them (e.g. what --auto-select does first), the path is resolved correctly. However, when the upgrade is triggered with the upgrade of k1, and l is in RPM db before n, resolving proceeds as follows: 1. k1 selected and old version rejected 2. l is promoted 3. m is promoted 4. l-2 is therefore selected 5. no packages are found for k (as k1-1 was rejected in step 1) 6. backtrack_selected calls resolve_rejected to reject the chain 7. rejection process rejects l, m, n 8. m-2 is selected because of step 3 End result: n is wrongly removed. Therefore, when using --auto-select (with --split-length 1 --split-level 1 in this small case, to force splitting) to trigger the upgrade, the early resolve is done correctly, but the first splitted transaction ("rpms sorted by dependencies" has k1 and m separately, so split is tried) tries to remove n and URPM fallbacks to single big transaction. In reverse, when using "urpmi k1" to trigger the upgrade, urpmi asks user confirmation for n removal, but the transaction is created with both k1 and m ("rpms sorted by dependencies" has k1+m, so they are put in same transaction), thus triggering the correct behaviour and n is not really removed after all, even if user agreed to it. Attached patch fixes this by switching backtrack_selected() to use set_rejected_and_compute_diff_provides() for package removal instead of resolve_rejected_(). The code already contained a comment indicating that diff_provides code should be applied. The patch introduces no regression in the urpmi and perl-URPM testsuites.