aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* pkg: add field for provides as 'p'Timo Teräs2012-02-242-2/+8
| | | | ref #574
* pkg, db: use 's' for source repository tags instead of 'p'Timo Teräs2012-02-243-4/+5
| | | | Will use 'p' for provides.
* verify: report only bad packages with -qTimo Teräs2012-02-241-2/+7
| | | | fixes #1010
* apk: do not enable automatically interactive mode with --simulateTimo Teräs2012-02-241-5/+13
|
* test: improve pinning testsTimo Teräs2012-02-2411-10/+89
|
* solver: fix output of broken dependenciesTimo Teräs2012-02-231-1/+1
|
* test: rewrite the testing framework to use the real appletsTimo Teräs2012-02-2357-346/+279
| | | | also merge the expected output to the *.test files.
* pkg: fix writing of versioned conflictsTimo Teräs2012-02-231-1/+1
|
* db: keep architecture in $ROOT/etc/apk/archTimo Teräs2012-02-233-8/+54
| | | | This we use proper arch in case modifying chroot installation.
* solver: report size difference in kibi- or mebibytesTimo Teräs2012-02-231-5/+11
|
* apk: /etc/apk/interactive enables interactive mode for tty sessionsTimo Teräs2012-02-231-1/+4
| | | | | | | In case someone prefers extra quesions while running apk in a terminal. The file is always from the real root; not from --root so that we will not accidentally enable interactive mode when in initramfs bootstrap.
* audit, db: add etc/apk/protected_files.d and new audit featuresTimo Teräs2012-02-235-187/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | fixes #607. audit is now mostly rewritten for the new functionality. And has new features like --check-permissions, --recursive and --packages. $ROOT/etc/apk/protected_files.d/*.list can now contain additional protected paths, one path per line: +etc @etc/init.d -tmp + will include the directory as protected configuration directory. @ considers the directory protected, but will backup only symlinks. - removes any protection lbu should be modified to put include and exclude paths in etc/apk/protected_files.d/lbu.list. Additionally, some packages might provide their own listings. E.g. ssh might want to provide ssh.list with something like: +root/.ssh +home/*/.ssh
* db: fix repositories.d to be loaded only without --repositories-fileTimo Teräs2012-02-221-3/+7
|
* db, io: load repositories also from etc/apk/repositories.d/*.listTimo Teräs2012-02-225-20/+39
| | | | | Load additional repositories from $ROOT/etc/apk/repositories.d/*.list unless --repositories-file is given as parameter.
* solver: lock early names that have only single option leftTimo Teräs2012-02-221-3/+13
| | | | care is needed to get the score right.
* solver: lazily update name state in main loopTimo Teräs2012-02-221-171/+125
|
* solver: handle fix/reinstall betterTimo Teräs2012-02-221-30/+36
| | | | | | | | | | In case someone did "fix --force" for package for which we have no APK available, we would uninstall the package instead of silently ignoring the request. This could mean worse things. So now we just consider unavailable packages a bad deal for reinstall requests. And will downgrade if necessary. But if we really don't have any APK available, we just skip the request but report it.
* db: merge identical repositoriesTimo Teräs2012-02-221-5/+17
| | | | Just in case same repository is mentioned with different tags.
* solver: transitive dependency requiringTimo Teräs2012-02-221-12/+41
| | | | | | | | | | | If n+1 packages depend A, and A depend on B. Add n+1 dependencies to B. Otherwise if someone conflicts B, B might be left out. Leaving package unassigned is no longer a non-preferred action, this fixes the final test case that was failing. And with --force we might even install that scenario. Add also some debug checks.
* solver: remove dependency merging; it's not worth itTimo Teräs2012-02-221-77/+4
| | | | | | callgrind says it's more overhead than improvement. back jumping effectively prunes all bad trees. but can be added later if it becomes needed; due to e.g. provides support.
* db, solver, io: scan cache items at startupTimo Teräs2012-02-228-154/+207
| | | | | | It is faster to just scan the cache directory for existing packages at startup than trying to faccessat() them on demand. It also makes quite a few parts of the code more readable and simpler.
* solver: make apk_score a 64-bit int for speedTimo Teräs2012-02-211-9/+49
|
* solver: remove unneeded flagTimo Teräs2012-02-211-4/+1
|
* solver: implement backwards jumping and various other optimizationsTimo Teräs2012-02-213-151/+227
|
* solver: rewrite backtracking and scoring systemTimo Teräs2012-02-202-406/+695
| | | | | | | | | | | | | | | * properly do absolute scoring now, the previous scoring where preference could get reduced could have caused incorrect early pruning of search tree * backtracking is now separated from package state, and first branching point is the decision if a name is left unassigned or if something _has_ to be assigned. this allows multiple future search tree optimizations like handling of common dependencies early. * merge common dependency names early to provide deeper forward checking.
* apk: fix some unharmful leaks reported by valgrindTimo Teräs2012-02-173-9/+19
|
* solver: get rid of saved score in backtrackingTimo Teräs2012-02-171-41/+57
| | | | also, discover late if package is needed or not.
* solver: convert some package state flags to bitfieldsTimo Teräs2012-02-161-11/+13
|
* solver: name's unlocked chosen is always next package getting lockedTimo Teräs2012-02-161-35/+28
| | | | | | | Instead of "skipping" certain packages, we include them as-if required, and at expansion time we decide if they actually need to be considered for installation. This cleans up the expansion main loop a little bit and makes the code work together better.
* solver: rework internals a bitTimo Teräs2012-02-161-138/+190
| | | | | | | | * cleaned up little bit on the internal state machine * the decision applying mechanism now aborts early to avoid work if we are approaching bad solution candidate * package availability checking is now done on-demand; which could still be improved
* solver: fix allowed pinning calculationTimo Teräs2012-02-161-2/+2
|
* solver: record repository tag, and flags in solutionTimo Teräs2012-02-165-68/+113
| | | | | name state could get overwritten later, so we can't use that when generating the changeset.
* solver: remove an unneeded name state variableTimo Teräs2012-02-161-5/+0
|
* ver: handle pinned packages betterTimo Teräs2012-02-151-7/+36
|
* solver, db: repository pinning improvementsTimo Teräs2012-02-157-65/+91
| | | | | | | | * 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
* ver: by default show only upgradeable packagesTimo Teräs2012-02-141-0/+6
|
* audit: check dirent mode, uid and gid if requestedTimo Teräs2012-02-141-32/+71
|
* db: record file uid/gid/mode in installed dbTimo Teräs2012-02-143-5/+34
|
* db: allow directory to have sticky bit, and suid/sgid bits setTimo Teräs2012-02-101-1/+1
|
* db, fix: more secure way to choose effective directory permissionsTimo Teräs2012-02-103-11/+32
| | | | | And implement --directory-permissions for fix-applet to reset all directory uid, gid and modes.
* db: fix directory permissions recalculationTimo Teräs2012-02-101-5/+8
|
* db: smarter handling of directory owner, group and modeTimo Teräs2012-02-102-16/+73
|
* print: minimum screen width of 50Timo Teräs2012-02-101-2/+3
|
* blob: fix base64 decoding after previous optimizationsTimo Teräs2012-02-101-1/+1
|
* blob: optimize spn and cspnTimo Teräs2012-02-084-12/+112
|
* db: increase hash sizesTimo Teräs2012-02-081-4/+4
|
* blob: optimize digit and base64 decodingTimo Teräs2012-02-081-41/+110
|
* apk-tools-2.2.5v2.2.5Timo Teräs2012-02-021-1/+1
|
* db: do not abort on bad repositoriesNatanael Copa2012-02-011-5/+0
| | | | | | | Only show a warning if we have a non-existing repository or bad repository signature but don't abort. This is not to break compat with behaviour in previous releases.
* db: fix bug with --repositoryNatanael Copa2012-02-011-9/+9
| | | | | The 'r' variable is overwritten and no longer holds the repository number.