Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
|
|
Use the build option SHARED_LIBAPK for building shared.
|
|
So we can build with -Werror
|
|
the only bit of information needed in solver commit is the "hard"
topology sorting information for trigger ordering. fixes a bug in
"apk del" which uses the state pointers to do intermediate
calculations between solution solving and commit.
|
|
|
|
also optimize search to happen for enumeration of package names.
fixes #39, fixes #560
|
|
fixes #714
|
|
fixes #738
|
|
Use it to avoid self-upgrade loops in case something fails during
the initial upgrade attempt.
|
|
|
|
|
|
|
|
|
|
Make a loud warning if the script returns failure, but do not
abort installation sequence because of that.
|
|
|
|
Deduce the world dependencies to remove locally, and same for the
additional messages about packages not deleted.
|
|
|
|
still todo:
- 'fix' is missing
- 'del -R' does not work
- 'upgrade' does not do self-upgrade first
... and a lot of testing.
|
|
Allow to select packages that conflict in case we are looking for
errors. This allows 'add --force' to install (on boot) the set of
packages with minimum conflicts.
|
|
* each package name has two sorting positions, one which causes
install_if triggers to be run, and other for bulk dependencies
* fix also inverted ordering of package installations
|
|
this allows quite some optimizations to running time and memory
requirements.
|
|
* the solver no longer does look-ahead locking of names
(could be possibly optimized later); instead names are now
always ordered strictly to properly detect the package names
which are unsolveable
* basic error tests added, so we can see the most likely problem
in dependencies easily
|
|
Packages that need (re-)installation but which are not available,
are excluded now properly.
|
|
The first found solution is the most preferred one then.
|
|
|
|
|
|
* basic code for a backtracking, forward checking dependency satisfier
* works better when there are tricky dependencies to solve
(when can't just upgrade everything to most preferred versions)
* the new code always evaluates all of 'world' constraints
(old code just does incremental updates based on heuristics)
* is probably somewhat slower than old code (probably unnoticeable
difference in most cases)
* makes easier to write support for provides and repository pinning
* test applet and a bunch of test cases added which uses the new code
* from the old feature set install_if is not yet implemented
|
|
This applet can be used to generate data for graphviz tools.
Useful to visualize package dependencies, and possible errors
in the repository.
Usage examples:
apk dot gnome-desktop | tred | dot -Tpng gnome-desktop.png
-- to generate simplified dependency chart of gnome-desktop
apk dot --errors | dot -Tpng index-errors.png
-- to generate chart visualizing dependency errors in index
|