summaryrefslogtreecommitdiff
path: root/src/apk_database.h
AgeCommit message (Collapse)AuthorFilesLines
2012-09-20apk: implement --progress-fd to write progress to a specified fdTimo Teräs1-2/+2
2012-07-16audit: fix protection mask of non-db directoriesTimo Teräs1-0/+2
If a directory has protection mask, but does not exist in db, we do not handle it right unless we calculate the protection mask by hand, or create temporary db dir entry for it. For simplicity create always the db dir entry -- depending on audit type we likely need to create it anyway. This commit also caches the db dir entry in the audit tree context to avoid duplicate lookups. ref #1241.
2012-02-29solver: merge apk_name_state to apk_nameTimo Teräs1-13/+9
apk_name_state is now quite small; and we avoid overhead of two pointers (+ malloc overhead) when we just make it part of apk_name. It also fixes some problems (that got introduced) where apk_name_state was not allocated.
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.