aboutsummaryrefslogtreecommitdiffstats
path: root/src/commit.c
Commit message (Collapse)AuthorAgeFilesLines
* commit: make use of the apk_get_human_unit functionSören Tempel2020-01-051-11/+8
|
* don't report virtual packages as maskedTimo Teräs2018-11-021-1/+1
|
* inhibit printing same 'required by' dependency multiple timesTimo Teräs2018-11-021-0/+5
| | | | | this would happen if same package matched multiple times due to multiple provided names.
* rework unpacking of packages and harden package file format requirementsTimo Teräs2018-09-101-2/+2
| | | | | | | | | | | | | | | | | | | A crafted .apk file could to trick apk writing unverified data to an unexpected file during temporary file creation due to bugs in handling long link target name and the way a regular file is extracted. Several hardening steps are implemented to avoid this: - the temporary file is now always first unlinked (apk thus reserved all filenames .apk.* to be it's working files) - the temporary file is after that created with O_EXCL to avoid races - the temporary file is no longer directly the archive entry name and thus directly controlled by potentially untrusted data - long file names and link target names are now rejected - hard link targets are now more rigorously checked - various additional checks added for the extraction process to error out early in case of malformed (or old legacy) file Reported-by: Max Justicz <max@justi.cz>
* split --force to several --force-[type] optionsTimo Teräs2018-01-031-2/+4
| | | | | | | | | This unloads --force as several of the things are really not wanted together. E.g. --force-refresh is a lot different from --force-broken-world and doing --force to get the other might introduce unwanted behaviour. --force is still kept for backwards compatibility and it enables most things --force was used for.
* add new flag --no-commit-hooksHenrik Riomar2018-01-031-0/+4
| | | | | | | | This flag skips running hook scripts This flag *must* be used during initramfs tmpfs initial install. The reason that this new flag is needed is that the hooks will currently always fail as musl and /bin/sh is missing at this stage on diskless.
* commit: properly analyze packages with provides="$pkgname"Timo Teräs2018-01-021-1/+2
|
* commit: proper singular/plural for 'error(s)' in commit messageTimo Teräs2017-08-231-1/+2
| | | | based on github pull request #5
* use labs istead of abs with long argumentDmitry Golovin2017-08-231-1/+1
|
* commit: include limits.h for PATH_MAXNatanael Copa2017-03-061-0/+1
| | | | this fixes build on ppc64le
* commit: fix to work if commit_hook.d directory does not existTimo Teräs2017-02-271-2/+2
|
* commit: log parameter passed to a hook scriptHenrik Riomar2017-02-161-1/+1
|
* add support for pre and post commit hooksHenrik Riomar2017-02-151-1/+38
| | | | | | | 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.]
* upgrade: improve self upgrade functionality a bitTimo Teräs2016-07-221-1/+1
| | | | trigger it only if apk-tools can be upgrade, add test cases
* commit: self-conflict error and satisfies printingTimo Teräs2015-12-101-5/+13
| | | | | | - self-conflicts when the exact same version of a name is provided twice is now properly detected and diagnozed - don't print redundant satisfies diagnostic
* commit: return failure if there are any errorsNatanael Copa2015-04-071-1/+1
| | | | fixes #4019
* db: rework directory permission handlingTimo Teräs2014-10-071-0/+1
| | | | | | | | | | | | | | | | | | 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
* solver: fix installation of non-repository packages during tmpfs bootTimo Teräs2014-05-191-0/+3
| | | | | allow packages in the cache's installed to be selected for installation by the solver. add test case for the issue.
* commit: fix segfaultNatanael Copa2013-08-051-1/+1
| | | | apk would try run the trigger even if package failed to install.
* commit: don't ask questions if simulatingTimo Teräs2013-08-031-9/+9
|
* commit: fix another re-installing misspelling to reinstallingTimo Teräs2013-06-211-1/+1
|
* commit: fix ssize_t printingTimo Teräs2013-06-201-4/+5
|
* commit, db: make file conflicts and script errors non-fatalTimo Teräs2013-06-201-19/+33
| | | | fixes #1482
* solver: fix package deletion to consier provides properlyTimo Teräs2013-06-191-3/+2
|
* all: few behavioural regression fixesTimo Teräs2013-06-191-1/+1
| | | | | | | | | Wildcard matching with no names should match all packages only for info and search applet. "apk del" would otherwise try to delete everything, etc. Fix also interactive mode to ask questions only if we are actually changing something.
* print: move progress bar update logic to apk_print_progressNatanael Copa2013-06-191-14/+5
| | | | | | | | | | | | | | | | | | | - let the apk_print functions deal with the forced print itself. We avoid that the callbacks need to deal with the force flag. We can also get rid of the APK_PRINT_PROGRESS_* defines. - let the reader of --progress-fd decide how often things are updated rather than having a fixed granularity off 1/100 (percent) - avoid detect screen size and percent/bar calculations in case the --no-progress was given - track satistics for both the ascii bar and percent info and update bar only if either percent or bar changes. This makes the bar go smoother when width is wider than 100 chars and it makes the percent counter go smooth when screen width is less thann 100 chars. It also simplifies the callbacks as they no longer need to deal with update granularity.
* upgrade: new option: --latest (-l)Timo Teräs2013-06-191-6/+11
| | | | | | | | | | | | | Select latest version of package (if it is not pinned), and print error if it cannot be installed due to other dependencies. Together with --available, it selects the latest package which is present at least in some repository. This also fixes few solver issues with ordering of package selection that got quite apparent with this flag. Namely, we cannot "lock" a package until it's reverse dependencies are locked or not all of the solver flags are propagated properly.
* errors: fix a test case, and misanalysis of certain namesTimo Teräs2013-06-181-0/+2
| | | | | | the pinning11 changed when @repo got the leading @ on error messages. analyze_dep() now properly ignores conflict dependencies, as those names are usually intentionally left unassigned.
* db: store repository tag names including leading @Timo Teräs2013-06-181-17/+10
|
* errors: improve analysis for virtual packagesTimo Teräs2013-06-181-11/+24
| | | | | if all packages named N provide the virtual package, list only the name N instead of all packages providing it.
* all: various conversions to foreach_array_item, and simplifications of codeTimo Teräs2013-06-181-15/+9
|
* io: get rid of APK_PROGRESS_SCALETimo Teräs2013-06-171-5/+3
| | | | | no need to muldiv all the time, just pass the current amount of bytes done, and let callbacks use that directly.
* cache: implement progress bar (ref #1170)Timo Teräs2013-06-171-3/+4
|
* print: move progress printing to common functionsTimo Teräs2013-06-171-34/+4
|
* errors: detect self-conflicts properlyTimo Teräs2013-06-141-4/+6
| | | | | and add the provided version information to the conflicts. fixes the final test case that was broken. hooray.
* solver, errors: fix few additional test cases and clean upsTimo Teräs2013-06-131-2/+2
|
* pkg: add global reverse dependency iterator helpers and use themTimo Teräs2013-06-131-58/+10
| | | | ... in the error printing and the package deletion.
* errors: rewrite the logic how errors are reportedTimo Teräs2013-06-131-102/+255
| | | | | | | Instead of the dependency oriented logic, switch to print them for each package or name needed. Might give a bit more readable errors now. There's still few corner cases that proper error is not output, which are cought by the test cases.
* solver: prune broken world dependencies with --forceTimo Teräs2013-06-131-9/+3
| | | | mostly useful for reboot, when all packages are not available.
* solver: rewrite as deductive solver -- pinning supportTimo Teräs2013-06-131-1/+1
| | | | Fix also pinning test cases to be more sane.
* solver: rewrite as deductive solver -- per name flagsTimo Teräs2013-06-131-7/+12
| | | | | Handle properly per-name preference flags, and add test cases for testing those via fix applet.
* solver: rewrite as deductive solver -- core featuresTimo Teräs2013-06-131-0/+547
Implementing basic dependency handling, install_if and awareness of pinning.