Age | Commit message (Collapse) | Author | Files | Lines |
|
add also a test case for this
|
|
We should not disqualify non-selectable packages as it would mark it as
dirty, forcing it to reconsider the name again, which could end up in
an endless loop.
fixes #2135
|
|
for musl compatibility
|
|
Mistakenly allowed masked out package to be installed if it was
in cache.
|
|
|
|
|
|
If name N is required, and all providers of A also provide B, it
means that only instances of B can be selected that provide N. This
is strong help with cases when so:libfoo.so.1 is updated to
so:libfoo.so.2 and not everything is recompiled.
|
|
Select latest version of package (if it is not pinned), and print
error if it cannot be installed due to other dependencies.
Together with --available, it selects the latest package which is
present at least in some repository.
This also fixes few solver issues with ordering of package selection
that got quite apparent with this flag. Namely, we cannot "lock"
a package until it's reverse dependencies are locked or not all of
the solver flags are propagated properly.
|
|
if all packages named N provide the virtual package, list only the
name N instead of all packages providing it.
|
|
Fixes also 'fetch' applet to prefer copying/linking to files from
cache if possible.
|
|
|
|
Instead of the dependency oriented logic, switch to print them
for each package or name needed. Might give a bit more readable
errors now. There's still few corner cases that proper error is
not output, which are cought by the test cases.
|
|
mostly useful for reboot, when all packages are not available.
|
|
- try harder to not change anything during self-upgrade
- also honor locking to packages that where earlier used in
merging common dependencies
- clarify upgrade applet help messages
|
|
Fix also pinning test cases to be more sane.
|
|
Handle properly per-name preference flags, and add test cases
for testing those via fix applet.
|
|
Implementing basic dependency handling, install_if and awareness
of pinning.
|
|
This reverts commit a2d873a77c6dd2e7f6219e6941af796e1f904e69.
|
|
This reverts commit 84bfef1a6b587a7da7d12fb701ab0d1d5d6ce2a9.
|
|
make cache a special kind of repository, and automatically cache
special packages (virtual packages, or ones installed from command
line). add test cases for handling virtual packages. fixes #1617.
|
|
We are having so many packages that they might overflow otherwise.
"ERROR: Preference overflow" was already reported.
|
|
It is incorrect optimization causing valid solutions to be skipped.
Any performance it might've gained, should be fixed by reintroduction
of the minimum penalty logic added in previous commit.
|
|
Basic per-name per-package specific scoring added.
|
|
Otherwise we can return no solution at all instead of partially
satisfied solution (and give proper error message).
|
|
|
|
This is an internal error.
|
|
|
|
|
|
use %zu for size_t
|
|
Should get rid of error messages like:
ERROR: Saved_score {4/0/0,74} != score {6/0/0,74}
|
|
|
|
Enabled when all attempts to satisfy a name failed, we know that we
can ignore all decisions until we find a decision affecting the name
we wanted to satisfy.
|
|
to be functional when backtracking
|
|
|
|
|
|
We can't just use the primary name, as that would mess up
backtracking. We need to record the name which caused the name
to get considered - that way the right last_touched_decision is
used on backtracking.
|
|
* push_decision expects to always get the package primary 'name'
as apk_name. ASSERT that and fix problem cases.
(though - this might need to be reverted, and store the non
primary name in apk_decision instead to accomodate for better
backtracking optimizations)
* fix error reporting of virtual package names
* make 'assign_name' errors soft. the incorrect packages just are
no longer consider instead of aborting whole calculation.
* fix backtracking of virtual packages that are not depended
directly
|
|
Print name of package and void double "ERROR"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
apk_name_state is now quite small; and we avoid overhead of two
pointers (+ malloc overhead) when we just make it part of apk_name.
It also fixes some problems (that got introduced) where apk_name_state
was not allocated.
|
|
Solver will now never report partial solution where a conflict
constraint is not satisfied. The is because with --force we might
install the partial solution; and if conflicted packages were to
be installed we might have extra trouble.
|
|
|
|
Instead cache the allowed pinning decision, and use it. Update
install decision heuristic to also use this cached information.
|