summaryrefslogtreecommitdiff
path: root/src/apk_database.h
AgeCommit message (Collapse)AuthorFilesLines
2023-04-12db, index: refactor index writingTimo Teräs1-1/+0
2023-04-11apk: add --force-missing-repositoriestt-stable-wipTimo Teräs1-0/+1
2023-04-11audit: add a new --full modeTimo Teräs1-0/+6
2023-04-11audit: add --protected-paths to override the audit exceptionsTimo Teräs1-0/+1
2023-04-11db, dot, fetch, info, list, search: support --from=FROMSPECTimo Teräs1-0/+1
Allow omitting loading of system installed database and system repositories for the commands that operate on package indexes only.
2023-04-11db, info: sort installed package based data by package nameTimo Teräs1-0/+5
2023-04-11db: case insensitive searchesTimo Teräs1-1/+1
fixes #10871
2023-04-11db, apps: sort packages by pkgname and pkgverTimo Teräs1-0/+17
This will also fix "search" to display one match from each principal pkgname group. "search -e vim" will now show both vim and gvim. fixes #10864 fixes #10777
2023-04-11db, apps: sort display results based on package namesTimo Teräs1-3/+13
2023-04-10cache: fix 'clean' to prune static cache alwaysTimo Teräs1-2/+2
Fix cache applet to prune the static cache which is used for index files if explicit caching is not enabled. fixes #10754
2022-12-28db: handle repository index update/opening errors more consistentlyTimo Teräs1-1/+4
Track separately autoupdate failure, and opening errors. And print only one error per index at maximum. This makes update with or without --no-cache consistent. Ignore errors from local paths as builders often refer to a local path that is being built, but might be non-existent when building the first package. ref #10726
2022-12-25solver: prioritize user specified action on mentioned packagesTimo Teräs1-0/+1
Force preference on the user specified action on commandline. This allows upgrading packages which would otherwise be kept back due to partial update preferring to keep top level dependency on the installed version. fixes #7531
2021-03-19database: do not chroot(".") unless actually necessaryAriadne Conill1-0/+1
If we use default root (/), then we do not have to chroot to run scripts. Use APK_NO_CHROOT flag for this scenario to avoid the chroot. This helps with using apk with bwrap and OSTree. Closes #10736. [TT: backported to 2.12-stable]
2020-05-19make the atom functions not use global stateTimo Teräs1-0/+2
This greatly helps with memory management on applications that may want to daemonize and open/close database several times. Also the lifetime and "owner" of memory for all data is now explicitly bound to owning struct apk_database, which might be helpful when writing language bindings. As side effect, the interned "atoms" are unique only within what apk_database, so comparing packages from different apk_database may not work as expected. Fixes #10697
2020-05-07use SPDX-License-Identifier in source filesTBK1-3/+1
2020-04-28apk: do not manage file ownership as non-root or when asked soFredrik Gustafsson1-0/+1
If apk is run as a non-root user, it's not possible to chown files. Maintainers note: minor wording changes on commit log and man page. Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com>
2020-01-11istream, archive, db: convert db and tar function to use istreamTimo Teräs1-1/+1
2018-11-12prefer selecting packages by their primary nameTimo Teräs1-0/+1
2018-07-18prevent automatic repository index update for 'apk del'Timo Teräs1-1/+2
ref #9063
2018-01-08auto-update index only when database is opened for writingTimo Teräs1-0/+1
2018-01-04enable automatic update of indexes controlled by --cache-max-ageTimo Teräs1-3/+4
This modifies apk cache for indexes to be automatically refreshed periodically without explicit 'update' or '--update-cache' usage. The default is to do if-modified-since request if the local copy is older than 4 hours. This age can be changed with --cache-max-age. Using --update-cache will change this age to 60 seconds to make sure the cached copy is relatively new. The small age is in order to try to avoid downloading indexes second time when apk-tools is upgraded and apk re-execs after self-upgrade. Accordingly using explicitly 'apk update' will now enforce --force-refresh and request the very latest index by requesting any potential http proxy to do refresh too.
2017-04-28db: separate init from openKaarle Ritvanen1-0/+1
2017-02-27fetch: fix --recursive mode to work with pure virtual packagesTimo Teräs1-0/+1
The virtual package provider still needs to be explicitly given on command line.
2017-02-27db: allow overriding cache locationTimo Teräs1-0/+1
2017-02-27db: mount /proc for --root if it's not mounted, use mount syscallTimo Teräs1-1/+2
musl c-library does not work properly without /proc, and potentially running the scripts need this.
2017-02-15add support for pre and post commit hooksHenrik Riomar1-0/+1
This allows for instance integration of etckeeper [TT: Reorganized code a bit, and modified to use single directory commit_hooks.d with argument for script of stage.]
2016-07-22upgrade: improve self upgrade functionality a bitTimo Teräs1-1/+1
trigger it only if apk-tools can be upgrade, add test cases
2015-06-11speed improvements for database openingTimo Teräs1-0/+1
resolve reverse dependencies after all packages have been loaded, and avoid traversing the reverse name lists. now that we use automatic virtual packages (soname, pkg-config, etc.) the reverse dependency chains can become considerable longer than what it was when the rdependency construction code was originally written.
2015-04-07update: return failure if any mirror update failedNatanael Copa1-0/+1
fixes #4040
2015-03-11calculate and store checksum of xattrsTimo Teräs1-0/+1
ref #3027
2015-01-30always save 'world' with line feedsTimo Teräs1-1/+0
using space was for backwards compatibility with apk-tools 2.2.2 and earlier (from January 2012)
2014-11-01make 'mode, uid, gid' triplet separate atomized structTimo Teräs1-7/+10
there are only few combinations for that triplet, and they occur multiple times reducing the struct sizes a bit. make sane defaults and prepare to not write defaults to disk to reduce on-disk installed db size.
2014-10-08rework option parsing to have a group structureTimo Teräs1-4/+4
Add also a new 'commit' group that is the common options for all applets that can commit package changes.
2014-10-07db: rework directory permission handlingTimo Teräs1-3/+7
Apk used to reset directory permissions always, but this is undesirable if user has modified the permissions - especially during tmpfs boot. Though, it is desirable to update the permissions when packaging has changed permissions, or a new package is installed and the merged permission mask / owner changes. Thus the new code updates the permissions only if: 1) We are booting and directory is not in apkovl 2) The directory is modified by a package install/remove/upgrade 3) The filesystem directory permission matched database Additionally "apk fix --directory-permissions" can be used to reset all directory permissions to the database defaults. Fixes #2966
2014-10-06index: fix warning about package names without providerTimo Teräs1-1/+1
It's real only if there's a package with actual dependency (conflicts and install_if dependencies do not count).
2014-03-12audit: include all files in etc/apk in overlayTimo Teräs1-4/+9
This implements a new protected path flag '!' to include always matching entries in the backup mode (overlay). This is also turned on for etc/apk to include everything there in overlay, because the full list of repositories and signing keys need to be in overlay - just getting them from a package is not enough during bootstrap.
2013-06-18policy: new appletTimo Teräs1-1/+1
to show different versions of package and the repositories from which it is available from.
2013-06-18db: store repository tag names including leading @Timo Teräs1-1/+1
2013-06-18fix, info, ver: perform wildcard matchingTimo Teräs1-7/+3
ref #511
2013-06-18apk: use string array in applet mains, separate apk_name_foreach_matchingTimo Teräs1-2/+11
2013-06-17cache: implement progress bar (ref #1170)Timo Teräs1-1/+2
2013-06-17print: move progress printing to common functionsTimo Teräs1-2/+2
2013-06-17db, cache: do not use cache/tmp for downloadsTimo Teräs1-1/+1
instead use prefix for temporary files.
2013-06-17db: refactor repository file constructionTimo Teräs1-11/+9
Fixes also 'fetch' applet to prefer copying/linking to files from cache if possible.
2013-06-13solver: rewrite as deductive solver -- core featuresTimo Teräs1-1/+3
Implementing basic dependency handling, install_if and awareness of pinning.
2013-05-30db: unify handling of special packagesTimo Teräs1-4/+4
make cache a special kind of repository, and automatically cache special packages (virtual packages, or ones installed from command line). add test cases for handling virtual packages. fixes #1617.
2013-05-29db, info: allow packages to install files/symlinks to rootTimo Teräs1-0/+3
fixes #1578
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.