Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package apk-tools for openSUSE:Factory checked in at 2025-12-18 18:32:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/apk-tools (Old) and /work/SRC/openSUSE:Factory/.apk-tools.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apk-tools" Thu Dec 18 18:32:56 2025 rev:4 rq:1323416 version:3.0.2 Changes: -------- --- /work/SRC/openSUSE:Factory/apk-tools/apk-tools.changes 2025-12-08 11:55:30.317386283 +0100 +++ /work/SRC/openSUSE:Factory/.apk-tools.new.1928/apk-tools.changes 2025-12-18 18:35:24.499584795 +0100 @@ -1,0 +2,17 @@ +Mon Dec 15 08:24:10 UTC 2025 - Martin Hauke <[email protected]> + +- 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. + +------------------------------------------------------------------- Old: ---- apk-tools-3.0.1.tar.xz New: ---- apk-tools-3.0.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ apk-tools.spec ++++++ --- /var/tmp/diff_new_pack.fYbUhN/_old 2025-12-18 18:35:25.163612688 +0100 +++ /var/tmp/diff_new_pack.fYbUhN/_new 2025-12-18 18:35:25.167612855 +0100 @@ -21,7 +21,7 @@ %define soname 3_0_0 %define libname libapk%{soname} Name: apk-tools -Version: 3.0.1 +Version: 3.0.2 Release: 0 Summary: Alpine package manager License: GPL-2.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.fYbUhN/_old 2025-12-18 18:35:25.211614704 +0100 +++ /var/tmp/diff_new_pack.fYbUhN/_new 2025-12-18 18:35:25.215614872 +0100 @@ -2,7 +2,7 @@ <service name="tar_scm" mode="manual"> <param name="url">https://git.alpinelinux.org/apk-tools</param> <param name="scm">git</param> - <param name="revision">v3.0.1</param> + <param name="revision">v3.0.2</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="versionformat">@PARENT_TAG@</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.fYbUhN/_old 2025-12-18 18:35:25.255616553 +0100 +++ /var/tmp/diff_new_pack.fYbUhN/_new 2025-12-18 18:35:25.259616720 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://git.alpinelinux.org/apk-tools</param> - <param name="changesrevision">982c9961ad9e71b4068911329c9d8121cedfd9f7</param></service></servicedata> + <param name="changesrevision">d093f7c198a64bff0cd58afeaf638909fda24ca8</param></service></servicedata> (No newline at EOF) ++++++ apk-tools-3.0.1.tar.xz -> apk-tools-3.0.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/.gitlab-ci.yml new/apk-tools-3.0.2/.gitlab-ci.yml --- old/apk-tools-3.0.1/.gitlab-ci.yml 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/.gitlab-ci.yml 2025-12-12 10:51:51.000000000 +0100 @@ -20,7 +20,9 @@ - meson test -C build - install -s -m0755 build-static/src/apk build-static/src/apk.static-$ARCH artifacts: + when: always paths: + - build/meson-logs/testlog.txt - build-static/src/apk.static-* reports: junit: build/**/*.junit.xml @@ -98,6 +100,9 @@ - meson compile -C build - meson test -C build artifacts: + when: always + paths: + - build/meson-logs/testlog.txt reports: junit: build/**/*.junit.xml tags: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/VERSION new/apk-tools-3.0.2/VERSION --- old/apk-tools-3.0.1/VERSION 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/VERSION 2025-12-12 10:51:51.000000000 +0100 @@ -1 +1 @@ -3.0.1 +3.0.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/doc/apk-mkpkg.8.scd new/apk-tools-3.0.2/doc/apk-mkpkg.8.scd --- old/apk-tools-3.0.1/doc/apk-mkpkg.8.scd 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/doc/apk-mkpkg.8.scd 2025-12-12 10:51:51.000000000 +0100 @@ -47,3 +47,6 @@ *--trigger*, *-t* _TRIGGER_ Append _TRIGGER_ path specification to list triggers which affect when the *trigger* script is executed. + +*--xattrs*[=*BOOL*] + Specify if xattrs should be included in the metadata. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/portability/fcntl.h new/apk-tools-3.0.2/portability/fcntl.h --- old/apk-tools-3.0.1/portability/fcntl.h 1970-01-01 01:00:00.000000000 +0100 +++ new/apk-tools-3.0.2/portability/fcntl.h 2025-12-12 10:51:51.000000000 +0100 @@ -0,0 +1,5 @@ +#include_next <fcntl.h> + +#ifndef F_SEAL_EXEC +# define F_SEAL_EXEC 0x0020 +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/portability/meson.build new/apk-tools-3.0.2/portability/meson.build --- old/apk-tools-3.0.1/portability/meson.build 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/portability/meson.build 2025-12-12 10:51:51.000000000 +0100 @@ -3,7 +3,6 @@ libportability_src = [] check_symbols = [ - ['fexecve', '', 'NEED_FEXECVE', 'unistd.h'], ['getrandom', 'getrandom.c', 'NEED_GETRANDOM', 'sys/random.h'], ['memrchr', 'memrchr.c', 'NEED_MEMRCHR', 'string.h'], ['memfd_create', '', 'NEED_MEMFD_CREATE', 'sys/mman.h'], @@ -14,6 +13,7 @@ ['strchrnul', 'strchrnul.c', 'NEED_STRCHRNUL', 'string.h'], ['strlcpy', 'strlcpy.c', 'NEED_STRLCPY', 'string.h'], ['SOCK_CLOEXEC', 'socket.c', 'NEED_SOCK_CLOEXEC', 'sys/socket.h'], + ['unshare', '', 'NEED_UNSHARE', 'sched.h'], ] foreach f : check_symbols diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/portability/sched.h new/apk-tools-3.0.2/portability/sched.h --- old/apk-tools-3.0.1/portability/sched.h 1970-01-01 01:00:00.000000000 +0100 +++ new/apk-tools-3.0.2/portability/sched.h 2025-12-12 10:51:51.000000000 +0100 @@ -0,0 +1,5 @@ +#include_next <sched.h> + +#ifdef NEED_UNSHARE +# define unshare(flags) ({errno = ENOSYS; -1;}) +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/portability/sys/mman.h new/apk-tools-3.0.2/portability/sys/mman.h --- old/apk-tools-3.0.1/portability/sys/mman.h 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/portability/sys/mman.h 2025-12-12 10:51:51.000000000 +0100 @@ -1,9 +1,9 @@ #include_next <sys/mman.h> -#if defined(NEED_MEMFD_CREATE) || defined(NEED_FEXECVE) +#ifdef NEED_MEMFD_CREATE # define memfd_create(name, flags) ({errno = ENOSYS; -1;}) #endif #ifndef MFD_EXEC # define MFD_EXEC 0x0010U -#endif \ No newline at end of file +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/portability/unistd.h new/apk-tools-3.0.2/portability/unistd.h --- old/apk-tools-3.0.1/portability/unistd.h 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/portability/unistd.h 2025-12-12 10:51:51.000000000 +0100 @@ -4,10 +4,6 @@ int pipe2(int pipefd[2], int flags); #endif -#ifdef NEED_FEXECVE -# define fexecve(fd, argv, envp) ({errno = ENOSYS; -1;}) -#endif - #ifdef __APPLE__ # include <crt_externs.h> # define environ (*_NSGetEnviron()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/src/apk.c new/apk-tools-3.0.2/src/apk.c --- old/apk-tools-3.0.1/src/apk.c 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/src/apk.c 2025-12-12 10:51:51.000000000 +0100 @@ -556,6 +556,7 @@ struct apk_opt_match m; bool applet_arg_pending = false; int r; + char *arg; applet = applet_from_arg0(argv[0]); if (!applet) { @@ -581,7 +582,7 @@ case 0: break; case OPT_MATCH_NON_OPTION: - char *arg = opt_parse_arg(&st); + arg = opt_parse_arg(&st); if (applet_arg_pending && strcmp(arg, applet->name) == 0) applet_arg_pending = false; else if (arg[0] || !applet || !applet->remove_empty_arguments) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/src/apk_database.h new/apk-tools-3.0.2/src/apk_database.h --- old/apk-tools-3.0.1/src/apk_database.h 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/src/apk_database.h 2025-12-12 10:51:51.000000000 +0100 @@ -197,7 +197,7 @@ unsigned int active_layers; unsigned int num_dir_update_errors; - unsigned int script_memfd_ok : 1; + unsigned int memfd_failed : 1; unsigned int performing_preupgrade : 1; unsigned int usermode : 1; unsigned int root_tmpfs : 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/src/app_mkpkg.c new/apk-tools-3.0.2/src/app_mkpkg.c --- old/apk-tools-3.0.1/src/app_mkpkg.c 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/src/app_mkpkg.c 2025-12-12 10:51:51.000000000 +0100 @@ -70,6 +70,7 @@ unsigned output_stdout : 1; unsigned compat_rootnode : 1; unsigned compat_dirnode : 1; + unsigned xattrs : 1; }; #define MKPKG_OPTIONS(OPT) \ @@ -81,6 +82,7 @@ OPT(OPT_MKPKG_script, APK_OPT_ARG APK_OPT_SH("s") "script") \ OPT(OPT_MKPKG_stdout, "stdout") \ OPT(OPT_MKPKG_trigger, APK_OPT_ARG APK_OPT_SH("t") "trigger") \ + OPT(OPT_MKPKG_xattrs, APK_OPT_BOOL "xattrs") \ APK_OPTIONS(mkpkg_options_desc, MKPKG_OPTIONS); @@ -133,6 +135,7 @@ apk_hash_init(&ictx->link_by_inode, &mkpkg_hardlink_hash_ops, 256); apk_string_array_init(&ictx->triggers); ictx->compat = "3.0.0_pre1"; + ictx->xattrs = 1; break; case OPT_MKPKG_compat: ictx->compat = optarg; @@ -172,6 +175,9 @@ case OPT_MKPKG_trigger: apk_string_array_add(&ictx->triggers, (char*) optarg); break; + case OPT_MKPKG_xattrs: + ictx->xattrs = APK_OPTARG_VAL(optarg); + break; default: return -ENOTSUP; } @@ -327,7 +333,8 @@ adb_wo_int(&acl, ADBI_ACL_MODE, fi.mode & 07777); adb_wo_blob(&acl, ADBI_ACL_USER, apk_id_cache_resolve_user(idc, fi.uid)); adb_wo_blob(&acl, ADBI_ACL_GROUP, apk_id_cache_resolve_group(idc, fi.gid)); - adb_wo_val(&acl, ADBI_ACL_XATTRS, create_xattrs(&ctx->db, openat(dirfd, entry, O_RDONLY | O_NOFOLLOW | O_NONBLOCK | O_CLOEXEC))); + if (ctx->xattrs) + adb_wo_val(&acl, ADBI_ACL_XATTRS, create_xattrs(&ctx->db, openat(dirfd, entry, O_RDONLY | O_NOFOLLOW | O_NONBLOCK | O_CLOEXEC))); adb_wo_obj(&fio, ADBI_FI_ACL, &acl); adb_wa_append_obj(&ctx->files, &fio); @@ -369,7 +376,8 @@ adb_wo_int(&acl, ADBI_ACL_MODE, mode); adb_wo_blob(&acl, ADBI_ACL_USER, user); adb_wo_blob(&acl, ADBI_ACL_GROUP, group); - adb_wo_val(&acl, ADBI_ACL_XATTRS, create_xattrs(&ctx->db, openat(atfd, path, O_DIRECTORY | O_RDONLY | O_CLOEXEC))); + if (ctx->xattrs) + adb_wo_val(&acl, ADBI_ACL_XATTRS, create_xattrs(&ctx->db, openat(atfd, path, O_DIRECTORY | O_RDONLY | O_CLOEXEC))); adb_wo_obj(&fio, ADBI_DI_ACL, &acl); adb_wo_obj(&fio, ADBI_DI_FILES, &ctx->files); adb_wa_append_obj(&ctx->paths, &fio); @@ -421,6 +429,7 @@ case 0: ctx->compat_rootnode = 1; // fallthrough case 1: ctx->compat_dirnode = 1; // fallthrough default: + break; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/src/applet.c new/apk-tools-3.0.2/src/applet.c --- old/apk-tools-3.0.1/src/applet.c 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/src/applet.c 2025-12-12 10:51:51.000000000 +0100 @@ -43,17 +43,34 @@ if (applet->optgroup_query && strcmp(topic, "QUERY") == 0) return 1; return 0; } -#endif + +static bool decompress_help(char *buf, size_t bufsz) +{ + z_stream strm = { + .avail_in = sizeof compressed_help, + .next_in = (unsigned char *) compressed_help, + .avail_out = bufsz, + .next_out = (unsigned char *) buf, + }; + /* Use inflateInit2 with windowBits=47 (15+32) to auto-detect gzip or zlib format */ + int ret = inflateInit2(&strm, 15 + 32); + if (ret != Z_OK) return false; + ret = inflate(&strm, Z_FINISH); + inflateEnd(&strm); + return ret == Z_STREAM_END && strm.total_out == bufsz; +} void apk_applet_help(struct apk_applet *applet, struct apk_out *out) { -#ifndef NO_HELP char buf[uncompressed_help_size]; - unsigned long len = uncompressed_help_size; int num = 0; - uncompress((unsigned char*) buf, &len, compressed_help, sizeof compressed_help); - for (const char *ptr = buf, *msg; *ptr && ptr < &buf[len]; ptr = msg + strlen(msg) + 1) { + if (!decompress_help(buf, sizeof buf)) { + apk_err(out, "Help decompression failed"); + return; + } + + for (const char *ptr = buf, *msg; *ptr && ptr < &buf[sizeof buf]; ptr = msg + strlen(msg) + 1) { msg = ptr + strlen(ptr) + 1; if (is_group(applet, ptr)) { fputc('\n', stdout); @@ -62,8 +79,11 @@ } } if (num == 0) apk_err(out, "Help not found"); +} #else +void apk_applet_help(struct apk_applet *applet, struct apk_out *out) +{ fputc('\n', stdout); apk_err(out, "This apk-tools has been built without help"); -#endif } +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/src/commit.c new/apk-tools-3.0.2/src/commit.c --- old/apk-tools-3.0.1/src/commit.c 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/src/commit.c 2025-12-12 10:51:51.000000000 +0100 @@ -316,6 +316,7 @@ static void sync_if_needed(struct apk_database *db) { struct apk_ctx *ac = db->ctx; + if (ac->flags & APK_SIMULATE) return; if (ac->sync == APK_NO) return; if (ac->sync == APK_AUTO && (ac->root_set || db->usermode || !running_on_host())) return; apk_out_progress_note(&ac->out, "syncing disks..."); @@ -508,12 +509,12 @@ run_commit_hooks(db, POST_COMMIT_HOOK); if (!db->performing_preupgrade) { - char buf[32]; + char buf2[32]; const char *msg = "OK:"; sync_if_needed(db); - if (errors) msg = apk_fmts(buf, sizeof buf, "%d error%s;", + if (errors) msg = apk_fmts(buf2, sizeof buf2, "%d error%s;", errors, errors > 1 ? "s" : "") ?: "ERRORS;"; uint64_t installed_bytes = db->installed.stats.bytes; @@ -523,18 +524,20 @@ installed_packages += pkg_diff; } + humanized = apk_fmt_human_size(buf, sizeof buf, installed_bytes, 1); + if (apk_out_verbosity(out) > 1) { - apk_msg(out, "%s %d packages, %d dirs, %d files, %" PRIu64 " MiB", + apk_msg(out, "%s %d packages, %d dirs, %d files, " BLOB_FMT, msg, installed_packages, db->installed.stats.dirs, db->installed.stats.files, - installed_bytes / (1024 * 1024) + BLOB_PRINTF(humanized) ); } else { - apk_msg(out, "%s %" PRIu64 " MiB in %d packages", + apk_msg(out, "%s " BLOB_FMT " in %d packages", msg, - installed_bytes / (1024 * 1024), + BLOB_PRINTF(humanized), installed_packages); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/src/database.c new/apk-tools-3.0.2/src/database.c --- old/apk-tools-3.0.1/src/database.c 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/src/database.c 2025-12-12 10:51:51.000000000 +0100 @@ -1773,7 +1773,8 @@ // Create /proc and /dev in the chroot if needed if (!db->root_proc_ok) { mkdir("proc", 0755); - mount("/proc", "proc", NULL, MS_BIND, NULL); + if (mount("/proc", "proc", NULL, MS_BIND|MS_REC, NULL) < 0) + mount("proc", "proc", "proc", 0, NULL); } if (!db->root_dev_ok) { mkdir("dev", 0755); @@ -2030,9 +2031,17 @@ db->root_proc_ok = faccessat(db->root_fd, "proc/self", R_OK, 0) == 0; db->root_dev_ok = faccessat(db->root_fd, "dev/null", R_OK, 0) == 0; db->need_unshare = db->usermode || (!db->root_proc_ok || !db->root_dev_ok); + + // Check if unshare() works. It could be disabled, or seccomp filtered (docker). + if (db->need_unshare && !db->usermode && unshare(0) < 0) { + db->need_unshare = 0; + db->memfd_failed = !db->root_proc_ok; + } + } else { + db->root_proc_ok = access("/proc/self", R_OK) == 0; + db->root_dev_ok = 1; + db->memfd_failed = !db->root_proc_ok; } - if (db->root_dev_ok) db->script_memfd_ok = faccessat(db->root_fd, "dev/fd/0", R_OK, 0) == 0; - else db->script_memfd_ok = access("/dev/fd/0", R_OK) == 0; db->id_cache = apk_ctx_get_id_cache(ac); @@ -2431,7 +2440,9 @@ struct apk_out *out = &ac->out; struct apk_process p; int r, env_size_save = apk_array_len(ac->script_environment); + char fd_path[NAME_MAX]; const char *argv0 = apk_last_path_segment(argv[0]); + const char *path = (fd < 0) ? argv[0] : apk_fmts(fd_path, sizeof fd_path, "/proc/self/fd/%d", fd); r = apk_process_init(&p, argv[0], logpfx, out, NULL); if (r != 0) goto err; @@ -2456,8 +2467,7 @@ if (ac->root_set && chroot(".") != 0) script_panic("chroot"); } char **envp = &ac->script_environment->item[0]; - if (fd >= 0) fexecve(fd, argv, envp); - execve(argv[0], argv, envp); + execve(path, argv, envp); script_panic("execve"); } r = apk_process_run(&p); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/src/genhelp.lua new/apk-tools-3.0.2/src/genhelp.lua --- old/apk-tools-3.0.1/src/genhelp.lua 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/src/genhelp.lua 2025-12-12 10:51:51.000000000 +0100 @@ -174,8 +174,6 @@ p:close() end os.remove(tmp) - -- change gzip header to zlib one, remove trailing size - ret = "\x78\xda" .. ret:sub(11, -4) end return ret end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/src/io_url_libfetch.c new/apk-tools-3.0.2/src/io_url_libfetch.c --- old/apk-tools-3.0.1/src/io_url_libfetch.c 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/src/io_url_libfetch.c 2025-12-12 10:51:51.000000000 +0100 @@ -79,7 +79,7 @@ case FETCH_ERRCAT_URL: return APKE_URL_FORMAT; case FETCH_ERRCAT_ERRNO: - return fe.code; + return fe.code ?: EIO; case FETCH_ERRCAT_NETDB: return fetch_maperr(netdb_err, ARRAY_SIZE(netdb_err), fe.code, APKE_DNS_FAIL); case FETCH_ERRCAT_HTTP: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/src/package.c new/apk-tools-3.0.2/src/package.c --- old/apk-tools-3.0.1/src/package.c 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/src/package.c 2025-12-12 10:51:51.000000000 +0100 @@ -713,6 +713,27 @@ return apk_ipkg_assign_script(ipkg, type, b); } +#ifdef __linux__ +static inline int make_device_tree(struct apk_database *db) +{ + if (faccessat(db->root_fd, "dev", F_OK, 0) == 0) return 0; + if (mkdirat(db->root_fd, "dev", 0755) < 0 || + mknodat(db->root_fd, "dev/null", S_IFCHR | 0666, makedev(1, 3)) < 0 || + mknodat(db->root_fd, "dev/zero", S_IFCHR | 0666, makedev(1, 5)) < 0 || + mknodat(db->root_fd, "dev/random", S_IFCHR | 0666, makedev(1, 8)) < 0 || + mknodat(db->root_fd, "dev/urandom", S_IFCHR | 0666, makedev(1, 9)) < 0 || + mknodat(db->root_fd, "dev/console", S_IFCHR | 0600, makedev(5, 1)) < 0) + return -1; + return 0; +} +#else +static inline int make_device_tree(struct apk_database *db) +{ + (void) db; + return 0; +} +#endif + int apk_ipkg_run_script(struct apk_installed_package *ipkg, struct apk_database *db, unsigned int type, char **argv) @@ -735,12 +756,13 @@ argv[0] = fn; - if (db->script_memfd_ok) { + if (!db->memfd_failed) { /* Linux kernel >= 6.3 */ fd = memfd_create(fn, MFD_EXEC); if (fd < 0 && errno == EINVAL) { /* Linux kernel < 6.3 */ fd = memfd_create(fn, 0); + if (fd < 0) db->memfd_failed = 1; } } if (!db->script_dirs_checked) { @@ -748,6 +770,11 @@ reason = "failed to prepare dirs for hook scripts: "; goto err_errno; } + if (!db->root_dev_ok && !db->need_unshare) { + if (make_device_tree(db) < 0) + apk_warn(out, PKG_VER_FMT ": failed to create initial device nodes: %s", + PKG_VER_PRINTF(pkg), apk_error_str(errno)); + } db->script_dirs_checked = 1; } if (fd < 0) { @@ -762,6 +789,10 @@ if (created) { close(fd); fd = -1; + } else { +#ifdef F_ADD_SEALS + fcntl(fd, F_ADD_SEALS, F_SEAL_EXEC); +#endif } apk_msg(out, "%sExecuting " PKG_VER_FMT ".%s", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic1.test new/apk-tools-3.0.2/test/solver/basic1.test --- old/apk-tools-3.0.1/test/solver/basic1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic1.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing b (2) (2/2) Installing a (2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic10.test new/apk-tools-3.0.2/test/solver/basic10.test --- old/apk-tools-3.0.1/test/solver/basic10.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic10.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing b (2) (2/2) Installing a (2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic11.test new/apk-tools-3.0.2/test/solver/basic11.test --- old/apk-tools-3.0.1/test/solver/basic11.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic11.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing b (2) (2/2) Installing a (2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic14.test new/apk-tools-3.0.2/test/solver/basic14.test --- old/apk-tools-3.0.1/test/solver/basic14.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic14.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Purging a (2) (2/2) Purging b (2) -OK: 0 MiB in 0 packages +OK: 0 B in 0 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic15.test new/apk-tools-3.0.2/test/solver/basic15.test --- old/apk-tools-3.0.1/test/solver/basic15.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic15.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @INSTALLED basic.installed @WORLD a b c @EXPECT -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic16.test new/apk-tools-3.0.2/test/solver/basic16.test --- old/apk-tools-3.0.1/test/solver/basic16.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic16.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing b (2) (2/2) Installing a (2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic17.test new/apk-tools-3.0.2/test/solver/basic17.test --- old/apk-tools-3.0.1/test/solver/basic17.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic17.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Upgrading b (1 -> 2) (2/2) Upgrading a (1 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic18.test new/apk-tools-3.0.2/test/solver/basic18.test --- old/apk-tools-3.0.1/test/solver/basic18.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic18.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Upgrading b (1 -> 2) (2/2) Upgrading a (1 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic2.test new/apk-tools-3.0.2/test/solver/basic2.test --- old/apk-tools-3.0.1/test/solver/basic2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic2.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @INSTALLED basic.installed @WORLD a @EXPECT -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic20.test new/apk-tools-3.0.2/test/solver/basic20.test --- old/apk-tools-3.0.1/test/solver/basic20.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic20.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ NOTE: Consider running apk upgrade with --prune and/or --available. The following packages are no longer available from a repository: a b -OK: 2 packages, 0 dirs, 0 files, 0 MiB +OK: 2 packages, 0 dirs, 0 files, 2 B diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic21.test new/apk-tools-3.0.2/test/solver/basic21.test --- old/apk-tools-3.0.1/test/solver/basic21.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic21.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @REPO basic21.repo @EXPECT (1/1) Purging a (1) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic3.test new/apk-tools-3.0.2/test/solver/basic3.test --- old/apk-tools-3.0.1/test/solver/basic3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic3.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Upgrading b (1 -> 2) (2/2) Upgrading a (1 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic4.test new/apk-tools-3.0.2/test/solver/basic4.test --- old/apk-tools-3.0.1/test/solver/basic4.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic4.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @WORLD a b @EXPECT (1/1) Purging a (1) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic5.test new/apk-tools-3.0.2/test/solver/basic5.test --- old/apk-tools-3.0.1/test/solver/basic5.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic5.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Replacing b (2 -> 2) (2/2) Replacing a (2 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic6.test new/apk-tools-3.0.2/test/solver/basic6.test --- old/apk-tools-3.0.1/test/solver/basic6.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic6.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @INSTALLED basic5.installed @WORLD a @EXPECT -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic7.test new/apk-tools-3.0.2/test/solver/basic7.test --- old/apk-tools-3.0.1/test/solver/basic7.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic7.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @INSTALLED basic.installed @WORLD a @EXPECT -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic8.test new/apk-tools-3.0.2/test/solver/basic8.test --- old/apk-tools-3.0.1/test/solver/basic8.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic8.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @EXPECT WARNING: creating empty virtual package (1/1) Installing .virtual (20190603.131426) -OK: 0 MiB in 1 packages +OK: 0 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/basic9.test new/apk-tools-3.0.2/test/solver/basic9.test --- old/apk-tools-3.0.1/test/solver/basic9.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/basic9.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @WORLD a @EXPECT (1/1) Installing .virtual (20190603.131426) -OK: 0 MiB in 3 packages +OK: 2 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/complicated1.test new/apk-tools-3.0.2/test/solver/complicated1.test --- old/apk-tools-3.0.1/test/solver/complicated1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/complicated1.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ (2/4) Installing c (1) (3/4) Installing b (1) (4/4) Installing a (2) -OK: 0 MiB in 4 packages +OK: 4 B in 4 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/complicated2.test new/apk-tools-3.0.2/test/solver/complicated2.test --- old/apk-tools-3.0.1/test/solver/complicated2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/complicated2.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ (1/3) Installing d (1.5) (2/3) Installing c (1) (3/3) Installing b (1) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/complicated3.test new/apk-tools-3.0.2/test/solver/complicated3.test --- old/apk-tools-3.0.1/test/solver/complicated3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/complicated3.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing d (2.0) (2/2) Installing c (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/complicated4.test new/apk-tools-3.0.2/test/solver/complicated4.test --- old/apk-tools-3.0.1/test/solver/complicated4.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/complicated4.test 2025-12-12 10:51:51.000000000 +0100 @@ -7,4 +7,4 @@ (2/4) Installing c (1) (3/4) Installing b (1) (4/4) Installing a (2) -OK: 0 MiB in 4 packages +OK: 4 B in 4 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/conflict1.test new/apk-tools-3.0.2/test/solver/conflict1.test --- old/apk-tools-3.0.1/test/solver/conflict1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/conflict1.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing b (1) (2/2) Installing a (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/conflict3.test new/apk-tools-3.0.2/test/solver/conflict3.test --- old/apk-tools-3.0.1/test/solver/conflict3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/conflict3.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Purging bar (1) (2/2) Installing baz (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/fix1.test new/apk-tools-3.0.2/test/solver/fix1.test --- old/apk-tools-3.0.1/test/solver/fix1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/fix1.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @WORLD a @EXPECT (1/1) Upgrading b (1 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/fix2.test new/apk-tools-3.0.2/test/solver/fix2.test --- old/apk-tools-3.0.1/test/solver/fix2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/fix2.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @WORLD a @EXPECT (1/1) Upgrading a (1 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/fix3.test new/apk-tools-3.0.2/test/solver/fix3.test --- old/apk-tools-3.0.1/test/solver/fix3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/fix3.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Upgrading b (1 -> 2) (2/2) Upgrading a (1 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/fix4.test new/apk-tools-3.0.2/test/solver/fix4.test --- old/apk-tools-3.0.1/test/solver/fix4.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/fix4.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @WORLD a @EXPECT (1/1) Reinstalling b (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/fix5.test new/apk-tools-3.0.2/test/solver/fix5.test --- old/apk-tools-3.0.1/test/solver/fix5.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/fix5.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @WORLD a @EXPECT (1/1) Reinstalling a (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/fix6.test new/apk-tools-3.0.2/test/solver/fix6.test --- old/apk-tools-3.0.1/test/solver/fix6.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/fix6.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Reinstalling b (1) (2/2) Reinstalling a (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/fuzzy1.test new/apk-tools-3.0.2/test/solver/fuzzy1.test --- old/apk-tools-3.0.1/test/solver/fuzzy1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/fuzzy1.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @REPO fuzzy.repo @EXPECT (1/1) Installing a (2.2) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/fuzzy3.test new/apk-tools-3.0.2/test/solver/fuzzy3.test --- old/apk-tools-3.0.1/test/solver/fuzzy3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/fuzzy3.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @REPO fuzzy.repo @EXPECT (1/1) Installing a (2.10) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif1.test new/apk-tools-3.0.2/test/solver/installif1.test --- old/apk-tools-3.0.1/test/solver/installif1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif1.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ (2/4) Installing app (1) (3/4) Installing foo (1) (4/4) Installing appiif1 (1) -OK: 0 MiB in 4 packages +OK: 4 B in 4 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif10.test new/apk-tools-3.0.2/test/solver/installif10.test --- old/apk-tools-3.0.1/test/solver/installif10.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif10.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ (2/4) Installing polkit-elogind (1) (3/4) Installing postmarketos-base-ui-gnome (1) (4/4) Installing postmarketos-base-ui-gnome-openrc (1) -OK: 0 MiB in 4 packages +OK: 4 B in 4 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif11.test new/apk-tools-3.0.2/test/solver/installif11.test --- old/apk-tools-3.0.1/test/solver/installif11.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif11.test 2025-12-12 10:51:51.000000000 +0100 @@ -6,4 +6,4 @@ NOTE: Consider running apk upgrade with --prune and/or --available. The following packages are no longer available from a repository: appiif1 -OK: 4 packages, 0 dirs, 0 files, 0 MiB +OK: 4 packages, 0 dirs, 0 files, 4 B diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif12.test new/apk-tools-3.0.2/test/solver/installif12.test --- old/apk-tools-3.0.1/test/solver/installif12.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif12.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ NOTE: Consider running apk upgrade with --prune and/or --available. The following packages are no longer available from a repository: app appiif1 foo lib -OK: 4 packages, 0 dirs, 0 files, 0 MiB +OK: 4 packages, 0 dirs, 0 files, 4 B diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif13.test new/apk-tools-3.0.2/test/solver/installif13.test --- old/apk-tools-3.0.1/test/solver/installif13.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif13.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @WORLD app foo !appiif1 @EXPECT (1/1) Installing appiif1 (1) -OK: 0 MiB in 4 packages +OK: 4 B in 4 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif2.test new/apk-tools-3.0.2/test/solver/installif2.test --- old/apk-tools-3.0.1/test/solver/installif2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif2.test 2025-12-12 10:51:51.000000000 +0100 @@ -7,4 +7,4 @@ (4/6) Installing appiif2 (1) (5/6) Installing foo (1) (6/6) Installing appiif1 (1) -OK: 0 MiB in 6 packages +OK: 6 B in 6 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif3.test new/apk-tools-3.0.2/test/solver/installif3.test --- old/apk-tools-3.0.1/test/solver/installif3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif3.test 2025-12-12 10:51:51.000000000 +0100 @@ -6,4 +6,4 @@ (2/4) Installing app (1) (3/4) Installing foo (1) (4/4) Installing appiif1 (1) -OK: 0 MiB in 4 packages +OK: 4 B in 4 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif4.test new/apk-tools-3.0.2/test/solver/installif4.test --- old/apk-tools-3.0.1/test/solver/installif4.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif4.test 2025-12-12 10:51:51.000000000 +0100 @@ -7,4 +7,4 @@ (2/4) Purging app (1) (3/4) Purging lib (1) (4/4) Purging foo (1) -OK: 0 MiB in 0 packages +OK: 0 B in 0 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif5.test new/apk-tools-3.0.2/test/solver/installif5.test --- old/apk-tools-3.0.1/test/solver/installif5.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif5.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ (1/3) Installing dam-babel (1) (2/3) Installing dam (1) (3/3) Installing dam1-babel (1) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif6.test new/apk-tools-3.0.2/test/solver/installif6.test --- old/apk-tools-3.0.1/test/solver/installif6.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif6.test 2025-12-12 10:51:51.000000000 +0100 @@ -6,4 +6,4 @@ (3/5) Installing wayland-libs-client (1) (4/5) Installing qt5-qtwayland (1) (5/5) Installing sway (1) -OK: 0 MiB in 5 packages +OK: 5 B in 5 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif8.test new/apk-tools-3.0.2/test/solver/installif8.test --- old/apk-tools-3.0.1/test/solver/installif8.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif8.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing bar (1) (2/2) Installing foo (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/installif9.test new/apk-tools-3.0.2/test/solver/installif9.test --- old/apk-tools-3.0.1/test/solver/installif9.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/installif9.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing bar (1) (2/2) Installing baz (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning1.test new/apk-tools-3.0.2/test/solver/pinning1.test --- old/apk-tools-3.0.1/test/solver/pinning1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning1.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @EXPECT (1/2) Installing b (2) (2/2) Installing a (2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning10.test new/apk-tools-3.0.2/test/solver/pinning10.test --- old/apk-tools-3.0.1/test/solver/pinning10.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning10.test 2025-12-12 10:51:51.000000000 +0100 @@ -6,4 +6,4 @@ @EXPECT (1/2) Purging c (3) (2/2) Downgrading a (3 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning12.test new/apk-tools-3.0.2/test/solver/pinning12.test --- old/apk-tools-3.0.1/test/solver/pinning12.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning12.test 2025-12-12 10:51:51.000000000 +0100 @@ -6,4 +6,4 @@ (1/3) Installing b (2) (2/3) Installing a@testing (3) (3/3) Installing iif@testing (3) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning13.test new/apk-tools-3.0.2/test/solver/pinning13.test --- old/apk-tools-3.0.1/test/solver/pinning13.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning13.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @REPO @testing pinning-overlay1.repo @EXPECT (1/1) Installing samever@testing (10) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning2.test new/apk-tools-3.0.2/test/solver/pinning2.test --- old/apk-tools-3.0.1/test/solver/pinning2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning2.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @EXPECT (1/2) Installing b (2) (2/2) Installing a@testing (3) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning3.test new/apk-tools-3.0.2/test/solver/pinning3.test --- old/apk-tools-3.0.1/test/solver/pinning3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning3.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @EXPECT (1/2) Installing b@testing (3) (2/2) Installing a@testing (3) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning4.test new/apk-tools-3.0.2/test/solver/pinning4.test --- old/apk-tools-3.0.1/test/solver/pinning4.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning4.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ (1/3) Installing b (2) (2/3) Installing a@testing (3) (3/3) Installing c@testing (3) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning5.test new/apk-tools-3.0.2/test/solver/pinning5.test --- old/apk-tools-3.0.1/test/solver/pinning5.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning5.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @INSTALLED pinning.installed @WORLD c@testing @EXPECT -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning6.test new/apk-tools-3.0.2/test/solver/pinning6.test --- old/apk-tools-3.0.1/test/solver/pinning6.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning6.test 2025-12-12 10:51:51.000000000 +0100 @@ -7,4 +7,4 @@ @EXPECT (1/2) Upgrading a@testing (3 -> 3.1) (2/2) Upgrading c@testing (3 -> 3.1) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning7.test new/apk-tools-3.0.2/test/solver/pinning7.test --- old/apk-tools-3.0.1/test/solver/pinning7.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning7.test 2025-12-12 10:51:51.000000000 +0100 @@ -7,4 +7,4 @@ @EXPECT (1/2) Updating pinning a@testing2 (3) (2/2) Updating pinning c@testing2 (3) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning8.test new/apk-tools-3.0.2/test/solver/pinning8.test --- old/apk-tools-3.0.1/test/solver/pinning8.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning8.test 2025-12-12 10:51:51.000000000 +0100 @@ -7,4 +7,4 @@ (1/3) Downgrading b (3 -> 2) (2/3) Upgrading a@testing (3 -> 3.1) (3/3) Upgrading c@testing (3 -> 3.1) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/pinning9.test new/apk-tools-3.0.2/test/solver/pinning9.test --- old/apk-tools-3.0.1/test/solver/pinning9.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/pinning9.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @INSTALLED pinning9.installed @WORLD c@testing @EXPECT -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-prio1.test new/apk-tools-3.0.2/test/solver/provides-prio1.test --- old/apk-tools-3.0.1/test/solver/provides-prio1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-prio1.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @REPO provides-prio.repo @EXPECT (1/1) Installing busybox-binsh (1.37.0-r23) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-prio2.test new/apk-tools-3.0.2/test/solver/provides-prio2.test --- old/apk-tools-3.0.1/test/solver/provides-prio2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-prio2.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @REPO provides-prio.repo @EXPECT (1/1) Installing dash-binsh (0.5.12-r3) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-prio3.test new/apk-tools-3.0.2/test/solver/provides-prio3.test --- old/apk-tools-3.0.1/test/solver/provides-prio3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-prio3.test 2025-12-12 10:51:51.000000000 +0100 @@ -6,4 +6,4 @@ World updated, but the following packages are not removed due to: busybox-binsh: /bin/sh -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-prio4.test new/apk-tools-3.0.2/test/solver/provides-prio4.test --- old/apk-tools-3.0.1/test/solver/provides-prio4.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-prio4.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Purging dash-binsh (0.5.12-r3) (2/2) Installing busybox-binsh (1.37.0-r23) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-prio5.test new/apk-tools-3.0.2/test/solver/provides-prio5.test --- old/apk-tools-3.0.1/test/solver/provides-prio5.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-prio5.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ (2/4) Installing l-two (1.0) (3/4) Installing l-three (1.0) (4/4) Installing l-all (1.0) -OK: 0 MiB in 4 packages +OK: 4 B in 4 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-prio6.test new/apk-tools-3.0.2/test/solver/provides-prio6.test --- old/apk-tools-3.0.1/test/solver/provides-prio6.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-prio6.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @REPO provides-prio5.repo @EXPECT (1/1) Installing l-one (1.0) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-swap.test new/apk-tools-3.0.2/test/solver/provides-swap.test --- old/apk-tools-3.0.1/test/solver/provides-swap.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-swap.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Purging mailreadplus (1) (2/2) Installing mymailreader (1) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-swap2.test new/apk-tools-3.0.2/test/solver/provides-swap2.test --- old/apk-tools-3.0.1/test/solver/provides-swap2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-swap2.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @INSTALLED provides-swap.installed @WORLD mail-reader @EXPECT -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-swap3.test new/apk-tools-3.0.2/test/solver/provides-swap3.test --- old/apk-tools-3.0.1/test/solver/provides-swap3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-swap3.test 2025-12-12 10:51:51.000000000 +0100 @@ -9,4 +9,4 @@ (4/6) Installing q2 (1) (5/6) Installing nd (2) (6/6) Installing nui (2) -OK: 0 MiB in 4 packages +OK: 4 B in 4 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides-upgrade.test new/apk-tools-3.0.2/test/solver/provides-upgrade.test --- old/apk-tools-3.0.1/test/solver/provides-upgrade.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides-upgrade.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Purging a (1) (2/2) Installing b (2) -OK: 0 MiB in 1 packages +OK: 2 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides1.test new/apk-tools-3.0.2/test/solver/provides1.test --- old/apk-tools-3.0.1/test/solver/provides1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides1.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing libfoo (1) (2/2) Installing app (2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides13.test new/apk-tools-3.0.2/test/solver/provides13.test --- old/apk-tools-3.0.1/test/solver/provides13.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides13.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing pulseaudio (1) (2/2) Installing pulseaudio-alsa (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides17.test new/apk-tools-3.0.2/test/solver/provides17.test --- old/apk-tools-3.0.1/test/solver/provides17.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides17.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing testp (0.1-r0) (2/2) Installing testr (0.1-r0) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides18.test new/apk-tools-3.0.2/test/solver/provides18.test --- old/apk-tools-3.0.1/test/solver/provides18.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides18.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT (1/2) Purging wine-staging (10) (2/2) Installing wine (2) -OK: 0 MiB in 1 packages +OK: 2 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides19.test new/apk-tools-3.0.2/test/solver/provides19.test --- old/apk-tools-3.0.1/test/solver/provides19.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides19.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @REPO provides.repo @EXPECT (1/1) Installing mailreadsolo (1) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides2.test new/apk-tools-3.0.2/test/solver/provides2.test --- old/apk-tools-3.0.1/test/solver/provides2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides2.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @REPO provides.repo @EXPECT (1/1) Installing mailreadplus (1) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides21.test new/apk-tools-3.0.2/test/solver/provides21.test --- old/apk-tools-3.0.1/test/solver/provides21.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides21.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ (1/3) Installing polkit (999124) (2/3) Installing polkit-dev (999124) (3/3) Installing postmarketos-base-systemd (1) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides22.test new/apk-tools-3.0.2/test/solver/provides22.test --- old/apk-tools-3.0.1/test/solver/provides22.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides22.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing openjdk8-jre-base (1.0) (2/2) Installing openjdk8-jdk (1.0) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides3.test new/apk-tools-3.0.2/test/solver/provides3.test --- old/apk-tools-3.0.1/test/solver/provides3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides3.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @REPO provides.repo @EXPECT (1/1) Installing mymailreader (1) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides4.test new/apk-tools-3.0.2/test/solver/provides4.test --- old/apk-tools-3.0.1/test/solver/provides4.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides4.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @EXPECT (1/2) Installing mailreadplus (1) (2/2) Installing mymailreader (1) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/provides8.test new/apk-tools-3.0.2/test/solver/provides8.test --- old/apk-tools-3.0.1/test/solver/provides8.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/provides8.test 2025-12-12 10:51:51.000000000 +0100 @@ -2,4 +2,4 @@ @REPO provides.repo @EXPECT (1/1) Installing mailreadplus (1) -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/selfupgrade1.test new/apk-tools-3.0.2/test/solver/selfupgrade1.test --- old/apk-tools-3.0.1/test/solver/selfupgrade1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/selfupgrade1.test 2025-12-12 10:51:51.000000000 +0100 @@ -6,4 +6,4 @@ Preupgrading: (1/2) Upgrading libcrypto (1 -> 2) (2/2) Upgrading apk-tools (1 -> 2) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/selfupgrade2.test new/apk-tools-3.0.2/test/solver/selfupgrade2.test --- old/apk-tools-3.0.1/test/solver/selfupgrade2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/selfupgrade2.test 2025-12-12 10:51:51.000000000 +0100 @@ -7,4 +7,4 @@ (1/3) Purging application (1) (2/3) Upgrading libcrypto (1 -> 2) (3/3) Upgrading apk-tools (1 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/selfupgrade5.test new/apk-tools-3.0.2/test/solver/selfupgrade5.test --- old/apk-tools-3.0.1/test/solver/selfupgrade5.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/selfupgrade5.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT Preupgrading: (1/1) Upgrading application (1 -> 2) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/selfupgrade7.test new/apk-tools-3.0.2/test/solver/selfupgrade7.test --- old/apk-tools-3.0.1/test/solver/selfupgrade7.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/selfupgrade7.test 2025-12-12 10:51:51.000000000 +0100 @@ -5,4 +5,4 @@ @EXPECT Preupgrading: (1/1) Upgrading application (1 -> 2) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/selfupgrade8.test new/apk-tools-3.0.2/test/solver/selfupgrade8.test --- old/apk-tools-3.0.1/test/solver/selfupgrade8.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/selfupgrade8.test 2025-12-12 10:51:51.000000000 +0100 @@ -7,4 +7,4 @@ (1/3) Upgrading libcrypto (1 -> 2) (2/3) Upgrading apk-tools (1 -> 2) (3/3) Upgrading application (1 -> 2) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/upgrade1.test new/apk-tools-3.0.2/test/solver/upgrade1.test --- old/apk-tools-3.0.1/test/solver/upgrade1.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/upgrade1.test 2025-12-12 10:51:51.000000000 +0100 @@ -6,4 +6,4 @@ (1/3) Purging libold (1) (2/3) Installing libnew (1) (3/3) Upgrading app (1 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/upgrade2.test new/apk-tools-3.0.2/test/solver/upgrade2.test --- old/apk-tools-3.0.1/test/solver/upgrade2.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/upgrade2.test 2025-12-12 10:51:51.000000000 +0100 @@ -3,4 +3,4 @@ @INSTALLED upgrade.installed @WORLD app @EXPECT -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/upgrade3.test new/apk-tools-3.0.2/test/solver/upgrade3.test --- old/apk-tools-3.0.1/test/solver/upgrade3.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/upgrade3.test 2025-12-12 10:51:51.000000000 +0100 @@ -4,4 +4,4 @@ @WORLD app b @EXPECT (1/1) Upgrading b (1 -> 2) -OK: 0 MiB in 3 packages +OK: 3 B in 3 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/solver/upgrade4.test new/apk-tools-3.0.2/test/solver/upgrade4.test --- old/apk-tools-3.0.1/test/solver/upgrade4.test 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/solver/upgrade4.test 2025-12-12 10:51:51.000000000 +0100 @@ -7,4 +7,4 @@ (2/4) Purging libold (1) (3/4) Installing libnew (1) (4/4) Upgrading app (1 -> 2) -OK: 0 MiB in 2 packages +OK: 2 B in 2 packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/user/mkpkg.sh new/apk-tools-3.0.2/test/user/mkpkg.sh --- old/apk-tools-3.0.1/test/user/mkpkg.sh 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/user/mkpkg.sh 2025-12-12 10:51:51.000000000 +0100 @@ -12,7 +12,7 @@ echo "root:x:${gid}:root" > etc/group mkdir -p files/usr/share/foo/bar -$APK --root=. mkpkg --compat=3.0.0_pre2 -I name:compat -I version:1.0 -F files -o compat-1.0.apk +$APK --root=. mkpkg --no-xattrs --compat=3.0.0_pre2 -I name:compat -I version:1.0 -F files -o compat-1.0.apk $APK adbdump compat-1.0.apk | sed -n '/^paths:/,$p' | diff -u /dev/fd/4 4<<EOF - || assert "wrong fetch result" paths: # 5 items - acl: @@ -41,7 +41,7 @@ group: root EOF -$APK --root=. mkpkg --compat=3.0.0_pre3 -I name:compat -I version:1.0 -F files -o compat-1.0.apk +$APK --root=. mkpkg --no-xattrs --compat=3.0.0_pre3 -I name:compat -I version:1.0 -F files -o compat-1.0.apk $APK adbdump compat-1.0.apk | sed -n '/^paths:/,$p' | diff -u /dev/fd/4 4<<EOF - || assert "wrong fetch result" paths: # 4 items - name: usr @@ -66,7 +66,7 @@ group: root EOF -$APK --root=. mkpkg --compat=3.0.0_rc9 -I name:compat -I version:1.0 -F files -o compat-1.0.apk +$APK --root=. mkpkg --no-xattrs --compat=3.0.0_rc9 -I name:compat -I version:1.0 -F files -o compat-1.0.apk $APK adbdump compat-1.0.apk | sed -n '/^paths:/,$p' | diff -u /dev/fd/4 4<<EOF - || assert "wrong fetch result" paths: # 1 items - name: usr/share/foo/bar diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/user/scripts.sh new/apk-tools-3.0.2/test/user/scripts.sh --- old/apk-tools-3.0.1/test/user/scripts.sh 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/user/scripts.sh 2025-12-12 10:51:51.000000000 +0100 @@ -27,7 +27,7 @@ * Hello from pre-install / pre-install / scripts / unset Executing scripts-1.0.post-install * Hello from post-install / post-install / unset -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages EOF diff -u - apk-stderr.log <<EOF || assert "wrong scripts result" @@ -42,5 +42,5 @@ * Hello from pre-install / pre-install / scripts / test Executing scripts-1.0.post-install * Hello from post-install / post-install / test -OK: 0 MiB in 1 packages +OK: 1 B in 1 packages EOF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/apk-tools-3.0.1/test/user/uvol.sh new/apk-tools-3.0.2/test/user/uvol.sh --- old/apk-tools-3.0.1/test/user/uvol.sh 2025-12-03 12:24:53.000000000 +0100 +++ new/apk-tools-3.0.2/test/user/uvol.sh 2025-12-12 10:51:51.000000000 +0100 @@ -34,7 +34,7 @@ uvol(write): uvol-test: write data 13 uvol(write): uvol-test: drained input uvol(up): uvol-test: up data -OK: 0 MiB in 1 packages +OK: 13 B in 1 packages EOF reset_uvol_db @@ -45,7 +45,7 @@ ERROR: uvol(write): exited with error 2 uvol(remove): uvol-test: remove scriptfail ERROR: uvol-scriptfail-1.0: failed to extract uvol/scriptfail: uvol error -1 error; 0 MiB in 1 packages +1 error; 33 B in 1 packages EOF exit 0
