summaryrefslogtreecommitdiff
path: root/src/apk_solver.h
AgeCommit message (Collapse)AuthorFilesLines
2013-06-13solver: rewrite as deductive solver -- core featuresTimo Teräs1-17/+12
Implementing basic dependency handling, install_if and awareness of pinning.
2012-02-29solver: merge apk_name_state to apk_nameTimo Teräs1-0/+3
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.
2012-02-16solver: record repository tag, and flags in solutionTimo Teräs1-3/+11
name state could get overwritten later, so we can't use that when generating the changeset.
2012-02-15solver, db: repository pinning improvementsTimo Teräs1-1/+1
* solver internally calculates now using tags; not repository masks * installeddb now contains the tag name where the package came from -> we can now handle upgrades properly * the pinning is still a preference, and not strictly enforced; versioned dependencies may overrule preference
2012-01-13add: make repository tag pinning strongerTimo Teräs1-0/+1
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.
2011-09-16solver: inheritable solver flagsTimo Teräs1-1/+2
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.
2011-09-14solver: make state pointers completely internalTimo Teräs1-2/+0
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.
2011-09-14solver, db: run triggers in dependency orderTimo Teräs1-0/+2
fixes #738
2011-09-13all: update copyright year statementTimo Teräs1-1/+1
2011-09-13solver: add per-name specific flags, and fix the fix appletTimo Teräs1-0/+2
2011-09-09del: fix recursive deletion and messages (after solver merge)Timo Teräs1-1/+7
Deduce the world dependencies to remove locally, and same for the additional messages about packages not deleted.
2011-09-09applets: start using solver codeTimo Teräs1-6/+13
still todo: - 'fix' is missing - 'del -R' does not work - 'upgrade' does not do self-upgrade first ... and a lot of testing.
2011-08-01solver: generate proper error messagesTimo Teräs1-1/+1
* 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
2011-07-26solver: new package selection logic (which is not yet used)Timo Teräs1-0/+33
* 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