| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
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")
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
(...)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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)"
|
|
|
|
|
| |
This reverts commit 2873 from Feb 1 2012
(perl_checker has better fake packages now)
|
| |
|
| |
|
| |
|
|
|
|
| |
perl_checker to see how many arguments are expected
|
| |
|
|
|
|
| |
fixing downloading noarch packages from 32 bit repository (mga#1603)
|
|
|
|
|
|
| |
when updating involves removing some packages (mga#4427)
(bug introduced by fpons in r11176 on Jun 26 2003 ("0.91-7mdk"))
|
| |
|
| |
|
| |
|
|
|
|
| |
methods instead of only the XS ones
|
| |
|
|
|
|
|
| |
dependencies by creating a large regex to match them all at once
(mdv#61389, Shlomi Fish)
|
| |
|
| |
|
|
|
|
|
| |
(spoted by perl_checker, introduced in revision mga#267800 ("honour search
medias when using --auto-select") but teuf on Fri Apr 23 2010
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
------------------------------------------------------------------------
|
|
|
|
| |
- fix some warnings
|
|
|
|
| |
elements in anonymous hash at URPM/Resolve.pm line 1192. )
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
backtracked and no replacement is found
(#57224, Anssi Hannula)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
that was added in 3.31 (Anssi Hannula). In a simple mistake, %options was
not passed to backtrack_selected.
|
|
|
|
| |
Patch from Anssi Hannula, fixes part of bug #52153
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Anssi Hannula, fixes bug #52460
When searching for possible promotions, _handle_diff_provides() allows
downgrade as well as upgrade.
However, downgrade is not currently supported, and will fail early in
_no_more_recent_installed_and_providing(), called from
resolve_requested__no_suggests_().
As no backtracking is done for early failures in this function (should it be?
dunno), the promotion gets forgotten and a failing transaction will occur.
Simple fix is to only allow upgrade before doing the promotion. Patch attached.
It introduces no regressions in urpmi or perl-URPM testsuite.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Anssi Hannula, fixes bug #52145
If package 'a' Conflicts on 'b', and user (or a dependency chain) tries to
install both at the same time, perl-URPM will only detect the conflict if
package 'a' gets selected first (this depends on hdlist order), as
_set_rejected_from is only called in one direction from _handle_conflicts and
it does not detect that a package it is about to reject_from is already
selected.
This bug currently causes a failure in urpmi handle-conflict-deps2 testcase.
This commit checks if avoided package is already selected, and unselects
current package in such a case
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Anssi Hannula, first step toward fixing bug #52145
If package 'a' Conflicts on 'b', and user (or a dependency chain) tries to
install both at the same time, perl-URPM will only detect the conflict if
package 'a' gets selected first (this depends on hdlist order), as
_set_rejected_from is only called in one direction from _handle_conflicts and
it does not detect that a package it is about to reject_from is already
selected.
This patch moves part of _handle_conflicts to _handle_conflicts_with_selected
to be called before dependencies get added, needed by next patch
|