From patchwork Fri Oct 16 06:03:18 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: auh@yoctoproject.org X-Patchwork-Id: 101012 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37AFACC6B38 for ; Fri, 16 Oct 2026 06:03:20 +0000 (UTC) Received: from a27-23.smtp-out.us-west-2.amazonses.com (a27-23.smtp-out.us-west-2.amazonses.com [54.240.27.23]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.15487.1792130599081182675 for ; Thu, 15 Oct 2026 23:03:19 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@yoctoproject.org header.s=lvjh2tk576v2ro5mi6k4dt3mc6wpqbky header.b=qaC2gIPF; dkim=pass header.i=@amazonses.com header.s=hsbnp7p3ensaochzwyq5wwmceodymuwv header.b=FjqqPyeI; spf=pass (domain: us-west-2.amazonses.com, ip: 54.240.27.23, mailfrom: 010101a1434ec592-fa87a05a-edc7-431e-89ab-75a9ae0a9188-000000@us-west-2.amazonses.com) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=lvjh2tk576v2ro5mi6k4dt3mc6wpqbky; d=yoctoproject.org; t=1792130598; h=Content-Type:MIME-Version:From:To:Subject:Message-Id:Date; bh=q8l2I6r1qiIO67u+WDXhfTKNHDAD7vay3kuZExvCBWI=; b=qaC2gIPFQQAD4FQ553xzn+mTKORHRGAC7/i4jllcOCewG99qMSDgd4hih9szLgdg anStt3sl6SYRTxsupc5KZWJ/6BRYn1WE4uaGKOHBjAGqtg3ZAo0DThcPaiCKXa/N8vJ 1LyhQv1YrSBRVQGWDi457tAqHz3tmw/Z23SqjiIk= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=hsbnp7p3ensaochzwyq5wwmceodymuwv; d=amazonses.com; t=1792130598; h=Content-Type:MIME-Version:From:To:Subject:Message-Id:Date:Feedback-ID; bh=q8l2I6r1qiIO67u+WDXhfTKNHDAD7vay3kuZExvCBWI=; b=FjqqPyeIdim12lGy6nf3caHQUy8lGrYXiJcha1drEVQ+9s3145ik0fpobXAgJGS2 jJdcLmZCraBwc/j4biiJR0gO+R4cSEmIbEGHYjuHiySGVPO4tGn1mF3zdITMwb3u9uR 7dL1k3HdfHE1uC4XPYPaWoV6G8a/6quxZ+aksVB8= MIME-Version: 1.0 From: auh@yoctoproject.org To: openembedded-core@lists.openembedded.org Subject: [AUH] libarchive: upgrading to 3.8.10 SUCCEEDED Message-ID: <010101a1434ec592-fa87a05a-edc7-431e-89ab-75a9ae0a9188-000000@us-west-2.amazonses.com> Date: Fri, 16 Oct 2026 06:03:18 +0000 Feedback-ID: ::1.us-west-2.9np3MYPs3fEaOBysGKSlUD4KtcmPijcmS9Az2Hwf7iQ=:AmazonSES X-SES-Outgoing: 2026.10.16-54.240.27.23 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 16 Oct 2026 06:03:20 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/247965 Hello, this email is a notification from the Auto Upgrade Helper that the automatic attempt to upgrade the recipe(s) *libarchive* to *3.8.10* has Succeeded. Next steps: - apply the patch: git am 0001-libarchive-upgrade-3.8.9-3.8.10.patch - check the changes to upstream patches and summarize them in the commit message, - compile an image that contains the package - perform some basic sanity tests - amend the patch and sign it off: git commit -s --reset-author --amend - send it to the appropriate mailing list Alternatively, if you believe the recipe should not be upgraded at this time, you can fill RECIPE_NO_UPDATE_REASON in respective recipe file so that automatic upgrades would no longer be attempted. Please review the attached files for further information and build/update failures. Any problem please file a bug at https://bugzilla.yoctoproject.org/enter_bug.cgi?product=Automated%20Update%20Handler Regards, The Upgrade Helper -- >8 -- From 42c7e1c7222542f91be22f57a7b6c05b12c38c42 Mon Sep 17 00:00:00 2001 From: Upgrade Helper Date: Fri, 16 Oct 2026 06:00:04 +0000 Subject: [PATCH] libarchive: upgrade 3.8.9 -> 3.8.10 Oct 14, 2026: libarchive 3.8.10 released --- ...nd_filter-Use-last-bidder-for-filter.patch | 188 ------------- ...-Verify-that-bidder-and-filter-match.patch | 103 ------- ...aes256-streaming-test-when-no-crypto.patch | 46 ---- .../libarchive/0003-Remove-bidder-name.patch | 258 ------------------ ...vert-RPM-reader-into-a-proper-format.patch | 32 +-- ...0005-Disable-RPM-filter-auto-bidding.patch | 6 +- ...barchive_3.8.9.bb => libarchive_3.8.10.bb} | 8 +- 7 files changed, 20 insertions(+), 621 deletions(-) delete mode 100644 meta/recipes-extended/libarchive/libarchive/0001-append_filter-Use-last-bidder-for-filter.patch delete mode 100644 meta/recipes-extended/libarchive/libarchive/0001-append_filter-Verify-that-bidder-and-filter-match.patch delete mode 100644 meta/recipes-extended/libarchive/libarchive/0001-test-skip-ppmd8-aes256-streaming-test-when-no-crypto.patch delete mode 100644 meta/recipes-extended/libarchive/libarchive/0003-Remove-bidder-name.patch rename meta/recipes-extended/libarchive/{libarchive_3.8.9.bb => libarchive_3.8.10.bb} (90%) diff --git a/meta/recipes-extended/libarchive/libarchive/0001-append_filter-Use-last-bidder-for-filter.patch b/meta/recipes-extended/libarchive/libarchive/0001-append_filter-Use-last-bidder-for-filter.patch deleted file mode 100644 index 8e1eb0e938..0000000000 --- a/meta/recipes-extended/libarchive/libarchive/0001-append_filter-Use-last-bidder-for-filter.patch +++ /dev/null @@ -1,188 +0,0 @@ -From 50b585bb55484cdc70bd92852a477178dc43485c Mon Sep 17 00:00:00 2001 -From: Tobias Stoeckmann -Date: Sun, 2 Aug 2026 14:27:17 +0200 -Subject: [PATCH] append_filter: Use last bidder for filter - -Appending a filter implies appending a bidder. Always use the last added -bidder, since it was just added. This avoids desync situations where -previously added bidders could erroneously match. - -Signed-off-by: Tobias Stoeckmann - -Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/50b585bb] ---- - libarchive/archive_read_append_filter.c | 72 ++++++++----------------- - 1 file changed, 22 insertions(+), 50 deletions(-) - -diff --git a/libarchive/archive_read_append_filter.c b/libarchive/archive_read_append_filter.c -index 8de1b2ea..9dd9f536 100644 ---- a/libarchive/archive_read_append_filter.c -+++ b/libarchive/archive_read_append_filter.c -@@ -33,14 +33,25 @@ - #include "archive_private.h" - #include "archive_read_private.h" - -+static struct archive_read_filter_bidder * -+get_last_bidder(struct archive_read *a) -+{ -+ size_t i; -+ -+ for (i = 0; i < sizeof(a->bidders) / sizeof(a->bidders[0]); i++) -+ { -+ if (a->bidders[i].vtable == NULL) -+ break; -+ } -+ -+ return a->bidders + (i - 1); -+} -+ - int - archive_read_append_filter(struct archive *_a, int code) - { -- int r1, r2, number_bidders, i; -- const char *str; -- struct archive_read_filter_bidder *b; -- struct archive_read_filter *f; - struct archive_read *a = (struct archive_read *)_a; -+ int r1, r2; - - r2 = (ARCHIVE_OK); - switch (code) -@@ -53,15 +64,12 @@ archive_read_append_filter(struct archive *_a, int code) - r1 = (ARCHIVE_OK); - break; - case ARCHIVE_FILTER_GZIP: -- str = "gzip"; - r1 = archive_read_support_filter_gzip(_a); - break; - case ARCHIVE_FILTER_BZIP2: -- str = "bzip2"; - r1 = archive_read_support_filter_bzip2(_a); - break; - case ARCHIVE_FILTER_COMPRESS: -- str = "compress (.Z)"; - r1 = archive_read_support_filter_compress(_a); - break; - case ARCHIVE_FILTER_PROGRAM: -@@ -69,43 +77,33 @@ archive_read_append_filter(struct archive *_a, int code) - "Cannot append program filter using archive_read_append_filter"); - return (ARCHIVE_FATAL); - case ARCHIVE_FILTER_LZMA: -- str = "lzma"; - r1 = archive_read_support_filter_lzma(_a); - break; - case ARCHIVE_FILTER_XZ: -- str = "xz"; - r1 = archive_read_support_filter_xz(_a); - break; - case ARCHIVE_FILTER_UU: -- str = "uu"; - r1 = archive_read_support_filter_uu(_a); - break; - case ARCHIVE_FILTER_RPM: -- str = "rpm"; - r1 = archive_read_support_filter_rpm(_a); - break; - case ARCHIVE_FILTER_LZ4: -- str = "lz4"; - r1 = archive_read_support_filter_lz4(_a); - break; - case ARCHIVE_FILTER_ZSTD: -- str = "zstd"; - r1 = archive_read_support_filter_zstd(_a); - break; - case ARCHIVE_FILTER_LZIP: -- str = "lzip"; - r1 = archive_read_support_filter_lzip(_a); - break; - case ARCHIVE_FILTER_LZOP: -- str = "lzop"; - r1 = archive_read_support_filter_lzop(_a); - break; - case ARCHIVE_FILTER_LRZIP: -- str = "lrzip"; - r1 = archive_read_support_filter_lrzip(_a); - break; - case ARCHIVE_FILTER_GRZIP: -- str = "grzip"; - r1 = archive_read_support_filter_grzip(_a); - break; - default: -@@ -114,22 +112,10 @@ archive_read_append_filter(struct archive *_a, int code) - return (ARCHIVE_FATAL); - } - -- if (code != ARCHIVE_FILTER_NONE) -+ if (r1 > ARCHIVE_FATAL && code != ARCHIVE_FILTER_NONE) - { -- number_bidders = sizeof(a->bidders) / sizeof(a->bidders[0]); -- -- b = a->bidders; -- for (i = 1; i < number_bidders; i++, b++) -- { -- if (!b->name || !strcmp(b->name, str)) -- break; -- } -- if (!b->name || strcmp(b->name, str)) -- { -- archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER, -- "Internal error: Unable to append filter"); -- return (ARCHIVE_FATAL); -- } -+ struct archive_read_filter_bidder *b; -+ struct archive_read_filter *f; - - f = calloc(1, sizeof(*f)); - if (f == NULL) -@@ -137,6 +123,7 @@ archive_read_append_filter(struct archive *_a, int code) - archive_set_error(&a->archive, ENOMEM, "Out of memory"); - return (ARCHIVE_FATAL); - } -+ b = get_last_bidder(a); - f->bidder = b; - f->archive = a; - f->upstream = a->filter; -@@ -162,37 +149,22 @@ int - archive_read_append_filter_program_signature(struct archive *_a, - const char *cmd, const void *signature, size_t signature_len) - { -- int r, number_bidders, i; -+ struct archive_read *a = (struct archive_read *)_a; - struct archive_read_filter_bidder *b; - struct archive_read_filter *f; -- struct archive_read *a = (struct archive_read *)_a; -+ int r; - - if (archive_read_support_filter_program_signature(_a, cmd, signature, - signature_len) != (ARCHIVE_OK)) - return (ARCHIVE_FATAL); - -- number_bidders = sizeof(a->bidders) / sizeof(a->bidders[0]); -- -- b = a->bidders; -- for (i = 0; i < number_bidders; i++, b++) -- { -- /* Program bidder name set to filter name after initialization */ -- if (b->data && !b->name) -- break; -- } -- if (!b->data) -- { -- archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER, -- "Internal error: Unable to append program filter"); -- return (ARCHIVE_FATAL); -- } -- - f = calloc(1, sizeof(*f)); - if (f == NULL) - { - archive_set_error(&a->archive, ENOMEM, "Out of memory"); - return (ARCHIVE_FATAL); - } -+ b = get_last_bidder(a); - f->bidder = b; - f->archive = a; - f->upstream = a->filter; --- -2.54.0 - diff --git a/meta/recipes-extended/libarchive/libarchive/0001-append_filter-Verify-that-bidder-and-filter-match.patch b/meta/recipes-extended/libarchive/libarchive/0001-append_filter-Verify-that-bidder-and-filter-match.patch deleted file mode 100644 index a91f518207..0000000000 --- a/meta/recipes-extended/libarchive/libarchive/0001-append_filter-Verify-that-bidder-and-filter-match.patch +++ /dev/null @@ -1,103 +0,0 @@ -From db4fb440792278cd01e0829c93f6b62f567b704b Mon Sep 17 00:00:00 2001 -From: Tobias Stoeckmann -Date: Sun, 2 Aug 2026 14:26:22 +0200 -Subject: [PATCH 1/3] append_filter: Verify that bidder and filter match - -Make sure that appending a filter always matches its supposed bidder. - -Upstream-Status: Submitted [https://github.com/libarchive/libarchive/pull/3346] -Signed-off-by: Tobias Stoeckmann -Signed-off-by: Sumanth Gavini ---- - Makefile.am | 1 + - libarchive/test/CMakeLists.txt | 1 + - .../test/test_archive_read_append_filter.c | 54 +++++++++++++++++++ - 3 files changed, 56 insertions(+) - create mode 100644 libarchive/test/test_archive_read_append_filter.c - -diff --git a/Makefile.am b/Makefile.am -index 2fb4fdf4..c96b3bc6 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -404,6 +404,7 @@ libarchive_test_SOURCES= \ - libarchive/test/test_archive_pathmatch_oob.c \ - libarchive/test/test_archive_read.c \ - libarchive/test/test_archive_read_add_passphrase.c \ -+ libarchive/test/test_archive_read_append_filter.c \ - libarchive/test/test_archive_read_close_twice.c \ - libarchive/test/test_archive_read_multiple_data_objects.c \ - libarchive/test/test_archive_read_next_header_empty.c \ -diff --git a/libarchive/test/CMakeLists.txt b/libarchive/test/CMakeLists.txt -index 44f839f8..c4102c3d 100644 ---- a/libarchive/test/CMakeLists.txt -+++ b/libarchive/test/CMakeLists.txt -@@ -33,6 +33,7 @@ IF(ENABLE_TEST) - test_archive_pathmatch_oob.c - test_archive_read.c - test_archive_read_add_passphrase.c -+ test_archive_read_append_filter.c - test_archive_read_close_twice.c - test_archive_read_multiple_data_objects.c - test_archive_read_next_header_empty.c -diff --git a/libarchive/test/test_archive_read_append_filter.c b/libarchive/test/test_archive_read_append_filter.c -new file mode 100644 -index 00000000..5c301d52 ---- /dev/null -+++ b/libarchive/test/test_archive_read_append_filter.c -@@ -0,0 +1,54 @@ -+/*- -+ * Copyright (c) 2026 Tobias Stoeckmann -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR -+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, -+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#include "archive.h" -+#include "test.h" -+ -+DEFINE_TEST(test_archive_read_append_filter) -+{ -+ struct archive *a; -+ int r; -+ -+ a = archive_read_new(); -+ assert(a != NULL); -+ -+ /* Append a program bidder (without filter). */ -+ assertEqualIntA(a, ARCHIVE_OK, -+ archive_read_support_filter_program(a, "prog1")); -+ -+ /* Append a filter program which comes with its own bidder. */ -+ r = archive_read_append_filter_program(a, "prog2"); -+ -+ /* Verify that filter uses its own bidder. */ -+ if (r == ARCHIVE_FATAL) { -+ assertEqualStringA(a, "Can't initialize filter; unable to run program \"prog2\"", -+ archive_error_string(a)); -+ } else { -+ assertEqualIntA(a, ARCHIVE_OK, r); -+ assertEqualStringA(a, "Program: prog2", archive_filter_name(a, 0)); -+ } -+ -+ archive_read_free(a); -+} --- -2.49.0 diff --git a/meta/recipes-extended/libarchive/libarchive/0001-test-skip-ppmd8-aes256-streaming-test-when-no-crypto.patch b/meta/recipes-extended/libarchive/libarchive/0001-test-skip-ppmd8-aes256-streaming-test-when-no-crypto.patch deleted file mode 100644 index fc96225141..0000000000 --- a/meta/recipes-extended/libarchive/libarchive/0001-test-skip-ppmd8-aes256-streaming-test-when-no-crypto.patch +++ /dev/null @@ -1,46 +0,0 @@ -From c2b00a5fff659bbe8d70b5e00cb6abb831170aeb Mon Sep 17 00:00:00 2001 -From: Jaipaul Cheernam -Date: Wed, 29 Jul 2026 13:33:10 +0000 -Subject: [PATCH] test: skip ppmd8 aes256 streaming test when no crypto library - is present - -test_read_format_zip_ppmd8_aes256_streaming fails with 6 assertion -failures on systems without a crypto library (openssl/nettle/mbedtls) -because it tries to decrypt a pre-built encrypted zipx file without -checking crypto availability first. - -Add the same guard used by the other encrypted zip tests in this file. - -Upstream-Status: Submitted [https://github.com/libarchive/libarchive/pull/3335] -Signed-off-by: Jaipaul Cheernam ---- - .../test/test_read_format_zip_zipx_encrypted.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/libarchive/test/test_read_format_zip_zipx_encrypted.c b/libarchive/test/test_read_format_zip_zipx_encrypted.c -index f07e1e5c..a0a431fb 100644 ---- a/libarchive/test/test_read_format_zip_zipx_encrypted.c -+++ b/libarchive/test/test_read_format_zip_zipx_encrypted.c -@@ -257,8 +257,22 @@ DEFINE_TEST(test_read_format_zip_zipx_zstd_encrypted_streaming) - DEFINE_TEST(test_read_format_zip_ppmd8_aes256_streaming) - { - const char *refname = "test_read_format_zip_ppmd8_aes256_streaming.zipx"; -+ struct archive *a; - size_t used; - char buff[600]; -+ -+ /* Check if running system has cryptographic functionality. */ -+ assert((a = archive_write_new()) != NULL); -+ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_zip(a)); -+ assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a)); -+ if (ARCHIVE_OK != archive_write_set_options(a, -+ "zip:encryption=aes256")) { -+ skipping("This system does not have cryptographic library"); -+ archive_write_free(a); -+ return; -+ } -+ archive_write_free(a); -+ - extract_reference_file(refname); - FILE *f = fopen(refname, "rb"); - used = fread(buff, 1, sizeof(buff), f); diff --git a/meta/recipes-extended/libarchive/libarchive/0003-Remove-bidder-name.patch b/meta/recipes-extended/libarchive/libarchive/0003-Remove-bidder-name.patch deleted file mode 100644 index bbd2478577..0000000000 --- a/meta/recipes-extended/libarchive/libarchive/0003-Remove-bidder-name.patch +++ /dev/null @@ -1,258 +0,0 @@ -From 76c7142bd2595184826722063598fddf62031cca Mon Sep 17 00:00:00 2001 -From: Tobias Stoeckmann -Date: Sun, 2 Aug 2026 14:31:33 +0200 -Subject: [PATCH 3/3] Remove bidder name - -The name was only needed to find the appropriate bidder for a filter. -Since this has been resolved by accessing the last bidder, since in these -situations the bidder is added first, then the filter, the name is not -needed anymore. - -Upstream-Status: Submitted [https://github.com/libarchive/libarchive/pull/3346] -Signed-off-by: Tobias Stoeckmann -Signed-off-by: Sumanth Gavini ---- - libarchive/archive_read.c | 2 -- - libarchive/archive_read_append_filter.c | 1 - - libarchive/archive_read_private.h | 3 --- - libarchive/archive_read_support_filter_bzip2.c | 2 +- - libarchive/archive_read_support_filter_compress.c | 2 +- - libarchive/archive_read_support_filter_grzip.c | 2 +- - libarchive/archive_read_support_filter_gzip.c | 2 +- - libarchive/archive_read_support_filter_lrzip.c | 2 +- - libarchive/archive_read_support_filter_lz4.c | 2 +- - libarchive/archive_read_support_filter_lzop.c | 2 +- - libarchive/archive_read_support_filter_program.c | 2 +- - libarchive/archive_read_support_filter_rpm.c | 2 +- - libarchive/archive_read_support_filter_uu.c | 2 +- - libarchive/archive_read_support_filter_xz.c | 6 +++--- - libarchive/archive_read_support_filter_zstd.c | 2 +- - 15 files changed, 14 insertions(+), 20 deletions(-) - -diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c -index e844e42d..406d84de 100644 ---- a/libarchive/archive_read.c -+++ b/libarchive/archive_read.c -@@ -1290,7 +1290,6 @@ __archive_read_register_format(struct archive_read *a, - int - __archive_read_register_bidder(struct archive_read *a, - void *bidder_data, -- const char *name, - const struct archive_read_filter_bidder_vtable *vtable) - { - struct archive_read_filter_bidder *bidder; -@@ -1307,7 +1306,6 @@ __archive_read_register_bidder(struct archive_read *a, - memset(a->bidders + i, 0, sizeof(a->bidders[0])); - bidder = (a->bidders + i); - bidder->data = bidder_data; -- bidder->name = name; - bidder->vtable = vtable; - if (bidder->vtable->bid == NULL || bidder->vtable->init == NULL) { - archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER, -diff --git a/libarchive/archive_read_append_filter.c b/libarchive/archive_read_append_filter.c -index 9dd9f536..5cc8ff55 100644 ---- a/libarchive/archive_read_append_filter.c -+++ b/libarchive/archive_read_append_filter.c -@@ -174,7 +174,6 @@ archive_read_append_filter_program_signature(struct archive *_a, - __archive_read_free_filters(a); - return (ARCHIVE_FATAL); - } -- b->name = a->filter->name; - - a->bypass_filter_bidding = 1; - return r; -diff --git a/libarchive/archive_read_private.h b/libarchive/archive_read_private.h -index 3bd8de2d..e30b6c2b 100644 ---- a/libarchive/archive_read_private.h -+++ b/libarchive/archive_read_private.h -@@ -68,8 +68,6 @@ struct archive_read_filter_bidder_vtable { - struct archive_read_filter_bidder { - /* Configuration data for the bidder. */ - void *data; -- /* Name of the filter */ -- const char *name; - const struct archive_read_filter_bidder_vtable *vtable; - }; - -@@ -250,7 +248,6 @@ int __archive_read_register_format(struct archive_read *a, - - int __archive_read_register_bidder(struct archive_read *a, - void *bidder_data, -- const char *name, - const struct archive_read_filter_bidder_vtable *vtable); - - const void *__archive_read_ahead(struct archive_read *, size_t, ssize_t *); -diff --git a/libarchive/archive_read_support_filter_bzip2.c b/libarchive/archive_read_support_filter_bzip2.c -index 588953f2..1cfc55dc 100644 ---- a/libarchive/archive_read_support_filter_bzip2.c -+++ b/libarchive/archive_read_support_filter_bzip2.c -@@ -91,7 +91,7 @@ archive_read_support_filter_bzip2(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "bzip2", -+ if (__archive_read_register_bidder(a, NULL, - &bzip2_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - -diff --git a/libarchive/archive_read_support_filter_compress.c b/libarchive/archive_read_support_filter_compress.c -index 4e1f1dc5..4763995e 100644 ---- a/libarchive/archive_read_support_filter_compress.c -+++ b/libarchive/archive_read_support_filter_compress.c -@@ -160,7 +160,7 @@ archive_read_support_filter_compress(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- return __archive_read_register_bidder(a, NULL, "compress (.Z)", -+ return __archive_read_register_bidder(a, NULL, - &compress_bidder_vtable); - } - -diff --git a/libarchive/archive_read_support_filter_grzip.c b/libarchive/archive_read_support_filter_grzip.c -index 9d9ad46e..8457ec7c 100644 ---- a/libarchive/archive_read_support_filter_grzip.c -+++ b/libarchive/archive_read_support_filter_grzip.c -@@ -62,7 +62,7 @@ archive_read_support_filter_grzip(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "grzip", -+ if (__archive_read_register_bidder(a, NULL, - &grzip_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - -diff --git a/libarchive/archive_read_support_filter_gzip.c b/libarchive/archive_read_support_filter_gzip.c -index 89ae0f37..34b174b7 100644 ---- a/libarchive/archive_read_support_filter_gzip.c -+++ b/libarchive/archive_read_support_filter_gzip.c -@@ -96,7 +96,7 @@ archive_read_support_filter_gzip(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "gzip", -+ if (__archive_read_register_bidder(a, NULL, - &gzip_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - -diff --git a/libarchive/archive_read_support_filter_lrzip.c b/libarchive/archive_read_support_filter_lrzip.c -index 33910fe1..a1d45d77 100644 ---- a/libarchive/archive_read_support_filter_lrzip.c -+++ b/libarchive/archive_read_support_filter_lrzip.c -@@ -61,7 +61,7 @@ archive_read_support_filter_lrzip(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "lrzip", -+ if (__archive_read_register_bidder(a, NULL, - &lrzip_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - -diff --git a/libarchive/archive_read_support_filter_lz4.c b/libarchive/archive_read_support_filter_lz4.c -index 19086a1f..28189a07 100644 ---- a/libarchive/archive_read_support_filter_lz4.c -+++ b/libarchive/archive_read_support_filter_lz4.c -@@ -118,7 +118,7 @@ archive_read_support_filter_lz4(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "lz4", -+ if (__archive_read_register_bidder(a, NULL, - &lz4_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - -diff --git a/libarchive/archive_read_support_filter_lzop.c b/libarchive/archive_read_support_filter_lzop.c -index ebfaf01e..5a552fce 100644 ---- a/libarchive/archive_read_support_filter_lzop.c -+++ b/libarchive/archive_read_support_filter_lzop.c -@@ -109,7 +109,7 @@ archive_read_support_filter_lzop(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "lzop", -+ if (__archive_read_register_bidder(a, NULL, - &lzop_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - -diff --git a/libarchive/archive_read_support_filter_program.c b/libarchive/archive_read_support_filter_program.c -index cf7c3613..a9e02a32 100644 ---- a/libarchive/archive_read_support_filter_program.c -+++ b/libarchive/archive_read_support_filter_program.c -@@ -156,7 +156,7 @@ archive_read_support_filter_program_signature(struct archive *_a, - memcpy(state->signature, signature, signature_len); - } - -- if (__archive_read_register_bidder(a, state, NULL, -+ if (__archive_read_register_bidder(a, state, - &program_bidder_vtable) != ARCHIVE_OK) { - free_state(state); - return (ARCHIVE_FATAL); -diff --git a/libarchive/archive_read_support_filter_rpm.c b/libarchive/archive_read_support_filter_rpm.c -index 01bd1bf7..1cfddf75 100644 ---- a/libarchive/archive_read_support_filter_rpm.c -+++ b/libarchive/archive_read_support_filter_rpm.c -@@ -71,7 +71,7 @@ archive_read_support_filter_rpm(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- return __archive_read_register_bidder(a, NULL, "rpm", -+ return __archive_read_register_bidder(a, NULL, - &rpm_bidder_vtable); - } - -diff --git a/libarchive/archive_read_support_filter_uu.c b/libarchive/archive_read_support_filter_uu.c -index c0f6f48e..10d49648 100644 ---- a/libarchive/archive_read_support_filter_uu.c -+++ b/libarchive/archive_read_support_filter_uu.c -@@ -92,7 +92,7 @@ archive_read_support_filter_uu(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- return __archive_read_register_bidder(a, NULL, "uu", -+ return __archive_read_register_bidder(a, NULL, - &uudecode_bidder_vtable); - } - -diff --git a/libarchive/archive_read_support_filter_xz.c b/libarchive/archive_read_support_filter_xz.c -index 7c8e0cb5..b00ba543 100644 ---- a/libarchive/archive_read_support_filter_xz.c -+++ b/libarchive/archive_read_support_filter_xz.c -@@ -115,7 +115,7 @@ archive_read_support_filter_xz(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "xz", -+ if (__archive_read_register_bidder(a, NULL, - &xz_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - -@@ -147,7 +147,7 @@ archive_read_support_filter_lzma(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "lzma", -+ if (__archive_read_register_bidder(a, NULL, - &lzma_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - -@@ -180,7 +180,7 @@ archive_read_support_filter_lzip(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "lzip", -+ if (__archive_read_register_bidder(a, NULL, - &lzip_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - -diff --git a/libarchive/archive_read_support_filter_zstd.c b/libarchive/archive_read_support_filter_zstd.c -index 12eac04c..163f54b5 100644 ---- a/libarchive/archive_read_support_filter_zstd.c -+++ b/libarchive/archive_read_support_filter_zstd.c -@@ -87,7 +87,7 @@ archive_read_support_filter_zstd(struct archive *_a) - { - struct archive_read *a = (struct archive_read *)_a; - -- if (__archive_read_register_bidder(a, NULL, "zstd", -+ if (__archive_read_register_bidder(a, NULL, - &zstd_bidder_vtable) != ARCHIVE_OK) - return (ARCHIVE_FATAL); - diff --git a/meta/recipes-extended/libarchive/libarchive/0004-Convert-RPM-reader-into-a-proper-format.patch b/meta/recipes-extended/libarchive/libarchive/0004-Convert-RPM-reader-into-a-proper-format.patch index 03a207f33f..e309b3a839 100644 --- a/meta/recipes-extended/libarchive/libarchive/0004-Convert-RPM-reader-into-a-proper-format.patch +++ b/meta/recipes-extended/libarchive/libarchive/0004-Convert-RPM-reader-into-a-proper-format.patch @@ -1,4 +1,4 @@ -From 2606336bce3a7f66cc6c8af28687a82536c9086c Mon Sep 17 00:00:00 2001 +From a20f942aa883a48021b66dc6a00cbae342ee67b9 Mon Sep 17 00:00:00 2001 From: Davide Beatrici Date: Sun, 9 Aug 2026 14:14:59 -0700 Subject: [PATCH] libarchive: Convert RPM reader into a proper format @@ -38,14 +38,14 @@ Signed-off-by: Sumanth Gavini .../test_read_format_cpio_svr4_bzip2_rpm.c | 4 +- .../test_read_format_cpio_svr4_gzip_rpm.c | 4 +- libarchive/test/test_read_format_huge_rpm.c | 13 +- - 15 files changed, 1169 insertions(+), 20 deletions(-) + 15 files changed, 1162 insertions(+), 15 deletions(-) create mode 100644 libarchive/archive_read_support_format_rpm.c diff --git a/Makefile.am b/Makefile.am -index c96b3bc..725e20c 100644 +index 8bc70c5..487bef3 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -210,6 +210,7 @@ libarchive_la_SOURCES= \ +@@ -212,6 +212,7 @@ libarchive_la_SOURCES= \ libarchive/archive_read_support_format_rar.c \ libarchive/archive_read_support_format_rar5.c \ libarchive/archive_read_support_format_raw.c \ @@ -54,7 +54,7 @@ index c96b3bc..725e20c 100644 libarchive/archive_read_support_format_warc.c \ libarchive/archive_read_support_format_xar.c \ diff --git a/contrib/android/Android.mk b/contrib/android/Android.mk -index 9e1c72f..3d1f087 100644 +index f81dcb0..24af25e 100644 --- a/contrib/android/Android.mk +++ b/contrib/android/Android.mk @@ -91,6 +91,7 @@ libarchive_src_files := libarchive/archive_acl.c \ @@ -66,7 +66,7 @@ index 9e1c72f..3d1f087 100644 libarchive/archive_read_support_format_warc.c \ libarchive/archive_read_support_format_xar.c \ diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt -index b296637..d132123 100644 +index ac039c1..34ba173 100644 --- a/libarchive/CMakeLists.txt +++ b/libarchive/CMakeLists.txt @@ -110,6 +110,7 @@ SET(libarchive_SOURCES @@ -78,10 +78,10 @@ index b296637..d132123 100644 archive_read_support_format_warc.c archive_read_support_format_xar.c diff --git a/libarchive/archive.h b/libarchive/archive.h -index a7de6f6..89c60b3 100644 +index 19b316a..f04a747 100644 --- a/libarchive/archive.h +++ b/libarchive/archive.h -@@ -314,7 +314,9 @@ typedef const char *archive_passphrase_callback(struct archive *, +@@ -316,7 +316,9 @@ typedef const char *archive_passphrase_callback(struct archive *, #define ARCHIVE_FILTER_LZMA 5 #define ARCHIVE_FILTER_XZ 6 #define ARCHIVE_FILTER_UU 7 @@ -91,7 +91,7 @@ index a7de6f6..89c60b3 100644 #define ARCHIVE_FILTER_LZIP 9 #define ARCHIVE_FILTER_LRZIP 10 #define ARCHIVE_FILTER_LZOP 11 -@@ -385,6 +387,7 @@ typedef const char *archive_passphrase_callback(struct archive *, +@@ -387,6 +389,7 @@ typedef const char *archive_passphrase_callback(struct archive *, #define ARCHIVE_FORMAT_7ZIP 0xE0000 #define ARCHIVE_FORMAT_WARC 0xF0000 #define ARCHIVE_FORMAT_RAR_V5 0x100000 @@ -99,7 +99,7 @@ index a7de6f6..89c60b3 100644 /* * Codes returned by archive_read_format_capabilities(). -@@ -478,7 +481,9 @@ __LA_DECL int archive_read_support_filter_program(struct archive *, +@@ -480,7 +483,9 @@ __LA_DECL int archive_read_support_filter_program(struct archive *, __LA_DECL int archive_read_support_filter_program_signature (struct archive *, const char * /* cmd */, const void * /* match */, size_t); @@ -109,7 +109,7 @@ index a7de6f6..89c60b3 100644 __LA_DECL int archive_read_support_filter_uu(struct archive *); __LA_DECL int archive_read_support_filter_xz(struct archive *); __LA_DECL int archive_read_support_filter_zstd(struct archive *); -@@ -499,6 +504,7 @@ __LA_DECL int archive_read_support_format_mtree(struct archive *); +@@ -501,6 +506,7 @@ __LA_DECL int archive_read_support_format_mtree(struct archive *); __LA_DECL int archive_read_support_format_rar(struct archive *); __LA_DECL int archive_read_support_format_rar5(struct archive *); __LA_DECL int archive_read_support_format_raw(struct archive *); @@ -118,10 +118,10 @@ index a7de6f6..89c60b3 100644 __LA_DECL int archive_read_support_format_warc(struct archive *); __LA_DECL int archive_read_support_format_xar(struct archive *); diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c -index 406d84d..150bd31 100644 +index 2f006fb..5c51df5 100644 --- a/libarchive/archive_read.c +++ b/libarchive/archive_read.c -@@ -1296,13 +1296,18 @@ __archive_read_register_bidder(struct archive_read *a, +@@ -1297,13 +1297,18 @@ __archive_read_register_bidder(struct archive_read *a, int i, number_slots; archive_check_magic(&a->archive, ARCHIVE_READ_MAGIC, @@ -143,10 +143,10 @@ index 406d84d..150bd31 100644 bidder = (a->bidders + i); bidder->data = bidder_data; diff --git a/libarchive/archive_read_private.h b/libarchive/archive_read_private.h -index e30b6c2..9ff3602 100644 +index 43b7f85..9b27655 100644 --- a/libarchive/archive_read_private.h +++ b/libarchive/archive_read_private.h -@@ -212,7 +212,7 @@ struct archive_read { +@@ -208,7 +208,7 @@ struct archive_read { int (*cleanup)(struct archive_read *); int (*format_capabilties)(struct archive_read *); int (*has_encrypted_entries)(struct archive_read *); @@ -1344,7 +1344,7 @@ index 0000000..fe0e500 + free(hash); +} diff --git a/libarchive/test/test_archive_read_support.c b/libarchive/test/test_archive_read_support.c -index b0c9280..bc256a1 100644 +index ff03c0f..1bef2f7 100644 --- a/libarchive/test/test_archive_read_support.c +++ b/libarchive/test/test_archive_read_support.c @@ -91,6 +91,7 @@ DEFINE_TEST(test_archive_read_support) diff --git a/meta/recipes-extended/libarchive/libarchive/0005-Disable-RPM-filter-auto-bidding.patch b/meta/recipes-extended/libarchive/libarchive/0005-Disable-RPM-filter-auto-bidding.patch index 26a0159908..86eb48a804 100644 --- a/meta/recipes-extended/libarchive/libarchive/0005-Disable-RPM-filter-auto-bidding.patch +++ b/meta/recipes-extended/libarchive/libarchive/0005-Disable-RPM-filter-auto-bidding.patch @@ -1,4 +1,4 @@ -From 882166d7fa113f0c2108864b8a579d01816e1fce Mon Sep 17 00:00:00 2001 +From b367b31b5b764e15c8d484a75c790b6ffa1e20d8 Mon Sep 17 00:00:00 2001 From: Sumanth Gavini Date: Tue, 11 Aug 2026 12:02:31 -0700 Subject: [PATCH] libarchive: Disable RPM filter auto-bidding @@ -20,7 +20,7 @@ Signed-off-by: Sumanth Gavini 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/libarchive/archive_read_support_filter_rpm.c b/libarchive/archive_read_support_filter_rpm.c -index 01bd1bf..8e90da3 100644 +index 1cfddf7..a9b6ef8 100644 --- a/libarchive/archive_read_support_filter_rpm.c +++ b/libarchive/archive_read_support_filter_rpm.c @@ -79,39 +79,14 @@ static int @@ -69,5 +69,3 @@ index 01bd1bf..8e90da3 100644 } static const struct archive_read_filter_vtable --- -2.49.0 diff --git a/meta/recipes-extended/libarchive/libarchive_3.8.9.bb b/meta/recipes-extended/libarchive/libarchive_3.8.10.bb similarity index 90% rename from meta/recipes-extended/libarchive/libarchive_3.8.9.bb rename to meta/recipes-extended/libarchive/libarchive_3.8.10.bb index 2eefa28532..804dcd7451 100644 --- a/meta/recipes-extended/libarchive/libarchive_3.8.9.bb +++ b/meta/recipes-extended/libarchive/libarchive_3.8.10.bb @@ -31,16 +31,12 @@ EXTRA_OECONF += "--enable-largefile --without-iconv" SRC_URI = "https://libarchive.org/downloads/libarchive-${PV}.tar.gz \ file://run-ptest \ - file://0001-append_filter-Use-last-bidder-for-filter.patch \ - file://0001-test-skip-ppmd8-aes256-streaming-test-when-no-crypto.patch \ - file://0001-append_filter-Verify-that-bidder-and-filter-match.patch \ - file://0003-Remove-bidder-name.patch \ file://0004-Convert-RPM-reader-into-a-proper-format.patch \ file://0005-Disable-RPM-filter-auto-bidding.patch \ - " + " UPSTREAM_CHECK_URI = "https://www.libarchive.org/" -SRC_URI[sha256sum] = "f5a6539059cf5e597dbeda37bfa4874b1e8dea063c8d93bf85a2b44af90a5bd4" +SRC_URI[sha256sum] = "a1bffbe5152cfe869751179e7b16648c87c461cb8c46eee75062efbe164cc57c" inherit autotools update-alternatives pkgconfig ptest