summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2012-01-17solver, upgrade: properly detect missing repository tagsTimo Teräs5-25/+32
* 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
2012-01-17upgrade: make -a reset versioned dependencies like it used toTimo Teräs1-2/+21
regression from upgrade to the new solver system.
2012-01-17solver: fix change ordering of removed pages in relation to installedTimo Teräs1-5/+6
2012-01-17solver: calculate branch minimum penalty earlyTimo Teräs1-55/+97
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.
2012-01-17db: print dependencies referring to missing tags instead of tagsTimo Teräs1-6/+11
2012-01-16db: fix loading of world after previous commitsTimo Teräs1-3/+3
2012-01-13add: make repository tag pinning strongerTimo Teräs3-9/+21
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.
2012-01-12db: support line feed as 'world' dependency separatorTimo Teräs8-57/+70
* default writing the world with spaces if a space is found (for backwards compatibility) for now
2012-01-12solver: print repository tag when committing package changesTimo Teräs3-9/+34
2012-01-12db, solver: refuse committing changes if there is missing tagsTimo Teräs3-1/+20
2012-01-12add: fail if repository tag does not existTimo Teräs1-1/+9
2012-01-06pkg: fix writing of deps with tag and version specifierTimo Teräs1-4/+4
It is really name(@tag)(>=version).
2012-01-06add: print an error about malformed argumentsTimo Teräs1-1/+4
2012-01-06info: display short info if packages are givenNatanael Copa1-0/+10
instead of just list all installed package
2012-01-06test: fix printf of size_t for 64 bitNatanael Copa1-1/+1
2012-01-06db: properly detect when pkg install trigger needs executingTimo Teräs1-1/+1
call apk_pkg_install() and hlist_tail_ptr() only once. the latter is O(n) and can get very slow.
2012-01-06common: fix apk_array copying, and additional size_t fixesTimo Teräs2-2/+5
2011-12-27solver: report number of (mega)bytes usedTimo Teräs4-18/+31
2011-12-27update: report number of distinct packages availableTimo Teräs1-0/+3
2011-12-24info: -e and -W operate on database only (repos not needed)Timo Teräs1-0/+2
.. so do not load them.
2011-11-23solver: fix error detection for certain unsatisfiability casesTimo Teräs1-2/+46
did not properly detect as error if name could not be satisfied due to being available in tagged repository which is not enabled.
2011-11-01solver: fix zero score comparisonTimo Teräs1-1/+1
2011-11-01solver: return changeset even for partial solutionsTimo Teräs1-12/+8
otherwise --force does might not work during boot.
2011-11-01solver: consider world dependencies to determining exit scoreTimo Teräs1-2/+4
2011-10-31cache: fix downloadTimo Teräs1-1/+1
2011-10-31solver: misc fixesTimo Teräs1-9/+22
caused upgrading package X with "apk add path/to/x...apk" where the package file was not in any repository to not work properly.
2011-10-29solver: fix indentation of package lists (in interactive mode)Timo Teräs1-1/+1
broken in commit bfd53b59d2e62e17 (print: minor cleanup to indented writer).
2011-10-29solver, db: implement repository pinningTimo Teräs8-54/+145
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
2011-10-24solver, pkg: implement versioned conflictsTimo Teräs5-20/+21
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.
2011-10-20lua: adapt to new APINatanael Copa1-3/+4
Use new apk_blob_pull_dep instead of the old apk_dep_from_blob
2011-10-19pkg: convert struct apk_install_package flags to bitfieldTimo Teräs2-5/+3
2011-10-19pkg: introduce "replaces_priority"Timo Teräs3-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).
2011-10-18pkg, info: remember installed packages "replaces"Timo Teräs6-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.
2011-10-14solver: preference scoringTimo Teräs2-76/+113
Should now choose packages better if the best available version is uninstallable for some reason.
2011-09-28solver: return error code if things fail during package installTimo Teräs1-2/+1
2011-09-28solver: evaluate penalty of unsatisfiable name earlyTimo Teräs1-4/+16
this prunes the search tree considerably and fixes a speed regression introduced in an earlier commit.
2011-09-27pkg: fix dependency checking against non-installed packagesTimo Teräs1-0/+5
the solver requires this.
2011-09-22solver: fix backtrackingTimo Teräs1-32/+33
We need to refresh all name states after backtracking as options that were excluding due to topology ordering might have become available.
2011-09-20all: fix array size data type on 64 bitNatanael Copa2-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.
2011-09-16solver: inheritable solver flagsTimo Teräs5-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.
2011-09-16fetch: reimplement -R after solver changesTimo Teräs1-17/+11
2011-09-16build: fix make install of shared lib and lua moduleNatanael Copa1-2/+2
2011-09-15lua: implement iterator with installed packagesNatanael Copa1-5/+43
2011-09-15lua: implement exists/is_installedNatanael Copa1-0/+33
Tests whether given package string is installed
2011-09-15lua: init fixesNatanael Copa1-0/+3
- call apk_atom_init() - if no open flag is specified, then default to read-only.
2011-09-15lua: implement who_ownsNatanael Copa1-0/+41
2011-09-15lua: open and close dbNatanael Copa1-2/+50
2011-09-15lua: initial db_openNatanael Copa1-1/+75
so far we just parse the db options
2011-09-15solver: fix sorting when solver is used multiple times within runTimo Teräs1-1/+2
namely this fixes apk upgrade without --no-self-upgrade when the solver is called twice.
2011-09-14lua: remove unneeded global varsNatanael Copa1-4/+0