aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* adb: introduce apk-tools database format, and few appletsv3.0-wipTimo Teräs2020-04-0123-10/+2625
| | | | | | This is a flat buffers inspired format that allows fast mmaped access to the data with low overhead, signature support and relatively good forward support.
* db: fix database reading without scripts or triggersTimo Teräs2020-04-011-6/+10
| | | | | | | | | | | | | Most notably this happens after blank database is initialized with --initdb, but can happen also in other conditions. The error checking changes modified behaviour if the file does not exist. Explicitly check for ENOENT and ignore it. But the behaviour is improved from earlier as now e.g. EPERM will be detected and reported correctly. Fixes #10679 Fixes: 6da3e8eb15 "istream, archive, db: convert db and tar function to use istream"
* build: add apk.pc.inRasmus Thomsen2020-03-231-0/+10
|
* lower min-width to 25 columnsAntoine Fontaine2020-03-211-1/+1
| | | | | | | | | | | | Some screen size are quite small. For example, the default phosh terminal is less than 50 character wide on Pinephone. This lowers the minimum loading bar size to 25 characters. For comparison, 25 character wide is just as wide as "apk add firefox linux-lts" without the quotes. Here's a bad picture to illustrate the result gitlab.alpine.org/uploads/48c20f746fbf685b62b6bd73585ecbf2/pinephone-phosh.png
* fix glibc buildTBK2020-03-211-0/+1
| | | | | | | | fixes #10677 src/apk_defines.h:152:15: error: unknown type name 'uint32_t' static inline uint32_t get_unaligned32(const void *ptr) ^~~~~~~~
* build: enable building of development packageRasmus Thomsen2020-03-161-39/+67
| | | | | | | | | - always create .so and .a with the apk libary code - create .pc file - install headers and above mentioned files Maintainers edit: merged commits, cleaned up sed script logic, and few other minor fixes.
* db: fix unaligned memory access in csum_hash()Timo Teräs2020-02-213-11/+13
|
* fix murmur3 hash unaligned memory accessTimo Teräs2020-02-171-29/+39
| | | | | - do not do unaligned accesses on non-x86 hardware - clean up the code a little bit
* rename all iostream source to io_*.cTimo Teräs2020-02-144-6/+7
|
* rename all applets sources to app_*.cTimo Teräs2020-02-1419-21/+25
|
* io: add stream copy helperTimo Teräs2020-02-143-8/+37
|
* defines: add typeof() as it's gcc built-inTimo Teräs2020-02-041-0/+4
| | | | Related to MR !15
* remove apk_time() as it is causing problems with shared objectsTimo Teräs2020-02-046-17/+10
| | | | | | | Instead, to make sure test mode produces same output, redefine time() for the test mode binary. Reverts parts of 0b82bcc53e60.
* Update apk to make man pages sole source of truthDrew DeVault2020-01-2620-228/+107
| | | | | Detailed docs have been removed from the apk binaries, in favor of git-style short summaries of each command.
* add apk-manifest(8)Drew DeVault2020-01-261-1/+2
|
* don't use hardcoded checksum buffer sizesReid Rankin2020-01-252-5/+8
|
* document mysterious SHA-1 blob in database.cReid Rankin2020-01-251-0/+2
|
* don't ignore md parameter to apk_fileinfo_hash_xattr_array()Reid Rankin2020-01-251-1/+1
|
* db: additional clean up and hardening for apk extractionTimo Teräs2020-01-241-15/+16
| | | | | | | | This enforces all scripts to be in the control block, and all data files to be in data block. Ignoring of dot files in root is added back: packages without any real files will ship one ".dummy" item in the data block to trigger processing and validation to work.
* Harden signature verification processReid Rankin2020-01-242-29/+32
| | | | | | | | | | This mostly boils down to making sure control_started and data_started are consistently used to gate actions, instead of relying whether on file names start with a '.'. None of the weaknesses this fixes are exploitable, but they might have become so after changes to seemingly-unrelated code, so it's good to clean them up.
* Improve documentation of signature verification processReid Rankin2020-01-241-7/+19
|
* manifest: fix package file processingReid Rankin2020-01-241-4/+7
| | | | | | | | | This change ensures that apk_sign_ctx_process_file() and apk_sign_ctx_parse_pkginfo_line() are called during archive processing, allowing discovery of signatures and the data section checksum. Fixes a bug uncovered by commit f123d77e.
* io: use min() instead of MIN()Timo Teräs2020-01-111-5/+4
|
* archive: make apk_tar_parse check and close input streamTimo Teräs2020-01-115-54/+26
| | | | simplifies other code quite a bit
* io: convert bstream mmap to istream, remove the now obsolete bstream machineryTimo Teräs2020-01-112-244/+65
|
* convert remaining locations to use istream instead of bstreamTimo Teräs2020-01-118-156/+161
|
* istream, archive, db: convert db and tar function to use istreamTimo Teräs2020-01-118-156/+224
|
* istream: add buffering capabilityTimo Teräs2020-01-115-103/+109
| | | | | | | | | Convert all implementations to do buffering. This is in preparation to remove bstream interface as redundant. istream_read() will return full reads unless end-of-file. The backends can return short reads to optimize buffering or due to other reasons like boundary change for gz.
* archive: remove support for old packages without xattr checksumsTimo Teräs2020-01-116-52/+14
|
* remove obsolete md5.hTimo Teräs2020-01-101-60/+0
|
* database.c: drop GNU extension for fnmatchDrew DeVault2020-01-091-1/+1
| | | | The non-wildcard version of the function is case-sensitive anyway.
* io: remove the now unused pid association with istreamTimo Teräs2020-01-062-32/+8
|
* io: remove unused size parameter from bstream closeTimo Teräs2020-01-065-44/+34
|
* info: Remove short options for --install-if, --rinstall-ifMatthew McGill2020-01-051-4/+4
| | | | | | | | | | The "apk info" option --install-if, which had the short option -i, was being shadowed by the apk global option --interactive, which has the same short option. To fix this issue the short option for --install-if was removed, as has been done in other cases where an applet short option would be shadowed by a global short option. The short option for --rinstall-if was also removed for consistency, since it is the complement of --install-if.
* commit: make use of the apk_get_human_unit functionSören Tempel2020-01-051-11/+8
|
* Humanize size output of `apk info`Sören Tempel2020-01-053-4/+27
| | | | | | | | | | | This commits adds a function for receiving the closet byte unit and the size in that unit for a given size_t. The function doesn't return a string since dynamic memory allocation (or a static buffer) would be required to implement this properly. Discussion: It might be useful to add a command line flag for disabling this behaviour in order to retain compatibility with the previous apk info output format.
* lua: fix build and update to lua5.3Timo Teräs2019-12-302-16/+21
| | | | Fixes #8360
* del: report non-matching names and install-if rule non-deletionTimo Teräs2019-12-293-30/+39
|
* Revert "search: remove from APK_COMMAND_GROUP_QUERY"Timo Teräs2019-12-271-0/+1
| | | | | | | This reverts commit d379edd5bf960de8089b9f2083fc6f14b79e7bba. Requested multiple times. Let's enable this for now. For v3.0, we reconsider which applets to keep and remove the ones not needed.
* db: parse tabulator as repository separator charTimo Teräs2019-12-271-0/+1
| | | | Fixes #10662
* io: use proper base struct types for method implementationsTimo Teräs2019-12-185-86/+68
|
* upgrade: implement --ignore to exclude some packages from upgradenrybowski2019-12-124-4/+22
|
* Don't unpack files to system rootFredrik Gustafsson2019-11-221-1/+5
| | | | | | | | | When unpacking a file that is in root, it got a temporary file name /.apk... however if the --root option was used it should have the name root/.apk... otherwise unpacking will fail if the user does not have write access to /. Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com>
* add: always use UTC for virtual package versionsMax Rees2019-11-181-1/+1
|
* Make tests pass and introduce a memory leakFredrik Gustafsson2019-11-181-1/+1
| | | | | | | | Since 37fbafcd928c466c82c892a7868d686d710e5d07 the tests hasn't worked since a string on the stack was added as version for a virtual package. Instead create the version string on the heap and then simply leak it. A short running program as apk shouldn't need to worry about memory leaks.
* add: fix virtual package id generationTimo Teräs2019-07-021-16/+35
| | | | | | | | | | | Fixes 37fbafcd by adding more input to the hash than just second grained time stamp - collisions would happen when running apk scripted. For virtual package the hash works only as unique identifier, so try to add elements that should make it unique in most cases. Fixes #10648
* print usage and exit with error on invalid argumentsTimo Teräs2019-06-051-6/+3
| | | | | | | Add also some testing to make sure help, long help and handling of invalid arguments works as expected. Based on pull request #19 originally by Laurent Arnoud (@spk).
* fix all applets to return -ENOTSUP if it's unrecognizedTimo Teräs2019-06-055-5/+5
| | | | | | The return -1 seems to have been left over from earlier code, and could have been treated as -EPERM. This helps to fix the other command line handling that potentially require changing.
* solver: fix common dependency merging to inherit pinning and flagsTimo Teräs2019-06-051-3/+7
| | | | | | Notably this fixes occasional issues when doing upgrade with multiple versions of same packages. Without this the upgrade flag is not always propagated properly down the dependency chain.
* use fixed system time in test mode to have fixed test outputTimo Teräs2019-06-035-4/+16
| | | | fixes test suite regression from previous commit