------------------------------------------------------------------- Tue Feb 03 08:38:46 UTC 2026 - Martin Hauke - Update to version 3.0.4: * portability: do not include_next sys/random.h if its missing. * db: add O_DIRECTORY to opening database directory. * print: fix usage of va_list twice. * doc: document identity hash constraint used by "add file.apk" * print: fix apk_indent output to be logged if needed. * db: reset 'replaces' before reading v2 pkginfo. * solver: allow virtual provided package swap on del. * test: add test for replaces to function. * db: fix replaces to take ownership of files. * libfetch: increase password buffer to support long tokens. * db: check that unshare(CLONE_NEWNS) as root works. * db: always match package size in apk_db_get_pkg_by_name(). * progress io: propagate error code at close. ------------------------------------------------------------------- Sun Dec 21 10:44:56 UTC 2025 - Martin Hauke - Update to version 3.0.3: * package: fix memfd sealing. * io: do not close stdin. * process: do not depend on /dev/null. * db: print error if apk_process_init fails during script exec. ------------------------------------------------------------------- Mon Dec 15 08:24:10 UTC 2025 - Martin Hauke - Update to version 3.0.2: * applet: stylistic changes and some code reduction for help. * applet: Auto-detect help gzip/zlib compression. * db: fix chroot proc setup for scripts when in user namespace. * db, pkg: add fallback to not needing unshare() when running as root. * commit: dynamic unit for installed_bytes. * apk: fix compile when using C89. * mkpkg: implement --xattrs[=BOOL] to disable xattr recording. * io_url_libfetch: do not map error to zero. * package: add F_SEAL_EXEC to memfd script. * db: drop use of fexecve for scripts. * commit: don't sync with --simulate. ------------------------------------------------------------------- Wed Dec 03 19:07:56 UTC 2025 - Martin Hauke - Update to version 3.0.1: User facing changes: * Support for new package and index format: designed for improved security, performance and extensibility in future. + The index supports newer hash algorithms. + Supports for newer signature algorithms. + Supports for the zstd compression. + Designed to support additional features in the future, e.g. audit can verify all data in the installed database using original package signatures. * Compatibility related changes + Support for ftp urls in the libfetch backend has been removed + Support for the original "alpine v1" packages and for broken v2 packages from foreign tools has been removed. + Support for md5 hashes has been removed. + The package arch is now validated and must be compatible to install. See man page for etc/apk/arch. + The script output is now processed by apk, each output line is prefixed with * to disambiguate the script output from apk output. + The scripts are executed from a memfd if possible. This means $0 is no longer reliable method to determine the hook name. Use $APK_SCRIPT instead * Improved configuration and repository configuration + The repositories file format now supports definition and usage of variables. + Support for config file for default options (overriding configuration can be provided in APK_CONFIG specified file). + Various configuration files and repositories are now searched from etc/apk and lib/apk so distributions can provision defaults in lib/apk. * New commands: + To create packages mkpkg, to create index mkndx, to manage signatures adbsign and to dump the structure adbdump. + The new index format can index also old packages, and supports additional features such as --pkgname-spec which allows creating repositories with differing package naming scheme or even an index referring to different URL from where to download the packages. + A new query applet (a superset of info, list and search) is provided to interrogate the installed database and indexes. + Outputs human readable format in addition to json and yaml output. Other new features: + Write transactions are now logged to /var/log/apk.log, see also logfile configuration option. + apk add --initdb --usermode can create and manage chroot environments as a non-root user by using mount namespaces. + A new --cache-preload mode, which will first download all packages to cache, and only after start installing them. + A new --preupgrade-depends mechanism to allow distributions to mark certain packages to be "preupgraded". + Filesystem cache is now committed to disk if committing changes to non-containerized root system (see --sync=auto). + Support for packages with disk volumes managed by the OpenWRT uvol volume manager. Changes affecting building/packaging, and other note worthy changes: * Build should be done with the Meson build system + Support for additional configuration such as minimal build mode without package/index creation commands. + Support to execute wget for downloading files instead if the built-in libfetch http library (to avoid openssl dependency). + Support to use mbedtls crypto library instead of openssl for the signatures and hashing. * Python bindings for version comparison. * Rewritten options handling with support for yes/no and yes/no/auto options. * Numerous performance improvements, bug fixes, and code cleanups * Improved test suite. * Improved man pages. * Bash completion is automatically generated. - Run testsuite. ------------------------------------------------------------------- Wed Jun 18 12:15:09 UTC 2025 - Martin Hauke - Update to version 2.14.10: * apk-tools-2.14.10 * libfetch: allow obsolete date format in http timestamps * libfetch/http: reuse fetch_netrc_auth for http(s) * apk-tools-2.14.9 * apk, db: rework dbopts cache_max_age default handling * db: remove leftover fprintf * apk-tools-2.14.8 * info: fix -W with symlinks * update: make --update-cache and and 'update' behave the same * db: handle not found names in __apk_db_foreach_sorted_package * solver: fix name resolving order of pure virtual names * db: fix non-repository reverese dependency indexing * apk-tools-2.14.7 * solver: rework solver name ordering to fix install_if handling * build: use the VERSION directly as the soname * solver: make dependencies only packages selectable * doc: fix pre/post commit hook documentation * db: fix apk_cache_download to work with APK_SIGN_VERIFY_IDENTITY * apk-tools-2.14.6 * io: backport APK_ISTREAM_TEE_OPTIONAL from master * io: fix apk_istream_tee to handle error in from * hash: remove bad cast of delete_item to enumerator callback * Improve make test and run CI tests on x86 also * commit: use %llu and unsigned long long in printf instead of off_t * apk-tools-2.14.5 * fetch: validate downloaded package against repository * add: error when added constrain is broken * lua: expose more package fields * blob: stop parsing '=' as 0 when decoding digits * lua: use lua_Integer when appropriate * lua: fix memory leak from setting blobs * lua: safe cast from size_t to long * add: check version of virtual packages * use 2-argument static_assert form for older compilers * del: Don't show kept packages when --quiet is set * io: ignore fifos when reading xattr * io: use O_NONBLOCK when reading xattrs * db: preserve sha256_160 flag with a warning * db, solver: move name priority calculation to solver * test: fix provides repository format * commit: remove unused struct print_state member * db: fix a minor memory leak in triggers reset * solver: fix conflicts to prevent install_if trigger * commit: simulate installed packages * test: add provides test case from #10973 * commit: simulate installed bytes * dot, list: optimize --installed to not load repositories * del, solver: introduce and use solver hint to remove package * fetch: fix selecting concrete package in non-recursive mode * dot: don't error on missing conflict provider * db: remove unused field data_csum in struct install_ctx * doc: fix description of apk cache --upgrade * doc: apk(8): speak of world constraints * db: honor 'verify' mode in apk_cache_download() - Temporarily force usage of gcc13 on leap16- and TW-systems to workaround build failures. ------------------------------------------------------------------- Wed Jun 18 11:44:57 UTC 2025 - Martin Hauke - Update to version 2.14.10 * libfetch: allow obsolete date format in http timestamps. * libfetch/http: reuse fetch_netrc_auth for http(s). - Update to version 2.14.9 * apk, db: rework dbopts cache_max_age default handling * db: remove leftover fprintf - Update to version 2.14.8 * info: fix -W with symlinks * update: make --update-cache and and 'update' behave the same * db: handle not found names in __apk_db_foreach_sorted_package * solver: fix name resolving order of pure virtual names * db: fix non-repository reverese dependency indexing - Update to version 2.14.7 * solver: rework solver name ordering to fix install_if handling * build: use the VERSION directly as the soname * solver: make dependencies only packages selectable * db: fix apk_cache_download to work with APK_SIGN_VERIFY_IDENTITY - Update to version 2.14.6 * io: backport APK_ISTREAM_TEE_OPTIONAL from master * io: fix apk_istream_tee to handle error in from * hash: remove bad cast of delete_item to enumerator callback * Improve make test and run CI tests on x86 also * commit: use %llu and unsigned long long in printf instead of off_t - Update to version 2.14.5 * fetch: validate downloaded package against repository * add: error when added constrain is broken * lua: expose more package fields * blob: stop parsing '=' as 0 when decoding digits * lua: use lua_Integer when appropriate * lua: fix memory leak from setting blobs * lua: safe cast from size_t to long * add: check version of virtual packages * use 2-argument static_assert form for older compilers * del: Don't show kept packages when --quiet is set * io: ignore fifos when reading xattr * io: use O_NONBLOCK when reading xattrs * db: preserve sha256_160 flag with a warning * db, solver: move name priority calculation to solver * test: fix provides repository format * commit: remove unused struct print_state member * db: fix a minor memory leak in triggers reset * solver: fix conflicts to prevent install_if trigger * commit: simulate installed packages * test: add provides test case from #10973 * commit: simulate installed bytes * dot, list: optimize --installed to not load repositories * del, solver: introduce and use solver hint to remove package * fetch: fix selecting concrete package in non-recursive mode * dot: don't error on missing conflict provider * db: remove unused field data_csum in struct install_ctx * doc: fix description of apk cache --upgrade * doc: apk(8): speak of world constraints * db: honor 'verify' mode in apk_cache_download() ------------------------------------------------------------------- Sat Jun 22 09:12:45 UTC 2024 - Martin Hauke - Build lua module - Update to version 2.14.4 * db: fix creation of missing directories * index: do not print message if outputting file to stdout * pkg: accept broken fpm generated packages with a warning * pkg: allow multiple data sections with a warning * pkg: fix index speed regression * pkg: always use real digest, openssl-fips module crashes otherwise - Update to version 2.14.3 * io: fix gunzip mpart handling regression - Update to version 2.14.2 * list: fix -P with filter * verify: synchronize with git master * db: refactor apk_package.filename to index * pkg: clean up and simplify code * io: simplify mpart and error handling * io: fix apk_istream_get_max non-complete reads * doc: apk(8) document environment and libfetch config * doc: apk(8) add FILES section, speak of world constraints * list: consider only tag appropriate versions in upgradable * doc: add(8), del(8), world(5) speak of world constraints * doc: apk(8) document --force-broken-world better * pkg: reorder struct apk_package fields for size * doc: apk-search(8) is case insensitive * doc: mention /etc/apk/repositories.d/*.list * doc: fix tagged package explaination * doc: mention apk-world(5) in apk-del(8) and apk-add(8) * doc: mention apk-repositories(5) in apk-search(8) * hash: remove unused code * db: remove dynamic allocations from reverse name calculation * version: calculate installed column size dynamically * build: require gnu11 and guarantee assert.h included from apk_defines.h * db, selected applets: allow --arch to override database architecture * commit: consider install_if chains correctly in error analysis * solver: purge conflicts also via provided name * audit: fix reporting of directory db details - Update to version 2.14.1 * apk: remove empty arguments for add/del/dot/fix only * tar: set file mtime to package mtime in scripts.tar * db: calculate cache index hash from full url * doc: remove args from apk info --test and --check * doc: document -t short option for apk info * list: add support for --quiet to only print pkgname * apk-audit: exclude busybox-extras with --ignore-busybox-symlinks * apk-cache(5): add missing word * apk-repositories(5): fix cache path * libfetch: remove a set-but-not-uswed variable * libfetch: support EAI_ADDRFAMILY error, correct two error messages * doc/apk-policy: fix documentation about sort order * db, print: describe process exit status better * db: handle waitpid returning EINTR * commit: properly propagate install-if status in error analysis * define APK_DEFAULT_ARCH for loongarch targets * pkg: invalidate sorted installed packages cache on package uninstall * fetch: prefer fetching package with the concrete name * del: fix up previous commit * del: fix --rdepends ------------------------------------------------------------------- Sun Mar 10 19:34:23 UTC 2024 - Martin Hauke - Initial package, version 2.14.0