Age | Commit message (Collapse) | Author | Files | Lines |
|
* upgrade needs explicit check so we don't try self-upgrade
(which would print additional messages on screen)
* add can fix problems, so check against the new world
* merge the code in few places
|
|
regression from upgrade to the new solver system.
|
|
|
|
Previously we would cache the penalty when evaluating the final
solution, and adding that until we backtrack to first topology
position changing that penalty. However, we can just keep track
of minimum penalty based on name state, and add it. This allows
us to bail out early on bad branches because we know in advance
how things will turn out.
|
|
|
|
|
|
Previously we would not upgrade just by doing "apk add foo@tag" if
foo was already installed. It required explicit '-u'. This allows
'apk add' to explicitly prefer the newly specified pinning.
|
|
* default writing the world with spaces if a space is found
(for backwards compatibility) for now
|
|
|
|
|
|
|
|
It is really name(@tag)(>=version).
|
|
|
|
instead of just list all installed package
|
|
|
|
call apk_pkg_install() and hlist_tail_ptr() only once. the latter
is O(n) and can get very slow.
|
|
|
|
|
|
|
|
.. so do not load them.
|
|
did not properly detect as error if name could not be satisfied
due to being available in tagged repository which is not enabled.
|
|
|
|
otherwise --force does might not work during boot.
|
|
|
|
|
|
caused upgrading package X with "apk add path/to/x...apk" where
the package file was not in any repository to not work properly.
|
|
broken in commit bfd53b59d2e62e17 (print: minor cleanup to indented writer).
|
|
Improves /etc/apk/repositories format so you can say:
http://nl.alpinelinux.org/alpine/v2.3/main
@edge http://nl.alpinelinux.org/alpine/edge/main
@testing http://nl.alpinelinux.org/alpine/edge/testing
After which you can pin dependencies to these tags using:
apk add stableapp newapp@edge bleedingapp@testing
Apk will now by default only use the untagged repositories,
but adding a tag to specific dependency:
1. will prefer that tag for the name
2. allowing pulling in dependencies from that tag (though,
it prefers untagged packages to satisfy deps if possible)
fixes #575
|
|
One can now say in dependency "!foo<2" which means, that if foo is
installed, it needs to be >=2, but it's not a required dependency.
|
|
Use new apk_blob_pull_dep instead of the old apk_dep_from_blob
|
|
|
|
If two packages replace each other, the one with highes priority
will keep the file. Additionally, if we have a package overriding
another's file it's remembered and handled properly. This is
essentially to allow "policy packages" which just overwrite certain
(configuration) files from other package(s).
|
|
"replaces" is now turned to a full dependency type list, so you can
make package overwrite files only certain versions of the package
(though, we should probably take this into account already at solution
calculation phase).
Also make 'info --replaces' print the "replaces" of the package.
This is in preparation for the policy package support, which still
requires "replacement priority" field to decide which packages' files
get the preference.
|
|
Should now choose packages better if the best available version
is uninstallable for some reason.
|
|
|
|
this prunes the search tree considerably and fixes a speed
regression introduced in an earlier commit.
|
|
the solver requires this.
|
|
We need to refresh all name states after backtracking as options
that were excluding due to topology ordering might have become
available.
|
|
The array struct aligned size to 64 bit on x86_64 which caused bad things
to happen.
We use size_t to make sure the size element is correct regardless arch.
Solution found by Timo.
|
|
allow per-name solver flags to be inheritable, and use them in
self-upgrade, add -u and the fix applet. this gives more familiar
behaviour for the upgrades.
|
|
|
|
|
|
|
|
Tests whether given package string is installed
|
|
- call apk_atom_init()
- if no open flag is specified, then default to read-only.
|
|
|
|
|
|
so far we just parse the db options
|
|
namely this fixes apk upgrade without --no-self-upgrade when
the solver is called twice.
|
|
|