diff mbox series

[meta-oe] bit7z: upgrade 4.0.9 -> 4.0.11

Message ID 20260226075831.2968-1-liuyd.fnst@fujitsu.com
State New
Headers show
Series [meta-oe] bit7z: upgrade 4.0.9 -> 4.0.11 | expand

Commit Message

Liu Yiding Feb. 26, 2026, 7:58 a.m. UTC
1. Changelog:
  https://github.com/rikyoz/bit7z/releases/tag/v4.0.11

2. Drop following patches as they were merged upstream.
  0001-Fix-reinterpret-cast-compiler-errors.patch
  0001-Fix-int8_t-storage-in-BitPropVariant-on-Arm-architec.patch
  0001-Allow-running-tests-on-target-when-cross-compiling.patch
  0001-Allow-specifying-path-to-7z-library-in-tests.patch
  0001-Fix-tests-with-musl.patch

3. Adjust Ptest SRCREV to adopt to latest bit7z

  SRCREV_filesystem refer to bit7z-4.0.11/cmake/Dependencies.cmake
  SRCREV_catch2 refer to bit7z-4.0.11/tests/CMakeLists.txt
  SRCHASH_CPM and TAG_CPM refer to bit7z-4.0.11/cmake/Dependencies.cmake

4.cmake/Dependencies.cmake has redefined to check and download CPM_${CPM_DOWNLOAD_VERSION}.cmake file to
CPM_SOURCE_CACHE, so it will show error in do_configure as ./build/cpm_cache/cpm/CPM_0.42.0.cmake is empty

  | -- Downloading CPM.cmake to ...bit7z/4.0.11/build/cpm_cache/cpm/CPM_0.42.0.cmake
  | CMake Error at cmake/Dependencies.cmake:15 (file):
  |   file DOWNLOAD cannot compute hash on failed download
  |
  |     from url: "https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.42.0/CPM.cmake"
  |     status: [6;"Could not resolve hostname"]
  
  So change ${B}/cmake to ${B}/cpm_cache/cpm/ to fix this issue.
  ./build/cpm_cache/cpm/CPM_0.42.0.cmake

5. Add 0001-cmake-disable-filesystem-gitclone.patch to fix filesystem git clone error

  Fix error log as following:
  | fatal: unable to access 'https://github.com/rikyoz/filesystem.git/': Could not resolve host: github.com
  | Had to git clone more than once: 3 times.
  | CMake Error at bit7z/4.0.11/build/_deps/ghc_filesystem-subbuild/ghc_filesystem-populate-prefix/tmp/ghc_filesystem-populate-gitclone.cmake:50 (message):
  |   Failed to clone repository: 'https://github.com/rikyoz/filesystem.git'

Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
---
 ...tests-on-target-when-cross-compiling.patch | 45 ----------------
 ...ecifying-path-to-7z-library-in-tests.patch | 48 -----------------
 ...ge-in-BitPropVariant-on-Arm-architec.patch | 41 ---------------
 ...Fix-reinterpret-cast-compiler-errors.patch | 52 -------------------
 .../7zip/bit7z/0001-Fix-tests-with-musl.patch | 51 ------------------
 ...01-cmake-disable-filesystem-gitclone.patch | 37 +++++++++++++
 .../7zip/{bit7z_4.0.9.bb => bit7z_4.0.11.bb}  | 28 ++++------
 7 files changed, 48 insertions(+), 254 deletions(-)
 delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Allow-running-tests-on-target-when-cross-compiling.patch
 delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Allow-specifying-path-to-7z-library-in-tests.patch
 delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Fix-int8_t-storage-in-BitPropVariant-on-Arm-architec.patch
 delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Fix-reinterpret-cast-compiler-errors.patch
 delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Fix-tests-with-musl.patch
 create mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-cmake-disable-filesystem-gitclone.patch
 rename meta-oe/recipes-extended/7zip/{bit7z_4.0.9.bb => bit7z_4.0.11.bb} (76%)

Comments

Peter Marko Feb. 26, 2026, 8:18 a.m. UTC | #1
> -----Original Message-----
> From: openembedded-devel@lists.openembedded.org <openembedded-
> devel@lists.openembedded.org> On Behalf Of Yiding Liu (Fujitsu) via
> lists.openembedded.org
> Sent: Thursday, February 26, 2026 8:59
> To: openembedded-devel@lists.openembedded.org
> Subject: [oe][meta-oe][PATCH] bit7z: upgrade 4.0.9 -> 4.0.11
> 
> 1. Changelog:
>   https://github.com/rikyoz/bit7z/releases/tag/v4.0.11
> 
> 2. Drop following patches as they were merged upstream.
>   0001-Fix-reinterpret-cast-compiler-errors.patch
>   0001-Fix-int8_t-storage-in-BitPropVariant-on-Arm-architec.patch
>   0001-Allow-running-tests-on-target-when-cross-compiling.patch
>   0001-Allow-specifying-path-to-7z-library-in-tests.patch
>   0001-Fix-tests-with-musl.patch
> 
> 3. Adjust Ptest SRCREV to adopt to latest bit7z
> 
>   SRCREV_filesystem refer to bit7z-4.0.11/cmake/Dependencies.cmake
>   SRCREV_catch2 refer to bit7z-4.0.11/tests/CMakeLists.txt
>   SRCHASH_CPM and TAG_CPM refer to bit7z-4.0.11/cmake/Dependencies.cmake
> 
> 4.cmake/Dependencies.cmake has redefined to check and download
> CPM_${CPM_DOWNLOAD_VERSION}.cmake file to
> CPM_SOURCE_CACHE, so it will show error in do_configure as
> ./build/cpm_cache/cpm/CPM_0.42.0.cmake is empty
> 
>   | -- Downloading CPM.cmake to
> ...bit7z/4.0.11/build/cpm_cache/cpm/CPM_0.42.0.cmake
>   | CMake Error at cmake/Dependencies.cmake:15 (file):
>   |   file DOWNLOAD cannot compute hash on failed download
>   |
>   |     from url: "https://github.com/cpm-
> cmake/CPM.cmake/releases/download/v0.42.0/CPM.cmake"
>   |     status: [6;"Could not resolve hostname"]
> 
>   So change ${B}/cmake to ${B}/cpm_cache/cpm/ to fix this issue.
>   ./build/cpm_cache/cpm/CPM_0.42.0.cmake
> 
> 5. Add 0001-cmake-disable-filesystem-gitclone.patch to fix filesystem git clone
> error
> 
>   Fix error log as following:
>   | fatal: unable to access 'https://github.com/rikyoz/filesystem.git/': Could not
> resolve host: github.com
>   | Had to git clone more than once: 3 times.
>   | CMake Error at bit7z/4.0.11/build/_deps/ghc_filesystem-
> subbuild/ghc_filesystem-populate-prefix/tmp/ghc_filesystem-populate-
> gitclone.cmake:50 (message):
>   |   Failed to clone repository: 'https://github.com/rikyoz/filesystem.git'
> 
> Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
> ---
>  ...tests-on-target-when-cross-compiling.patch | 45 ----------------
>  ...ecifying-path-to-7z-library-in-tests.patch | 48 -----------------
>  ...ge-in-BitPropVariant-on-Arm-architec.patch | 41 ---------------
>  ...Fix-reinterpret-cast-compiler-errors.patch | 52 -------------------
>  .../7zip/bit7z/0001-Fix-tests-with-musl.patch | 51 ------------------
>  ...01-cmake-disable-filesystem-gitclone.patch | 37 +++++++++++++
>  .../7zip/{bit7z_4.0.9.bb => bit7z_4.0.11.bb}  | 28 ++++------
>  7 files changed, 48 insertions(+), 254 deletions(-)
>  delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Allow-running-
> tests-on-target-when-cross-compiling.patch
>  delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Allow-specifying-
> path-to-7z-library-in-tests.patch
>  delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Fix-int8_t-storage-
> in-BitPropVariant-on-Arm-architec.patch
>  delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Fix-reinterpret-cast-
> compiler-errors.patch
>  delete mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-Fix-tests-with-
> musl.patch
>  create mode 100644 meta-oe/recipes-extended/7zip/bit7z/0001-cmake-disable-
> filesystem-gitclone.patch
>  rename meta-oe/recipes-extended/7zip/{bit7z_4.0.9.bb => bit7z_4.0.11.bb} (76%)
> 
> diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-running-tests-on-target-
> when-cross-compiling.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-
> running-tests-on-target-when-cross-compiling.patch
> deleted file mode 100644
> index b6e24a9519..0000000000
> --- a/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-running-tests-on-target-when-
> cross-compiling.patch
> +++ /dev/null
> @@ -1,45 +0,0 @@
> -From 9f0eed91d32ec2f310bd5c23af187f888394fcb4 Mon Sep 17 00:00:00 2001
> -From: Peter Marko <peter.marko@siemens.com>
> -Date: Wed, 2 Apr 2025 09:33:03 +0200
> -Subject: [PATCH] Allow running tests on target when cross-compiling
> -
> -When bit7z is Cross-compiled, target device does not contain
> -source/build directory anymore and thus path to test data is different.
> -Make it possible to pass the new path to cmake.
> -
> -Upstream-Status: Submitted [https://github.com/rikyoz/bit7z/pull/289]
> -Signed-off-by: Peter Marko <peter.marko@siemens.com>
> ----
> - tests/CMakeLists.txt | 9 +++++++--
> - 1 file changed, 7 insertions(+), 2 deletions(-)
> -
> -diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
> -index 60da280..dbdff1f 100644
> ---- a/tests/CMakeLists.txt
> -+++ b/tests/CMakeLists.txt
> -@@ -49,6 +49,11 @@ add_executable( ${TESTS_TARGET_PUBLIC}
> ${SOURCE_FILES} ${PUBLIC_API_SOURCE_FILES
> -
> - if( BIT7Z_TESTS_FILESYSTEM )
> -     set( BIT7Z_TESTS_DATA_DIR ${CMAKE_CURRENT_BINARY_DIR}/data )
> -+    if( NOT BIT7Z_TESTS_DATA_DIR_TARGET )
> -+        set( BIT7Z_TESTS_DATA_DIR_TARGET ${BIT7Z_TESTS_DATA_DIR} )
> -+    else()
> -+        message( STATUS "Custom test data dir on target:
> ${BIT7Z_TESTS_DATA_DIR_TARGET}" )
> -+    endif()
> -
> -     include( FetchContent )
> -     FetchContent_Declare( bit7z-test-data
> -@@ -61,11 +66,11 @@ if( BIT7Z_TESTS_FILESYSTEM )
> -     message( STATUS "Tests data directory: ${BIT7Z_TESTS_DATA_DIR}" )
> -     target_compile_definitions( ${TESTS_TARGET} PRIVATE
> -                                 BIT7Z_TESTS_FILESYSTEM
> --                                BIT7Z_TESTS_DATA_DIR="${BIT7Z_TESTS_DATA_DIR}" )
> -+
> BIT7Z_TESTS_DATA_DIR="${BIT7Z_TESTS_DATA_DIR_TARGET}" )
> -     target_compile_definitions( ${TESTS_TARGET_PUBLIC} PRIVATE
> -                                 BIT7Z_TESTS_PUBLIC_API_ONLY
> -                                 BIT7Z_TESTS_FILESYSTEM
> --                                BIT7Z_TESTS_DATA_DIR="${BIT7Z_TESTS_DATA_DIR}" )
> -+
> BIT7Z_TESTS_DATA_DIR="${BIT7Z_TESTS_DATA_DIR_TARGET}" )
> -     if( NOT EXISTS ${BIT7Z_TESTS_DATA_DIR}/test_filesystem/empty )
> -         file( MAKE_DIRECTORY ${BIT7Z_TESTS_DATA_DIR}/test_filesystem/empty
> )
> -     endif()
> diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-specifying-path-to-7z-
> library-in-tests.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-specifying-
> path-to-7z-library-in-tests.patch
> deleted file mode 100644
> index adc0d67d97..0000000000
> --- a/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-specifying-path-to-7z-library-
> in-tests.patch
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -From 60137ec132951f941f2fb98cd6353717b322cbf1 Mon Sep 17 00:00:00 2001
> -From: Peter Marko <peter.marko@siemens.com>
> -Date: Wed, 2 Apr 2025 10:17:38 +0200
> -Subject: [PATCH] Allow specifying path to 7z library in tests
> -
> -For instance to override path to library on Linux when using real 7-zip
> -instead of pzip: /usr/lib/lib7z.so
> -
> -Upstream-Status: Submitted [https://github.com/rikyoz/bit7z/pull/288]
> -Signed-off-by: Peter Marko <peter.marko@siemens.com>
> ----
> - tests/CMakeLists.txt           | 7 +++++++
> - tests/src/utils/shared_lib.hpp | 4 +++-
> - 2 files changed, 10 insertions(+), 1 deletion(-)
> -
> -diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
> -index 60da280d..1307366a 100644
> ---- a/tests/CMakeLists.txt
> -+++ b/tests/CMakeLists.txt
> -@@ -103,6 +103,13 @@ message( STATUS "Use system 7-zip for tests:
> ${BIT7Z_TESTS_USE_SYSTEM_7ZIP}" )
> - if( BIT7Z_TESTS_USE_SYSTEM_7ZIP )
> -     target_compile_definitions( ${TESTS_TARGET} PRIVATE
> BIT7Z_TESTS_USE_SYSTEM_7ZIP )
> -     target_compile_definitions( ${TESTS_TARGET_PUBLIC} PRIVATE
> BIT7Z_TESTS_USE_SYSTEM_7ZIP )
> -+else()
> -+    set( BIT7Z_TESTS_7Z_LIBRARY_PATH "" CACHE STRING "The path of the 7-
> Zip library to be used for running the tests" )
> -+    if( NOT BIT7Z_TESTS_7Z_LIBRARY_PATH STREQUAL "" )
> -+        message( STATUS "Use custom 7-zip library for tests:
> ${BIT7Z_TESTS_7Z_LIBRARY_PATH}" )
> -+        target_compile_definitions( ${TESTS_TARGET} PRIVATE
> BIT7Z_TESTS_7Z_LIBRARY_PATH="${BIT7Z_TESTS_7Z_LIBRARY_PATH}" )
> -+        target_compile_definitions( ${TESTS_TARGET_PUBLIC} PRIVATE
> BIT7Z_TESTS_7Z_LIBRARY_PATH="${BIT7Z_TESTS_7Z_LIBRARY_PATH}" )
> -+    endif()
> - endif()
> -
> - # Avoiding linking unnecessary libraries.
> -diff --git a/tests/src/utils/shared_lib.hpp b/tests/src/utils/shared_lib.hpp
> -index 41435a9b..8bc02939 100644
> ---- a/tests/src/utils/shared_lib.hpp
> -+++ b/tests/src/utils/shared_lib.hpp
> -@@ -20,7 +20,9 @@ namespace bit7z {
> - namespace test {
> -
> - inline auto sevenzip_lib_path() -> tstring {
> --#ifdef BIT7Z_TESTS_USE_SYSTEM_7ZIP
> -+#ifdef BIT7Z_TESTS_7Z_LIBRARY_PATH
> -+    static const tstring lib_path = BIT7Z_STRING(
> BIT7Z_TESTS_7Z_LIBRARY_PATH );
> -+#elif defined( BIT7Z_TESTS_USE_SYSTEM_7ZIP )
> - #ifdef _WIN64
> -     static const tstring lib_path = BIT7Z_STRING( "C:\\Program Files\\7-Zip\\7z.dll"
> );
> - #elif defined( _WIN32 )
> diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-int8_t-storage-in-
> BitPropVariant-on-Arm-architec.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-
> Fix-int8_t-storage-in-BitPropVariant-on-Arm-architec.patch
> deleted file mode 100644
> index b1bf6923f2..0000000000
> --- a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-int8_t-storage-in-BitPropVariant-
> on-Arm-architec.patch
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -From d504abaf2b0a514193f52df42098bc16de4718b2 Mon Sep 17 00:00:00 2001
> -From: Oz <rik20@live.it>
> -Date: Fri, 17 Jan 2025 21:23:59 +0100
> -Subject: [PATCH] Fix int8_t storage in BitPropVariant on Arm architectures
> -
> -Upstream-Status: Backport
> [https://github.com/rikyoz/bit7z/commit/d504abaf2b0a514193f52df42098bc16de47
> 18b2]
> -Signed-off-by: Peter Marko <peter.marko@siemens.com>
> ----
> - include/bit7z/bitwindows.hpp | 4 ++++
> - src/bitpropvariant.cpp       | 2 +-
> - 2 files changed, 5 insertions(+), 1 deletion(-)
> -
> -diff --git a/include/bit7z/bitwindows.hpp b/include/bit7z/bitwindows.hpp
> -index 5849b956..2f29a989 100644
> ---- a/include/bit7z/bitwindows.hpp
> -+++ b/include/bit7z/bitwindows.hpp
> -@@ -126,7 +126,11 @@ struct PROPVARIANT {
> -     WORD wReserved2;
> -     WORD wReserved3;
> -     union {
> -+#if defined( __arm__ ) || defined( __aarch64__ )
> -+        signed char cVal;
> -+#else
> -         char cVal;
> -+#endif
> -         unsigned char bVal;
> -         short iVal;
> -         unsigned short uiVal;
> -diff --git a/src/bitpropvariant.cpp b/src/bitpropvariant.cpp
> -index 1e7f094f..642e1268 100644
> ---- a/src/bitpropvariant.cpp
> -+++ b/src/bitpropvariant.cpp
> -@@ -157,7 +157,7 @@ BitPropVariant::BitPropVariant( uint64_t value ) noexcept:
> PROPVARIANT() {
> - BitPropVariant::BitPropVariant( int8_t value ) noexcept: PROPVARIANT() {
> -     vt = VT_I1;
> -     wReserved1 = 0;
> --    cVal = static_cast< char >( value );
> -+    cVal = static_cast< decltype(cVal) >( value );
> - }
> -
> - BitPropVariant::BitPropVariant( int16_t value ) noexcept: PROPVARIANT() {
> diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-reinterpret-cast-compiler-
> errors.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-reinterpret-cast-
> compiler-errors.patch
> deleted file mode 100644
> index 08b64f4999..0000000000
> --- a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-reinterpret-cast-compiler-
> errors.patch
> +++ /dev/null
> @@ -1,52 +0,0 @@
> -From bedeec4d57d29be7de91697277ace00ba87d3e75 Mon Sep 17 00:00:00 2001
> -From: Peter Marko <peter.marko@siemens.com>
> -Date: Tue, 1 Apr 2025 15:23:51 +0200
> -Subject: [PATCH] Fix reinterpret-cast compiler errors
> -
> -Building on 32-bit arm, following warning/error occurs:
> -
> -src/internal/windows.cpp: In function 'bit7z::OLECHAR*
> AllocStringBuffer(LPCSTR, uint32_t)':
> -src/internal/windows.cpp:79:6: error: cast from 'unsigned char*' to 'bstr_prefix_t*'
> {aka 'unsigned int*'} increases required alignment of target type [-Werror=cast-
> align]
> -   79 |     *reinterpret_cast< bstr_prefix_t* >( bstrBuffer ) = byteLength;
> -      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -git/src/internal/windows.cpp:83:19: error: cast from 'unsigned char*' to
> 'bit7z::BSTR' {aka 'wchar_t*'} increases required alignment of target type [-
> Werror=cast-align]
> -   83 |     BSTR result = reinterpret_cast< BSTR >( bstrBuffer + sizeof(
> bstr_prefix_t ) );
> -      |
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~~~
> -cc1plus: all warnings being treated as errors
> -
> -Fix it by using the desired variable size right away and thus avoid
> -casting to an array with different alignment.
> -
> -Upstream-Status: Backport
> [https://github.com/rikyoz/bit7z/commit/b2789ea9b0fbb2a74dbf6764ddb72d60659
> a3bce]
> -Signed-off-by: Peter Marko <peter.marko@siemens.com>
> ----
> - src/internal/windows.cpp | 7 +++----
> - 1 file changed, 3 insertions(+), 4 deletions(-)
> -
> -diff --git a/src/internal/windows.cpp b/src/internal/windows.cpp
> -index 9304aed7..7bee5959 100644
> ---- a/src/internal/windows.cpp
> -+++ b/src/internal/windows.cpp
> -@@ -68,19 +68,18 @@ auto AllocStringBuffer( LPCSTR str, uint32_t byteLength )
> -> BSTR {
> -
> -     // Allocating memory for storing the BSTR as a byte array.
> -     // NOLINTNEXTLINE(cppcoreguidelines-no-malloc, cppcoreguidelines-owning-
> memory)
> --    auto* bstrBuffer = static_cast< byte_t* >( std::calloc( bufferSize, sizeof( byte_t
> ) ) );
> -+    auto* bstrBuffer = static_cast< bstr_prefix_t* >( std::calloc( bufferSize,
> sizeof( byte_t ) ) );
> -
> -     if ( bstrBuffer == nullptr ) { // Failed to allocate memory for the BSTR buffer.
> -         return nullptr;
> -     }
> -
> -     // Storing the number of bytes of the BSTR as a prefix of it.
> --    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
> --    *reinterpret_cast< bstr_prefix_t* >( bstrBuffer ) = byteLength;
> -+    *bstrBuffer = byteLength;
> -
> -     // The actual BSTR must point after the byteLength prefix.
> -     // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic,
> cppcoreguidelines-pro-type-reinterpret-cast)
> --    BSTR result = reinterpret_cast< BSTR >( bstrBuffer + sizeof( bstr_prefix_t ) );
> -+    BSTR result = reinterpret_cast< BSTR >( bstrBuffer + 1 );
> -     if ( str != nullptr ) {
> -         // Copying byte-by-byte the input string to the BSTR.
> -         // Note: flawfinder warns about not checking for buffer overflows; this is a
> false alarm,
> diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-tests-with-musl.patch
> b/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-tests-with-musl.patch
> deleted file mode 100644
> index b1f3d0f2ec..0000000000
> --- a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-tests-with-musl.patch
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -From bc5f2e5af90854c8f84b5829493dd01facf9af84 Mon Sep 17 00:00:00 2001
> -From: Peter Marko <peter.marko@siemens.com>
> -Date: Mon, 7 Apr 2025 16:29:32 +0200
> -Subject: [PATCH] Fix tests with musl
> -
> -Upstream-Status: Submitted [https://github.com/rikyoz/bit7z/pull/292]
> -Signed-off-by: Peter Marko <peter.marko@siemens.com>
> ----
> - tests/src/test_bitexception.cpp | 8 ++++++++
> - 1 file changed, 8 insertions(+)
> -
> -diff --git a/tests/src/test_bitexception.cpp b/tests/src/test_bitexception.cpp
> -index 7161fcc5..d85d430d 100644
> ---- a/tests/src/test_bitexception.cpp
> -+++ b/tests/src/test_bitexception.cpp
> -@@ -49,6 +49,8 @@ constexpr PortableErrorTest hresult_tests[] = { // NOLINT(*-
> avoid-c-arrays)
> -     { HRESULT_WIN32_TEST( ERROR_OPEN_FAILED ),
> - #ifdef _WIN32
> -       "The system cannot open the device or file specified.",
> -+#elif defined( __linux__ ) && !defined ( __GLIBC__ )
> -+      "I/O error",
> - #else
> -         "Input/output error",
> - #endif
> -@@ -67,6 +69,8 @@ constexpr PortableErrorTest hresult_tests[] = { // NOLINT(*-
> avoid-c-arrays)
> -     { HRESULT_WIN32_TEST( ERROR_SEEK ),
> - #ifdef _WIN32
> -       "The drive cannot locate a specific area or track on the disk.",
> -+#elif defined( __linux__ ) && !defined ( __GLIBC__ )
> -+      "I/O error",
> - #else
> -         "Input/output error",
> - #endif
> -@@ -74,6 +78,8 @@ constexpr PortableErrorTest hresult_tests[] = { // NOLINT(*-
> avoid-c-arrays)
> -     { HRESULT_WIN32_TEST( ERROR_READ_FAULT ),
> - #ifdef _WIN32
> -       "The system cannot read from the specified device.",
> -+#elif defined( __linux__ ) && !defined ( __GLIBC__ )
> -+      "I/O error",
> - #else
> -         "Input/output error",
> - #endif
> -@@ -81,6 +87,8 @@ constexpr PortableErrorTest hresult_tests[] = { // NOLINT(*-
> avoid-c-arrays)
> -     { HRESULT_WIN32_TEST( ERROR_WRITE_FAULT ),
> - #ifdef _WIN32
> -       "The system cannot write to the specified device.",
> -+#elif defined( __linux__ ) && !defined ( __GLIBC__ )
> -+      "I/O error",
> - #else
> -         "Input/output error",
> - #endif
> diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-cmake-disable-filesystem-
> gitclone.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-cmake-disable-
> filesystem-gitclone.patch
> new file mode 100644
> index 0000000000..917b70f58e
> --- /dev/null
> +++ b/meta-oe/recipes-extended/7zip/bit7z/0001-cmake-disable-filesystem-
> gitclone.patch
> @@ -0,0 +1,37 @@
> +Subject: [PATCH] cmake: disable filesystem gitclone
> +
> +In Yocto we don't download filesystem, it is satisfied from source dir.
> +This Dependencies.cmake file would try to download filesystem even if it is
> satisfied.
> +
> +Fix error log as following:
> +| fatal: unable to access 'https://github.com/rikyoz/filesystem.git/': Could not
> resolve host: github.com
> +| Had to git clone more than once: 3 times.
> +| CMake Error at bit7z/4.0.11/build/_deps/ghc_filesystem-
> subbuild/ghc_filesystem-populate-prefix/tmp/ghc_filesystem-populate-
> gitclone.cmake:50 (message):
> +|   Failed to clone repository: 'https://github.com/rikyoz/filesystem.git'
> +
> +Upstream-Status: Inappropriate [OE-specific]
> +
> +Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
> +---
> + cmake/Dependencies.cmake | 3 +--
> + 1 file changed, 1 insertion(+), 2 deletions(-)
> +
> +diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
> +index 110d9c2b..dc1dead8 100644
> +--- a/cmake/Dependencies.cmake
> ++++ b/cmake/Dependencies.cmake
> +@@ -39,10 +39,9 @@ if( NOT USE_STANDARD_FILESYSTEM OR NOT
> STANDARD_FILESYSTEM_COMPILES OR BIT7Z_BUI
> +     CPMAddPackage( NAME ghc_filesystem
> +                    GITHUB_REPOSITORY rikyoz/filesystem
> +                    GIT_TAG b99c2aebd5ddd6fb2f190731ba80b949fc3842b5
> +-                   DOWNLOAD_ONLY YES )
> ++                   SOURCE_DIR "${CPM_SOURCE_CACHE}/ghc_filesystem" )
> +     if( ghc_filesystem_ADDED )
> +         message( STATUS "ghc::filesystem source code available at
> ${ghc_filesystem_SOURCE_DIR}" )
> +-        add_library( ghc_filesystem INTERFACE IMPORTED )
> +         target_include_directories( ghc_filesystem SYSTEM INTERFACE
> ${ghc_filesystem_SOURCE_DIR}/include )
> +     endif()
> + endif()
> +--
> +2.43.0
> +
> diff --git a/meta-oe/recipes-extended/7zip/bit7z_4.0.9.bb b/meta-oe/recipes-
> extended/7zip/bit7z_4.0.11.bb
> similarity index 76%
> rename from meta-oe/recipes-extended/7zip/bit7z_4.0.9.bb
> rename to meta-oe/recipes-extended/7zip/bit7z_4.0.11.bb
> index 033461d614..4e9a958422 100644
> --- a/meta-oe/recipes-extended/7zip/bit7z_4.0.9.bb
> +++ b/meta-oe/recipes-extended/7zip/bit7z_4.0.11.bb
> @@ -6,30 +6,25 @@ LIC_FILES_CHKSUM =
> "file://LICENSE;md5=48a3fe23ed1353e0995dadfda05ffdb6"
>  SRC_URI = " \
>      git://github.com/rikyoz/bit7z.git;protocol=https;branch=master \

Please add ";tag=v${PV}" to SRC_URI

Peter

>      ${@bb.utils.contains('PTEST_ENABLED', '1', d.getVar('SRC_URI_PTEST'),
> 'file://0001-cmake-disable-dependency-inclusion.patch', d)} \
> -    file://0001-Fix-reinterpret-cast-compiler-errors.patch \
> -    file://0001-Fix-int8_t-storage-in-BitPropVariant-on-Arm-architec.patch \
> -    file://0001-Allow-running-tests-on-target-when-cross-compiling.patch \
> -    file://0001-Allow-specifying-path-to-7z-library-in-tests.patch \
> -    file://0001-Fix-tests-with-musl.patch \
>  "
> 
> -SRCREV = "386e00ad3286e7a10e5bb6d05a5b41b523fce623"
> +SRCREV = "82f359371fda5c16c037ac0659b969334816a9c4"
> 
>  # ptest dependencies and their revisions
>  SRC_URI_PTEST = " \
> 
> git://github.com/rikyoz/filesystem.git;protocol=https;branch=glibcxx_wchar_stream
> s_workaround;name=filesystem;destsuffix=filesystem \
>      git://github.com/rikyoz/bit7z-test-
> data.git;protocol=https;branch=main;name=testdata;destsuffix=testdata \
> -
> git://github.com/catchorg/Catch2.git;protocol=https;branch=v2.x;name=catch2;des
> tsuffix=catch2;tag=${TAG_catch2} \
> +    git://github.com/rikyoz/Catch2.git;protocol=https;branch=single-header-
> v2.x;name=catch2;destsuffix=catch2 \
>      https://github.com/cpm-
> cmake/CPM.cmake/releases/download/v${TAG_CPM}/CPM.cmake;downloadfilena
> me=CPM_${TAG_CPM}.cmake \
>      file://run-ptest \
> +    file://0001-cmake-disable-filesystem-gitclone.patch \
>  "
>  SRCREV_FORMAT = "${@bb.utils.contains('PTEST_ENABLED', '1',
> 'default_filesystem_testdata_catch2', 'default', d)}"
> -SRCREV_filesystem = "983650f374699e3979f9cdefe13ddff60bd4ac68"
> +SRCREV_filesystem = "b99c2aebd5ddd6fb2f190731ba80b949fc3842b5"
>  SRCREV_testdata = "077e407b1c07b7443626b5902eeb4819388bf656"
> -SRCREV_catch2 = "182c910b4b63ff587a3440e08f84f70497e49a81"
> -TAG_catch2 = "v2.13.10"
> -SRCHASH_CPM =
> "c8cdc32c03816538ce22781ed72964dc864b2a34a310d3b7104812a5ca2d835d"
> -TAG_CPM = "0.40.2"
> +SRCREV_catch2 = "27d8db1770dd5cd3688656095f242474431584a1"
> +SRCHASH_CPM =
> "2020b4fc42dba44817983e06342e682ecfc3d2f484a581f11cc5731fbe4dce8a"
> +TAG_CPM = "0.42.0"
>  SRC_URI[sha256sum] = "${SRCHASH_CPM}"
> 
> 
> @@ -51,15 +46,14 @@ do_configure:prepend() {
>      # verify that all dependencies have correct version
>      grep -q ${SRCREV_filesystem} ${S}/cmake/Dependencies.cmake || bbfatal
> "ERROR: dependency version mismatch, please update 'SRCREV_filesystem'!"
>      grep -q ${SRCREV_testdata} ${S}/tests/CMakeLists.txt || bbfatal "ERROR:
> dependency version mismatch, please update 'SRCREV_testdata'!"
> -    grep -q ${TAG_catch2} ${S}/tests/cmake/Catch2.cmake || bbfatal "ERROR:
> dependency version mismatch, please update 'SRCREV_catch2'!"
> +    grep -q ${SRCREV_catch2} ${S}/tests/CMakeLists.txt || bbfatal "ERROR:
> dependency version mismatch, please update 'SRCREV_catch2'!"
>      grep -q ${SRCHASH_CPM} ${S}/cmake/Dependencies.cmake || bbfatal
> "ERROR: dependency version mismatch, please update 'SRCHASH_CPM'!"
> 
>      if ${@bb.utils.contains('PTEST_ENABLED', '1', 'true', 'false', d)}; then
>          # use cache instead of download for CPM (CMake's missing package
> manager)
> -        mkdir -p ${B}/cmake
> -        cp ${UNPACKDIR}/CPM_${TAG_CPM}.cmake ${B}/cmake
> -        mkdir -p ${B}/cpm_cache/ghc_filesystem
> -        cp -r ${UNPACKDIR}/filesystem
> ${B}/cpm_cache/ghc_filesystem/fbcc9a9e94e6365273cf51294173f21ff5efdb4f
> +        mkdir -p ${B}/cpm_cache/cpm/
> +        cp ${UNPACKDIR}/CPM_${TAG_CPM}.cmake ${B}/cpm_cache/cpm/
> +        cp -r ${UNPACKDIR}/filesystem ${B}/cpm_cache/ghc_filesystem
>          # avoid buildpaths issue as unpackdir is not in prefix maps
>          cp -r ${UNPACKDIR}/catch2 ${B}
>      fi
> --
> 2.43.0
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-running-tests-on-target-when-cross-compiling.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-running-tests-on-target-when-cross-compiling.patch
deleted file mode 100644
index b6e24a9519..0000000000
--- a/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-running-tests-on-target-when-cross-compiling.patch
+++ /dev/null
@@ -1,45 +0,0 @@ 
-From 9f0eed91d32ec2f310bd5c23af187f888394fcb4 Mon Sep 17 00:00:00 2001
-From: Peter Marko <peter.marko@siemens.com>
-Date: Wed, 2 Apr 2025 09:33:03 +0200
-Subject: [PATCH] Allow running tests on target when cross-compiling
-
-When bit7z is Cross-compiled, target device does not contain
-source/build directory anymore and thus path to test data is different.
-Make it possible to pass the new path to cmake.
-
-Upstream-Status: Submitted [https://github.com/rikyoz/bit7z/pull/289]
-Signed-off-by: Peter Marko <peter.marko@siemens.com>
----
- tests/CMakeLists.txt | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index 60da280..dbdff1f 100644
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -49,6 +49,11 @@ add_executable( ${TESTS_TARGET_PUBLIC} ${SOURCE_FILES} ${PUBLIC_API_SOURCE_FILES
- 
- if( BIT7Z_TESTS_FILESYSTEM )
-     set( BIT7Z_TESTS_DATA_DIR ${CMAKE_CURRENT_BINARY_DIR}/data )
-+    if( NOT BIT7Z_TESTS_DATA_DIR_TARGET )
-+        set( BIT7Z_TESTS_DATA_DIR_TARGET ${BIT7Z_TESTS_DATA_DIR} )
-+    else()
-+        message( STATUS "Custom test data dir on target: ${BIT7Z_TESTS_DATA_DIR_TARGET}" )
-+    endif()
- 
-     include( FetchContent )
-     FetchContent_Declare( bit7z-test-data
-@@ -61,11 +66,11 @@ if( BIT7Z_TESTS_FILESYSTEM )
-     message( STATUS "Tests data directory: ${BIT7Z_TESTS_DATA_DIR}" )
-     target_compile_definitions( ${TESTS_TARGET} PRIVATE
-                                 BIT7Z_TESTS_FILESYSTEM
--                                BIT7Z_TESTS_DATA_DIR="${BIT7Z_TESTS_DATA_DIR}" )
-+                                BIT7Z_TESTS_DATA_DIR="${BIT7Z_TESTS_DATA_DIR_TARGET}" )
-     target_compile_definitions( ${TESTS_TARGET_PUBLIC} PRIVATE
-                                 BIT7Z_TESTS_PUBLIC_API_ONLY
-                                 BIT7Z_TESTS_FILESYSTEM
--                                BIT7Z_TESTS_DATA_DIR="${BIT7Z_TESTS_DATA_DIR}" )
-+                                BIT7Z_TESTS_DATA_DIR="${BIT7Z_TESTS_DATA_DIR_TARGET}" )
-     if( NOT EXISTS ${BIT7Z_TESTS_DATA_DIR}/test_filesystem/empty )
-         file( MAKE_DIRECTORY ${BIT7Z_TESTS_DATA_DIR}/test_filesystem/empty )
-     endif()
diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-specifying-path-to-7z-library-in-tests.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-specifying-path-to-7z-library-in-tests.patch
deleted file mode 100644
index adc0d67d97..0000000000
--- a/meta-oe/recipes-extended/7zip/bit7z/0001-Allow-specifying-path-to-7z-library-in-tests.patch
+++ /dev/null
@@ -1,48 +0,0 @@ 
-From 60137ec132951f941f2fb98cd6353717b322cbf1 Mon Sep 17 00:00:00 2001
-From: Peter Marko <peter.marko@siemens.com>
-Date: Wed, 2 Apr 2025 10:17:38 +0200
-Subject: [PATCH] Allow specifying path to 7z library in tests
-
-For instance to override path to library on Linux when using real 7-zip
-instead of pzip: /usr/lib/lib7z.so
-
-Upstream-Status: Submitted [https://github.com/rikyoz/bit7z/pull/288]
-Signed-off-by: Peter Marko <peter.marko@siemens.com>
----
- tests/CMakeLists.txt           | 7 +++++++
- tests/src/utils/shared_lib.hpp | 4 +++-
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index 60da280d..1307366a 100644
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -103,6 +103,13 @@ message( STATUS "Use system 7-zip for tests: ${BIT7Z_TESTS_USE_SYSTEM_7ZIP}" )
- if( BIT7Z_TESTS_USE_SYSTEM_7ZIP )
-     target_compile_definitions( ${TESTS_TARGET} PRIVATE BIT7Z_TESTS_USE_SYSTEM_7ZIP )
-     target_compile_definitions( ${TESTS_TARGET_PUBLIC} PRIVATE BIT7Z_TESTS_USE_SYSTEM_7ZIP )
-+else()
-+    set( BIT7Z_TESTS_7Z_LIBRARY_PATH "" CACHE STRING "The path of the 7-Zip library to be used for running the tests" )
-+    if( NOT BIT7Z_TESTS_7Z_LIBRARY_PATH STREQUAL "" )
-+        message( STATUS "Use custom 7-zip library for tests: ${BIT7Z_TESTS_7Z_LIBRARY_PATH}" )
-+        target_compile_definitions( ${TESTS_TARGET} PRIVATE BIT7Z_TESTS_7Z_LIBRARY_PATH="${BIT7Z_TESTS_7Z_LIBRARY_PATH}" )
-+        target_compile_definitions( ${TESTS_TARGET_PUBLIC} PRIVATE BIT7Z_TESTS_7Z_LIBRARY_PATH="${BIT7Z_TESTS_7Z_LIBRARY_PATH}" )
-+    endif()
- endif()
- 
- # Avoiding linking unnecessary libraries.
-diff --git a/tests/src/utils/shared_lib.hpp b/tests/src/utils/shared_lib.hpp
-index 41435a9b..8bc02939 100644
---- a/tests/src/utils/shared_lib.hpp
-+++ b/tests/src/utils/shared_lib.hpp
-@@ -20,7 +20,9 @@ namespace bit7z {
- namespace test {
- 
- inline auto sevenzip_lib_path() -> tstring {
--#ifdef BIT7Z_TESTS_USE_SYSTEM_7ZIP
-+#ifdef BIT7Z_TESTS_7Z_LIBRARY_PATH
-+    static const tstring lib_path = BIT7Z_STRING( BIT7Z_TESTS_7Z_LIBRARY_PATH );
-+#elif defined( BIT7Z_TESTS_USE_SYSTEM_7ZIP )
- #ifdef _WIN64
-     static const tstring lib_path = BIT7Z_STRING( "C:\\Program Files\\7-Zip\\7z.dll" );
- #elif defined( _WIN32 )
diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-int8_t-storage-in-BitPropVariant-on-Arm-architec.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-int8_t-storage-in-BitPropVariant-on-Arm-architec.patch
deleted file mode 100644
index b1bf6923f2..0000000000
--- a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-int8_t-storage-in-BitPropVariant-on-Arm-architec.patch
+++ /dev/null
@@ -1,41 +0,0 @@ 
-From d504abaf2b0a514193f52df42098bc16de4718b2 Mon Sep 17 00:00:00 2001
-From: Oz <rik20@live.it>
-Date: Fri, 17 Jan 2025 21:23:59 +0100
-Subject: [PATCH] Fix int8_t storage in BitPropVariant on Arm architectures
-
-Upstream-Status: Backport [https://github.com/rikyoz/bit7z/commit/d504abaf2b0a514193f52df42098bc16de4718b2]
-Signed-off-by: Peter Marko <peter.marko@siemens.com>
----
- include/bit7z/bitwindows.hpp | 4 ++++
- src/bitpropvariant.cpp       | 2 +-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/include/bit7z/bitwindows.hpp b/include/bit7z/bitwindows.hpp
-index 5849b956..2f29a989 100644
---- a/include/bit7z/bitwindows.hpp
-+++ b/include/bit7z/bitwindows.hpp
-@@ -126,7 +126,11 @@ struct PROPVARIANT {
-     WORD wReserved2;
-     WORD wReserved3;
-     union {
-+#if defined( __arm__ ) || defined( __aarch64__ )
-+        signed char cVal;
-+#else
-         char cVal;
-+#endif
-         unsigned char bVal;
-         short iVal;
-         unsigned short uiVal;
-diff --git a/src/bitpropvariant.cpp b/src/bitpropvariant.cpp
-index 1e7f094f..642e1268 100644
---- a/src/bitpropvariant.cpp
-+++ b/src/bitpropvariant.cpp
-@@ -157,7 +157,7 @@ BitPropVariant::BitPropVariant( uint64_t value ) noexcept: PROPVARIANT() {
- BitPropVariant::BitPropVariant( int8_t value ) noexcept: PROPVARIANT() {
-     vt = VT_I1;
-     wReserved1 = 0;
--    cVal = static_cast< char >( value );
-+    cVal = static_cast< decltype(cVal) >( value );
- }
- 
- BitPropVariant::BitPropVariant( int16_t value ) noexcept: PROPVARIANT() {
diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-reinterpret-cast-compiler-errors.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-reinterpret-cast-compiler-errors.patch
deleted file mode 100644
index 08b64f4999..0000000000
--- a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-reinterpret-cast-compiler-errors.patch
+++ /dev/null
@@ -1,52 +0,0 @@ 
-From bedeec4d57d29be7de91697277ace00ba87d3e75 Mon Sep 17 00:00:00 2001
-From: Peter Marko <peter.marko@siemens.com>
-Date: Tue, 1 Apr 2025 15:23:51 +0200
-Subject: [PATCH] Fix reinterpret-cast compiler errors
-
-Building on 32-bit arm, following warning/error occurs:
-
-src/internal/windows.cpp: In function 'bit7z::OLECHAR* AllocStringBuffer(LPCSTR, uint32_t)':
-src/internal/windows.cpp:79:6: error: cast from 'unsigned char*' to 'bstr_prefix_t*' {aka 'unsigned int*'} increases required alignment of target type [-Werror=cast-align]
-   79 |     *reinterpret_cast< bstr_prefix_t* >( bstrBuffer ) = byteLength;
-      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-git/src/internal/windows.cpp:83:19: error: cast from 'unsigned char*' to 'bit7z::BSTR' {aka 'wchar_t*'} increases required alignment of target type [-Werror=cast-align]
-   83 |     BSTR result = reinterpret_cast< BSTR >( bstrBuffer + sizeof( bstr_prefix_t ) );
-      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-cc1plus: all warnings being treated as errors
-
-Fix it by using the desired variable size right away and thus avoid
-casting to an array with different alignment.
-
-Upstream-Status: Backport [https://github.com/rikyoz/bit7z/commit/b2789ea9b0fbb2a74dbf6764ddb72d60659a3bce]
-Signed-off-by: Peter Marko <peter.marko@siemens.com>
----
- src/internal/windows.cpp | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/src/internal/windows.cpp b/src/internal/windows.cpp
-index 9304aed7..7bee5959 100644
---- a/src/internal/windows.cpp
-+++ b/src/internal/windows.cpp
-@@ -68,19 +68,18 @@ auto AllocStringBuffer( LPCSTR str, uint32_t byteLength ) -> BSTR {
- 
-     // Allocating memory for storing the BSTR as a byte array.
-     // NOLINTNEXTLINE(cppcoreguidelines-no-malloc, cppcoreguidelines-owning-memory)
--    auto* bstrBuffer = static_cast< byte_t* >( std::calloc( bufferSize, sizeof( byte_t ) ) );
-+    auto* bstrBuffer = static_cast< bstr_prefix_t* >( std::calloc( bufferSize, sizeof( byte_t ) ) );
- 
-     if ( bstrBuffer == nullptr ) { // Failed to allocate memory for the BSTR buffer.
-         return nullptr;
-     }
- 
-     // Storing the number of bytes of the BSTR as a prefix of it.
--    // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
--    *reinterpret_cast< bstr_prefix_t* >( bstrBuffer ) = byteLength;
-+    *bstrBuffer = byteLength;
- 
-     // The actual BSTR must point after the byteLength prefix.
-     // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic, cppcoreguidelines-pro-type-reinterpret-cast)
--    BSTR result = reinterpret_cast< BSTR >( bstrBuffer + sizeof( bstr_prefix_t ) );
-+    BSTR result = reinterpret_cast< BSTR >( bstrBuffer + 1 );
-     if ( str != nullptr ) {
-         // Copying byte-by-byte the input string to the BSTR.
-         // Note: flawfinder warns about not checking for buffer overflows; this is a false alarm,
diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-tests-with-musl.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-tests-with-musl.patch
deleted file mode 100644
index b1f3d0f2ec..0000000000
--- a/meta-oe/recipes-extended/7zip/bit7z/0001-Fix-tests-with-musl.patch
+++ /dev/null
@@ -1,51 +0,0 @@ 
-From bc5f2e5af90854c8f84b5829493dd01facf9af84 Mon Sep 17 00:00:00 2001
-From: Peter Marko <peter.marko@siemens.com>
-Date: Mon, 7 Apr 2025 16:29:32 +0200
-Subject: [PATCH] Fix tests with musl
-
-Upstream-Status: Submitted [https://github.com/rikyoz/bit7z/pull/292]
-Signed-off-by: Peter Marko <peter.marko@siemens.com>
----
- tests/src/test_bitexception.cpp | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/tests/src/test_bitexception.cpp b/tests/src/test_bitexception.cpp
-index 7161fcc5..d85d430d 100644
---- a/tests/src/test_bitexception.cpp
-+++ b/tests/src/test_bitexception.cpp
-@@ -49,6 +49,8 @@ constexpr PortableErrorTest hresult_tests[] = { // NOLINT(*-avoid-c-arrays)
-     { HRESULT_WIN32_TEST( ERROR_OPEN_FAILED ),
- #ifdef _WIN32
-       "The system cannot open the device or file specified.",
-+#elif defined( __linux__ ) && !defined ( __GLIBC__ )
-+      "I/O error",
- #else
-         "Input/output error",
- #endif
-@@ -67,6 +69,8 @@ constexpr PortableErrorTest hresult_tests[] = { // NOLINT(*-avoid-c-arrays)
-     { HRESULT_WIN32_TEST( ERROR_SEEK ),
- #ifdef _WIN32
-       "The drive cannot locate a specific area or track on the disk.",
-+#elif defined( __linux__ ) && !defined ( __GLIBC__ )
-+      "I/O error",
- #else
-         "Input/output error",
- #endif
-@@ -74,6 +78,8 @@ constexpr PortableErrorTest hresult_tests[] = { // NOLINT(*-avoid-c-arrays)
-     { HRESULT_WIN32_TEST( ERROR_READ_FAULT ),
- #ifdef _WIN32
-       "The system cannot read from the specified device.",
-+#elif defined( __linux__ ) && !defined ( __GLIBC__ )
-+      "I/O error",
- #else
-         "Input/output error",
- #endif
-@@ -81,6 +87,8 @@ constexpr PortableErrorTest hresult_tests[] = { // NOLINT(*-avoid-c-arrays)
-     { HRESULT_WIN32_TEST( ERROR_WRITE_FAULT ),
- #ifdef _WIN32
-       "The system cannot write to the specified device.",
-+#elif defined( __linux__ ) && !defined ( __GLIBC__ )
-+      "I/O error",
- #else
-         "Input/output error",
- #endif
diff --git a/meta-oe/recipes-extended/7zip/bit7z/0001-cmake-disable-filesystem-gitclone.patch b/meta-oe/recipes-extended/7zip/bit7z/0001-cmake-disable-filesystem-gitclone.patch
new file mode 100644
index 0000000000..917b70f58e
--- /dev/null
+++ b/meta-oe/recipes-extended/7zip/bit7z/0001-cmake-disable-filesystem-gitclone.patch
@@ -0,0 +1,37 @@ 
+Subject: [PATCH] cmake: disable filesystem gitclone
+
+In Yocto we don't download filesystem, it is satisfied from source dir.
+This Dependencies.cmake file would try to download filesystem even if it is satisfied.
+
+Fix error log as following:
+| fatal: unable to access 'https://github.com/rikyoz/filesystem.git/': Could not resolve host: github.com
+| Had to git clone more than once: 3 times.
+| CMake Error at bit7z/4.0.11/build/_deps/ghc_filesystem-subbuild/ghc_filesystem-populate-prefix/tmp/ghc_filesystem-populate-gitclone.cmake:50 (message):
+|   Failed to clone repository: 'https://github.com/rikyoz/filesystem.git'
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
+---
+ cmake/Dependencies.cmake | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index 110d9c2b..dc1dead8 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -39,10 +39,9 @@ if( NOT USE_STANDARD_FILESYSTEM OR NOT STANDARD_FILESYSTEM_COMPILES OR BIT7Z_BUI
+     CPMAddPackage( NAME ghc_filesystem
+                    GITHUB_REPOSITORY rikyoz/filesystem
+                    GIT_TAG b99c2aebd5ddd6fb2f190731ba80b949fc3842b5
+-                   DOWNLOAD_ONLY YES )
++                   SOURCE_DIR "${CPM_SOURCE_CACHE}/ghc_filesystem" )
+     if( ghc_filesystem_ADDED )
+         message( STATUS "ghc::filesystem source code available at ${ghc_filesystem_SOURCE_DIR}" )
+-        add_library( ghc_filesystem INTERFACE IMPORTED )
+         target_include_directories( ghc_filesystem SYSTEM INTERFACE ${ghc_filesystem_SOURCE_DIR}/include )
+     endif()
+ endif()
+-- 
+2.43.0
+
diff --git a/meta-oe/recipes-extended/7zip/bit7z_4.0.9.bb b/meta-oe/recipes-extended/7zip/bit7z_4.0.11.bb
similarity index 76%
rename from meta-oe/recipes-extended/7zip/bit7z_4.0.9.bb
rename to meta-oe/recipes-extended/7zip/bit7z_4.0.11.bb
index 033461d614..4e9a958422 100644
--- a/meta-oe/recipes-extended/7zip/bit7z_4.0.9.bb
+++ b/meta-oe/recipes-extended/7zip/bit7z_4.0.11.bb
@@ -6,30 +6,25 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=48a3fe23ed1353e0995dadfda05ffdb6"
 SRC_URI = " \
     git://github.com/rikyoz/bit7z.git;protocol=https;branch=master \
     ${@bb.utils.contains('PTEST_ENABLED', '1', d.getVar('SRC_URI_PTEST'), 'file://0001-cmake-disable-dependency-inclusion.patch', d)} \
-    file://0001-Fix-reinterpret-cast-compiler-errors.patch \
-    file://0001-Fix-int8_t-storage-in-BitPropVariant-on-Arm-architec.patch \
-    file://0001-Allow-running-tests-on-target-when-cross-compiling.patch \
-    file://0001-Allow-specifying-path-to-7z-library-in-tests.patch \
-    file://0001-Fix-tests-with-musl.patch \
 "
 
-SRCREV = "386e00ad3286e7a10e5bb6d05a5b41b523fce623"
+SRCREV = "82f359371fda5c16c037ac0659b969334816a9c4"
 
 # ptest dependencies and their revisions
 SRC_URI_PTEST = " \
     git://github.com/rikyoz/filesystem.git;protocol=https;branch=glibcxx_wchar_streams_workaround;name=filesystem;destsuffix=filesystem \
     git://github.com/rikyoz/bit7z-test-data.git;protocol=https;branch=main;name=testdata;destsuffix=testdata \
-    git://github.com/catchorg/Catch2.git;protocol=https;branch=v2.x;name=catch2;destsuffix=catch2;tag=${TAG_catch2} \
+    git://github.com/rikyoz/Catch2.git;protocol=https;branch=single-header-v2.x;name=catch2;destsuffix=catch2 \
     https://github.com/cpm-cmake/CPM.cmake/releases/download/v${TAG_CPM}/CPM.cmake;downloadfilename=CPM_${TAG_CPM}.cmake \
     file://run-ptest \
+    file://0001-cmake-disable-filesystem-gitclone.patch \
 "
 SRCREV_FORMAT = "${@bb.utils.contains('PTEST_ENABLED', '1', 'default_filesystem_testdata_catch2', 'default', d)}"
-SRCREV_filesystem = "983650f374699e3979f9cdefe13ddff60bd4ac68"
+SRCREV_filesystem = "b99c2aebd5ddd6fb2f190731ba80b949fc3842b5"
 SRCREV_testdata = "077e407b1c07b7443626b5902eeb4819388bf656"
-SRCREV_catch2 = "182c910b4b63ff587a3440e08f84f70497e49a81"
-TAG_catch2 = "v2.13.10"
-SRCHASH_CPM = "c8cdc32c03816538ce22781ed72964dc864b2a34a310d3b7104812a5ca2d835d"
-TAG_CPM = "0.40.2"
+SRCREV_catch2 = "27d8db1770dd5cd3688656095f242474431584a1"
+SRCHASH_CPM = "2020b4fc42dba44817983e06342e682ecfc3d2f484a581f11cc5731fbe4dce8a"
+TAG_CPM = "0.42.0"
 SRC_URI[sha256sum] = "${SRCHASH_CPM}"
 
 
@@ -51,15 +46,14 @@  do_configure:prepend() {
     # verify that all dependencies have correct version
     grep -q ${SRCREV_filesystem} ${S}/cmake/Dependencies.cmake || bbfatal "ERROR: dependency version mismatch, please update 'SRCREV_filesystem'!"
     grep -q ${SRCREV_testdata} ${S}/tests/CMakeLists.txt || bbfatal "ERROR: dependency version mismatch, please update 'SRCREV_testdata'!"
-    grep -q ${TAG_catch2} ${S}/tests/cmake/Catch2.cmake || bbfatal "ERROR: dependency version mismatch, please update 'SRCREV_catch2'!"
+    grep -q ${SRCREV_catch2} ${S}/tests/CMakeLists.txt || bbfatal "ERROR: dependency version mismatch, please update 'SRCREV_catch2'!"
     grep -q ${SRCHASH_CPM} ${S}/cmake/Dependencies.cmake || bbfatal "ERROR: dependency version mismatch, please update 'SRCHASH_CPM'!"
 
     if ${@bb.utils.contains('PTEST_ENABLED', '1', 'true', 'false', d)}; then
         # use cache instead of download for CPM (CMake's missing package manager)
-        mkdir -p ${B}/cmake
-        cp ${UNPACKDIR}/CPM_${TAG_CPM}.cmake ${B}/cmake
-        mkdir -p ${B}/cpm_cache/ghc_filesystem
-        cp -r ${UNPACKDIR}/filesystem ${B}/cpm_cache/ghc_filesystem/fbcc9a9e94e6365273cf51294173f21ff5efdb4f
+        mkdir -p ${B}/cpm_cache/cpm/
+        cp ${UNPACKDIR}/CPM_${TAG_CPM}.cmake ${B}/cpm_cache/cpm/
+        cp -r ${UNPACKDIR}/filesystem ${B}/cpm_cache/ghc_filesystem
         # avoid buildpaths issue as unpackdir is not in prefix maps
         cp -r ${UNPACKDIR}/catch2 ${B}
     fi