summaryrefslogtreecommitdiff
path: root/src/apk_database.h
AgeCommit message (Collapse)AuthorFilesLines
2012-02-24solver, dot: elementary provides fixesTimo Teräs1-2/+2
implementation is still not near finished, but now at least it can handle it to a minimum degree. many cases are not done right yet, though. ref #574.
2012-02-24all: introduce apk_provides and use it in apk_nameTimo Teräs1-1/+10
in preparation for provides support. implements also some dependency satisfaction helper routines. ref #574.
2012-02-23audit, db: add etc/apk/protected_files.d and new audit featuresTimo Teräs1-10/+19
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
2012-02-22db, io: load repositories also from etc/apk/repositories.d/*.listTimo Teräs1-1/+1
Load additional repositories from $ROOT/etc/apk/repositories.d/*.list unless --repositories-file is given as parameter.
2012-02-22db, solver, io: scan cache items at startupTimo Teräs1-20/+6
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.
2012-02-15solver, db: repository pinning improvementsTimo Teräs1-2/+6
* 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
2012-02-14db: record file uid/gid/mode in installed dbTimo Teräs1-3/+7
2012-02-10db: smarter handling of directory owner, group and modeTimo Teräs1-2/+4
2012-01-31pkg, db: fix signature checking for files without control partTimo Teräs1-1/+1
Also clean up handling of signature failures for index files.
2012-01-17solver, upgrade: properly detect missing repository tagsTimo Teräs1-1/+1
* 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-12db: support line feed as 'world' dependency separatorTimo Teräs1-0/+1
* 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äs1-0/+1
2012-01-12db, solver: refuse committing changes if there is missing tagsTimo Teräs1-0/+1
2011-12-27solver: report number of (mega)bytes usedTimo Teräs1-0/+1
2011-10-29solver, db: implement repository pinningTimo Teräs1-1/+8
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-09-14solver, db: run triggers in dependency orderTimo Teräs1-1/+1
fixes #738
2011-09-14upgrade: reimplement self-upgrade (after solver merge)Timo Teräs1-0/+1
2011-09-13all: update copyright year statementTimo Teräs1-1/+1
2011-09-09applets: start using solver codeTimo Teräs1-8/+5
still todo: - 'fix' is missing - 'del -R' does not work - 'upgrade' does not do self-upgrade first ... and a lot of testing.
2011-07-24dot: applet to generate the dot attributed graph language filesTimo Teräs1-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
2011-07-16apk_database: add APK_DEFAULT_ARCH for ppc, ppc64 and arm portsWilliam Pitcock1-0/+6
2011-07-16apk_database: move APK_DEFAULT_ARCH to headers so that we can use it in ↵William Pitcock1-0/+10
version().
2011-05-27db: more fix for read-only cache remountingTimo Teräs1-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.
2011-04-14db: Allow override arch when using --rootNatanael Copa1-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.
2011-04-07fetch: fix fetching of packages with archTimo Teräs1-0/+3
2011-03-16db, cache: automatically remount cache read-write when neededTimo Teräs1-0/+3
.. and back to read-only after finishing with modifications. fixes #512
2011-03-16db: handle arch similarly to stable branchTimo Teräs1-1/+1
if package arch is not set, do not append anything to repository. if arch is set, it is appended to repository.
2011-01-04pkg: recognize install_ifTimo Teräs1-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.
2011-01-03pkg, db: allow index with unsupported features to be loadedTimo Teräs1-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.
2010-12-14various: use 'atoms' for certain package field and misc fixesTimo Teräs1-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
2010-12-14pkg, db: add preliminary support for arch fieldTimo Teräs1-1/+1
Architecture is now: - parsed from .PKGINFO - written to index and installed db - appended to repository URL when fetching files
2010-12-10db: remove support for unsigned repository indexTimo Teräs1-1/+1
Unsigned indexes should not be needed anymore anyway.
2010-11-23db: fix hash lookups on 64-bit machinesTimo Teräs1-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.
2010-10-08io, db: id cache should be specific to database root, not system rootTimo Teräs1-0/+2
Otherwise we end up using wrong uid/gid mappings when doing install to alternate system root. Fixes #434.
2010-06-11db: make apk_wait a part of dboptsNatanael Copa1-1/+2
2010-06-11First steps for libapkNatanael Copa1-1/+1
2010-03-04fetch: do not include installed non-repository files in searchTimo Teras1-8/+11
we do not create mirror repositories from other valid repositories, not from what was installed locally.
2009-09-03index, version: support for repository descriptions (fixes #141)Timo Teras1-0/+2
ability embed description information to repository indexes (e.g. repository name and version) and show it via "apk version -I".
2009-08-13add: refuse to add bad dependencies to worldTimo Teras1-2/+3
allow also overriding old (possibly bad) world dependency. hopefully it's more bullet proof now.
2009-08-13db: implement triggers (fixes #45)Timo Teras1-5/+7
2009-08-12db, pkg: separate structure for fields of installed packagesTimo Teras1-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.
2009-08-06db: prefer local repositories, and implement --no-networkTimo Teras1-0/+3
this helps boots sequence when network is not available.
2009-08-06all: implement database open optionsTimo Teras1-4/+17
so user can override trusted keys directory and repositories file.
2009-08-04fix: new applet to reinstall and fix packageTimo Teras1-0/+1
also makes it possibly to upgrade package without adding it to top-level deps. fixes #69.
2009-07-31apk: use *at instead of chdir+normal file syscallTimo Teras1-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.
2009-07-30audit: protection mask for "symlinks only"Timo Teras1-0/+1
and use it for /etc/init.d by default. fixes #99.
2009-07-24db: remove APK_NAME_VIRTUAL flagTimo Teras1-1/+0
use the package 'installed_size' == 0 as a test instead for dependency only packages.
2009-07-24db: create cache index with non-repository packagesTimo Teras1-0/+1
this enables virtual packages and files specified from command line to work on non-harddisk installs.
2009-07-22add: fixes to installing non-repository packageTimo Teras1-0/+1
make sure cache is enabled on non-permanent rootfs setups. some optimizations and fixes too.
2009-07-21index: read also new style index filesTimo Teras1-0/+1