aboutsummaryrefslogtreecommitdiffstats
path: root/src/apk_solver.h
Commit message (Collapse)AuthorAgeFilesLines
* solver: inheritable solver flagsTimo Teräs2011-09-161-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.
* solver: make state pointers completely internalTimo Teräs2011-09-141-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.
* solver, db: run triggers in dependency orderTimo Teräs2011-09-141-0/+2
| | | | fixes #738
* all: update copyright year statementTimo Teräs2011-09-131-1/+1
|
* solver: add per-name specific flags, and fix the fix appletTimo Teräs2011-09-131-0/+2
|
* del: fix recursive deletion and messages (after solver merge)Timo Teräs2011-09-091-1/+7
| | | | | Deduce the world dependencies to remove locally, and same for the additional messages about packages not deleted.
* applets: start using solver codeTimo Teräs2011-09-091-6/+13
| | | | | | | | | still todo: - 'fix' is missing - 'del -R' does not work - 'upgrade' does not do self-upgrade first ... and a lot of testing.
* solver: generate proper error messagesTimo Teräs2011-08-011-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
* solver: new package selection logic (which is not yet used)Timo Teräs2011-07-261-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