| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
strlen(s) to signed
|
| |
|
| |
|
| |
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Anssi Hannula, fixes bug #52135
If package a has "Conflicts: x" and b has "Provides: x", installing both at the
same time creates a failing transaction (instead of producing the "cannot
install a (or b), continue?") as perl-URPM does not detect the conflict, as it
just checks the conflicts on the package name (it does the correct thing with
installed packages, though).
_handle_conflicts: call _set_rejected_from if any provides match the conflict,
instead of just package name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch from Anssi Hannula, fixes bug #52105
lib64gcj9 has to be removed (conflicts), therefore so does libgcj9-src (x86_64)
that depends on it. Installed java-1.5.0-gcj-src depends on libgcj9-src, so
perl-URPM tries to promote the i586 libgcj9-src for it. However, strict_arch
check prohibits changing the arch, so it falls back to backtracking.
Backtracking finds libgcj9-src again and tries to select it; however, it drops
$dep->{psel} and $dep->{promote}, so when it fails again, perl-URPM does not
know java-1.5.0-gcj-src should also be removed due to the failed promotion.
This patch changes the code in backtrack_selected in two ways:
1) When a replacement package is found, keep {promote} and {psel} info, so that
when backtrack_selected is run the second time it correctly handles the failed
promotion.
2) When such a replacement fails as well and the deadlock protection is
triggered, do not switch to keep mode for the package that caused the promotion
(it would unselect all the packages involved in the update that caused the
promotion). Instead proceed to remove it as usual.
The patch introduces no failures on the urpmi testsuite.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Anssi Hannula, fixes bug #50666
removed/obsoleted levels are set in set_rejected() when a package is rejected
(i.e. removed) or a rejection reason is added. They keep track on whether the
package is removed and/or obsoleted.
When the package has both flags and one of the rejection reasons is removed by
_remove_rejected_from(), appropriate flags do not get removed.
The case I encountered: the package is set for removal when a package it
depends on fails upgrade due to unsatisfied dependency and has to be removed
(backtrack_selected => resolve_rejected, causing removed=1), and the package is
then promoted (causing obsoleted=1). However, the promotion fails due to the
same unsatisfied dependency and backtrack_selected =>
disable_selected_and_unrequested_dependencies => disable_selected =>
_remove_all_rejected_from => _remove_rejected_from gets called. This removes
the latter rejection reason, but leaves flags, including the now wrong
obsoleted=1. Thus the package is not explicitely removed as an obsoletion is
assumed, therefore failing the transaction.
|
| |
|
| |
|
|
|
|
|
|
|
| |
support
for using %distepoch i version comparisions yet...
|
| |
|
|
|
|
| |
crashy behaviour certain places...
|
|
|
|
|
| |
3.31 now for next release…
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
supported anymore anyways and move out as much as possible rpm5.org
compatibility code out of URPM into new rpm46compat.h @ rpm5.org
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This has the side-effect that if we get a newer public key corresponding
to an already known key id, it won't get updated, but for now RPM
doesn't let us do that anyway. If a pubkey file contains multiple keys,
we no longer handle this case, but I don't think this has been widely
tested, if ever...
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When installing a package which suggests an uninstalled package, urpmi
currently installs both packages without asking the user while it asks
when installing a package which requires an uninstalled package. This is
because we call resolve_requested__no_suggests to find which suggested
package to install, but this mark the package as requested as well (and
we don't ask for confirmation before installing a requested package).
This patch calls resolve_requested__no_suggests_ (with a trailing '_')
instead which is the same as resolve_requested__no_suggests but does not
mark the packages as requested.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes bug #48223, patch from Anssi Hannula
Currently, if _handle_diff_provides finds unsatisfied requires on an already
selected package, and cannot find any packages from the repo that satisfy
these, it calls resolve_rejected_ (or set_rejected_and_compute_diff_provides
after fix to bug #47803) (as it does when those unsatisfied requires are on an
installed package, which was always the case before r242656).
However, those should be called with installed packages only.
Attached patch makes _handle_diff_provides call
disable_selected_and_unrequested_dependencies and _set_rejected_from in case of
selected packages.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
conflict
Fixes bug #47803, patch from Anssi Hannula
Closer look at urpmi revealed it only does this if a provide X is
removed from
an upgraded package, not when a package providing X has to be removed.
i.e. this works:
A provides foo
B provides foo
C requires foo
Installed A,C.
A is upgraded and Provides:foo is dropped, B gets installed in order to
keep C.
But this won't:
A provides foo
A requires dep
B provides foo
C requires foo
D provides dep
Installed A,C,D.
D is upgraded and Provides:dep is dropped, A gets removed, C gets
removed.
|
| |
|
|
|
|
|
|
| |
(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)
|
| |
|
|
|
|
|
|
|
| |
instead)
- add a comment
|