summaryrefslogtreecommitdiff
path: root/src/apk_defines.h
AgeCommit message (Collapse)AuthorFilesLines
2023-01-17apk_defines: use unsigned operand in BITDaniel Kolesa1-1/+1
This fixes undefined behavior at least in database, where BIT is used with 31 (as APK_MAX_REPOS is 32) which is not representable with a signed integer.
2022-12-23defines: fix UB in get_unaligned32Daniel Kolesa1-1/+1
2021-12-14applet: rework APK_DEFINE_APPLET to use constructor attributeAriadne Conill1-0/+1
this allows the applet registration to work in a portable way, without having to weird things with the linker. ref #10794 [TT: rebased for 2.12]
2021-07-25io_archive: Use SOURCE_DATE_EPOCH for meta files instead of current timekpcyrd1-0/+2
[TT: minor stylistic changes]
2021-07-23db: allow read-only operations without cacheTimo Teräs1-0/+1
fixes #10748
2021-02-07db: consider control characters in filename as maliciousTimo Teräs1-0/+2
Especially a newline can produce havoc in the database file as the filename is written there as-is. This hardenes the extraction to consider any control character as malicious. Additional hardening is added to database loading to better detect corrupt state and return proper error code about it. Reported-by: Luca Weiss <luca@z3ntu.xyz>
2021-01-11database: Propagate errors when loading an APKINDEXthibault.ferrante1-0/+1
In case of failure when loading an APKINDEX, no errors are propagated to the user which may uncorrectly interpret the current problem.
2020-05-17define APK_DEFAULT_ARCH for riscv32 and riscv64 targetsAriadne Conill1-0/+4
2020-05-07use SPDX-License-Identifier in source filesTBK1-3/+1
2020-03-21fix glibc buildTBK1-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) ^~~~~~~~
2020-02-21db: fix unaligned memory access in csum_hash()Timo Teräs1-0/+10
2020-02-04defines: add typeof() as it's gcc built-inTimo Teräs1-0/+4
Related to MR !15
2020-02-04remove apk_time() as it is causing problems with shared objectsTimo Teräs1-2/+0
Instead, to make sure test mode produces same output, redefine time() for the test mode binary. Reverts parts of 0b82bcc53e60.
2019-06-03use fixed system time in test mode to have fixed test outputTimo Teräs1-0/+3
fixes test suite regression from previous commit
2018-01-04enable automatic update of indexes controlled by --cache-max-ageTimo Teräs1-1/+0
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.
2018-01-03split --force to several --force-[type] optionsTimo Teräs1-2/+8
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.
2018-01-03add new flag --no-commit-hooksHenrik Riomar1-0/+1
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.
2017-12-15fix typo in MIPS byte-order apk_defines.hNils Andreas Svee1-1/+1
2017-12-11add detection of mips archsNils Andreas Svee1-0/+8
2017-06-01apk_defines: implement mulmod()William Pitcock1-0/+8
2017-01-17Add ppc64le entry in apk defines.Breno Leitao1-1/+3
Currently apk only knows about powerpc and ppc64. I am adding support for ppc64le. ppc64le is the based on the ABI v2, which defines the endianess as little, while ppc64 is based on the first 64-bits ABI.
2016-11-21add s390x headersTuan M. Hoang1-0/+2
2016-07-08detect aarch64 architecture and assign default name for itTimo Teräs1-2/+3
2015-12-07db: add support for --no-cacheNatanael Copa1-0/+1
Implement --no-cache. The index is read directly from network and not cached. This is useful for docker, where you install a set of packages and directly after purge the cache. (see https://github.com/gliderlabs/docker-alpine/blob/1fc9e59d1689fc4eaf930ec66389fe58062fccec/builder/scripts/apk-install) fixes #4905
2015-11-12add armv7 targetTimo Teräs1-0/+2
2015-04-24modifications for the previous commit in error message handlingTimo Teräs1-1/+2
forgot to --amend my changes
2015-04-22print.c: provide more detailed error messages if retrieving a package failsAlex Dowad1-0/+2
fetch_maperror() translates error codes returned by libfetch to our error codes. Handle those in apk_error_str(), returning error messages which advise the user of the most likely fix. A custom error code, EAPKSTALEINDEX, has been added for cases where retrieving a package fails due to a HTTP error 404 or similar. [TimoT: add also EAPKBADURL, as well as organize a bit better where the EAPKSTALEINDEX is generated]
2014-10-08io,url,db: support for if-modified-sinceTimo Teräs1-0/+6
2013-09-10apk: new option --no-scriptsTimo Teräs1-0/+1
to not run any per-package scripts. useful for managing buildroot when cross-compiling.
2013-09-05arch: use armhf for arm hardfloat eabiTimo Teräs1-2/+2
at least debian and musl do this, so let's go along with that.
2013-07-02defines: detect endianess on arm, for armelTimo Teräs1-0/+3
2013-06-17io: get rid of APK_PROGRESS_SCALETimo Teräs1-2/+1
no need to muldiv all the time, just pass the current amount of bytes done, and let callbacks use that directly.
2013-06-13errors: rewrite the logic how errors are reportedTimo Teräs1-0/+3
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.
2013-06-13solver: rewrite as deductive solver -- core featuresTimo Teräs1-3/+20
Implementing basic dependency handling, install_if and awareness of pinning.
2013-05-30db: unify handling of special packagesTimo Teräs1-1/+1
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.
2012-02-22db, solver, io: scan cache items at startupTimo Teräs1-0/+20
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-20solver: rewrite backtracking and scoring systemTimo Teräs1-0/+5
* properly do absolute scoring now, the previous scoring where preference could get reduced could have caused incorrect early pruning of search tree * backtracking is now separated from package state, and first branching point is the decision if a name is left unassigned or if something _has_ to be assigned. this allows multiple future search tree optimizations like handling of common dependencies early. * merge common dependency names early to provide deeper forward checking.
2012-01-06common: fix apk_array copying, and additional size_t fixesTimo Teräs1-0/+1
2011-09-20all: fix array size data type on 64 bitNatanael Copa1-1/+1
The array struct aligned size to 64 bit on x86_64 which caused bad things to happen. We use size_t to make sure the size element is correct regardless arch. Solution found by Timo.
2011-09-13all: update copyright year statementTimo Teräs1-1/+1
2011-09-09applets: start using solver codeTimo Teräs1-3/+6
still todo: - 'fix' is missing - 'del -R' does not work - 'upgrade' does not do self-upgrade first ... and a lot of testing.
2011-07-22apk: improve indented printingTimo Teräs1-1/+0
* fixup the help messages to align up properly * refresh screen width on SIGWINCH
2011-03-19apk: improve progress barTimo Teräs1-0/+1
* make it as wide as the screen * make sure it's drawn after package change * and draw it using ansi escapes in line buffered stderr
2011-01-01upgrade: perform upgrade of apk-tools first if availableTimo Teräs1-0/+1
Also re-exec's apk-tools to perform rest of the upgrade using the new apk-tools. This allows handling of new apk-tools features properly. Fixes #140.
2010-12-14pkg, db: add preliminary support for arch fieldTimo Teräs1-0/+1
Architecture is now: - parsed from .PKGINFO - written to index and installed db - appended to repository URL when fetching files
2010-06-11First steps for libapkNatanael Copa1-8/+1
2010-06-05all: rework how arrays workTimo Teräs1-18/+18
Instead of having a null pointer, use a dummy array which just says the array is empty. This helps in multiple places of the code which would otherwise need explicitly need to check first if the array exists. This has been cause of multiple seg.faults in the past as the array check is easily omitted. This also removes (or fixes) all existing checks accordingly.
2009-12-21apk: remove the unneeded --never-overwriteTimo Teras1-2/+1
turns out the logic does not work with overlays as expected due to busybox symlinks being unmanaged. remove the useless option.
2009-12-21apk: --overlay-from-stdinTimo Teras1-0/+1
get list of overlay files from stdin, so those do not get overwritten.
2009-11-06apk: add --never-overwrite flag (ref #197)Timo Teras1-0/+1
to never ever overwrite a while in the filesystem the user knows about. it gives the impression of extraction succeeding even though nothing was done. this is inteded to be used only for bootstrapping with overlay.