| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
support
for using %distepoch i version comparisions yet...
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts the previous commit
only compute diff_provides when the package is newly rejected, in
set_rejected_and_compute_diff_provides
Try this incremental patch. It fixes
set_rejected_and_compute_diff_provides to
not compute diff_provides if package was already rejected (and thus the
dependencies properly handled already).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixes bug #48100, patch from Anssi Hannula
Package A requires D and E.
Package B provides D and E.
Package C provides E.
If the require on E happens to be resolved first, then perl-URPM will
prompt the user, even though installing B is enough.
|
| |
|
| |
|
|
|
|
|
|
| |
(especially important for installer where there's no rpmdb in / (really
/var/lib/rpm) and thus no keys to check against)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
- fix sorting choices on provided version (feature introduced in 3.08,
but was not working if packages were coming from different repository)
- when a "Requires:" can be fullfilled by several different packages and
one of those packages is explicitly required by another package which
is also being installed, silently choose this package instead of letting
the choice up to perl-URPM user (fixes bug #46874)
|
|
|
|
| |
a "requires", fixes bug #46874
|
|
|
|
|
| |
but was not working if packages were coming from different repository)
|
| |
|
| |
|
| |
|
|
|
|
|
| |
adapt to librpm4.6, rpmtsSetRootDir(ts, "") is forbidden
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
errors (useful for example to detect diskspace issues)
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
superuser--priority-upgrade.t test case), and introduce
$state->{rejected_already_installed} instead
|
| |
|
| |
|
| |
|
|
|
|
|
| |
build_transaction_set()
|