* [meta-oe][PATCH 1/3] Use 7zip 2409 to replace p7zip 16.02
@ 2024-12-19 8:47 Hongxu Jia
2024-12-19 8:47 ` [meta-oe][PATCH 2/3] Update p7zip to 7zip Hongxu Jia
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Hongxu Jia @ 2024-12-19 8:47 UTC (permalink / raw)
To: openembedded-devel
According to DOC/readme.txt [1]:
7-Zip and p7zip
===============
Now there are two different ports of 7-Zip for Linux/macOS:
1) p7zip - another port of 7-Zip for Linux, made by an independent developer.
The latest version of p7zip now is 16.02, and that p7zip 16.02 is outdated now.
http://sourceforge.net/projects/p7zip/
2) 7-Zip for Linux/macOS - this package - it's new code with all changes from latest 7-Zip for Windows
Add recipe 7-zip [2] to instead of recipe p7zip[3] in which the upstream is dead since 2016
Drop obsolete patches
- CVE-2016-9296.patch
- CVE-2017-17969.patch
- CVE-2018-5996.patch
- change_numMethods_from_bool_to_unsigned.patch
- 0001-Fix-two-buffer-overflow-vulnerabilities.patch
- 0001-Fix-narrowing-errors-Wc-11-narrowing.patch
License-Update: DOC/License.txt: Add BSD-2-Clause & BSD-3-Clause
License-Update: DOC/copying.txt: newline differs
The codec libraries was removed since 21.02 [4]
Refer debian to compile 7-zip [5]
[1] https://salsa.debian.org/debian/7zip/-/blob/master/DOC/readme.txt?ref_type=heads
[2] https://sourceforge.net/projects/p7zip/
[3] https://www.7-zip.org/
[4] https://github.com/p7zip-project/p7zip/commit/6c6ed1eba9ff0c0ded9323600f1f3c686d6b6692
[5] https://salsa.debian.org/debian/7zip/-/blob/master/debian/rules
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
.../p7zip_16.02.bb => 7zip/7zip_2409.bb} | 55 +++--
.../0001-support-yocto-cross-compiling.patch | 51 ++++
...Fix-narrowing-errors-Wc-11-narrowing.patch | 49 ----
.../p7zip/files/CVE-2016-9296.patch | 27 ---
.../p7zip/files/CVE-2017-17969.patch | 40 ---
.../p7zip/files/CVE-2018-5996.patch | 227 ------------------
...nge_numMethods_from_bool_to_unsigned.patch | 34 ---
...t_override_compiler_and_do_not_strip.patch | 38 ---
8 files changed, 82 insertions(+), 439 deletions(-)
rename meta-oe/recipes-extended/{p7zip/p7zip_16.02.bb => 7zip/7zip_2409.bb} (23%)
create mode 100644 meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
diff --git a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-oe/recipes-extended/7zip/7zip_2409.bb
similarity index 23%
rename from meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
rename to meta-oe/recipes-extended/7zip/7zip_2409.bb
index 789819a5e..7f074fe7d 100644
--- a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/meta-oe/recipes-extended/7zip/7zip_2409.bb
@@ -1,28 +1,35 @@
SUMMARY = "7-zip is a commandline utility handling 7z archives."
HOMEPAGE = "http://www.7-zip.org/"
-LICENSE = "LGPL-2.1-or-later & unRAR"
-LIC_FILES_CHKSUM = "file://DOC/copying.txt;md5=4fbd65380cdd255951079008b364516c \
+LICENSE = "LGPL-2.1-or-later & unRAR & PD & BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://DOC/copying.txt;md5=b0d181292c99cf9bb2ae9166dd3a0239 \
file://DOC/unRarLicense.txt;md5=9c87ddde469ef94aed153b0951d088de \
- file://DOC/License.txt;md5=879598edf1f54dddb6930d7581357f8b"
-
-SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_all.tar.bz2 \
- file://do_not_override_compiler_and_do_not_strip.patch \
- file://CVE-2017-17969.patch \
- file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
- file://change_numMethods_from_bool_to_unsigned.patch \
- file://CVE-2018-5996.patch \
- file://CVE-2016-9296.patch \
+ file://DOC/License.txt;md5=8bfe22e0285a3043b61ea408d234c55d"
+
+SRC_URI = "https://www.7-zip.org/a/7z${PV}-src.tar.xz \
+ file://0001-support-yocto-cross-compiling.patch \
"
-SRC_URI[sha256sum] = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f"
+SRC_URI[sha256sum] = "49c05169f49572c1128453579af1632a952409ced028259381dac30726b6133a"
+
+UPSTREAM_CHECK_URI = "https://www.7-zip.org/download.html"
-UPSTREAM_CHECK_URI = "https://tracker.debian.org/pkg/p7zip"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+S = "${WORKDIR}/sources"
+UNPACKDIR = "${S}"
-S = "${WORKDIR}/${BPN}_${PV}"
+# Support Yocto cross compiling
+EXTRA_OEMAKE += " \
+ CXXFLAGS_EXTRA='${CXXFLAGS}' \
+ CFLAGS_BASE2='${CFLAGS}' \
+ LDFLAGS_STATIC_3='${LDFLAGS}' \
+"
-do_compile:append() {
- oe_runmake 7z
+do_compile() {
+ oe_runmake -C CPP/7zip/Bundles/Alone2 -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Format7zF -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/UI/Console -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/SFXCon -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Alone -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Alone7z -f ../../cmpl_gcc.mak
}
FILES:${PN} += "${libdir}/* ${bindir}/7z"
@@ -31,16 +38,16 @@ INSANE_SKIP:${PN} += "dev-so"
do_install() {
install -d ${D}${bindir}
- install -d ${D}${bindir}/Codecs
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone/b/g/7za ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone7z/b/g/7zr ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/UI/Console/b/g/7z ${D}${bindir}
+
install -d ${D}${libdir}
- install -d ${D}${libdir}/Codecs
- install -m 0755 ${S}/bin/7za ${D}${bindir}
- ln -s 7za ${D}${bindir}/7z
- install -m 0755 ${S}/bin/Codecs/* ${D}${libdir}/Codecs/
- install -m 0755 ${S}/bin/7z.so ${D}${libdir}/lib7z.so
+ install -m 0755 ${S}/CPP/7zip/Bundles/Format7zF/b/g/7z.so ${D}${libdir}/lib7z.so
}
-RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so"
+PROVIDES += "p7zip"
+RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so p7zip"
RPROVIDES:${PN}-dev += "lib7z.so()(64bit) 7z lib7z.so"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
new file mode 100644
index 000000000..32b698ecd
--- /dev/null
+++ b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
@@ -0,0 +1,51 @@
+From 80321060ff24edee11d9ead8e21e9168f52d1d44 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 18 Dec 2024 16:38:11 +0800
+Subject: [PATCH] support yocto cross compiling
+
+Remove -s from $LFLAGS_STRIP, do not strip binary to workaournd
+Yocto build warning
+...
+WARNING: 7zip-native-24.09-r0 do_populate_sysroot: File 'tmp/work/x86_64-linux/
+7zip-native/24.09/recipe-sysroot-native/usr/lib/7z.so' from 7zip-native was already stripped,
+this will prevent future debugging!
+...
+
+Apply CC, CXX from environments
+
+Upstream-Status: Inappropriate [Yocto specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ CPP/7zip/7zip_gcc.mak | 2 +-
+ CPP/7zip/var_gcc.mak | 2 --
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/CPP/7zip/7zip_gcc.mak b/CPP/7zip/7zip_gcc.mak
+index fcb580a..74a15d9 100755
+--- a/CPP/7zip/7zip_gcc.mak
++++ b/CPP/7zip/7zip_gcc.mak
+@@ -45,7 +45,7 @@ CFLAGS_DEBUG = -g
+ else
+ CFLAGS_DEBUG = -DNDEBUG
+ ifneq ($(CC), $(CROSS_COMPILE)clang)
+-LFLAGS_STRIP = -s
++LFLAGS_STRIP =
+ endif
+ endif
+
+diff --git a/CPP/7zip/var_gcc.mak b/CPP/7zip/var_gcc.mak
+index 803c8de..48a7c09 100755
+--- a/CPP/7zip/var_gcc.mak
++++ b/CPP/7zip/var_gcc.mak
+@@ -6,7 +6,5 @@ IS_ARM64=
+ CROSS_COMPILE=
+ MY_ARCH=
+ USE_ASM=
+-CC=$(CROSS_COMPILE)gcc
+-CXX=$(CROSS_COMPILE)g++
+
+ # -march=armv8-a+crc+crypto
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch b/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
deleted file mode 100644
index 1f08d1603..000000000
--- a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 653674e11872465dd5edf1c1e8413ea813d7e086 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 23 Apr 2018 23:07:21 -0700
-Subject: [PATCH] Fix narrowing errors -Wc++11-narrowing
-
-Clang 6.x finds these errors
-
- ../../../../CPP/Windows/ErrorMsg.cpp:24:10: error: case value evaluates to -2147024809, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
- ^
-
-HRESULT causes the macro to be parsed as a signed long, so we need to force it
-to be checked as an unsigned long instead.
-
-also reported here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224930
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- CPP/Windows/ErrorMsg.cpp | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
-index 99684ae..78a64ba 100644
---- a/CPP/Windows/ErrorMsg.cpp
-+++ b/CPP/Windows/ErrorMsg.cpp
-@@ -15,13 +15,13 @@ UString MyFormatMessage(DWORD errorCode)
-
- switch(errorCode) {
- case ERROR_NO_MORE_FILES : txt = "No more files"; break ;
-- case E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-- case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-- case E_ABORT : txt = "E_ABORT"; break ;
-- case E_FAIL : txt = "E_FAIL"; break ;
-- case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-- case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
-+ case (DWORD) E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-+ case (DWORD) E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-+ case (DWORD) E_ABORT : txt = "E_ABORT"; break ;
-+ case (DWORD) E_FAIL : txt = "E_FAIL"; break ;
-+ case (DWORD) STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-+ case (DWORD) E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-+ case (DWORD) E_INVALIDARG : txt = "E_INVALIDARG"; break ;
- case ERROR_DIRECTORY : txt = "Error Directory"; break ;
- default:
- txt = strerror(errorCode);
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
deleted file mode 100644
index 98e186cbf..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-p7zip: Update CVE-2016-9296 patch URL.
-From: Robert Luberda <robert@debian.org>
-Date: Sat, 19 Nov 2016 08:48:08 +0100
-Subject: Fix nullptr dereference (CVE-2016-9296)
-
-Patch taken from https://sourceforge.net/p/p7zip/bugs/185/
-This patch file taken from Debian's patch set for p7zip
-
-Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/185/]
-CVE: CVE-2016-9296
-
-Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
-
-Index: p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
-===================================================================
---- p7zip_16.02.orig/CPP/7zip/Archive/7z/7zIn.cpp
-+++ p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
-@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
- if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
- ThrowIncorrect();
- }
-- HeadersSize += folders.PackPositions[folders.NumPackStreams];
-+ if (folders.PackPositions)
-+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
- return S_OK;
- }
-
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
deleted file mode 100644
index 9ba107807..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7f2da4f810b429ddb7afa0e252e3d02ced0eba87 Mon Sep 17 00:00:00 2001
-From: Radovan Scasny <radovan.scasny@siemens.com>
-Date: Tue, 20 Feb 2018 12:08:13 +0100
-Subject: [PATCH] p7zip: Fix CVE-2017-17969
-
-[No upstream tracking] -- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888297
-
-Heap-based buffer overflow in 7zip
-
-Compress/ShrinkDecoder.cpp: Heap-based buffer overflow
-in the NCompress::NShrink::CDecoder::CodeReal method
-in 7-Zip before 18.00 and p7zip allows remote attackers
-to cause a denial of service (out-of-bounds write)
-or potentially execute arbitrary code via a crafted ZIP archive.
-
-Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/8316/attachment/CVE-2017-17969.patch]
-CVE: CVE-2017-17969
-Signed-off-by: Radovan Scasny <radovan.scasny@siemens.com>
-
----
- CPP/7zip/Compress/ShrinkDecoder.cpp | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
-index 80b7e67..5bb0559 100644
---- a/CPP/7zip/Compress/ShrinkDecoder.cpp
-+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
-@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- {
- _stack[i++] = _suffixes[cur];
- cur = _parents[cur];
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
- }
-+
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
-
- _stack[i++] = (Byte)cur;
- lastChar2 = (Byte)cur;
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
deleted file mode 100644
index 47868c982..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Sun, 28 Jan 2018 23:47:40 +0100
-Subject: CVE-2018-5996
-
-Hopefully fix Memory Corruptions via RAR PPMd (CVE-2018-5996) by
-applying a few changes from 7Zip 18.00-beta.
-
-Bug-Debian: https://bugs.debian.org/#888314
-
-Upstream-Status: Backport [https://sources.debian.org/data/non-free/p/p7zip-rar/16.02-3/debian/patches/06-CVE-2018-5996.patch]
-CVE: CVE-2018-5996
-
-Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
----
- CPP/7zip/Compress/Rar1Decoder.cpp | 13 +++++++++----
- CPP/7zip/Compress/Rar1Decoder.h | 1 +
- CPP/7zip/Compress/Rar2Decoder.cpp | 10 +++++++++-
- CPP/7zip/Compress/Rar2Decoder.h | 1 +
- CPP/7zip/Compress/Rar3Decoder.cpp | 23 ++++++++++++++++++++---
- CPP/7zip/Compress/Rar3Decoder.h | 2 ++
- 6 files changed, 42 insertions(+), 8 deletions(-)
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
-index 1aaedcc..68030c7 100644
---- a/CPP/7zip/Compress/Rar1Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar1Decoder.cpp
-@@ -29,7 +29,7 @@ public:
- };
- */
-
--CDecoder::CDecoder(): m_IsSolid(false) { }
-+CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
-
- void CDecoder::InitStructures()
- {
-@@ -406,9 +406,14 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- InitData();
- if (!m_IsSolid)
- {
-+ _errorMode = false;
- InitStructures();
- InitHuff();
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (m_UnpackSize > 0)
- {
- GetFlagsBuf();
-@@ -477,9 +482,9 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
- {
- try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(const CLzOutWindowException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- }
-
- STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
-diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
-index 630f089..01b606b 100644
---- a/CPP/7zip/Compress/Rar1Decoder.h
-+++ b/CPP/7zip/Compress/Rar1Decoder.h
-@@ -39,6 +39,7 @@ public:
-
- Int64 m_UnpackSize;
- bool m_IsSolid;
-+ bool _errorMode;
-
- UInt32 ReadBits(int numBits);
- HRESULT CopyBlock(UInt32 distance, UInt32 len);
-diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
-index b3f2b4b..0580c8d 100644
---- a/CPP/7zip/Compress/Rar2Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar2Decoder.cpp
-@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
- static const UInt32 kWindowReservSize = (1 << 22) + 256;
-
- CDecoder::CDecoder():
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ m_TablesOK(false)
- {
- }
-
-@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return m_InBitStream.ReadBits(numB
-
- bool CDecoder::ReadTables(void)
- {
-+ m_TablesOK = false;
-+
- Byte levelLevels[kLevelTableSize];
- Byte newLevels[kMaxTableSize];
- m_AudioMode = (ReadBits(1) == 1);
-@@ -170,6 +173,8 @@ bool CDecoder::ReadTables(void)
- }
-
- memcpy(m_LastLevels, newLevels, kMaxTableSize);
-+ m_TablesOK = true;
-+
- return true;
- }
-
-@@ -344,6 +349,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- return S_FALSE;
- }
-
-+ if (!m_TablesOK)
-+ return S_FALSE;
-+
- UInt64 startPos = m_OutWindowStream.GetProcessedSize();
- while (pos < unPackSize)
- {
-diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
-index 3a0535c..0e9005f 100644
---- a/CPP/7zip/Compress/Rar2Decoder.h
-+++ b/CPP/7zip/Compress/Rar2Decoder.h
-@@ -139,6 +139,7 @@ class CDecoder :
-
- UInt64 m_PackSize;
- bool m_IsSolid;
-+ bool m_TablesOK;
-
- void InitStructures();
- UInt32 ReadBits(unsigned numBits);
-diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
-index 3bf2513..6cb8a6a 100644
---- a/CPP/7zip/Compress/Rar3Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar3Decoder.cpp
-@@ -92,7 +92,8 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _vmData(0),
- _vmCode(0),
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ _errorMode(false)
- {
- Ppmd7_Construct(&_ppmd);
- }
-@@ -545,6 +546,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- return InitPPM();
- }
-
-+ TablesRead = false;
-+ TablesOK = false;
-+
- _lzMode = true;
- PrevAlignBits = 0;
- PrevAlignCount = 0;
-@@ -606,6 +610,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- }
- }
- }
-+ if (InputEofError())
-+ return S_FALSE;
-+
- TablesRead = true;
-
- // original code has check here:
-@@ -623,6 +630,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- RIF(m_LenDecoder.Build(&newLevels[kMainTableSize + kDistTableSize + kAlignTableSize]));
-
- memcpy(m_LastLevels, newLevels, kTablesSizesSum);
-+
-+ TablesOK = true;
-+
- return S_OK;
- }
-
-@@ -824,7 +834,12 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- PpmEscChar = 2;
- PpmError = true;
- InitFilters();
-+ _errorMode = false;
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (!m_IsSolid || !TablesRead)
- {
- bool keepDecompressing;
-@@ -838,6 +853,8 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- bool keepDecompressing;
- if (_lzMode)
- {
-+ if (!TablesOK)
-+ return S_FALSE;
- RINOK(DecodeLZ(keepDecompressing))
- }
- else
-@@ -901,8 +918,8 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- _unpackSize = outSize ? *outSize : (UInt64)(Int64)-1;
- return CodeReal(progress);
- }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- // CNewException is possible here. But probably CNewException is caused
- // by error in data stream.
- }
-diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
-index c130cec..2f72d7d 100644
---- a/CPP/7zip/Compress/Rar3Decoder.h
-+++ b/CPP/7zip/Compress/Rar3Decoder.h
-@@ -192,6 +192,7 @@ class CDecoder:
- UInt32 _lastFilter;
-
- bool m_IsSolid;
-+ bool _errorMode;
-
- bool _lzMode;
- bool _unsupportedFilter;
-@@ -200,6 +201,7 @@ class CDecoder:
- UInt32 PrevAlignCount;
-
- bool TablesRead;
-+ bool TablesOK;
-
- CPpmd7 _ppmd;
- int PpmEscChar;
-
diff --git a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
deleted file mode 100644
index 93eb0588c..000000000
--- a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0820ef4b9238c1e39ae5bda32cc08cce3fd3ce89 Mon Sep 17 00:00:00 2001
-From: Nisha Parrakat <Nisha.Parrakat@kpit.com>
-Date: Wed, 26 May 2021 19:59:28 +0000
-Subject: [PATCH] fixes the below error
-
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
-| 308 | numMethods++;
-| | ^~~~~~~~~~
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
-| 318 | numMethods++;
-
-use unsigned instead of bool
-Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
-
-Upstream-Status: Pending
-
----
- CPP/7zip/Archive/Wim/WimHandler.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Archive/Wim/WimHandler.cpp b/CPP/7zip/Archive/Wim/WimHandler.cpp
-index 27d3298..4ff5cfe 100644
---- a/CPP/7zip/Archive/Wim/WimHandler.cpp
-+++ b/CPP/7zip/Archive/Wim/WimHandler.cpp
-@@ -298,7 +298,7 @@ STDMETHODIMP CHandler::GetArchiveProperty(PROPID propID, PROPVARIANT *value)
-
- AString res;
-
-- bool numMethods = 0;
-+ unsigned numMethods = 0;
- for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
- {
- if (methodMask & ((UInt32)1 << i))
diff --git a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch b/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
deleted file mode 100644
index 2636e7f6f..000000000
--- a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From b2aa209dfc5e59d6329b55b9764782334b63dbe8 Mon Sep 17 00:00:00 2001
-From: Raphael Freudiger <raphael.freudiger@siemens.com>
-Date: Wed, 11 Feb 2015 09:11:47 +0100
-Subject: [PATCH] do not override compiler and do not strip
-
-The default makefile sets the compiler to g++ or gcc. This leads to a wrong architecture when cross-compiling.
-Remove the hardcoded compiler and just append the flags to CXX and CC.
-
-Upstream-Status: Pending
-Signed-off-by: Raphael Freudiger <raphael.freudiger@siemens.com>
-Reviewed-By: Pascal Bach <pascal.bach@siemens.com>
-
----
- makefile.machine | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/makefile.machine b/makefile.machine
-index 9e34c34..e9244d9 100644
---- a/makefile.machine
-+++ b/makefile.machine
-@@ -2,7 +2,7 @@
- # makefile for Linux (x86, PPC, alpha ...)
- #
-
--OPTFLAGS=-O -s
-+OPTFLAGS=-O
-
- ALLFLAGS=${OPTFLAGS} -pipe \
- -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
-@@ -10,8 +10,6 @@ ALLFLAGS=${OPTFLAGS} -pipe \
- -D_7ZIP_LARGE_PAGES \
- $(LOCAL_FLAGS)
-
--CXX=g++
--CC=gcc
- CC_SHARED=-fPIC
- LINK_SHARED=-fPIC -shared
-
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [meta-oe][PATCH 2/3] Update p7zip to 7zip
2024-12-19 8:47 [meta-oe][PATCH 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
@ 2024-12-19 8:47 ` Hongxu Jia
2024-12-19 8:47 ` [meta-oe][PATCH 3/3] android-tools: fix warning: library search path "/usr/lib/p7zip" is unsafe for cross-compilation Hongxu Jia
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Hongxu Jia @ 2024-12-19 8:47 UTC (permalink / raw)
To: openembedded-devel
Due to commit [Use 7zip 2409 to replace p7zip 16.02] applied,
update affected recipes
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
.../recipes-devtool/android-tools/android-tools_29.0.6.r14.bb | 4 ++--
meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb | 2 +-
meta-python/recipes-devtools/python/python3-rarfile_4.2.bb | 2 +-
meta-xfce/recipes-apps/xarchiver/xarchiver_0.5.4.21.bb | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb
index d2680b457..ee665bb15 100644
--- a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools_29.0.6.r14.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = " \
file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=cb641bc04cda31daea161b1bc15da69f \
file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \
"
-DEPENDS = "libbsd libpcre zlib libcap libusb squashfs-tools p7zip libselinux googletest"
+DEPENDS = "libbsd libpcre zlib libcap libusb squashfs-tools 7zip libselinux googletest"
SRCREV_core = "abfd66fafcbb691d7860df059f1df1c9b1ef29da"
@@ -168,7 +168,7 @@ do_install() {
PACKAGES =+ "${PN}-fstools ${PN}-adbd"
-RDEPENDS:${BPN} = "${BPN}-conf p7zip"
+RDEPENDS:${BPN} = "${BPN}-conf 7zip"
FILES:${PN}-adbd = "\
${bindir}/adbd \
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index cffd2d687..4065eae52 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -385,7 +385,7 @@ RDEPENDS:packagegroup-meta-oe-extended = "\
nicstat \
${@bb.utils.contains("DISTRO_FEATURES", "pam", "openwsman", "", d)} \
ostree \
- p7zip \
+ 7zip \
${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-plugin-ccreds pam-plugin-ldapdb pam-ssh-agent-auth", "", d)} \
pegtl \
${@bb.utils.contains("DISTRO_FEATURES", "polkit", "polkit-group-rule-datetime polkit-group-rule-network polkit", "", d)} \
diff --git a/meta-python/recipes-devtools/python/python3-rarfile_4.2.bb b/meta-python/recipes-devtools/python/python3-rarfile_4.2.bb
index 41cff4bfc..6f3012d1e 100644
--- a/meta-python/recipes-devtools/python/python3-rarfile_4.2.bb
+++ b/meta-python/recipes-devtools/python/python3-rarfile_4.2.bb
@@ -13,7 +13,7 @@ inherit pypi
PYPI_PACKAGE="rarfile"
RDEPENDS:${PN} += "\
- p7zip \
+ 7zip \
python3-core \
python3-datetime \
python3-crypt \
diff --git a/meta-xfce/recipes-apps/xarchiver/xarchiver_0.5.4.21.bb b/meta-xfce/recipes-apps/xarchiver/xarchiver_0.5.4.21.bb
index abb5c14e6..4822f0cad 100644
--- a/meta-xfce/recipes-apps/xarchiver/xarchiver_0.5.4.21.bb
+++ b/meta-xfce/recipes-apps/xarchiver/xarchiver_0.5.4.21.bb
@@ -30,4 +30,4 @@ do_configure:prepend() {
FILES:${PN} += "${libdir}/thunar-archive-plugin"
-RRECOMMENDS:${PN} = "lzop zip tar bzip2 unzip xz p7zip"
+RRECOMMENDS:${PN} = "lzop zip tar bzip2 unzip xz 7zip"
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [meta-oe][PATCH 3/3] android-tools: fix warning: library search path "/usr/lib/p7zip" is unsafe for cross-compilation
2024-12-19 8:47 [meta-oe][PATCH 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
2024-12-19 8:47 ` [meta-oe][PATCH 2/3] Update p7zip to 7zip Hongxu Jia
@ 2024-12-19 8:47 ` Hongxu Jia
2024-12-19 9:14 ` [meta-oe][PATCH V2 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
2024-12-19 9:16 ` [meta-oe][PATCH 1/3] Use 7zip 2409 " hongxu
3 siblings, 0 replies; 9+ messages in thread
From: Hongxu Jia @ 2024-12-19 8:47 UTC (permalink / raw)
To: openembedded-devel
Refresh local patch to remove '-L/usr/lib/p7zip'
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
...difications-to-make-it-build-in-yoct.patch | 29 ++++++++++++-------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch
index b719acec4..fd2a092bd 100644
--- a/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch
@@ -1,4 +1,4 @@
-From fe211cbc305a9316c1d4da2f086d6a50f1c92188 Mon Sep 17 00:00:00 2001
+From 194513bababa9707ec54bc7119613a0d5eca9f79 Mon Sep 17 00:00:00 2001
From: Etienne Cordonnier <ecordonnier@snap.com>
Date: Fri, 17 Mar 2023 10:33:11 +0100
Subject: [PATCH] android-tools: modifications to make it build in yocto
@@ -12,26 +12,28 @@ Subject: [PATCH] android-tools: modifications to make it build in yocto
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
----
-Upstream-Status: Pending
+- fix warning: library search path "/usr/lib/p7zip" is unsafe for cross-compilation
+Upstream-Status: Pending
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
debian/external/boringssl/libcrypto.mk | 1 +
debian/system/core/append2simg.mk | 2 +-
debian/system/core/fastboot.mk | 2 +-
debian/system/core/img2simg.mk | 2 +-
- debian/system/core/libbacktrace.mk | 8 ++++----
+ debian/system/core/libbacktrace.mk | 10 ++++------
debian/system/core/libbase.mk | 5 +++--
debian/system/core/libcutils.mk | 5 +++--
debian/system/core/liblog.mk | 3 ++-
debian/system/core/libsparse.mk | 5 +++--
- debian/system/core/libutils.mk | 2 +-
+ debian/system/core/libutils.mk | 4 ++--
debian/system/core/libziparchive.mk | 5 +++--
debian/system/core/simg2img.mk | 2 +-
debian/system/core/simg2simg.mk | 2 +-
frameworks/native/libs/adbd_auth/adbd_auth.cpp | 2 ++
system/core/adb/adb_listeners.cpp | 12 ++++++------
system/core/adb/transport_local.cpp | 2 +-
- 16 files changed, 34 insertions(+), 26 deletions(-)
+ 16 files changed, 35 insertions(+), 29 deletions(-)
diff --git a/debian/external/boringssl/libcrypto.mk b/debian/external/boringssl/libcrypto.mk
index c0ea54f4..b3a77bfd 100644
@@ -85,7 +87,7 @@ index 11adf014..8baf5ba5 100644
-llog \
-lpthread \
diff --git a/debian/system/core/libbacktrace.mk b/debian/system/core/libbacktrace.mk
-index e3411d76..86e69874 100644
+index e3411d76..e7dd984c 100644
--- a/debian/system/core/libbacktrace.mk
+++ b/debian/system/core/libbacktrace.mk
@@ -1,4 +1,4 @@
@@ -94,9 +96,11 @@ index e3411d76..86e69874 100644
NAME = libbacktrace
-@@ -83,10 +84,9 @@ CPPFLAGS += \
+@@ -81,12 +81,10 @@ CPPFLAGS += \
+ -Isystem/core/libunwindstack/include \
+
LDFLAGS += \
- -L/usr/lib/p7zip \
+- -L/usr/lib/p7zip \
-Ldebian/out/system/core \
- -Wl,-rpath=/usr/lib/p7zip \
- -Wl,-rpath=/usr/lib/$(DEB_HOST_MULTIARCH)/android \
@@ -107,7 +111,7 @@ index e3411d76..86e69874 100644
-lbase \
-llog \
-lpthread \
-@@ -101,7 +101,7 @@ endif
+@@ -101,7 +99,7 @@ endif
build: $(OBJECTS_CXX) $(OBJECTS_ASSEMBLY) debian/out/external/libunwind/libunwind.a
mkdir -p debian/out/system/core
$(CXX) $^ -o debian/out/system/core/$(NAME).so.0 $(LDFLAGS)
@@ -216,7 +220,7 @@ index c2b2694c..2da12b8e 100644
$(OBJECTS): %.o: %.cpp
$(CXX) -c -o $@ $< $(CXXFLAGS) $(CPPFLAGS)
diff --git a/debian/system/core/libutils.mk b/debian/system/core/libutils.mk
-index c37b1d2d..332492c1 100644
+index c37b1d2d..0c748c8b 100644
--- a/debian/system/core/libutils.mk
+++ b/debian/system/core/libutils.mk
@@ -1,4 +1,4 @@
@@ -373,3 +377,6 @@ index c7261860..5988ec4d 100644
auto it = local_transports.find(adb_port);
if (it == local_transports.end()) {
return nullptr;
+--
+2.34.1
+
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [meta-oe][PATCH V2 1/3] Use 7zip 2409 to replace p7zip 16.02
2024-12-19 8:47 [meta-oe][PATCH 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
2024-12-19 8:47 ` [meta-oe][PATCH 2/3] Update p7zip to 7zip Hongxu Jia
2024-12-19 8:47 ` [meta-oe][PATCH 3/3] android-tools: fix warning: library search path "/usr/lib/p7zip" is unsafe for cross-compilation Hongxu Jia
@ 2024-12-19 9:14 ` Hongxu Jia
2024-12-19 9:45 ` [PATCH V3 " Hongxu Jia
2024-12-19 16:03 ` [PATCH V4 1/3] Use 7zip 24.09 " Hongxu Jia
2024-12-19 9:16 ` [meta-oe][PATCH 1/3] Use 7zip 2409 " hongxu
3 siblings, 2 replies; 9+ messages in thread
From: Hongxu Jia @ 2024-12-19 9:14 UTC (permalink / raw)
To: openembedded-devel
According to DOC/readme.txt [1]:
7-Zip and p7zip
===============
Now there are two different ports of 7-Zip for Linux/macOS:
1) p7zip - another port of 7-Zip for Linux, made by an independent developer.
The latest version of p7zip now is 16.02, and that p7zip 16.02 is outdated now.
http://sourceforge.net/projects/p7zip/
2) 7-Zip for Linux/macOS - this package - it's new code with all changes from latest 7-Zip for Windows
Add recipe 7-zip [2] to instead of recipe p7zip[3] in which the upstream is dead since 2016
Drop obsolete patches
- CVE-2016-9296.patch
- CVE-2017-17969.patch
- CVE-2018-5996.patch
- change_numMethods_from_bool_to_unsigned.patch
- 0001-Fix-two-buffer-overflow-vulnerabilities.patch
- 0001-Fix-narrowing-errors-Wc-11-narrowing.patch
License-Update: DOC/License.txt: Add BSD-2-Clause & BSD-3-Clause
License-Update: DOC/copying.txt: newline differs
The codec libraries was removed since 21.02 [4]
Refer debian to compile 7-zip [5]
[1] https://salsa.debian.org/debian/7zip/-/blob/master/DOC/readme.txt?ref_type=heads
[2] https://sourceforge.net/projects/p7zip/
[3] https://www.7-zip.org/
[4] https://github.com/p7zip-project/p7zip/commit/6c6ed1eba9ff0c0ded9323600f1f3c686d6b6692
[5] https://salsa.debian.org/debian/7zip/-/blob/master/debian/rules
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
.../p7zip_16.02.bb => 7zip/7zip_2409.bb} | 56 +++--
.../0001-support-yocto-cross-compiling.patch | 51 ++++
...Fix-narrowing-errors-Wc-11-narrowing.patch | 49 ----
.../p7zip/files/CVE-2016-9296.patch | 27 ---
.../p7zip/files/CVE-2017-17969.patch | 40 ---
.../p7zip/files/CVE-2018-5996.patch | 227 ------------------
...nge_numMethods_from_bool_to_unsigned.patch | 34 ---
...t_override_compiler_and_do_not_strip.patch | 38 ---
8 files changed, 83 insertions(+), 439 deletions(-)
rename meta-oe/recipes-extended/{p7zip/p7zip_16.02.bb => 7zip/7zip_2409.bb} (23%)
create mode 100644 meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
diff --git a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-oe/recipes-extended/7zip/7zip_2409.bb
similarity index 23%
rename from meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
rename to meta-oe/recipes-extended/7zip/7zip_2409.bb
index 789819a5e..5fc1b93e7 100644
--- a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/meta-oe/recipes-extended/7zip/7zip_2409.bb
@@ -1,28 +1,35 @@
SUMMARY = "7-zip is a commandline utility handling 7z archives."
HOMEPAGE = "http://www.7-zip.org/"
-LICENSE = "LGPL-2.1-or-later & unRAR"
-LIC_FILES_CHKSUM = "file://DOC/copying.txt;md5=4fbd65380cdd255951079008b364516c \
+LICENSE = "LGPL-2.1-or-later & unRAR & PD & BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://DOC/copying.txt;md5=b0d181292c99cf9bb2ae9166dd3a0239 \
file://DOC/unRarLicense.txt;md5=9c87ddde469ef94aed153b0951d088de \
- file://DOC/License.txt;md5=879598edf1f54dddb6930d7581357f8b"
-
-SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_all.tar.bz2 \
- file://do_not_override_compiler_and_do_not_strip.patch \
- file://CVE-2017-17969.patch \
- file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
- file://change_numMethods_from_bool_to_unsigned.patch \
- file://CVE-2018-5996.patch \
- file://CVE-2016-9296.patch \
+ file://DOC/License.txt;md5=8bfe22e0285a3043b61ea408d234c55d"
+
+SRC_URI = "https://www.7-zip.org/a/7z${PV}-src.tar.xz \
+ file://0001-support-yocto-cross-compiling.patch \
"
-SRC_URI[sha256sum] = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f"
+SRC_URI[sha256sum] = "49c05169f49572c1128453579af1632a952409ced028259381dac30726b6133a"
+
+UPSTREAM_CHECK_URI = "https://www.7-zip.org/download.html"
-UPSTREAM_CHECK_URI = "https://tracker.debian.org/pkg/p7zip"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+S = "${WORKDIR}/sources"
+UNPACKDIR = "${S}"
-S = "${WORKDIR}/${BPN}_${PV}"
+# Support Yocto cross compiling
+EXTRA_OEMAKE += " \
+ CXXFLAGS_EXTRA='${CXXFLAGS}' \
+ CFLAGS_BASE2='${CFLAGS}' \
+ LDFLAGS_STATIC_3='${LDFLAGS}' \
+"
-do_compile:append() {
- oe_runmake 7z
+do_compile() {
+ oe_runmake -C CPP/7zip/Bundles/Alone2 -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Format7zF -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/UI/Console -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/SFXCon -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Alone -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Alone7z -f ../../cmpl_gcc.mak
}
FILES:${PN} += "${libdir}/* ${bindir}/7z"
@@ -31,16 +38,17 @@ INSANE_SKIP:${PN} += "dev-so"
do_install() {
install -d ${D}${bindir}
- install -d ${D}${bindir}/Codecs
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone/b/g/7za ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone7z/b/g/7zr ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/UI/Console/b/g/7z ${D}${bindir}
+
install -d ${D}${libdir}
- install -d ${D}${libdir}/Codecs
- install -m 0755 ${S}/bin/7za ${D}${bindir}
- ln -s 7za ${D}${bindir}/7z
- install -m 0755 ${S}/bin/Codecs/* ${D}${libdir}/Codecs/
- install -m 0755 ${S}/bin/7z.so ${D}${libdir}/lib7z.so
+ install -m 0755 ${S}/CPP/7zip/Bundles/Format7zF/b/g/7z.so ${D}${libdir}/lib7z.so
+ ln -rsn ${D}${libdir}/lib7z.so ${D}${bindir}/7z.so
}
-RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so"
+PROVIDES += "p7zip"
+RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so p7zip"
RPROVIDES:${PN}-dev += "lib7z.so()(64bit) 7z lib7z.so"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
new file mode 100644
index 000000000..32b698ecd
--- /dev/null
+++ b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
@@ -0,0 +1,51 @@
+From 80321060ff24edee11d9ead8e21e9168f52d1d44 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 18 Dec 2024 16:38:11 +0800
+Subject: [PATCH] support yocto cross compiling
+
+Remove -s from $LFLAGS_STRIP, do not strip binary to workaournd
+Yocto build warning
+...
+WARNING: 7zip-native-24.09-r0 do_populate_sysroot: File 'tmp/work/x86_64-linux/
+7zip-native/24.09/recipe-sysroot-native/usr/lib/7z.so' from 7zip-native was already stripped,
+this will prevent future debugging!
+...
+
+Apply CC, CXX from environments
+
+Upstream-Status: Inappropriate [Yocto specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ CPP/7zip/7zip_gcc.mak | 2 +-
+ CPP/7zip/var_gcc.mak | 2 --
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/CPP/7zip/7zip_gcc.mak b/CPP/7zip/7zip_gcc.mak
+index fcb580a..74a15d9 100755
+--- a/CPP/7zip/7zip_gcc.mak
++++ b/CPP/7zip/7zip_gcc.mak
+@@ -45,7 +45,7 @@ CFLAGS_DEBUG = -g
+ else
+ CFLAGS_DEBUG = -DNDEBUG
+ ifneq ($(CC), $(CROSS_COMPILE)clang)
+-LFLAGS_STRIP = -s
++LFLAGS_STRIP =
+ endif
+ endif
+
+diff --git a/CPP/7zip/var_gcc.mak b/CPP/7zip/var_gcc.mak
+index 803c8de..48a7c09 100755
+--- a/CPP/7zip/var_gcc.mak
++++ b/CPP/7zip/var_gcc.mak
+@@ -6,7 +6,5 @@ IS_ARM64=
+ CROSS_COMPILE=
+ MY_ARCH=
+ USE_ASM=
+-CC=$(CROSS_COMPILE)gcc
+-CXX=$(CROSS_COMPILE)g++
+
+ # -march=armv8-a+crc+crypto
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch b/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
deleted file mode 100644
index 1f08d1603..000000000
--- a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 653674e11872465dd5edf1c1e8413ea813d7e086 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 23 Apr 2018 23:07:21 -0700
-Subject: [PATCH] Fix narrowing errors -Wc++11-narrowing
-
-Clang 6.x finds these errors
-
- ../../../../CPP/Windows/ErrorMsg.cpp:24:10: error: case value evaluates to -2147024809, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
- ^
-
-HRESULT causes the macro to be parsed as a signed long, so we need to force it
-to be checked as an unsigned long instead.
-
-also reported here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224930
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- CPP/Windows/ErrorMsg.cpp | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
-index 99684ae..78a64ba 100644
---- a/CPP/Windows/ErrorMsg.cpp
-+++ b/CPP/Windows/ErrorMsg.cpp
-@@ -15,13 +15,13 @@ UString MyFormatMessage(DWORD errorCode)
-
- switch(errorCode) {
- case ERROR_NO_MORE_FILES : txt = "No more files"; break ;
-- case E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-- case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-- case E_ABORT : txt = "E_ABORT"; break ;
-- case E_FAIL : txt = "E_FAIL"; break ;
-- case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-- case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
-+ case (DWORD) E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-+ case (DWORD) E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-+ case (DWORD) E_ABORT : txt = "E_ABORT"; break ;
-+ case (DWORD) E_FAIL : txt = "E_FAIL"; break ;
-+ case (DWORD) STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-+ case (DWORD) E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-+ case (DWORD) E_INVALIDARG : txt = "E_INVALIDARG"; break ;
- case ERROR_DIRECTORY : txt = "Error Directory"; break ;
- default:
- txt = strerror(errorCode);
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
deleted file mode 100644
index 98e186cbf..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-p7zip: Update CVE-2016-9296 patch URL.
-From: Robert Luberda <robert@debian.org>
-Date: Sat, 19 Nov 2016 08:48:08 +0100
-Subject: Fix nullptr dereference (CVE-2016-9296)
-
-Patch taken from https://sourceforge.net/p/p7zip/bugs/185/
-This patch file taken from Debian's patch set for p7zip
-
-Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/185/]
-CVE: CVE-2016-9296
-
-Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
-
-Index: p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
-===================================================================
---- p7zip_16.02.orig/CPP/7zip/Archive/7z/7zIn.cpp
-+++ p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
-@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
- if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
- ThrowIncorrect();
- }
-- HeadersSize += folders.PackPositions[folders.NumPackStreams];
-+ if (folders.PackPositions)
-+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
- return S_OK;
- }
-
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
deleted file mode 100644
index 9ba107807..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7f2da4f810b429ddb7afa0e252e3d02ced0eba87 Mon Sep 17 00:00:00 2001
-From: Radovan Scasny <radovan.scasny@siemens.com>
-Date: Tue, 20 Feb 2018 12:08:13 +0100
-Subject: [PATCH] p7zip: Fix CVE-2017-17969
-
-[No upstream tracking] -- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888297
-
-Heap-based buffer overflow in 7zip
-
-Compress/ShrinkDecoder.cpp: Heap-based buffer overflow
-in the NCompress::NShrink::CDecoder::CodeReal method
-in 7-Zip before 18.00 and p7zip allows remote attackers
-to cause a denial of service (out-of-bounds write)
-or potentially execute arbitrary code via a crafted ZIP archive.
-
-Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/8316/attachment/CVE-2017-17969.patch]
-CVE: CVE-2017-17969
-Signed-off-by: Radovan Scasny <radovan.scasny@siemens.com>
-
----
- CPP/7zip/Compress/ShrinkDecoder.cpp | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
-index 80b7e67..5bb0559 100644
---- a/CPP/7zip/Compress/ShrinkDecoder.cpp
-+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
-@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- {
- _stack[i++] = _suffixes[cur];
- cur = _parents[cur];
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
- }
-+
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
-
- _stack[i++] = (Byte)cur;
- lastChar2 = (Byte)cur;
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
deleted file mode 100644
index 47868c982..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Sun, 28 Jan 2018 23:47:40 +0100
-Subject: CVE-2018-5996
-
-Hopefully fix Memory Corruptions via RAR PPMd (CVE-2018-5996) by
-applying a few changes from 7Zip 18.00-beta.
-
-Bug-Debian: https://bugs.debian.org/#888314
-
-Upstream-Status: Backport [https://sources.debian.org/data/non-free/p/p7zip-rar/16.02-3/debian/patches/06-CVE-2018-5996.patch]
-CVE: CVE-2018-5996
-
-Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
----
- CPP/7zip/Compress/Rar1Decoder.cpp | 13 +++++++++----
- CPP/7zip/Compress/Rar1Decoder.h | 1 +
- CPP/7zip/Compress/Rar2Decoder.cpp | 10 +++++++++-
- CPP/7zip/Compress/Rar2Decoder.h | 1 +
- CPP/7zip/Compress/Rar3Decoder.cpp | 23 ++++++++++++++++++++---
- CPP/7zip/Compress/Rar3Decoder.h | 2 ++
- 6 files changed, 42 insertions(+), 8 deletions(-)
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
-index 1aaedcc..68030c7 100644
---- a/CPP/7zip/Compress/Rar1Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar1Decoder.cpp
-@@ -29,7 +29,7 @@ public:
- };
- */
-
--CDecoder::CDecoder(): m_IsSolid(false) { }
-+CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
-
- void CDecoder::InitStructures()
- {
-@@ -406,9 +406,14 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- InitData();
- if (!m_IsSolid)
- {
-+ _errorMode = false;
- InitStructures();
- InitHuff();
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (m_UnpackSize > 0)
- {
- GetFlagsBuf();
-@@ -477,9 +482,9 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
- {
- try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(const CLzOutWindowException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- }
-
- STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
-diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
-index 630f089..01b606b 100644
---- a/CPP/7zip/Compress/Rar1Decoder.h
-+++ b/CPP/7zip/Compress/Rar1Decoder.h
-@@ -39,6 +39,7 @@ public:
-
- Int64 m_UnpackSize;
- bool m_IsSolid;
-+ bool _errorMode;
-
- UInt32 ReadBits(int numBits);
- HRESULT CopyBlock(UInt32 distance, UInt32 len);
-diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
-index b3f2b4b..0580c8d 100644
---- a/CPP/7zip/Compress/Rar2Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar2Decoder.cpp
-@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
- static const UInt32 kWindowReservSize = (1 << 22) + 256;
-
- CDecoder::CDecoder():
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ m_TablesOK(false)
- {
- }
-
-@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return m_InBitStream.ReadBits(numB
-
- bool CDecoder::ReadTables(void)
- {
-+ m_TablesOK = false;
-+
- Byte levelLevels[kLevelTableSize];
- Byte newLevels[kMaxTableSize];
- m_AudioMode = (ReadBits(1) == 1);
-@@ -170,6 +173,8 @@ bool CDecoder::ReadTables(void)
- }
-
- memcpy(m_LastLevels, newLevels, kMaxTableSize);
-+ m_TablesOK = true;
-+
- return true;
- }
-
-@@ -344,6 +349,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- return S_FALSE;
- }
-
-+ if (!m_TablesOK)
-+ return S_FALSE;
-+
- UInt64 startPos = m_OutWindowStream.GetProcessedSize();
- while (pos < unPackSize)
- {
-diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
-index 3a0535c..0e9005f 100644
---- a/CPP/7zip/Compress/Rar2Decoder.h
-+++ b/CPP/7zip/Compress/Rar2Decoder.h
-@@ -139,6 +139,7 @@ class CDecoder :
-
- UInt64 m_PackSize;
- bool m_IsSolid;
-+ bool m_TablesOK;
-
- void InitStructures();
- UInt32 ReadBits(unsigned numBits);
-diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
-index 3bf2513..6cb8a6a 100644
---- a/CPP/7zip/Compress/Rar3Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar3Decoder.cpp
-@@ -92,7 +92,8 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _vmData(0),
- _vmCode(0),
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ _errorMode(false)
- {
- Ppmd7_Construct(&_ppmd);
- }
-@@ -545,6 +546,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- return InitPPM();
- }
-
-+ TablesRead = false;
-+ TablesOK = false;
-+
- _lzMode = true;
- PrevAlignBits = 0;
- PrevAlignCount = 0;
-@@ -606,6 +610,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- }
- }
- }
-+ if (InputEofError())
-+ return S_FALSE;
-+
- TablesRead = true;
-
- // original code has check here:
-@@ -623,6 +630,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- RIF(m_LenDecoder.Build(&newLevels[kMainTableSize + kDistTableSize + kAlignTableSize]));
-
- memcpy(m_LastLevels, newLevels, kTablesSizesSum);
-+
-+ TablesOK = true;
-+
- return S_OK;
- }
-
-@@ -824,7 +834,12 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- PpmEscChar = 2;
- PpmError = true;
- InitFilters();
-+ _errorMode = false;
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (!m_IsSolid || !TablesRead)
- {
- bool keepDecompressing;
-@@ -838,6 +853,8 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- bool keepDecompressing;
- if (_lzMode)
- {
-+ if (!TablesOK)
-+ return S_FALSE;
- RINOK(DecodeLZ(keepDecompressing))
- }
- else
-@@ -901,8 +918,8 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- _unpackSize = outSize ? *outSize : (UInt64)(Int64)-1;
- return CodeReal(progress);
- }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- // CNewException is possible here. But probably CNewException is caused
- // by error in data stream.
- }
-diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
-index c130cec..2f72d7d 100644
---- a/CPP/7zip/Compress/Rar3Decoder.h
-+++ b/CPP/7zip/Compress/Rar3Decoder.h
-@@ -192,6 +192,7 @@ class CDecoder:
- UInt32 _lastFilter;
-
- bool m_IsSolid;
-+ bool _errorMode;
-
- bool _lzMode;
- bool _unsupportedFilter;
-@@ -200,6 +201,7 @@ class CDecoder:
- UInt32 PrevAlignCount;
-
- bool TablesRead;
-+ bool TablesOK;
-
- CPpmd7 _ppmd;
- int PpmEscChar;
-
diff --git a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
deleted file mode 100644
index 93eb0588c..000000000
--- a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0820ef4b9238c1e39ae5bda32cc08cce3fd3ce89 Mon Sep 17 00:00:00 2001
-From: Nisha Parrakat <Nisha.Parrakat@kpit.com>
-Date: Wed, 26 May 2021 19:59:28 +0000
-Subject: [PATCH] fixes the below error
-
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
-| 308 | numMethods++;
-| | ^~~~~~~~~~
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
-| 318 | numMethods++;
-
-use unsigned instead of bool
-Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
-
-Upstream-Status: Pending
-
----
- CPP/7zip/Archive/Wim/WimHandler.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Archive/Wim/WimHandler.cpp b/CPP/7zip/Archive/Wim/WimHandler.cpp
-index 27d3298..4ff5cfe 100644
---- a/CPP/7zip/Archive/Wim/WimHandler.cpp
-+++ b/CPP/7zip/Archive/Wim/WimHandler.cpp
-@@ -298,7 +298,7 @@ STDMETHODIMP CHandler::GetArchiveProperty(PROPID propID, PROPVARIANT *value)
-
- AString res;
-
-- bool numMethods = 0;
-+ unsigned numMethods = 0;
- for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
- {
- if (methodMask & ((UInt32)1 << i))
diff --git a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch b/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
deleted file mode 100644
index 2636e7f6f..000000000
--- a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From b2aa209dfc5e59d6329b55b9764782334b63dbe8 Mon Sep 17 00:00:00 2001
-From: Raphael Freudiger <raphael.freudiger@siemens.com>
-Date: Wed, 11 Feb 2015 09:11:47 +0100
-Subject: [PATCH] do not override compiler and do not strip
-
-The default makefile sets the compiler to g++ or gcc. This leads to a wrong architecture when cross-compiling.
-Remove the hardcoded compiler and just append the flags to CXX and CC.
-
-Upstream-Status: Pending
-Signed-off-by: Raphael Freudiger <raphael.freudiger@siemens.com>
-Reviewed-By: Pascal Bach <pascal.bach@siemens.com>
-
----
- makefile.machine | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/makefile.machine b/makefile.machine
-index 9e34c34..e9244d9 100644
---- a/makefile.machine
-+++ b/makefile.machine
-@@ -2,7 +2,7 @@
- # makefile for Linux (x86, PPC, alpha ...)
- #
-
--OPTFLAGS=-O -s
-+OPTFLAGS=-O
-
- ALLFLAGS=${OPTFLAGS} -pipe \
- -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
-@@ -10,8 +10,6 @@ ALLFLAGS=${OPTFLAGS} -pipe \
- -D_7ZIP_LARGE_PAGES \
- $(LOCAL_FLAGS)
-
--CXX=g++
--CC=gcc
- CC_SHARED=-fPIC
- LINK_SHARED=-fPIC -shared
-
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH V3 1/3] Use 7zip 2409 to replace p7zip 16.02
2024-12-19 9:14 ` [meta-oe][PATCH V2 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
@ 2024-12-19 9:45 ` Hongxu Jia
2024-12-19 11:16 ` [oe] " Marko, Peter
2024-12-19 16:03 ` [PATCH V4 1/3] Use 7zip 24.09 " Hongxu Jia
1 sibling, 1 reply; 9+ messages in thread
From: Hongxu Jia @ 2024-12-19 9:45 UTC (permalink / raw)
To: openembedded-devel
According to DOC/readme.txt [1]:
7-Zip and p7zip
===============
Now there are two different ports of 7-Zip for Linux/macOS:
1) p7zip - another port of 7-Zip for Linux, made by an independent developer.
The latest version of p7zip now is 16.02, and that p7zip 16.02 is outdated now.
http://sourceforge.net/projects/p7zip/
2) 7-Zip for Linux/macOS - this package - it's new code with all changes from latest 7-Zip for Windows
Add recipe 7-zip [2] to instead of recipe p7zip[3] in which the upstream is dead since 2016
Drop obsolete patches
- CVE-2016-9296.patch
- CVE-2017-17969.patch
- CVE-2018-5996.patch
- change_numMethods_from_bool_to_unsigned.patch
- 0001-Fix-two-buffer-overflow-vulnerabilities.patch
- 0001-Fix-narrowing-errors-Wc-11-narrowing.patch
License-Update: DOC/License.txt: Add BSD-2-Clause & BSD-3-Clause
License-Update: DOC/copying.txt: newline differs
The codec libraries was removed since 21.02 [4]
Refer debian to compile 7-zip [5]
Add link 7z.so to lib7z.so and create wrapper to command 7za 7zr 7z
which required running with absolute path to link the library
[1] https://salsa.debian.org/debian/7zip/-/blob/master/DOC/readme.txt?ref_type=heads
[2] https://sourceforge.net/projects/p7zip/
[3] https://www.7-zip.org/
[4] https://github.com/p7zip-project/p7zip/commit/6c6ed1eba9ff0c0ded9323600f1f3c686d6b6692
[5] https://salsa.debian.org/debian/7zip/-/blob/master/debian/rules
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
.../p7zip_16.02.bb => 7zip/7zip_2409.bb} | 60 +++--
.../0001-support-yocto-cross-compiling.patch | 51 ++++
...Fix-narrowing-errors-Wc-11-narrowing.patch | 49 ----
.../p7zip/files/CVE-2016-9296.patch | 27 ---
.../p7zip/files/CVE-2017-17969.patch | 40 ---
.../p7zip/files/CVE-2018-5996.patch | 227 ------------------
...nge_numMethods_from_bool_to_unsigned.patch | 34 ---
...t_override_compiler_and_do_not_strip.patch | 38 ---
8 files changed, 87 insertions(+), 439 deletions(-)
rename meta-oe/recipes-extended/{p7zip/p7zip_16.02.bb => 7zip/7zip_2409.bb} (22%)
create mode 100644 meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
diff --git a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-oe/recipes-extended/7zip/7zip_2409.bb
similarity index 22%
rename from meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
rename to meta-oe/recipes-extended/7zip/7zip_2409.bb
index 789819a5e..0db9148ef 100644
--- a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/meta-oe/recipes-extended/7zip/7zip_2409.bb
@@ -1,46 +1,58 @@
SUMMARY = "7-zip is a commandline utility handling 7z archives."
HOMEPAGE = "http://www.7-zip.org/"
-LICENSE = "LGPL-2.1-or-later & unRAR"
-LIC_FILES_CHKSUM = "file://DOC/copying.txt;md5=4fbd65380cdd255951079008b364516c \
+LICENSE = "LGPL-2.1-or-later & unRAR & PD & BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://DOC/copying.txt;md5=b0d181292c99cf9bb2ae9166dd3a0239 \
file://DOC/unRarLicense.txt;md5=9c87ddde469ef94aed153b0951d088de \
- file://DOC/License.txt;md5=879598edf1f54dddb6930d7581357f8b"
-
-SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_all.tar.bz2 \
- file://do_not_override_compiler_and_do_not_strip.patch \
- file://CVE-2017-17969.patch \
- file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
- file://change_numMethods_from_bool_to_unsigned.patch \
- file://CVE-2018-5996.patch \
- file://CVE-2016-9296.patch \
+ file://DOC/License.txt;md5=8bfe22e0285a3043b61ea408d234c55d"
+
+SRC_URI = "https://www.7-zip.org/a/7z${PV}-src.tar.xz \
+ file://0001-support-yocto-cross-compiling.patch \
"
-SRC_URI[sha256sum] = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f"
+SRC_URI[sha256sum] = "49c05169f49572c1128453579af1632a952409ced028259381dac30726b6133a"
+
+UPSTREAM_CHECK_URI = "https://www.7-zip.org/download.html"
-UPSTREAM_CHECK_URI = "https://tracker.debian.org/pkg/p7zip"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+S = "${WORKDIR}/sources"
+UNPACKDIR = "${S}"
-S = "${WORKDIR}/${BPN}_${PV}"
+# Support Yocto cross compiling
+EXTRA_OEMAKE += " \
+ CXXFLAGS_EXTRA='${CXXFLAGS}' \
+ CFLAGS_BASE2='${CFLAGS}' \
+ LDFLAGS_STATIC_3='${LDFLAGS}' \
+"
-do_compile:append() {
- oe_runmake 7z
+do_compile() {
+ oe_runmake -C CPP/7zip/Bundles/Alone2 -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Format7zF -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/UI/Console -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/SFXCon -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Alone -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Alone7z -f ../../cmpl_gcc.mak
}
FILES:${PN} += "${libdir}/* ${bindir}/7z"
FILES_SOLIBSDEV = ""
INSANE_SKIP:${PN} += "dev-so"
+RDEPENDS:${PN} = "bash"
do_install() {
install -d ${D}${bindir}
- install -d ${D}${bindir}/Codecs
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone/b/g/7za ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone7z/b/g/7zr ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/UI/Console/b/g/7z ${D}${bindir}
+ for bin in 7za 7zr 7z; do
+ create_cmdline_wrapper ${D}${bindir}/$bin
+ done
+
install -d ${D}${libdir}
- install -d ${D}${libdir}/Codecs
- install -m 0755 ${S}/bin/7za ${D}${bindir}
- ln -s 7za ${D}${bindir}/7z
- install -m 0755 ${S}/bin/Codecs/* ${D}${libdir}/Codecs/
- install -m 0755 ${S}/bin/7z.so ${D}${libdir}/lib7z.so
+ install -m 0755 ${S}/CPP/7zip/Bundles/Format7zF/b/g/7z.so ${D}${libdir}/lib7z.so
+ ln -rsn ${D}${libdir}/lib7z.so ${D}${bindir}/7z.so
}
-RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so"
+PROVIDES += "p7zip"
+RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so p7zip"
RPROVIDES:${PN}-dev += "lib7z.so()(64bit) 7z lib7z.so"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
new file mode 100644
index 000000000..32b698ecd
--- /dev/null
+++ b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
@@ -0,0 +1,51 @@
+From 80321060ff24edee11d9ead8e21e9168f52d1d44 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 18 Dec 2024 16:38:11 +0800
+Subject: [PATCH] support yocto cross compiling
+
+Remove -s from $LFLAGS_STRIP, do not strip binary to workaournd
+Yocto build warning
+...
+WARNING: 7zip-native-24.09-r0 do_populate_sysroot: File 'tmp/work/x86_64-linux/
+7zip-native/24.09/recipe-sysroot-native/usr/lib/7z.so' from 7zip-native was already stripped,
+this will prevent future debugging!
+...
+
+Apply CC, CXX from environments
+
+Upstream-Status: Inappropriate [Yocto specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ CPP/7zip/7zip_gcc.mak | 2 +-
+ CPP/7zip/var_gcc.mak | 2 --
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/CPP/7zip/7zip_gcc.mak b/CPP/7zip/7zip_gcc.mak
+index fcb580a..74a15d9 100755
+--- a/CPP/7zip/7zip_gcc.mak
++++ b/CPP/7zip/7zip_gcc.mak
+@@ -45,7 +45,7 @@ CFLAGS_DEBUG = -g
+ else
+ CFLAGS_DEBUG = -DNDEBUG
+ ifneq ($(CC), $(CROSS_COMPILE)clang)
+-LFLAGS_STRIP = -s
++LFLAGS_STRIP =
+ endif
+ endif
+
+diff --git a/CPP/7zip/var_gcc.mak b/CPP/7zip/var_gcc.mak
+index 803c8de..48a7c09 100755
+--- a/CPP/7zip/var_gcc.mak
++++ b/CPP/7zip/var_gcc.mak
+@@ -6,7 +6,5 @@ IS_ARM64=
+ CROSS_COMPILE=
+ MY_ARCH=
+ USE_ASM=
+-CC=$(CROSS_COMPILE)gcc
+-CXX=$(CROSS_COMPILE)g++
+
+ # -march=armv8-a+crc+crypto
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch b/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
deleted file mode 100644
index 1f08d1603..000000000
--- a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 653674e11872465dd5edf1c1e8413ea813d7e086 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 23 Apr 2018 23:07:21 -0700
-Subject: [PATCH] Fix narrowing errors -Wc++11-narrowing
-
-Clang 6.x finds these errors
-
- ../../../../CPP/Windows/ErrorMsg.cpp:24:10: error: case value evaluates to -2147024809, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
- ^
-
-HRESULT causes the macro to be parsed as a signed long, so we need to force it
-to be checked as an unsigned long instead.
-
-also reported here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224930
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- CPP/Windows/ErrorMsg.cpp | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
-index 99684ae..78a64ba 100644
---- a/CPP/Windows/ErrorMsg.cpp
-+++ b/CPP/Windows/ErrorMsg.cpp
-@@ -15,13 +15,13 @@ UString MyFormatMessage(DWORD errorCode)
-
- switch(errorCode) {
- case ERROR_NO_MORE_FILES : txt = "No more files"; break ;
-- case E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-- case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-- case E_ABORT : txt = "E_ABORT"; break ;
-- case E_FAIL : txt = "E_FAIL"; break ;
-- case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-- case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
-+ case (DWORD) E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-+ case (DWORD) E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-+ case (DWORD) E_ABORT : txt = "E_ABORT"; break ;
-+ case (DWORD) E_FAIL : txt = "E_FAIL"; break ;
-+ case (DWORD) STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-+ case (DWORD) E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-+ case (DWORD) E_INVALIDARG : txt = "E_INVALIDARG"; break ;
- case ERROR_DIRECTORY : txt = "Error Directory"; break ;
- default:
- txt = strerror(errorCode);
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
deleted file mode 100644
index 98e186cbf..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-p7zip: Update CVE-2016-9296 patch URL.
-From: Robert Luberda <robert@debian.org>
-Date: Sat, 19 Nov 2016 08:48:08 +0100
-Subject: Fix nullptr dereference (CVE-2016-9296)
-
-Patch taken from https://sourceforge.net/p/p7zip/bugs/185/
-This patch file taken from Debian's patch set for p7zip
-
-Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/185/]
-CVE: CVE-2016-9296
-
-Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
-
-Index: p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
-===================================================================
---- p7zip_16.02.orig/CPP/7zip/Archive/7z/7zIn.cpp
-+++ p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
-@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
- if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
- ThrowIncorrect();
- }
-- HeadersSize += folders.PackPositions[folders.NumPackStreams];
-+ if (folders.PackPositions)
-+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
- return S_OK;
- }
-
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
deleted file mode 100644
index 9ba107807..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7f2da4f810b429ddb7afa0e252e3d02ced0eba87 Mon Sep 17 00:00:00 2001
-From: Radovan Scasny <radovan.scasny@siemens.com>
-Date: Tue, 20 Feb 2018 12:08:13 +0100
-Subject: [PATCH] p7zip: Fix CVE-2017-17969
-
-[No upstream tracking] -- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888297
-
-Heap-based buffer overflow in 7zip
-
-Compress/ShrinkDecoder.cpp: Heap-based buffer overflow
-in the NCompress::NShrink::CDecoder::CodeReal method
-in 7-Zip before 18.00 and p7zip allows remote attackers
-to cause a denial of service (out-of-bounds write)
-or potentially execute arbitrary code via a crafted ZIP archive.
-
-Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/8316/attachment/CVE-2017-17969.patch]
-CVE: CVE-2017-17969
-Signed-off-by: Radovan Scasny <radovan.scasny@siemens.com>
-
----
- CPP/7zip/Compress/ShrinkDecoder.cpp | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
-index 80b7e67..5bb0559 100644
---- a/CPP/7zip/Compress/ShrinkDecoder.cpp
-+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
-@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- {
- _stack[i++] = _suffixes[cur];
- cur = _parents[cur];
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
- }
-+
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
-
- _stack[i++] = (Byte)cur;
- lastChar2 = (Byte)cur;
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
deleted file mode 100644
index 47868c982..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Sun, 28 Jan 2018 23:47:40 +0100
-Subject: CVE-2018-5996
-
-Hopefully fix Memory Corruptions via RAR PPMd (CVE-2018-5996) by
-applying a few changes from 7Zip 18.00-beta.
-
-Bug-Debian: https://bugs.debian.org/#888314
-
-Upstream-Status: Backport [https://sources.debian.org/data/non-free/p/p7zip-rar/16.02-3/debian/patches/06-CVE-2018-5996.patch]
-CVE: CVE-2018-5996
-
-Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
----
- CPP/7zip/Compress/Rar1Decoder.cpp | 13 +++++++++----
- CPP/7zip/Compress/Rar1Decoder.h | 1 +
- CPP/7zip/Compress/Rar2Decoder.cpp | 10 +++++++++-
- CPP/7zip/Compress/Rar2Decoder.h | 1 +
- CPP/7zip/Compress/Rar3Decoder.cpp | 23 ++++++++++++++++++++---
- CPP/7zip/Compress/Rar3Decoder.h | 2 ++
- 6 files changed, 42 insertions(+), 8 deletions(-)
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
-index 1aaedcc..68030c7 100644
---- a/CPP/7zip/Compress/Rar1Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar1Decoder.cpp
-@@ -29,7 +29,7 @@ public:
- };
- */
-
--CDecoder::CDecoder(): m_IsSolid(false) { }
-+CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
-
- void CDecoder::InitStructures()
- {
-@@ -406,9 +406,14 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- InitData();
- if (!m_IsSolid)
- {
-+ _errorMode = false;
- InitStructures();
- InitHuff();
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (m_UnpackSize > 0)
- {
- GetFlagsBuf();
-@@ -477,9 +482,9 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
- {
- try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(const CLzOutWindowException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- }
-
- STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
-diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
-index 630f089..01b606b 100644
---- a/CPP/7zip/Compress/Rar1Decoder.h
-+++ b/CPP/7zip/Compress/Rar1Decoder.h
-@@ -39,6 +39,7 @@ public:
-
- Int64 m_UnpackSize;
- bool m_IsSolid;
-+ bool _errorMode;
-
- UInt32 ReadBits(int numBits);
- HRESULT CopyBlock(UInt32 distance, UInt32 len);
-diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
-index b3f2b4b..0580c8d 100644
---- a/CPP/7zip/Compress/Rar2Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar2Decoder.cpp
-@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
- static const UInt32 kWindowReservSize = (1 << 22) + 256;
-
- CDecoder::CDecoder():
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ m_TablesOK(false)
- {
- }
-
-@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return m_InBitStream.ReadBits(numB
-
- bool CDecoder::ReadTables(void)
- {
-+ m_TablesOK = false;
-+
- Byte levelLevels[kLevelTableSize];
- Byte newLevels[kMaxTableSize];
- m_AudioMode = (ReadBits(1) == 1);
-@@ -170,6 +173,8 @@ bool CDecoder::ReadTables(void)
- }
-
- memcpy(m_LastLevels, newLevels, kMaxTableSize);
-+ m_TablesOK = true;
-+
- return true;
- }
-
-@@ -344,6 +349,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- return S_FALSE;
- }
-
-+ if (!m_TablesOK)
-+ return S_FALSE;
-+
- UInt64 startPos = m_OutWindowStream.GetProcessedSize();
- while (pos < unPackSize)
- {
-diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
-index 3a0535c..0e9005f 100644
---- a/CPP/7zip/Compress/Rar2Decoder.h
-+++ b/CPP/7zip/Compress/Rar2Decoder.h
-@@ -139,6 +139,7 @@ class CDecoder :
-
- UInt64 m_PackSize;
- bool m_IsSolid;
-+ bool m_TablesOK;
-
- void InitStructures();
- UInt32 ReadBits(unsigned numBits);
-diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
-index 3bf2513..6cb8a6a 100644
---- a/CPP/7zip/Compress/Rar3Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar3Decoder.cpp
-@@ -92,7 +92,8 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _vmData(0),
- _vmCode(0),
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ _errorMode(false)
- {
- Ppmd7_Construct(&_ppmd);
- }
-@@ -545,6 +546,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- return InitPPM();
- }
-
-+ TablesRead = false;
-+ TablesOK = false;
-+
- _lzMode = true;
- PrevAlignBits = 0;
- PrevAlignCount = 0;
-@@ -606,6 +610,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- }
- }
- }
-+ if (InputEofError())
-+ return S_FALSE;
-+
- TablesRead = true;
-
- // original code has check here:
-@@ -623,6 +630,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- RIF(m_LenDecoder.Build(&newLevels[kMainTableSize + kDistTableSize + kAlignTableSize]));
-
- memcpy(m_LastLevels, newLevels, kTablesSizesSum);
-+
-+ TablesOK = true;
-+
- return S_OK;
- }
-
-@@ -824,7 +834,12 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- PpmEscChar = 2;
- PpmError = true;
- InitFilters();
-+ _errorMode = false;
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (!m_IsSolid || !TablesRead)
- {
- bool keepDecompressing;
-@@ -838,6 +853,8 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- bool keepDecompressing;
- if (_lzMode)
- {
-+ if (!TablesOK)
-+ return S_FALSE;
- RINOK(DecodeLZ(keepDecompressing))
- }
- else
-@@ -901,8 +918,8 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- _unpackSize = outSize ? *outSize : (UInt64)(Int64)-1;
- return CodeReal(progress);
- }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- // CNewException is possible here. But probably CNewException is caused
- // by error in data stream.
- }
-diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
-index c130cec..2f72d7d 100644
---- a/CPP/7zip/Compress/Rar3Decoder.h
-+++ b/CPP/7zip/Compress/Rar3Decoder.h
-@@ -192,6 +192,7 @@ class CDecoder:
- UInt32 _lastFilter;
-
- bool m_IsSolid;
-+ bool _errorMode;
-
- bool _lzMode;
- bool _unsupportedFilter;
-@@ -200,6 +201,7 @@ class CDecoder:
- UInt32 PrevAlignCount;
-
- bool TablesRead;
-+ bool TablesOK;
-
- CPpmd7 _ppmd;
- int PpmEscChar;
-
diff --git a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
deleted file mode 100644
index 93eb0588c..000000000
--- a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0820ef4b9238c1e39ae5bda32cc08cce3fd3ce89 Mon Sep 17 00:00:00 2001
-From: Nisha Parrakat <Nisha.Parrakat@kpit.com>
-Date: Wed, 26 May 2021 19:59:28 +0000
-Subject: [PATCH] fixes the below error
-
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
-| 308 | numMethods++;
-| | ^~~~~~~~~~
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
-| 318 | numMethods++;
-
-use unsigned instead of bool
-Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
-
-Upstream-Status: Pending
-
----
- CPP/7zip/Archive/Wim/WimHandler.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Archive/Wim/WimHandler.cpp b/CPP/7zip/Archive/Wim/WimHandler.cpp
-index 27d3298..4ff5cfe 100644
---- a/CPP/7zip/Archive/Wim/WimHandler.cpp
-+++ b/CPP/7zip/Archive/Wim/WimHandler.cpp
-@@ -298,7 +298,7 @@ STDMETHODIMP CHandler::GetArchiveProperty(PROPID propID, PROPVARIANT *value)
-
- AString res;
-
-- bool numMethods = 0;
-+ unsigned numMethods = 0;
- for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
- {
- if (methodMask & ((UInt32)1 << i))
diff --git a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch b/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
deleted file mode 100644
index 2636e7f6f..000000000
--- a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From b2aa209dfc5e59d6329b55b9764782334b63dbe8 Mon Sep 17 00:00:00 2001
-From: Raphael Freudiger <raphael.freudiger@siemens.com>
-Date: Wed, 11 Feb 2015 09:11:47 +0100
-Subject: [PATCH] do not override compiler and do not strip
-
-The default makefile sets the compiler to g++ or gcc. This leads to a wrong architecture when cross-compiling.
-Remove the hardcoded compiler and just append the flags to CXX and CC.
-
-Upstream-Status: Pending
-Signed-off-by: Raphael Freudiger <raphael.freudiger@siemens.com>
-Reviewed-By: Pascal Bach <pascal.bach@siemens.com>
-
----
- makefile.machine | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/makefile.machine b/makefile.machine
-index 9e34c34..e9244d9 100644
---- a/makefile.machine
-+++ b/makefile.machine
-@@ -2,7 +2,7 @@
- # makefile for Linux (x86, PPC, alpha ...)
- #
-
--OPTFLAGS=-O -s
-+OPTFLAGS=-O
-
- ALLFLAGS=${OPTFLAGS} -pipe \
- -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
-@@ -10,8 +10,6 @@ ALLFLAGS=${OPTFLAGS} -pipe \
- -D_7ZIP_LARGE_PAGES \
- $(LOCAL_FLAGS)
-
--CXX=g++
--CC=gcc
- CC_SHARED=-fPIC
- LINK_SHARED=-fPIC -shared
-
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread* RE: [oe] [PATCH V3 1/3] Use 7zip 2409 to replace p7zip 16.02
2024-12-19 9:45 ` [PATCH V3 " Hongxu Jia
@ 2024-12-19 11:16 ` Marko, Peter
2024-12-19 14:30 ` hongxu
0 siblings, 1 reply; 9+ messages in thread
From: Marko, Peter @ 2024-12-19 11:16 UTC (permalink / raw)
To: hongxu.jia@eng.windriver.com,
openembedded-devel@lists.openembedded.org
Hello,
Thanks for this patch, it looks much better than the one which we have started
(and which is now obsolete and should be removed from master-next now)
I have following problems with this patch however:
- version needs to be 24.09, not 2409 (you can take SRC_URI hack from our patch)
- where does the bash dependency come from? gpl-3 is not nice without a good explanation...
Regards,
Peter
> -----Original Message-----
> From: openembedded-devel@lists.openembedded.org <openembedded-
> devel@lists.openembedded.org> On Behalf Of hongxu via
> lists.openembedded.org
> Sent: Thursday, December 19, 2024 10:45
> To: openembedded-devel@lists.openembedded.org
> Subject: [oe] [PATCH V3 1/3] Use 7zip 2409 to replace p7zip 16.02
>
> According to DOC/readme.txt [1]:
>
> 7-Zip and p7zip
> ===============
> Now there are two different ports of 7-Zip for Linux/macOS:
>
> 1) p7zip - another port of 7-Zip for Linux, made by an independent developer.
> The latest version of p7zip now is 16.02, and that p7zip 16.02 is outdated now.
> http://sourceforge.net/projects/p7zip/
>
> 2) 7-Zip for Linux/macOS - this package - it's new code with all changes from
> latest 7-Zip for Windows
>
> Add recipe 7-zip [2] to instead of recipe p7zip[3] in which the upstream is dead
> since 2016
>
> Drop obsolete patches
> - CVE-2016-9296.patch
> - CVE-2017-17969.patch
> - CVE-2018-5996.patch
> - change_numMethods_from_bool_to_unsigned.patch
> - 0001-Fix-two-buffer-overflow-vulnerabilities.patch
> - 0001-Fix-narrowing-errors-Wc-11-narrowing.patch
>
> License-Update: DOC/License.txt: Add BSD-2-Clause & BSD-3-Clause
> License-Update: DOC/copying.txt: newline differs
>
> The codec libraries was removed since 21.02 [4]
>
> Refer debian to compile 7-zip [5]
>
> Add link 7z.so to lib7z.so and create wrapper to command 7za 7zr 7z
> which required running with absolute path to link the library
>
> [1] https://salsa.debian.org/debian/7zip/-
> /blob/master/DOC/readme.txt?ref_type=heads
> [2] https://sourceforge.net/projects/p7zip/
> [3] https://www.7-zip.org/
> [4] https://github.com/p7zip-
> project/p7zip/commit/6c6ed1eba9ff0c0ded9323600f1f3c686d6b6692
> [5] https://salsa.debian.org/debian/7zip/-/blob/master/debian/rules
>
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---
> .../p7zip_16.02.bb => 7zip/7zip_2409.bb} | 60 +++--
> .../0001-support-yocto-cross-compiling.patch | 51 ++++
> ...Fix-narrowing-errors-Wc-11-narrowing.patch | 49 ----
> .../p7zip/files/CVE-2016-9296.patch | 27 ---
> .../p7zip/files/CVE-2017-17969.patch | 40 ---
> .../p7zip/files/CVE-2018-5996.patch | 227 ------------------
> ...nge_numMethods_from_bool_to_unsigned.patch | 34 ---
> ...t_override_compiler_and_do_not_strip.patch | 38 ---
> 8 files changed, 87 insertions(+), 439 deletions(-)
> rename meta-oe/recipes-extended/{p7zip/p7zip_16.02.bb =>
> 7zip/7zip_2409.bb} (22%)
> create mode 100644 meta-oe/recipes-extended/7zip/files/0001-support-yocto-
> cross-compiling.patch
> delete mode 100644 meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-
> errors-Wc-11-narrowing.patch
> delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2016-
> 9296.patch
> delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2017-
> 17969.patch
> delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2018-
> 5996.patch
> delete mode 100644 meta-oe/recipes-
> extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
> delete mode 100644 meta-oe/recipes-
> extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
>
> diff --git a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-oe/recipes-
> extended/7zip/7zip_2409.bb
> similarity index 22%
> rename from meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
> rename to meta-oe/recipes-extended/7zip/7zip_2409.bb
> index 789819a5e..0db9148ef 100644
> --- a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
> +++ b/meta-oe/recipes-extended/7zip/7zip_2409.bb
> @@ -1,46 +1,58 @@
> SUMMARY = "7-zip is a commandline utility handling 7z archives."
> HOMEPAGE = "http://www.7-zip.org/"
> -LICENSE = "LGPL-2.1-or-later & unRAR"
> -LIC_FILES_CHKSUM =
> "file://DOC/copying.txt;md5=4fbd65380cdd255951079008b364516c \
> +LICENSE = "LGPL-2.1-or-later & unRAR & PD & BSD-2-Clause & BSD-3-Clause"
> +LIC_FILES_CHKSUM =
> "file://DOC/copying.txt;md5=b0d181292c99cf9bb2ae9166dd3a0239 \
>
> file://DOC/unRarLicense.txt;md5=9c87ddde469ef94aed153b0951d088de \
> - file://DOC/License.txt;md5=879598edf1f54dddb6930d7581357f8b"
> -
> -SRC_URI =
> "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_all.tar.bz
> 2 \
> - file://do_not_override_compiler_and_do_not_strip.patch \
> - file://CVE-2017-17969.patch \
> - file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
> - file://change_numMethods_from_bool_to_unsigned.patch \
> - file://CVE-2018-5996.patch \
> - file://CVE-2016-9296.patch \
> + file://DOC/License.txt;md5=8bfe22e0285a3043b61ea408d234c55d"
> +
> +SRC_URI = "https://www.7-zip.org/a/7z${PV}-src.tar.xz \
> + file://0001-support-yocto-cross-compiling.patch \
> "
>
> -SRC_URI[sha256sum] =
> "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f"
> +SRC_URI[sha256sum] =
> "49c05169f49572c1128453579af1632a952409ced028259381dac30726b6133a"
> +
> +UPSTREAM_CHECK_URI = "https://www.7-zip.org/download.html"
>
> -UPSTREAM_CHECK_URI = "https://tracker.debian.org/pkg/p7zip"
> -UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
> +S = "${WORKDIR}/sources"
> +UNPACKDIR = "${S}"
>
> -S = "${WORKDIR}/${BPN}_${PV}"
> +# Support Yocto cross compiling
> +EXTRA_OEMAKE += " \
> + CXXFLAGS_EXTRA='${CXXFLAGS}' \
> + CFLAGS_BASE2='${CFLAGS}' \
> + LDFLAGS_STATIC_3='${LDFLAGS}' \
> +"
>
> -do_compile:append() {
> - oe_runmake 7z
> +do_compile() {
> + oe_runmake -C CPP/7zip/Bundles/Alone2 -f ../../cmpl_gcc.mak
> + oe_runmake -C CPP/7zip/Bundles/Format7zF -f ../../cmpl_gcc.mak
> + oe_runmake -C CPP/7zip/UI/Console -f ../../cmpl_gcc.mak
> + oe_runmake -C CPP/7zip/Bundles/SFXCon -f ../../cmpl_gcc.mak
> + oe_runmake -C CPP/7zip/Bundles/Alone -f ../../cmpl_gcc.mak
> + oe_runmake -C CPP/7zip/Bundles/Alone7z -f ../../cmpl_gcc.mak
> }
> FILES:${PN} += "${libdir}/* ${bindir}/7z"
>
> FILES_SOLIBSDEV = ""
> INSANE_SKIP:${PN} += "dev-so"
> +RDEPENDS:${PN} = "bash"
>
> do_install() {
> install -d ${D}${bindir}
> - install -d ${D}${bindir}/Codecs
> + install -m 0755 ${S}/CPP/7zip/Bundles/Alone/b/g/7za ${D}${bindir}
> + install -m 0755 ${S}/CPP/7zip/Bundles/Alone7z/b/g/7zr ${D}${bindir}
> + install -m 0755 ${S}/CPP/7zip/UI/Console/b/g/7z ${D}${bindir}
> + for bin in 7za 7zr 7z; do
> + create_cmdline_wrapper ${D}${bindir}/$bin
> + done
> +
> install -d ${D}${libdir}
> - install -d ${D}${libdir}/Codecs
> - install -m 0755 ${S}/bin/7za ${D}${bindir}
> - ln -s 7za ${D}${bindir}/7z
> - install -m 0755 ${S}/bin/Codecs/* ${D}${libdir}/Codecs/
> - install -m 0755 ${S}/bin/7z.so ${D}${libdir}/lib7z.so
> + install -m 0755 ${S}/CPP/7zip/Bundles/Format7zF/b/g/7z.so
> ${D}${libdir}/lib7z.so
> + ln -rsn ${D}${libdir}/lib7z.so ${D}${bindir}/7z.so
> }
>
> -RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so"
> +PROVIDES += "p7zip"
> +RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so p7zip"
> RPROVIDES:${PN}-dev += "lib7z.so()(64bit) 7z lib7z.so"
>
> BBCLASSEXTEND = "native nativesdk"
> diff --git a/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-
> compiling.patch b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-
> cross-compiling.patch
> new file mode 100644
> index 000000000..32b698ecd
> --- /dev/null
> +++ b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-
> compiling.patch
> @@ -0,0 +1,51 @@
> +From 80321060ff24edee11d9ead8e21e9168f52d1d44 Mon Sep 17 00:00:00
> 2001
> +From: Hongxu Jia <hongxu.jia@windriver.com>
> +Date: Wed, 18 Dec 2024 16:38:11 +0800
> +Subject: [PATCH] support yocto cross compiling
> +
> +Remove -s from $LFLAGS_STRIP, do not strip binary to workaournd
> +Yocto build warning
> +...
> +WARNING: 7zip-native-24.09-r0 do_populate_sysroot: File 'tmp/work/x86_64-
> linux/
> +7zip-native/24.09/recipe-sysroot-native/usr/lib/7z.so' from 7zip-native was
> already stripped,
> +this will prevent future debugging!
> +...
> +
> +Apply CC, CXX from environments
> +
> +Upstream-Status: Inappropriate [Yocto specific]
> +
> +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> +---
> + CPP/7zip/7zip_gcc.mak | 2 +-
> + CPP/7zip/var_gcc.mak | 2 --
> + 2 files changed, 1 insertion(+), 3 deletions(-)
> +
> +diff --git a/CPP/7zip/7zip_gcc.mak b/CPP/7zip/7zip_gcc.mak
> +index fcb580a..74a15d9 100755
> +--- a/CPP/7zip/7zip_gcc.mak
> ++++ b/CPP/7zip/7zip_gcc.mak
> +@@ -45,7 +45,7 @@ CFLAGS_DEBUG = -g
> + else
>
> + CFLAGS_DEBUG = -DNDEBUG
>
> + ifneq ($(CC), $(CROSS_COMPILE)clang)
>
> +-LFLAGS_STRIP = -s
>
> ++LFLAGS_STRIP =
>
> + endif
>
> + endif
>
> +
>
> +diff --git a/CPP/7zip/var_gcc.mak b/CPP/7zip/var_gcc.mak
> +index 803c8de..48a7c09 100755
> +--- a/CPP/7zip/var_gcc.mak
> ++++ b/CPP/7zip/var_gcc.mak
> +@@ -6,7 +6,5 @@ IS_ARM64=
> + CROSS_COMPILE=
>
> + MY_ARCH=
>
> + USE_ASM=
>
> +-CC=$(CROSS_COMPILE)gcc
>
> +-CXX=$(CROSS_COMPILE)g++
>
> +
>
> + # -march=armv8-a+crc+crypto
>
> +--
> +2.25.1
> +
> diff --git a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-
> 11-narrowing.patch b/meta-oe/recipes-extended/p7zip/files/0001-Fix-
> narrowing-errors-Wc-11-narrowing.patch
> deleted file mode 100644
> index 1f08d1603..000000000
> --- a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-
> narrowing.patch
> +++ /dev/null
> @@ -1,49 +0,0 @@
> -From 653674e11872465dd5edf1c1e8413ea813d7e086 Mon Sep 17 00:00:00
> 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Mon, 23 Apr 2018 23:07:21 -0700
> -Subject: [PATCH] Fix narrowing errors -Wc++11-narrowing
> -
> -Clang 6.x finds these errors
> -
> - ../../../../CPP/Windows/ErrorMsg.cpp:24:10: error: case value evaluates to -
> 2147024809, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-
> Wc++11-narrowing]
> - case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
> - ^
> -
> -HRESULT causes the macro to be parsed as a signed long, so we need to force it
> -to be checked as an unsigned long instead.
> -
> -also reported here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224930
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -
> ----
> - CPP/Windows/ErrorMsg.cpp | 14 +++++++-------
> - 1 file changed, 7 insertions(+), 7 deletions(-)
> -
> -diff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
> -index 99684ae..78a64ba 100644
> ---- a/CPP/Windows/ErrorMsg.cpp
> -+++ b/CPP/Windows/ErrorMsg.cpp
> -@@ -15,13 +15,13 @@ UString MyFormatMessage(DWORD errorCode)
> -
> - switch(errorCode) {
> - case ERROR_NO_MORE_FILES : txt = "No more files"; break ;
> -- case E_NOTIMPL : txt = "E_NOTIMPL"; break ;
> -- case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
> -- case E_ABORT : txt = "E_ABORT"; break ;
> -- case E_FAIL : txt = "E_FAIL"; break ;
> -- case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
> -- case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
> -- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
> -+ case (DWORD) E_NOTIMPL : txt = "E_NOTIMPL"; break ;
> -+ case (DWORD) E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
> -+ case (DWORD) E_ABORT : txt = "E_ABORT"; break ;
> -+ case (DWORD) E_FAIL : txt = "E_FAIL"; break ;
> -+ case (DWORD) STG_E_INVALIDFUNCTION : txt =
> "STG_E_INVALIDFUNCTION"; break ;
> -+ case (DWORD) E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
> -+ case (DWORD) E_INVALIDARG : txt = "E_INVALIDARG"; break ;
> - case ERROR_DIRECTORY : txt = "Error Directory"; break ;
> - default:
> - txt = strerror(errorCode);
> diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch b/meta-
> oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
> deleted file mode 100644
> index 98e186cbf..000000000
> --- a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -p7zip: Update CVE-2016-9296 patch URL.
> -From: Robert Luberda <robert@debian.org>
> -Date: Sat, 19 Nov 2016 08:48:08 +0100
> -Subject: Fix nullptr dereference (CVE-2016-9296)
> -
> -Patch taken from https://sourceforge.net/p/p7zip/bugs/185/
> -This patch file taken from Debian's patch set for p7zip
> -
> -Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/185/]
> -CVE: CVE-2016-9296
> -
> -Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
> -
> -Index: p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
> -
> =================================================================
> ==
> ---- p7zip_16.02.orig/CPP/7zip/Archive/7z/7zIn.cpp
> -+++ p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
> -@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
> - if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
> - ThrowIncorrect();
> - }
> -- HeadersSize += folders.PackPositions[folders.NumPackStreams];
> -+ if (folders.PackPositions)
> -+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
> - return S_OK;
> - }
> -
> diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
> b/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
> deleted file mode 100644
> index 9ba107807..000000000
> --- a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -From 7f2da4f810b429ddb7afa0e252e3d02ced0eba87 Mon Sep 17 00:00:00
> 2001
> -From: Radovan Scasny <radovan.scasny@siemens.com>
> -Date: Tue, 20 Feb 2018 12:08:13 +0100
> -Subject: [PATCH] p7zip: Fix CVE-2017-17969
> -
> -[No upstream tracking] -- https://bugs.debian.org/cgi-
> bin/bugreport.cgi?bug=888297
> -
> -Heap-based buffer overflow in 7zip
> -
> -Compress/ShrinkDecoder.cpp: Heap-based buffer overflow
> -in the NCompress::NShrink::CDecoder::CodeReal method
> -in 7-Zip before 18.00 and p7zip allows remote attackers
> -to cause a denial of service (out-of-bounds write)
> -or potentially execute arbitrary code via a crafted ZIP archive.
> -
> -Upstream-Status: Backport
> [https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/8316/attachm
> ent/CVE-2017-17969.patch]
> -CVE: CVE-2017-17969
> -Signed-off-by: Radovan Scasny <radovan.scasny@siemens.com>
> -
> ----
> - CPP/7zip/Compress/ShrinkDecoder.cpp | 5 +++++
> - 1 file changed, 5 insertions(+)
> -
> -diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp
> b/CPP/7zip/Compress/ShrinkDecoder.cpp
> -index 80b7e67..5bb0559 100644
> ---- a/CPP/7zip/Compress/ShrinkDecoder.cpp
> -+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
> -@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream
> *inStream, ISequentialOutStream *
> - {
> - _stack[i++] = _suffixes[cur];
> - cur = _parents[cur];
> -+ if (cur >= kNumItems || i >= kNumItems)
> -+ break;
> - }
> -+
> -+ if (cur >= kNumItems || i >= kNumItems)
> -+ break;
> -
> - _stack[i++] = (Byte)cur;
> - lastChar2 = (Byte)cur;
> diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch b/meta-
> oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
> deleted file mode 100644
> index 47868c982..000000000
> --- a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
> +++ /dev/null
> @@ -1,227 +0,0 @@
> -From: Robert Luberda <robert@debian.org>
> -Date: Sun, 28 Jan 2018 23:47:40 +0100
> -Subject: CVE-2018-5996
> -
> -Hopefully fix Memory Corruptions via RAR PPMd (CVE-2018-5996) by
> -applying a few changes from 7Zip 18.00-beta.
> -
> -Bug-Debian: https://bugs.debian.org/#888314
> -
> -Upstream-Status: Backport [https://sources.debian.org/data/non-free/p/p7zip-
> rar/16.02-3/debian/patches/06-CVE-2018-5996.patch]
> -CVE: CVE-2018-5996
> -
> -Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
> ----
> - CPP/7zip/Compress/Rar1Decoder.cpp | 13 +++++++++----
> - CPP/7zip/Compress/Rar1Decoder.h | 1 +
> - CPP/7zip/Compress/Rar2Decoder.cpp | 10 +++++++++-
> - CPP/7zip/Compress/Rar2Decoder.h | 1 +
> - CPP/7zip/Compress/Rar3Decoder.cpp | 23 ++++++++++++++++++++---
> - CPP/7zip/Compress/Rar3Decoder.h | 2 ++
> - 6 files changed, 42 insertions(+), 8 deletions(-)
> -
> -diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp
> b/CPP/7zip/Compress/Rar1Decoder.cpp
> -index 1aaedcc..68030c7 100644
> ---- a/CPP/7zip/Compress/Rar1Decoder.cpp
> -+++ b/CPP/7zip/Compress/Rar1Decoder.cpp
> -@@ -29,7 +29,7 @@ public:
> - };
> - */
> -
> --CDecoder::CDecoder(): m_IsSolid(false) { }
> -+CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
> -
> - void CDecoder::InitStructures()
> - {
> -@@ -406,9 +406,14 @@ HRESULT CDecoder::CodeReal(ISequentialInStream
> *inStream, ISequentialOutStream *
> - InitData();
> - if (!m_IsSolid)
> - {
> -+ _errorMode = false;
> - InitStructures();
> - InitHuff();
> - }
> -+
> -+ if (_errorMode)
> -+ return S_FALSE;
> -+
> - if (m_UnpackSize > 0)
> - {
> - GetFlagsBuf();
> -@@ -477,9 +482,9 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream
> *inStream, ISequentialOutStream
> - const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo
> *progress)
> - {
> - try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
> -- catch(const CInBufferException &e) { return e.ErrorCode; }
> -- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
> -- catch(...) { return S_FALSE; }
> -+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
> -+ catch(const CLzOutWindowException &e) { _errorMode = true; return
> e.ErrorCode; }
> -+ catch(...) { _errorMode = true; return S_FALSE; }
> - }
> -
> - STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32
> size)
> -diff --git a/CPP/7zip/Compress/Rar1Decoder.h
> b/CPP/7zip/Compress/Rar1Decoder.h
> -index 630f089..01b606b 100644
> ---- a/CPP/7zip/Compress/Rar1Decoder.h
> -+++ b/CPP/7zip/Compress/Rar1Decoder.h
> -@@ -39,6 +39,7 @@ public:
> -
> - Int64 m_UnpackSize;
> - bool m_IsSolid;
> -+ bool _errorMode;
> -
> - UInt32 ReadBits(int numBits);
> - HRESULT CopyBlock(UInt32 distance, UInt32 len);
> -diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp
> b/CPP/7zip/Compress/Rar2Decoder.cpp
> -index b3f2b4b..0580c8d 100644
> ---- a/CPP/7zip/Compress/Rar2Decoder.cpp
> -+++ b/CPP/7zip/Compress/Rar2Decoder.cpp
> -@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
> - static const UInt32 kWindowReservSize = (1 << 22) + 256;
> -
> - CDecoder::CDecoder():
> -- m_IsSolid(false)
> -+ m_IsSolid(false),
> -+ m_TablesOK(false)
> - {
> - }
> -
> -@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return
> m_InBitStream.ReadBits(numB
> -
> - bool CDecoder::ReadTables(void)
> - {
> -+ m_TablesOK = false;
> -+
> - Byte levelLevels[kLevelTableSize];
> - Byte newLevels[kMaxTableSize];
> - m_AudioMode = (ReadBits(1) == 1);
> -@@ -170,6 +173,8 @@ bool CDecoder::ReadTables(void)
> - }
> -
> - memcpy(m_LastLevels, newLevels, kMaxTableSize);
> -+ m_TablesOK = true;
> -+
> - return true;
> - }
> -
> -@@ -344,6 +349,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream
> *inStream, ISequentialOutStream *
> - return S_FALSE;
> - }
> -
> -+ if (!m_TablesOK)
> -+ return S_FALSE;
> -+
> - UInt64 startPos = m_OutWindowStream.GetProcessedSize();
> - while (pos < unPackSize)
> - {
> -diff --git a/CPP/7zip/Compress/Rar2Decoder.h
> b/CPP/7zip/Compress/Rar2Decoder.h
> -index 3a0535c..0e9005f 100644
> ---- a/CPP/7zip/Compress/Rar2Decoder.h
> -+++ b/CPP/7zip/Compress/Rar2Decoder.h
> -@@ -139,6 +139,7 @@ class CDecoder :
> -
> - UInt64 m_PackSize;
> - bool m_IsSolid;
> -+ bool m_TablesOK;
> -
> - void InitStructures();
> - UInt32 ReadBits(unsigned numBits);
> -diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp
> b/CPP/7zip/Compress/Rar3Decoder.cpp
> -index 3bf2513..6cb8a6a 100644
> ---- a/CPP/7zip/Compress/Rar3Decoder.cpp
> -+++ b/CPP/7zip/Compress/Rar3Decoder.cpp
> -@@ -92,7 +92,8 @@ CDecoder::CDecoder():
> - _writtenFileSize(0),
> - _vmData(0),
> - _vmCode(0),
> -- m_IsSolid(false)
> -+ m_IsSolid(false),
> -+ _errorMode(false)
> - {
> - Ppmd7_Construct(&_ppmd);
> - }
> -@@ -545,6 +546,9 @@ HRESULT CDecoder::ReadTables(bool
> &keepDecompressing)
> - return InitPPM();
> - }
> -
> -+ TablesRead = false;
> -+ TablesOK = false;
> -+
> - _lzMode = true;
> - PrevAlignBits = 0;
> - PrevAlignCount = 0;
> -@@ -606,6 +610,9 @@ HRESULT CDecoder::ReadTables(bool
> &keepDecompressing)
> - }
> - }
> - }
> -+ if (InputEofError())
> -+ return S_FALSE;
> -+
> - TablesRead = true;
> -
> - // original code has check here:
> -@@ -623,6 +630,9 @@ HRESULT CDecoder::ReadTables(bool
> &keepDecompressing)
> - RIF(m_LenDecoder.Build(&newLevels[kMainTableSize + kDistTableSize +
> kAlignTableSize]));
> -
> - memcpy(m_LastLevels, newLevels, kTablesSizesSum);
> -+
> -+ TablesOK = true;
> -+
> - return S_OK;
> - }
> -
> -@@ -824,7 +834,12 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo
> *progress)
> - PpmEscChar = 2;
> - PpmError = true;
> - InitFilters();
> -+ _errorMode = false;
> - }
> -+
> -+ if (_errorMode)
> -+ return S_FALSE;
> -+
> - if (!m_IsSolid || !TablesRead)
> - {
> - bool keepDecompressing;
> -@@ -838,6 +853,8 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo
> *progress)
> - bool keepDecompressing;
> - if (_lzMode)
> - {
> -+ if (!TablesOK)
> -+ return S_FALSE;
> - RINOK(DecodeLZ(keepDecompressing))
> - }
> - else
> -@@ -901,8 +918,8 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream
> *inStream, ISequentialOutStream
> - _unpackSize = outSize ? *outSize : (UInt64)(Int64)-1;
> - return CodeReal(progress);
> - }
> -- catch(const CInBufferException &e) { return e.ErrorCode; }
> -- catch(...) { return S_FALSE; }
> -+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
> -+ catch(...) { _errorMode = true; return S_FALSE; }
> - // CNewException is possible here. But probably CNewException is caused
> - // by error in data stream.
> - }
> -diff --git a/CPP/7zip/Compress/Rar3Decoder.h
> b/CPP/7zip/Compress/Rar3Decoder.h
> -index c130cec..2f72d7d 100644
> ---- a/CPP/7zip/Compress/Rar3Decoder.h
> -+++ b/CPP/7zip/Compress/Rar3Decoder.h
> -@@ -192,6 +192,7 @@ class CDecoder:
> - UInt32 _lastFilter;
> -
> - bool m_IsSolid;
> -+ bool _errorMode;
> -
> - bool _lzMode;
> - bool _unsupportedFilter;
> -@@ -200,6 +201,7 @@ class CDecoder:
> - UInt32 PrevAlignCount;
> -
> - bool TablesRead;
> -+ bool TablesOK;
> -
> - CPpmd7 _ppmd;
> - int PpmEscChar;
> -
> diff --git a/meta-oe/recipes-
> extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
> b/meta-oe/recipes-
> extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
> deleted file mode 100644
> index 93eb0588c..000000000
> --- a/meta-oe/recipes-
> extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -From 0820ef4b9238c1e39ae5bda32cc08cce3fd3ce89 Mon Sep 17 00:00:00
> 2001
> -From: Nisha Parrakat <Nisha.Parrakat@kpit.com>
> -Date: Wed, 26 May 2021 19:59:28 +0000
> -Subject: [PATCH] fixes the below error
> -
> -| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual
> LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID,
> PROPVARIANT*)':
> -| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an
> operand of type 'bool' in 'operator++' is forbidden in C++17
> -| 308 | numMethods++;
> -| | ^~~~~~~~~~
> -| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an
> operand of type 'bool' in 'operator++' is forbidden in C++17
> -| 318 | numMethods++;
> -
> -use unsigned instead of bool
> -Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
> -
> -Upstream-Status: Pending
> -
> ----
> - CPP/7zip/Archive/Wim/WimHandler.cpp | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/CPP/7zip/Archive/Wim/WimHandler.cpp
> b/CPP/7zip/Archive/Wim/WimHandler.cpp
> -index 27d3298..4ff5cfe 100644
> ---- a/CPP/7zip/Archive/Wim/WimHandler.cpp
> -+++ b/CPP/7zip/Archive/Wim/WimHandler.cpp
> -@@ -298,7 +298,7 @@ STDMETHODIMP
> CHandler::GetArchiveProperty(PROPID propID, PROPVARIANT *value)
> -
> - AString res;
> -
> -- bool numMethods = 0;
> -+ unsigned numMethods = 0;
> - for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
> - {
> - if (methodMask & ((UInt32)1 << i))
> diff --git a/meta-oe/recipes-
> extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
> b/meta-oe/recipes-
> extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
> deleted file mode 100644
> index 2636e7f6f..000000000
> --- a/meta-oe/recipes-
> extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -From b2aa209dfc5e59d6329b55b9764782334b63dbe8 Mon Sep 17 00:00:00
> 2001
> -From: Raphael Freudiger <raphael.freudiger@siemens.com>
> -Date: Wed, 11 Feb 2015 09:11:47 +0100
> -Subject: [PATCH] do not override compiler and do not strip
> -
> -The default makefile sets the compiler to g++ or gcc. This leads to a wrong
> architecture when cross-compiling.
> -Remove the hardcoded compiler and just append the flags to CXX and CC.
> -
> -Upstream-Status: Pending
> -Signed-off-by: Raphael Freudiger <raphael.freudiger@siemens.com>
> -Reviewed-By: Pascal Bach <pascal.bach@siemens.com>
> -
> ----
> - makefile.machine | 4 +---
> - 1 file changed, 1 insertion(+), 3 deletions(-)
> -
> -diff --git a/makefile.machine b/makefile.machine
> -index 9e34c34..e9244d9 100644
> ---- a/makefile.machine
> -+++ b/makefile.machine
> -@@ -2,7 +2,7 @@
> - # makefile for Linux (x86, PPC, alpha ...)
> - #
> -
> --OPTFLAGS=-O -s
> -+OPTFLAGS=-O
> -
> - ALLFLAGS=${OPTFLAGS} -pipe \
> - -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
> -@@ -10,8 +10,6 @@ ALLFLAGS=${OPTFLAGS} -pipe \
> - -D_7ZIP_LARGE_PAGES \
> - $(LOCAL_FLAGS)
> -
> --CXX=g++
> --CC=gcc
> - CC_SHARED=-fPIC
> - LINK_SHARED=-fPIC -shared
> -
> --
> 2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH V4 1/3] Use 7zip 24.09 to replace p7zip 16.02
2024-12-19 9:14 ` [meta-oe][PATCH V2 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
2024-12-19 9:45 ` [PATCH V3 " Hongxu Jia
@ 2024-12-19 16:03 ` Hongxu Jia
1 sibling, 0 replies; 9+ messages in thread
From: Hongxu Jia @ 2024-12-19 16:03 UTC (permalink / raw)
To: openembedded-devel, peter.marko
According to DOC/readme.txt [1]:
7-Zip and p7zip
===============
Now there are two different ports of 7-Zip for Linux/macOS:
1) p7zip - another port of 7-Zip for Linux, made by an independent developer.
The latest version of p7zip now is 16.02, and that p7zip 16.02 is outdated now.
http://sourceforge.net/projects/p7zip/
2) 7-Zip for Linux/macOS - this package - it's new code with all changes from latest 7-Zip for Windows
Add recipe 7-zip [2] to instead of recipe p7zip[3] in which the upstream is dead since 2016
Use git repo to instead of tarball
Drop obsolete patches
- CVE-2016-9296.patch
- CVE-2017-17969.patch
- CVE-2018-5996.patch
- change_numMethods_from_bool_to_unsigned.patch
- 0001-Fix-two-buffer-overflow-vulnerabilities.patch
- 0001-Fix-narrowing-errors-Wc-11-narrowing.patch
License-Update: DOC/License.txt: Add BSD-2-Clause & BSD-3-Clause
The codec libraries was removed since 21.02 [4]
Refer debian to compile 7-zip [5]
Add link 7z.so to lib7z.so and create wrapper to command 7z
which required running with absolute path to link the library 7z.so
[1] https://salsa.debian.org/debian/7zip/-/blob/master/DOC/readme.txt?ref_type=heads
[2] https://sourceforge.net/projects/p7zip/
[3] https://www.7-zip.org/
[4] https://github.com/p7zip-project/p7zip/commit/6c6ed1eba9ff0c0ded9323600f1f3c686d6b6692
[5] https://salsa.debian.org/debian/7zip/-/blob/master/debian/rules
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
.../p7zip_16.02.bb => 7zip/7zip_24.09.bb} | 66 ++---
.../0001-support-yocto-cross-compiling.patch | 51 ++++
.../recipes-extended/7zip/files/7z_wrapper.sh | 4 +
...Fix-narrowing-errors-Wc-11-narrowing.patch | 49 ----
.../p7zip/files/CVE-2016-9296.patch | 27 ---
.../p7zip/files/CVE-2017-17969.patch | 40 ---
.../p7zip/files/CVE-2018-5996.patch | 227 ------------------
...nge_numMethods_from_bool_to_unsigned.patch | 34 ---
...t_override_compiler_and_do_not_strip.patch | 38 ---
9 files changed, 93 insertions(+), 443 deletions(-)
rename meta-oe/recipes-extended/{p7zip/p7zip_16.02.bb => 7zip/7zip_24.09.bb} (24%)
create mode 100644 meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
create mode 100755 meta-oe/recipes-extended/7zip/files/7z_wrapper.sh
delete mode 100644 meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
delete mode 100644 meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
diff --git a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-oe/recipes-extended/7zip/7zip_24.09.bb
similarity index 24%
rename from meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
rename to meta-oe/recipes-extended/7zip/7zip_24.09.bb
index 789819a5e..2ccec7840 100644
--- a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/meta-oe/recipes-extended/7zip/7zip_24.09.bb
@@ -1,46 +1,56 @@
SUMMARY = "7-zip is a commandline utility handling 7z archives."
HOMEPAGE = "http://www.7-zip.org/"
-LICENSE = "LGPL-2.1-or-later & unRAR"
+LICENSE = "LGPL-2.1-or-later & unRAR & PD & BSD-2-Clause & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://DOC/copying.txt;md5=4fbd65380cdd255951079008b364516c \
file://DOC/unRarLicense.txt;md5=9c87ddde469ef94aed153b0951d088de \
- file://DOC/License.txt;md5=879598edf1f54dddb6930d7581357f8b"
-
-SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_all.tar.bz2 \
- file://do_not_override_compiler_and_do_not_strip.patch \
- file://CVE-2017-17969.patch \
- file://0001-Fix-narrowing-errors-Wc-11-narrowing.patch \
- file://change_numMethods_from_bool_to_unsigned.patch \
- file://CVE-2018-5996.patch \
- file://CVE-2016-9296.patch \
- "
-
-SRC_URI[sha256sum] = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f"
-
-UPSTREAM_CHECK_URI = "https://tracker.debian.org/pkg/p7zip"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/${BPN}_${PV}"
+ file://DOC/License.txt;md5=44483e232b64ffca25fe001f3d6418d0"
-do_compile:append() {
- oe_runmake 7z
+CVE_PRODUCT = "7-zip 7zip"
+SRC_URI = "git://github.com/ip7z/7zip.git;protocol=https;branch=main \
+ file://0001-support-yocto-cross-compiling.patch \
+ file://7z_wrapper.sh \
+ "
+SRCREV = "e5431fa6f5505e385c6f9367260717e9c47dc2ee"
+
+UPSTREAM_CHECK_URI = "https://github.com/ip7z/7zip/releases/latest"
+
+S = "${WORKDIR}/git"
+
+# Support Yocto cross compiling
+EXTRA_OEMAKE += " \
+ CXXFLAGS_EXTRA='${CXXFLAGS}' \
+ CFLAGS_BASE2='${CFLAGS}' \
+ LDFLAGS_STATIC_3='${LDFLAGS}' \
+"
+
+do_compile() {
+ oe_runmake -C CPP/7zip/Bundles/Alone2 -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Format7zF -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/UI/Console -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/SFXCon -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Alone -f ../../cmpl_gcc.mak
+ oe_runmake -C CPP/7zip/Bundles/Alone7z -f ../../cmpl_gcc.mak
}
-FILES:${PN} += "${libdir}/* ${bindir}/7z"
+
+FILES:${PN} += "${libdir}/*"
FILES_SOLIBSDEV = ""
INSANE_SKIP:${PN} += "dev-so"
do_install() {
install -d ${D}${bindir}
- install -d ${D}${bindir}/Codecs
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone/b/g/7za ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/Bundles/Alone7z/b/g/7zr ${D}${bindir}
+ install -m 0755 ${S}/CPP/7zip/UI/Console/b/g/7z ${D}${bindir}/7z.real
+ install -m 0755 ${UNPACKDIR}/7z_wrapper.sh ${D}${bindir}/7z
+
install -d ${D}${libdir}
- install -d ${D}${libdir}/Codecs
- install -m 0755 ${S}/bin/7za ${D}${bindir}
- ln -s 7za ${D}${bindir}/7z
- install -m 0755 ${S}/bin/Codecs/* ${D}${libdir}/Codecs/
- install -m 0755 ${S}/bin/7z.so ${D}${libdir}/lib7z.so
+ install -m 0755 ${S}/CPP/7zip/Bundles/Format7zF/b/g/7z.so ${D}${libdir}/lib7z.so
+ ln -rsn ${D}${libdir}/lib7z.so ${D}${bindir}/7z.so
}
-RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so"
+PROVIDES += "p7zip"
+RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so p7zip"
RPROVIDES:${PN}-dev += "lib7z.so()(64bit) 7z lib7z.so"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
new file mode 100644
index 000000000..06908e94f
--- /dev/null
+++ b/meta-oe/recipes-extended/7zip/files/0001-support-yocto-cross-compiling.patch
@@ -0,0 +1,51 @@
+From fd0d54f96576a8ff572bb7c7d28df6b097f99a30 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 18 Dec 2024 16:38:11 +0800
+Subject: [PATCH] support yocto cross compiling
+
+Remove -s from $LFLAGS_STRIP, do not strip binary to workaournd
+Yocto build warning
+...
+WARNING: 7zip-native-24.09-r0 do_populate_sysroot: File 'tmp/work/x86_64-linux/
+7zip-native/24.09/recipe-sysroot-native/usr/lib/7z.so' from 7zip-native was already stripped,
+this will prevent future debugging!
+...
+
+Apply CC, CXX from environments
+
+Upstream-Status: Inappropriate [Yocto specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ CPP/7zip/7zip_gcc.mak | 2 +-
+ CPP/7zip/var_gcc.mak | 2 --
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/CPP/7zip/7zip_gcc.mak b/CPP/7zip/7zip_gcc.mak
+index bcb06a0..297f0a8 100644
+--- a/CPP/7zip/7zip_gcc.mak
++++ b/CPP/7zip/7zip_gcc.mak
+@@ -45,7 +45,7 @@ CFLAGS_DEBUG = -g
+ else
+ CFLAGS_DEBUG = -DNDEBUG
+ ifneq ($(CC), $(CROSS_COMPILE)clang)
+-LFLAGS_STRIP = -s
++LFLAGS_STRIP =
+ endif
+ endif
+
+diff --git a/CPP/7zip/var_gcc.mak b/CPP/7zip/var_gcc.mak
+index 664491c..6d0f485 100644
+--- a/CPP/7zip/var_gcc.mak
++++ b/CPP/7zip/var_gcc.mak
+@@ -6,7 +6,5 @@ IS_ARM64=
+ CROSS_COMPILE=
+ MY_ARCH=
+ USE_ASM=
+-CC=$(CROSS_COMPILE)gcc
+-CXX=$(CROSS_COMPILE)g++
+
+ # -march=armv8-a+crc+crypto
+--
+2.34.1
+
diff --git a/meta-oe/recipes-extended/7zip/files/7z_wrapper.sh b/meta-oe/recipes-extended/7zip/files/7z_wrapper.sh
new file mode 100755
index 000000000..af5b9b393
--- /dev/null
+++ b/meta-oe/recipes-extended/7zip/files/7z_wrapper.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+realpath=`readlink -fn $0`
+realdir=`dirname $realpath`
+exec $realdir/7z.real "$@"
diff --git a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch b/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
deleted file mode 100644
index 1f08d1603..000000000
--- a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 653674e11872465dd5edf1c1e8413ea813d7e086 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 23 Apr 2018 23:07:21 -0700
-Subject: [PATCH] Fix narrowing errors -Wc++11-narrowing
-
-Clang 6.x finds these errors
-
- ../../../../CPP/Windows/ErrorMsg.cpp:24:10: error: case value evaluates to -2147024809, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]
- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
- ^
-
-HRESULT causes the macro to be parsed as a signed long, so we need to force it
-to be checked as an unsigned long instead.
-
-also reported here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224930
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- CPP/Windows/ErrorMsg.cpp | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
-index 99684ae..78a64ba 100644
---- a/CPP/Windows/ErrorMsg.cpp
-+++ b/CPP/Windows/ErrorMsg.cpp
-@@ -15,13 +15,13 @@ UString MyFormatMessage(DWORD errorCode)
-
- switch(errorCode) {
- case ERROR_NO_MORE_FILES : txt = "No more files"; break ;
-- case E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-- case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-- case E_ABORT : txt = "E_ABORT"; break ;
-- case E_FAIL : txt = "E_FAIL"; break ;
-- case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-- case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
-+ case (DWORD) E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-+ case (DWORD) E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-+ case (DWORD) E_ABORT : txt = "E_ABORT"; break ;
-+ case (DWORD) E_FAIL : txt = "E_FAIL"; break ;
-+ case (DWORD) STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-+ case (DWORD) E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-+ case (DWORD) E_INVALIDARG : txt = "E_INVALIDARG"; break ;
- case ERROR_DIRECTORY : txt = "Error Directory"; break ;
- default:
- txt = strerror(errorCode);
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
deleted file mode 100644
index 98e186cbf..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-p7zip: Update CVE-2016-9296 patch URL.
-From: Robert Luberda <robert@debian.org>
-Date: Sat, 19 Nov 2016 08:48:08 +0100
-Subject: Fix nullptr dereference (CVE-2016-9296)
-
-Patch taken from https://sourceforge.net/p/p7zip/bugs/185/
-This patch file taken from Debian's patch set for p7zip
-
-Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/185/]
-CVE: CVE-2016-9296
-
-Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
-
-Index: p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
-===================================================================
---- p7zip_16.02.orig/CPP/7zip/Archive/7z/7zIn.cpp
-+++ p7zip_16.02/CPP/7zip/Archive/7z/7zIn.cpp
-@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
- if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
- ThrowIncorrect();
- }
-- HeadersSize += folders.PackPositions[folders.NumPackStreams];
-+ if (folders.PackPositions)
-+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
- return S_OK;
- }
-
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
deleted file mode 100644
index 9ba107807..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7f2da4f810b429ddb7afa0e252e3d02ced0eba87 Mon Sep 17 00:00:00 2001
-From: Radovan Scasny <radovan.scasny@siemens.com>
-Date: Tue, 20 Feb 2018 12:08:13 +0100
-Subject: [PATCH] p7zip: Fix CVE-2017-17969
-
-[No upstream tracking] -- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888297
-
-Heap-based buffer overflow in 7zip
-
-Compress/ShrinkDecoder.cpp: Heap-based buffer overflow
-in the NCompress::NShrink::CDecoder::CodeReal method
-in 7-Zip before 18.00 and p7zip allows remote attackers
-to cause a denial of service (out-of-bounds write)
-or potentially execute arbitrary code via a crafted ZIP archive.
-
-Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/8316/attachment/CVE-2017-17969.patch]
-CVE: CVE-2017-17969
-Signed-off-by: Radovan Scasny <radovan.scasny@siemens.com>
-
----
- CPP/7zip/Compress/ShrinkDecoder.cpp | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
-index 80b7e67..5bb0559 100644
---- a/CPP/7zip/Compress/ShrinkDecoder.cpp
-+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
-@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- {
- _stack[i++] = _suffixes[cur];
- cur = _parents[cur];
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
- }
-+
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
-
- _stack[i++] = (Byte)cur;
- lastChar2 = (Byte)cur;
diff --git a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
deleted file mode 100644
index 47868c982..000000000
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From: Robert Luberda <robert@debian.org>
-Date: Sun, 28 Jan 2018 23:47:40 +0100
-Subject: CVE-2018-5996
-
-Hopefully fix Memory Corruptions via RAR PPMd (CVE-2018-5996) by
-applying a few changes from 7Zip 18.00-beta.
-
-Bug-Debian: https://bugs.debian.org/#888314
-
-Upstream-Status: Backport [https://sources.debian.org/data/non-free/p/p7zip-rar/16.02-3/debian/patches/06-CVE-2018-5996.patch]
-CVE: CVE-2018-5996
-
-Signed-off-by: Virendra Thakur <virendra.thakur@kpit.com>
----
- CPP/7zip/Compress/Rar1Decoder.cpp | 13 +++++++++----
- CPP/7zip/Compress/Rar1Decoder.h | 1 +
- CPP/7zip/Compress/Rar2Decoder.cpp | 10 +++++++++-
- CPP/7zip/Compress/Rar2Decoder.h | 1 +
- CPP/7zip/Compress/Rar3Decoder.cpp | 23 ++++++++++++++++++++---
- CPP/7zip/Compress/Rar3Decoder.h | 2 ++
- 6 files changed, 42 insertions(+), 8 deletions(-)
-
-diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
-index 1aaedcc..68030c7 100644
---- a/CPP/7zip/Compress/Rar1Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar1Decoder.cpp
-@@ -29,7 +29,7 @@ public:
- };
- */
-
--CDecoder::CDecoder(): m_IsSolid(false) { }
-+CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
-
- void CDecoder::InitStructures()
- {
-@@ -406,9 +406,14 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- InitData();
- if (!m_IsSolid)
- {
-+ _errorMode = false;
- InitStructures();
- InitHuff();
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (m_UnpackSize > 0)
- {
- GetFlagsBuf();
-@@ -477,9 +482,9 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress)
- {
- try { return CodeReal(inStream, outStream, inSize, outSize, progress); }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(const CLzOutWindowException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(const CLzOutWindowException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- }
-
- STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
-diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
-index 630f089..01b606b 100644
---- a/CPP/7zip/Compress/Rar1Decoder.h
-+++ b/CPP/7zip/Compress/Rar1Decoder.h
-@@ -39,6 +39,7 @@ public:
-
- Int64 m_UnpackSize;
- bool m_IsSolid;
-+ bool _errorMode;
-
- UInt32 ReadBits(int numBits);
- HRESULT CopyBlock(UInt32 distance, UInt32 len);
-diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
-index b3f2b4b..0580c8d 100644
---- a/CPP/7zip/Compress/Rar2Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar2Decoder.cpp
-@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
- static const UInt32 kWindowReservSize = (1 << 22) + 256;
-
- CDecoder::CDecoder():
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ m_TablesOK(false)
- {
- }
-
-@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return m_InBitStream.ReadBits(numB
-
- bool CDecoder::ReadTables(void)
- {
-+ m_TablesOK = false;
-+
- Byte levelLevels[kLevelTableSize];
- Byte newLevels[kMaxTableSize];
- m_AudioMode = (ReadBits(1) == 1);
-@@ -170,6 +173,8 @@ bool CDecoder::ReadTables(void)
- }
-
- memcpy(m_LastLevels, newLevels, kMaxTableSize);
-+ m_TablesOK = true;
-+
- return true;
- }
-
-@@ -344,6 +349,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- return S_FALSE;
- }
-
-+ if (!m_TablesOK)
-+ return S_FALSE;
-+
- UInt64 startPos = m_OutWindowStream.GetProcessedSize();
- while (pos < unPackSize)
- {
-diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
-index 3a0535c..0e9005f 100644
---- a/CPP/7zip/Compress/Rar2Decoder.h
-+++ b/CPP/7zip/Compress/Rar2Decoder.h
-@@ -139,6 +139,7 @@ class CDecoder :
-
- UInt64 m_PackSize;
- bool m_IsSolid;
-+ bool m_TablesOK;
-
- void InitStructures();
- UInt32 ReadBits(unsigned numBits);
-diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
-index 3bf2513..6cb8a6a 100644
---- a/CPP/7zip/Compress/Rar3Decoder.cpp
-+++ b/CPP/7zip/Compress/Rar3Decoder.cpp
-@@ -92,7 +92,8 @@ CDecoder::CDecoder():
- _writtenFileSize(0),
- _vmData(0),
- _vmCode(0),
-- m_IsSolid(false)
-+ m_IsSolid(false),
-+ _errorMode(false)
- {
- Ppmd7_Construct(&_ppmd);
- }
-@@ -545,6 +546,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- return InitPPM();
- }
-
-+ TablesRead = false;
-+ TablesOK = false;
-+
- _lzMode = true;
- PrevAlignBits = 0;
- PrevAlignCount = 0;
-@@ -606,6 +610,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- }
- }
- }
-+ if (InputEofError())
-+ return S_FALSE;
-+
- TablesRead = true;
-
- // original code has check here:
-@@ -623,6 +630,9 @@ HRESULT CDecoder::ReadTables(bool &keepDecompressing)
- RIF(m_LenDecoder.Build(&newLevels[kMainTableSize + kDistTableSize + kAlignTableSize]));
-
- memcpy(m_LastLevels, newLevels, kTablesSizesSum);
-+
-+ TablesOK = true;
-+
- return S_OK;
- }
-
-@@ -824,7 +834,12 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- PpmEscChar = 2;
- PpmError = true;
- InitFilters();
-+ _errorMode = false;
- }
-+
-+ if (_errorMode)
-+ return S_FALSE;
-+
- if (!m_IsSolid || !TablesRead)
- {
- bool keepDecompressing;
-@@ -838,6 +853,8 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
- bool keepDecompressing;
- if (_lzMode)
- {
-+ if (!TablesOK)
-+ return S_FALSE;
- RINOK(DecodeLZ(keepDecompressing))
- }
- else
-@@ -901,8 +918,8 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
- _unpackSize = outSize ? *outSize : (UInt64)(Int64)-1;
- return CodeReal(progress);
- }
-- catch(const CInBufferException &e) { return e.ErrorCode; }
-- catch(...) { return S_FALSE; }
-+ catch(const CInBufferException &e) { _errorMode = true; return e.ErrorCode; }
-+ catch(...) { _errorMode = true; return S_FALSE; }
- // CNewException is possible here. But probably CNewException is caused
- // by error in data stream.
- }
-diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
-index c130cec..2f72d7d 100644
---- a/CPP/7zip/Compress/Rar3Decoder.h
-+++ b/CPP/7zip/Compress/Rar3Decoder.h
-@@ -192,6 +192,7 @@ class CDecoder:
- UInt32 _lastFilter;
-
- bool m_IsSolid;
-+ bool _errorMode;
-
- bool _lzMode;
- bool _unsupportedFilter;
-@@ -200,6 +201,7 @@ class CDecoder:
- UInt32 PrevAlignCount;
-
- bool TablesRead;
-+ bool TablesOK;
-
- CPpmd7 _ppmd;
- int PpmEscChar;
-
diff --git a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
deleted file mode 100644
index 93eb0588c..000000000
--- a/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0820ef4b9238c1e39ae5bda32cc08cce3fd3ce89 Mon Sep 17 00:00:00 2001
-From: Nisha Parrakat <Nisha.Parrakat@kpit.com>
-Date: Wed, 26 May 2021 19:59:28 +0000
-Subject: [PATCH] fixes the below error
-
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
-| 308 | numMethods++;
-| | ^~~~~~~~~~
-| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
-| 318 | numMethods++;
-
-use unsigned instead of bool
-Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
-
-Upstream-Status: Pending
-
----
- CPP/7zip/Archive/Wim/WimHandler.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Archive/Wim/WimHandler.cpp b/CPP/7zip/Archive/Wim/WimHandler.cpp
-index 27d3298..4ff5cfe 100644
---- a/CPP/7zip/Archive/Wim/WimHandler.cpp
-+++ b/CPP/7zip/Archive/Wim/WimHandler.cpp
-@@ -298,7 +298,7 @@ STDMETHODIMP CHandler::GetArchiveProperty(PROPID propID, PROPVARIANT *value)
-
- AString res;
-
-- bool numMethods = 0;
-+ unsigned numMethods = 0;
- for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
- {
- if (methodMask & ((UInt32)1 << i))
diff --git a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch b/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
deleted file mode 100644
index 2636e7f6f..000000000
--- a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From b2aa209dfc5e59d6329b55b9764782334b63dbe8 Mon Sep 17 00:00:00 2001
-From: Raphael Freudiger <raphael.freudiger@siemens.com>
-Date: Wed, 11 Feb 2015 09:11:47 +0100
-Subject: [PATCH] do not override compiler and do not strip
-
-The default makefile sets the compiler to g++ or gcc. This leads to a wrong architecture when cross-compiling.
-Remove the hardcoded compiler and just append the flags to CXX and CC.
-
-Upstream-Status: Pending
-Signed-off-by: Raphael Freudiger <raphael.freudiger@siemens.com>
-Reviewed-By: Pascal Bach <pascal.bach@siemens.com>
-
----
- makefile.machine | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/makefile.machine b/makefile.machine
-index 9e34c34..e9244d9 100644
---- a/makefile.machine
-+++ b/makefile.machine
-@@ -2,7 +2,7 @@
- # makefile for Linux (x86, PPC, alpha ...)
- #
-
--OPTFLAGS=-O -s
-+OPTFLAGS=-O
-
- ALLFLAGS=${OPTFLAGS} -pipe \
- -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
-@@ -10,8 +10,6 @@ ALLFLAGS=${OPTFLAGS} -pipe \
- -D_7ZIP_LARGE_PAGES \
- $(LOCAL_FLAGS)
-
--CXX=g++
--CC=gcc
- CC_SHARED=-fPIC
- LINK_SHARED=-fPIC -shared
-
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [meta-oe][PATCH 1/3] Use 7zip 2409 to replace p7zip 16.02
2024-12-19 8:47 [meta-oe][PATCH 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
` (2 preceding siblings ...)
2024-12-19 9:14 ` [meta-oe][PATCH V2 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
@ 2024-12-19 9:16 ` hongxu
3 siblings, 0 replies; 9+ messages in thread
From: hongxu @ 2024-12-19 9:16 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 177 bytes --]
Please drop this
It missed to link 7z.so in bin dir which caused '7z a xxx.7z yyy' failed
V2 incoming
'ln -rsn ${D}${libdir}/lib7z.so ${D}${bindir}/7z.so'
//Hongxu
[-- Attachment #2: Type: text/html, Size: 293 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-12-19 16:04 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-19 8:47 [meta-oe][PATCH 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
2024-12-19 8:47 ` [meta-oe][PATCH 2/3] Update p7zip to 7zip Hongxu Jia
2024-12-19 8:47 ` [meta-oe][PATCH 3/3] android-tools: fix warning: library search path "/usr/lib/p7zip" is unsafe for cross-compilation Hongxu Jia
2024-12-19 9:14 ` [meta-oe][PATCH V2 1/3] Use 7zip 2409 to replace p7zip 16.02 Hongxu Jia
2024-12-19 9:45 ` [PATCH V3 " Hongxu Jia
2024-12-19 11:16 ` [oe] " Marko, Peter
2024-12-19 14:30 ` hongxu
2024-12-19 16:03 ` [PATCH V4 1/3] Use 7zip 24.09 " Hongxu Jia
2024-12-19 9:16 ` [meta-oe][PATCH 1/3] Use 7zip 2409 " hongxu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.