aboutsummaryrefslogtreecommitdiffstats
path: root/src/apk_database.h
Commit message (Collapse)AuthorAgeFilesLines
...
* all: update copyright year statementTimo Teräs2011-09-131-1/+1
|
* applets: start using solver codeTimo Teräs2011-09-091-8/+5
| | | | | | | | | still todo: - 'fix' is missing - 'del -R' does not work - 'upgrade' does not do self-upgrade first ... and a lot of testing.
* dot: applet to generate the dot attributed graph language filesTimo Teräs2011-07-241-0/+1
| | | | | | | | | | | | 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
* apk_database: add APK_DEFAULT_ARCH for ppc, ppc64 and arm portsWilliam Pitcock2011-07-161-0/+6
|
* apk_database: move APK_DEFAULT_ARCH to headers so that we can use it in ↵William Pitcock2011-07-161-0/+10
| | | | version().
* db: more fix for read-only cache remountingTimo Teräs2011-05-271-1/+0
| | | | | remount to read-write before trying to create the cache directory subdirs. fix a fd leak that might prevent remounting back to rw.
* db: Allow override arch when using --rootNatanael Copa2011-04-141-0/+1
| | | | | | | This is so we can do x86 --root installs on x86_64 hosts. Using --arch without --root can make great damage so we only enable it if --root is used.
* fetch: fix fetching of packages with archTimo Teräs2011-04-071-0/+3
|
* db, cache: automatically remount cache read-write when neededTimo Teräs2011-03-161-0/+3
| | | | | | .. and back to read-only after finishing with modifications. fixes #512
* db: handle arch similarly to stable branchTimo Teräs2011-03-161-1/+1
| | | | | if package arch is not set, do not append anything to repository. if arch is set, it is appended to repository.
* pkg: recognize install_ifTimo Teräs2011-01-041-0/+1
| | | | | | | | Parse install_if from package metadata and include it in the indexes. Also setup the reverse install_if dependencies when loading a database. ref #443. Actual install_if functionality is not yet implemented.
* pkg, db: allow index with unsupported features to be loadedTimo Teräs2011-01-031-1/+3
| | | | | | Just disable installation of packages using the new stuff. Also flag lower case package info fields as non-critical and allow installation even if that features is not supported.
* various: use 'atoms' for certain package field and misc fixesTimo Teräs2010-12-141-1/+2
| | | | | | | - implement a hash table for commonly shared fields such as license, version and architecture - use macroes to print blobs or pkgname-pkgver strings - fix some old cruft
* pkg, db: add preliminary support for arch fieldTimo Teräs2010-12-141-1/+1
| | | | | | | Architecture is now: - parsed from .PKGINFO - written to index and installed db - appended to repository URL when fetching files
* db: remove support for unsigned repository indexTimo Teräs2010-12-101-1/+1
| | | | Unsigned indexes should not be needed anymore anyway.
* db: fix hash lookups on 64-bit machinesTimo Teräs2010-11-231-1/+1
| | | | | | The hash is 'unsigned long' everywhere which is 64-bits (on 64-bit boxes). Fix the one instance of it being 'unsigned int' since that would be 32-bit and cause lookup failures on 64-bit boxes.
* io, db: id cache should be specific to database root, not system rootTimo Teräs2010-10-081-0/+2
| | | | | Otherwise we end up using wrong uid/gid mappings when doing install to alternate system root. Fixes #434.
* db: make apk_wait a part of dboptsNatanael Copa2010-06-111-1/+2
|
* First steps for libapkNatanael Copa2010-06-111-1/+1
|
* fetch: do not include installed non-repository files in searchTimo Teras2010-03-041-8/+11
| | | | | we do not create mirror repositories from other valid repositories, not from what was installed locally.
* index, version: support for repository descriptions (fixes #141)Timo Teras2009-09-031-0/+2
| | | | | ability embed description information to repository indexes (e.g. repository name and version) and show it via "apk version -I".
* add: refuse to add bad dependencies to worldTimo Teras2009-08-131-2/+3
| | | | | allow also overriding old (possibly bad) world dependency. hopefully it's more bullet proof now.
* db: implement triggers (fixes #45)Timo Teras2009-08-131-5/+7
|
* db, pkg: separate structure for fields of installed packagesTimo Teras2009-08-121-0/+2
| | | | | | | this makes the database package entry smaller, and we propbably get more fields to installed_package later too. this cleans up the way scripts are stored and is a preparation for supporting triggers. some parsing for trigger meta-data. ref #45.
* db: prefer local repositories, and implement --no-networkTimo Teras2009-08-061-0/+3
| | | | this helps boots sequence when network is not available.
* all: implement database open optionsTimo Teras2009-08-061-4/+17
| | | | so user can override trusted keys directory and repositories file.
* fix: new applet to reinstall and fix packageTimo Teras2009-08-041-0/+1
| | | | | also makes it possibly to upgrade package without adding it to top-level deps. fixes #69.
* apk: use *at instead of chdir+normal file syscallTimo Teras2009-07-311-6/+6
| | | | | | | | this way we never change cwd, and relative filenames are always parsed consistently. this also helps filename construction in many places. this patch also changes '--root' to override location of all configuration to be in the new root. previously it depended on the file which one was used.
* audit: protection mask for "symlinks only"Timo Teras2009-07-301-0/+1
| | | | and use it for /etc/init.d by default. fixes #99.
* db: remove APK_NAME_VIRTUAL flagTimo Teras2009-07-241-1/+0
| | | | | use the package 'installed_size' == 0 as a test instead for dependency only packages.
* db: create cache index with non-repository packagesTimo Teras2009-07-241-0/+1
| | | | | this enables virtual packages and files specified from command line to work on non-harddisk installs.
* add: fixes to installing non-repository packageTimo Teras2009-07-221-0/+1
| | | | | make sure cache is enabled on non-permanent rootfs setups. some optimizations and fixes too.
* index: read also new style index filesTimo Teras2009-07-211-0/+1
|
* db: signed index loading (ref #46)Timo Teras2009-07-201-1/+2
| | | | prefer index in the new format as signed .tar.gz.
* various: new style index generationTimo Teras2009-07-161-1/+0
| | | | | | change the index generation to do old index, or the new style index where package identity is sha1 of control block and it's contained within an .tar.gz to allow signing in future.
* db: live with sha1 and md5Timo Teras2009-07-141-6/+8
| | | | this also convers scripts file to a tar archive.
* db: speed up fdb creationTimo Teras2009-07-141-2/+4
| | | | | avoid recalculating hashes, and store the lengths of names, so we can optimize some operations.
* hash: allow caching of hash valueTimo Teras2009-07-141-0/+1
|
* bstream: make tokenizable and load index using bstreamTimo Teras2009-07-141-1/+1
| | | | some fixes on index reading code too.
* db: removed apk_repository_update_all() as its no longer neededNatanael Copa2009-07-091-2/+0
| | | | We use APK_UPDATE_CACHE apk_flag instead.
* db: open flags revisitedTimo Teras2009-07-071-2/+8
| | | | | more fine grained control what to load, and rename some of the flags to be shorter.
* cache: new applet (ref #49)Timo Teras2009-06-291-0/+7
| | | | Administrative tool to download or delete files to/from the cache.
* db: cache packages (ref #49)Timo Teras2009-06-291-2/+3
| | | | | | | | | | | If /etc/apk/cache is a symlink to directory, a copy of all installed packages is stored there, and the index of remote repositories will be there instead of /var/lib/apk. This enables to reconstruct running system during boot. Left as todo: remove cached copy when the package is removed, and additional apk applet to download missing packages to cache and/or remove extra items.
* db: add function apk_repository_update_allNatanael Copa2009-06-191-0/+1
| | | | | | | | We might want to add an --update-index option to misc applets. For example: apk add --update-index -u package apk version --update-index
* add: support for virtual meta packagesNatanael Copa2009-05-141-0/+2
| | | | | | | | implements 'apk add --virutal metaname dep1 dep2...' where metaname will be an empy meta package with dep1 and dep2 as dependencies. This is useful to prevent abuild to add each makedepend to world which causes some headache when it comes to unintalling them after sucessful build.
* index: support for -d to delete packages from given indexNatanael Copa2009-05-121-0/+1
| | | | | | | | | The syntax is: apk index -d /path/to/APK_INDEX.gz pkg... It does not seem like its possible to remove packages in the db so we trick apk_db_index_write() by setting the repo to on-zero. It's still not perfect since it does not recalculate the dependencies.
* info: do not read the repositories as this tool only query the statedbNatanael Copa2009-04-211-0/+1
| | | | | | | | This allows you to query the state db even if you do not have write permissions in cache dir (which is needed if you have remote repositories) This should speed up things and save some memory if you have big and slow remote repositories.
* db: cache index files, 'update' appletTimo Teras2009-04-161-0/+3
| | | | | | Cache non-local index files always locally. Introduce 'update' applet to force refresh of cached index files. Fixes #19.
* fetch: new applet to download .apk filesTimo Teras2009-04-151-0/+1
| | | | Fixes #24.
* state: rework changeset calculation algorithmTimo Teras2009-04-141-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | Calculate changesets directly by stabilizating the package graph instead of recalculating the whole graph and then diffing (similar approach as seen in 'smart' package manager). The algorithm is not complete: defferred search space forking is missing. So you don't always get a solution on complex graphs. Benefits: - usually the search state tree is smaller (less memory used) - speed relational to changeset size, not database size (usually faster) - touch only packages related to users request (can work on partitially broken state; upgrades only necessary packages, fixes #7) Also implemented: - command prompt to confirm operation if packages are deleted or downgraded - requesting deletion of package suggests removal of all packages depending on the package being removed (you'll get list of packages that also get removed if you want package X removed) - option --simulate to see what would have been done (mainly for testing) - an untested implementation of versioned dependencies and conflicts A lot has changed, so expect new bugs too.