aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* lua: adapt to new APINatanael Copa2011-10-201-3/+4
| | | | Use new apk_blob_pull_dep instead of the old apk_dep_from_blob
* pkg: convert struct apk_install_package flags to bitfieldTimo Teräs2011-10-192-5/+3
|
* pkg: introduce "replaces_priority"Timo Teräs2011-10-193-11/+32
| | | | | | | | 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).
* pkg, info: remember installed packages "replaces"Timo Teräs2011-10-186-59/+119
| | | | | | | | | | | | | "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.
* solver: preference scoringTimo Teräs2011-10-142-76/+113
| | | | | Should now choose packages better if the best available version is uninstallable for some reason.
* solver: return error code if things fail during package installTimo Teräs2011-09-281-2/+1
|
* solver: evaluate penalty of unsatisfiable name earlyTimo Teräs2011-09-281-4/+16
| | | | | this prunes the search tree considerably and fixes a speed regression introduced in an earlier commit.
* pkg: fix dependency checking against non-installed packagesTimo Teräs2011-09-271-0/+5
| | | | the solver requires this.
* solver: fix backtrackingTimo Teräs2011-09-221-32/+33
| | | | | | We need to refresh all name states after backtracking as options that were excluding due to topology ordering might have become available.
* all: fix array size data type on 64 bitNatanael Copa2011-09-202-4/+4
| | | | | | | | | 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.
* solver: inheritable solver flagsTimo Teräs2011-09-165-31/+126
| | | | | | 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.
* fetch: reimplement -R after solver changesTimo Teräs2011-09-161-17/+11
|
* build: fix make install of shared lib and lua moduleNatanael Copa2011-09-161-2/+2
|
* lua: implement iterator with installed packagesNatanael Copa2011-09-151-5/+43
|
* lua: implement exists/is_installedNatanael Copa2011-09-151-0/+33
| | | | Tests whether given package string is installed
* lua: init fixesNatanael Copa2011-09-151-0/+3
| | | | | - call apk_atom_init() - if no open flag is specified, then default to read-only.
* lua: implement who_ownsNatanael Copa2011-09-151-0/+41
|
* lua: open and close dbNatanael Copa2011-09-151-2/+50
|
* lua: initial db_openNatanael Copa2011-09-151-1/+75
| | | | so far we just parse the db options
* solver: fix sorting when solver is used multiple times within runTimo Teräs2011-09-151-1/+2
| | | | | namely this fixes apk upgrade without --no-self-upgrade when the solver is called twice.
* lua: remove unneeded global varsNatanael Copa2011-09-141-4/+0
|
* build: support building lua module without shared libapkNatanael Copa2011-09-141-3/+4
| | | | Use the build option SHARED_LIBAPK for building shared.
* lua: typecast apk blob lenNatanael Copa2011-09-141-6/+13
| | | | So we can build with -Werror
* solver: make state pointers completely internalTimo Teräs2011-09-145-41/+32
| | | | | | | 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.
* apk: remove unneeded global apk_screen_widthTimo Teräs2011-09-141-1/+0
|
* search: implement --exact and --allTimo Teräs2011-09-141-53/+76
| | | | | also optimize search to happen for enumeration of package names. fixes #39, fixes #560
* search: implement --origin to print origin package nameTimo Teräs2011-09-141-17/+32
| | | | fixes #714
* solver, db: run triggers in dependency orderTimo Teräs2011-09-146-15/+60
| | | | fixes #738
* upgrade: --no-self-upgrade optionTimo Teräs2011-09-142-6/+18
| | | | | Use it to avoid self-upgrade loops in case something fails during the initial upgrade attempt.
* upgrade: reimplement self-upgrade (after solver merge)Timo Teräs2011-09-143-17/+42
|
* all: update copyright year statementTimo Teräs2011-09-1340-40/+40
|
* solver: add per-name specific flags, and fix the fix appletTimo Teräs2011-09-135-48/+51
|
* upgrade: fix context allocationTimo Teräs2011-09-091-0/+1
|
* pkg: consider script failure as non-fatalTimo Teräs2011-09-091-2/+6
| | | | | Make a loud warning if the script returns failure, but do not abort installation sequence because of that.
* print: minor cleanup to indented writerTimo Teräs2011-09-095-20/+18
|
* del: fix recursive deletion and messages (after solver merge)Timo Teräs2011-09-093-22/+158
| | | | | Deduce the world dependencies to remove locally, and same for the additional messages about packages not deleted.
* test: fix for updated solver apiTimo Teräs2011-09-091-20/+14
|
* applets: start using solver codeTimo Teräs2011-09-0918-1353/+532
| | | | | | | | | still todo: - 'fix' is missing - 'del -R' does not work - 'upgrade' does not do self-upgrade first ... and a lot of testing.
* solver: report 'complete' solutions with errorsTimo Teräs2011-09-051-28/+27
| | | | | | 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.
* solver: reintroduce install_if supportTimo Teräs2011-08-181-46/+185
| | | | | | * 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
* solver: move topology sorting to solver codeTimo Teräs2011-08-056-105/+104
| | | | | this allows quite some optimizations to running time and memory requirements.
* solver: generate proper error messagesTimo Teräs2011-08-013-196/+248
| | | | | | | | | * 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: don't consider package that we can't haveTimo Teräs2011-07-271-2/+26
| | | | | Packages that need (re-)installation but which are not available, are excluded now properly.
* solver: permutate each preferred solution firstTimo Teräs2011-07-271-57/+55
| | | | The first found solution is the most preferred one then.
* test: don't crash if the expected files are not thereTimo Teräs2011-07-271-4/+8
|
* Makefile: make it possible to override pkg-config via PKG_CONFIGNatanael Copa2011-07-271-3/+4
|
* solver: new package selection logic (which is not yet used)Timo Teräs2011-07-266-3/+826
| | | | | | | | | | | | | * 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
* dot: applet to generate the dot attributed graph language filesTimo Teräs2011-07-243-1/+154
| | | | | | | | | | | | 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
* ver: database is not needed for version string checking and testsTimo Teräs2011-07-241-0/+2
|
* apk: improve indented printingTimo Teräs2011-07-225-20/+41
| | | | | * fixup the help messages to align up properly * refresh screen width on SIGWINCH