From 1920654f167417f49fbf7f65d5d7c9392d728be8 Mon Sep 17 00:00:00 2001 From: Roberto Ricci Date: Sat, 9 Jul 2022 12:05:22 +0200 Subject: [PATCH] New package: 7zip-22.01 --- srcpkgs/7zip-unrar | 1 + srcpkgs/7zip/p7zip-unrar.INSTALL.msg | 5 + srcpkgs/7zip/patches/build_flags.patch | 30 ++ srcpkgs/7zip/template | 73 ++++ srcpkgs/7zip/update | 2 + srcpkgs/p7zip | 1 + srcpkgs/p7zip-unrar | 2 +- srcpkgs/p7zip/patches/20-CVE-2018-5996.patch | 221 ------------- srcpkgs/p7zip/patches/30-CVE-2018-10115.patch | 311 ------------------ srcpkgs/p7zip/patches/CVE-2016-9296.patch | 12 - srcpkgs/p7zip/patches/CVE-2017-17969.patch | 26 -- srcpkgs/p7zip/template | 47 --- srcpkgs/p7zip/update | 1 - 13 files changed, 113 insertions(+), 619 deletions(-) create mode 120000 srcpkgs/7zip-unrar create mode 100644 srcpkgs/7zip/p7zip-unrar.INSTALL.msg create mode 100644 srcpkgs/7zip/patches/build_flags.patch create mode 100644 srcpkgs/7zip/template create mode 100644 srcpkgs/7zip/update create mode 120000 srcpkgs/p7zip delete mode 100644 srcpkgs/p7zip/patches/20-CVE-2018-5996.patch delete mode 100644 srcpkgs/p7zip/patches/30-CVE-2018-10115.patch delete mode 100644 srcpkgs/p7zip/patches/CVE-2016-9296.patch delete mode 100644 srcpkgs/p7zip/patches/CVE-2017-17969.patch delete mode 100644 srcpkgs/p7zip/template delete mode 100644 srcpkgs/p7zip/update diff --git a/srcpkgs/7zip-unrar b/srcpkgs/7zip-unrar new file mode 120000 index 000000000000..284312595a4c --- /dev/null +++ b/srcpkgs/7zip-unrar @@ -0,0 +1 @@ +7zip \ No newline at end of file diff --git a/srcpkgs/7zip/p7zip-unrar.INSTALL.msg b/srcpkgs/7zip/p7zip-unrar.INSTALL.msg new file mode 100644 index 000000000000..775f943c0a56 --- /dev/null +++ b/srcpkgs/7zip/p7zip-unrar.INSTALL.msg @@ -0,0 +1,5 @@ +The p7zip-unrar package has been replaced by 7zip-unrar. +To use the RAR-enabled version of `7z`, make sure the desired +alternative is configured: + + # xbps-alternatives -s 7zip-unrar diff --git a/srcpkgs/7zip/patches/build_flags.patch b/srcpkgs/7zip/patches/build_flags.patch new file mode 100644 index 000000000000..4f791ff63ddf --- /dev/null +++ b/srcpkgs/7zip/patches/build_flags.patch @@ -0,0 +1,30 @@ +append (don't prefix) xbps build flags and don't strip the executable +--- a/CPP/7zip/7zip_gcc.mak ++++ b/CPP/7zip/7zip_gcc.mak +@@ -126,7 +126,7 @@ endif + + + +-CFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(CC_SHARED) -o $@ ++CFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(CC_SHARED) $(XBPS_CFLAGS) -o $@ + + + ifdef IS_MINGW +@@ -154,7 +154,7 @@ CXX_WARN_FLAGS = + #-Wno-invalid-offsetof + #-Wno-reorder + +-CXXFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CXXFLAGS_BASE2) $(CFLAGS_BASE) $(CXXFLAGS_EXTRA) $(CC_SHARED) -o $@ $(CXX_WARN_FLAGS) ++CXXFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CXXFLAGS_BASE2) $(CFLAGS_BASE) $(CXXFLAGS_EXTRA) $(CC_SHARED) -o $@ $(CXX_WARN_FLAGS) $(XBPS_CXXFLAGS) + + STATIC_TARGET= + ifdef COMPL_STATIC +@@ -167,7 +167,7 @@ all: $(O) $(PROGPATH) $(STATIC_TARGET) + $(O): + $(MY_MKDIR) $(O) + +-LFLAGS_ALL = -s $(MY_ARCH_2) $(LDFLAGS) $(LD_arch) $(OBJS) $(MY_LIBS) $(LIB2) ++LFLAGS_ALL = $(MY_ARCH_2) $(LDFLAGS) $(LD_arch) $(OBJS) $(MY_LIBS) $(LIB2) $(XBPS_LDFLAGS) + $(PROGPATH): $(OBJS) + $(CXX) -o $(PROGPATH) $(LFLAGS_ALL) + diff --git a/srcpkgs/7zip/template b/srcpkgs/7zip/template new file mode 100644 index 000000000000..706b0c1ea422 --- /dev/null +++ b/srcpkgs/7zip/template @@ -0,0 +1,73 @@ +# Template file for '7zip' +pkgname=7zip +version=22.01 +revision=1 +create_wrksrc=yes +short_desc="File archiver with a high compression ratio" +maintainer="Roberto Ricci " +license="LGPL-2.1-or-later, BSD-3-Clause" +homepage="https://www.7-zip.org" +changelog="https://www.7-zip.org/history.txt" +distfiles="https://www.7-zip.org/a/7z${version//./}-src.tar.xz" +checksum=393098730c70042392af808917e765945dc2437dee7aae3cfcc4966eb920fbc5 +alternatives=" + 7z:7z:/usr/bin/7zip + 7z:7za:/usr/bin/7zip + 7z:7zr:/usr/bin/7zip" + +if [ "$XBPS_TARGET_LIBC" = musl ]; then + # missing pthread_attr_setaffinity_np() + CFLAGS+="-D_7ZIP_AFFINITY_DISABLE" + CXXFLAGS+="-D_7ZIP_AFFINITY_DISABLE" +fi + +do_build() { + cd "$wrksrc"/CPP/7zip/Bundles/Alone2 + + case "$XBPS_TARGET_MACHINE" in + aarch64*) _7z_makefile="../../cmpl_gcc_arm64.mak";; + *) _7z_makefile="../../cmpl_gcc.mak";; + esac + + for opts in "O=b/norar DISABLE_RAR_COMPRESS=1" "O=b/rar"; do + make "$makejobs" -f "$_7z_makefile" \ + CC="$CC" CXX="$CXX" XBPS_CFLAGS="$CFLAGS" \ + XBPS_CXXFLAGS="$CXXFLAGS" XBPS_LDFLAGS="$LDFLAGS" \ + $opts + done +} + +do_install() { + vbin "${wrksrc}/CPP/7zip/Bundles/Alone2/b/norar/7zz" "7zip" + vlicense "${wrksrc}/DOC/License.txt" +} + +7zip-unrar_package() { + license+=", custom:freeware" + repository=nonfree + short_desc+=" - RAR support" + alternatives=" + 7z:7z:/usr/bin/7zip-unrar + 7z:7za:/usr/bin/7zip-unrar + 7z:7zr:/usr/bin/7zip-unrar" + + pkg_install() { + vbin "${wrksrc}/CPP/7zip/Bundles/Alone2/b/rar/7zz" "7zip-unrar" + vlicense "${wrksrc}/DOC/License.txt" + } +} + +p7zip_package() { + build_style=meta + depends=7zip + short_desc="Command-line version of the 7zip compressed file archive" + short_desc+=" (transitional dummy package)" +} + +p7zip-unrar_package() { + build_style=meta + repository=nonfree + depends=7zip-unrar + short_desc="Command-line version of the 7zip compressed file archive - RAR support" + short_desc+=" (transitional dummy package)" +} diff --git a/srcpkgs/7zip/update b/srcpkgs/7zip/update new file mode 100644 index 000000000000..5463f148e4f8 --- /dev/null +++ b/srcpkgs/7zip/update @@ -0,0 +1,2 @@ +site='https://7-zip.org/download.html' +pattern='Download 7-Zip \K[\d.]+' diff --git a/srcpkgs/p7zip b/srcpkgs/p7zip new file mode 120000 index 000000000000..284312595a4c --- /dev/null +++ b/srcpkgs/p7zip @@ -0,0 +1 @@ +7zip \ No newline at end of file diff --git a/srcpkgs/p7zip-unrar b/srcpkgs/p7zip-unrar index bf5349ee6666..284312595a4c 120000 --- a/srcpkgs/p7zip-unrar +++ b/srcpkgs/p7zip-unrar @@ -1 +1 @@ -p7zip \ No newline at end of file +7zip \ No newline at end of file diff --git a/srcpkgs/p7zip/patches/20-CVE-2018-5996.patch b/srcpkgs/p7zip/patches/20-CVE-2018-5996.patch deleted file mode 100644 index 6733bff91895..000000000000 --- a/srcpkgs/p7zip/patches/20-CVE-2018-5996.patch +++ /dev/null @@ -1,221 +0,0 @@ -From: Robert Luberda -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 ---- - 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/srcpkgs/p7zip/patches/30-CVE-2018-10115.patch b/srcpkgs/p7zip/patches/30-CVE-2018-10115.patch deleted file mode 100644 index 7d9c4bf81f00..000000000000 --- a/srcpkgs/p7zip/patches/30-CVE-2018-10115.patch +++ /dev/null @@ -1,311 +0,0 @@ -From: Robert Luberda -Date: Tue, 29 May 2018 23:59:09 +0200 -Subject: Fix CVE-2018-10115 - -Apply "patch" taken from https://landave.io/files/patch_7zip_CVE-2018-10115.txt - - -Bugs-Debian: https://bugs.debian.org/897674 ---- - CPP/7zip/Compress/Rar1Decoder.cpp | 16 +++++++++++----- - CPP/7zip/Compress/Rar1Decoder.h | 3 ++- - CPP/7zip/Compress/Rar2Decoder.cpp | 17 +++++++++++++---- - CPP/7zip/Compress/Rar2Decoder.h | 3 ++- - CPP/7zip/Compress/Rar3Decoder.cpp | 19 +++++++++++++++---- - CPP/7zip/Compress/Rar3Decoder.h | 3 ++- - CPP/7zip/Compress/Rar5Decoder.cpp | 8 ++++++++ - CPP/7zip/Compress/Rar5Decoder.h | 1 + - 8 files changed, 54 insertions(+), 16 deletions(-) - -diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp -index 68030c7..8c890c8 100644 ---- a/CPP/7zip/Compress/Rar1Decoder.cpp -+++ b/CPP/7zip/Compress/Rar1Decoder.cpp -@@ -29,7 +29,7 @@ public: - }; - */ - --CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { } -+CDecoder::CDecoder(): _isSolid(false), _solidAllowed(false), _errorMode(false) { } - - void CDecoder::InitStructures() - { -@@ -345,7 +345,7 @@ void CDecoder::GetFlagsBuf() - - void CDecoder::InitData() - { -- if (!m_IsSolid) -+ if (!_isSolid) - { - AvrPlcB = AvrLn1 = AvrLn2 = AvrLn3 = NumHuf = Buf60 = 0; - AvrPlc = 0x3500; -@@ -391,6 +391,11 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream * - if (inSize == NULL || outSize == NULL) - return E_INVALIDARG; - -+ if (_isSolid && !_solidAllowed) -+ return S_FALSE; -+ -+ _solidAllowed = false; -+ - if (!m_OutWindowStream.Create(kHistorySize)) - return E_OUTOFMEMORY; - if (!m_InBitStream.Create(1 << 20)) -@@ -398,13 +403,13 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream * - - m_UnpackSize = (Int64)*outSize; - m_OutWindowStream.SetStream(outStream); -- m_OutWindowStream.Init(m_IsSolid); -+ m_OutWindowStream.Init(_isSolid); - m_InBitStream.SetStream(inStream); - m_InBitStream.Init(); - - // CCoderReleaser coderReleaser(this); - InitData(); -- if (!m_IsSolid) -+ if (!_isSolid) - { - _errorMode = false; - InitStructures(); -@@ -475,6 +480,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream * - } - if (m_UnpackSize < 0) - return S_FALSE; -+ _solidAllowed = true; - return m_OutWindowStream.Flush(); - } - -@@ -491,7 +497,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size) - { - if (size < 1) - return E_INVALIDARG; -- m_IsSolid = ((data[0] & 1) != 0); -+ _isSolid = ((data[0] & 1) != 0); - return S_OK; - } - -diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h -index 01b606b..8abb3a3 100644 ---- a/CPP/7zip/Compress/Rar1Decoder.h -+++ b/CPP/7zip/Compress/Rar1Decoder.h -@@ -38,7 +38,8 @@ public: - UInt32 LastLength; - - Int64 m_UnpackSize; -- bool m_IsSolid; -+ bool _isSolid; -+ bool _solidAllowed; - bool _errorMode; - - UInt32 ReadBits(int numBits); -diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp -index 0580c8d..be8d842 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), -+ _isSolid(false), -+ _solidAllowed(false), - m_TablesOK(false) - { - } -@@ -320,6 +321,10 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream * - if (inSize == NULL || outSize == NULL) - return E_INVALIDARG; - -+ if (_isSolid && !_solidAllowed) -+ return S_FALSE; -+ _solidAllowed = false; -+ - if (!m_OutWindowStream.Create(kHistorySize)) - return E_OUTOFMEMORY; - if (!m_InBitStream.Create(1 << 20)) -@@ -330,12 +335,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream * - UInt64 pos = 0, unPackSize = *outSize; - - m_OutWindowStream.SetStream(outStream); -- m_OutWindowStream.Init(m_IsSolid); -+ m_OutWindowStream.Init(_isSolid); - m_InBitStream.SetStream(inStream); - m_InBitStream.Init(); - - // CCoderReleaser coderReleaser(this); -- if (!m_IsSolid) -+ if (!_isSolid) - { - InitStructures(); - if (unPackSize == 0) -@@ -343,6 +348,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream * - if (m_InBitStream.GetProcessedSize() + 2 <= m_PackSize) // test it: probably incorrect; - if (!ReadTables()) - return S_FALSE; -+ _solidAllowed = true; - return S_OK; - } - if (!ReadTables()) -@@ -386,6 +392,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream * - - if (!ReadLastTables()) - return S_FALSE; -+ -+ _solidAllowed = true; -+ - return m_OutWindowStream.Flush(); - } - -@@ -402,7 +411,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size) - { - if (size < 1) - return E_INVALIDARG; -- m_IsSolid = ((data[0] & 1) != 0); -+ _isSolid = ((data[0] & 1) != 0); - return S_OK; - } - -diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h -index 0e9005f..370bce2 100644 ---- a/CPP/7zip/Compress/Rar2Decoder.h -+++ b/CPP/7zip/Compress/Rar2Decoder.h -@@ -138,7 +138,8 @@ class CDecoder : - Byte m_LastLevels[kMaxTableSize]; - - UInt64 m_PackSize; -- bool m_IsSolid; -+ bool _isSolid; -+ bool _solidAllowed; - bool m_TablesOK; - - void InitStructures(); -diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp -index 6cb8a6a..7b85833 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), -+ _isSolid(false), -+ _solidAllowed(false), - _errorMode(false) - { - Ppmd7_Construct(&_ppmd); -@@ -821,7 +822,7 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress) - { - _writtenFileSize = 0; - _unsupportedFilter = false; -- if (!m_IsSolid) -+ if (!_isSolid) - { - _lzSize = 0; - _winPos = 0; -@@ -840,12 +841,15 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress) - if (_errorMode) - return S_FALSE; - -- if (!m_IsSolid || !TablesRead) -+ if (!_isSolid || !TablesRead) - { - bool keepDecompressing; - RINOK(ReadTables(keepDecompressing)); - if (!keepDecompressing) -+ { -+ _solidAllowed = true; - return S_OK; -+ } - } - - for (;;) -@@ -870,6 +874,9 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress) - if (!keepDecompressing) - break; - } -+ -+ _solidAllowed = true; -+ - RINOK(WriteBuf()); - UInt64 packSize = m_InBitStream.BitDecoder.GetProcessedSize(); - RINOK(progress->SetRatioInfo(&packSize, &_writtenFileSize)); -@@ -890,6 +897,10 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream - if (!inSize) - return E_INVALIDARG; - -+ if (_isSolid && !_solidAllowed) -+ return S_FALSE; -+ _solidAllowed = false; -+ - if (!_vmData) - { - _vmData = (Byte *)::MidAlloc(kVmDataSizeMax + kVmCodeSizeMax); -@@ -928,7 +939,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size) - { - if (size < 1) - return E_INVALIDARG; -- m_IsSolid = ((data[0] & 1) != 0); -+ _isSolid = ((data[0] & 1) != 0); - return S_OK; - } - -diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h -index 2f72d7d..32c8943 100644 ---- a/CPP/7zip/Compress/Rar3Decoder.h -+++ b/CPP/7zip/Compress/Rar3Decoder.h -@@ -191,7 +191,8 @@ class CDecoder: - CRecordVector _tempFilters; - UInt32 _lastFilter; - -- bool m_IsSolid; -+ bool _isSolid; -+ bool _solidAllowed; - bool _errorMode; - - bool _lzMode; -diff --git a/CPP/7zip/Compress/Rar5Decoder.cpp b/CPP/7zip/Compress/Rar5Decoder.cpp -index dc8830f..a826d5a 100644 ---- a/CPP/7zip/Compress/Rar5Decoder.cpp -+++ b/CPP/7zip/Compress/Rar5Decoder.cpp -@@ -72,6 +72,7 @@ CDecoder::CDecoder(): - _writtenFileSize(0), - _dictSizeLog(0), - _isSolid(false), -+ _solidAllowed(false), - _wasInit(false), - _inputBuf(NULL) - { -@@ -801,7 +802,10 @@ HRESULT CDecoder::CodeReal() - */ - - if (res == S_OK) -+ { -+ _solidAllowed = true; - res = res2; -+ } - - if (res == S_OK && _unpackSize_Defined && _writtenFileSize != _unpackSize) - return S_FALSE; -@@ -821,6 +825,10 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream - { - try - { -+ if (_isSolid && !_solidAllowed) -+ return S_FALSE; -+ _solidAllowed = false; -+ - if (_dictSizeLog >= sizeof(size_t) * 8) - return E_NOTIMPL; - -diff --git a/CPP/7zip/Compress/Rar5Decoder.h b/CPP/7zip/Compress/Rar5Decoder.h -index b0a4dd1..3db5018 100644 ---- a/CPP/7zip/Compress/Rar5Decoder.h -+++ b/CPP/7zip/Compress/Rar5Decoder.h -@@ -271,6 +271,7 @@ class CDecoder: - Byte _dictSizeLog; - bool _tableWasFilled; - bool _isSolid; -+ bool _solidAllowed; - bool _wasInit; - - UInt32 _reps[kNumReps]; diff --git a/srcpkgs/p7zip/patches/CVE-2016-9296.patch b/srcpkgs/p7zip/patches/CVE-2016-9296.patch deleted file mode 100644 index fbbb337737e5..000000000000 --- a/srcpkgs/p7zip/patches/CVE-2016-9296.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/CPP/7zip/Archive/7z/7zIn.cpp Sun Nov 20 09:29:41 2016 -+++ b/CPP/7zip/Archive/7z/7zIn.cpp Sun Nov 20 09:31:22 2016 -@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedStreams( - 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/srcpkgs/p7zip/patches/CVE-2017-17969.patch b/srcpkgs/p7zip/patches/CVE-2017-17969.patch deleted file mode 100644 index 9a820af73067..000000000000 --- a/srcpkgs/p7zip/patches/CVE-2017-17969.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: =?utf-8?q?Antoine_Beaupr=C3=A9?= -Date: Sun, 28 Jan 2018 21:19:50 +0100 -Subject: backport of the CVE-2017-17969 fix from 7zip 18.00-beta - ---- - CPP/7zip/Compress/ShrinkDecoder.cpp | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp -index 80b7e67..4acdce5 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 (i >= kNumItems) -+ break; -+ } -+ -+ if (i >= kNumItems) -+ break; - - _stack[i++] = (Byte)cur; - lastChar2 = (Byte)cur; diff --git a/srcpkgs/p7zip/template b/srcpkgs/p7zip/template deleted file mode 100644 index 642e24adaf52..000000000000 --- a/srcpkgs/p7zip/template +++ /dev/null @@ -1,47 +0,0 @@ -# Template file for 'p7zip' -pkgname=p7zip -version=16.02 -revision=5 -wrksrc="${pkgname}_${version}" -hostmakedepends="yasm nasm" -short_desc="Command-line version of the 7zip compressed file archive" -maintainer="Orphaned " -license="LGPL-2.1-or-later" -homepage="http://p7zip.sourceforge.net/" -distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}_${version}_src_all.tar.bz2" -checksum=5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f - -CXXFLAGS="-Wno-narrowing" - -do_configure() { - case "$XBPS_TARGET_MACHINE" in - i686*) cp makefile.linux_x86_asm_gcc_4.X makefile.machine;; - x86_64*) cp makefile.linux_amd64_asm makefile.machine;; - *) cp makefile.linux_any_cpu_gcc_4.X makefile.machine;; - esac - sed -e "s,g++,${CXX}," -i makefile.machine - sed -e "s,gcc,${CC}," -i makefile.machine -} -do_build() { - make all3 OPTFLAGS="$CXXFLAGS" ${makejobs} -} -do_install() { - make install DEST_DIR="${DESTDIR}" DEST_HOME="/usr" \ - DEST_MAN="/usr/share/man" \ - DEST_SHARE_DOC="/usr/share/doc/${pkgname}" - find ${DESTDIR}/usr/share/doc/$pkgname -type d -exec chmod 755 {} \; - mkdir -p ${DESTDIR}/usr/share/licenses/p7zip/ - mv ${DESTDIR}/usr/share/doc/p7zip/DOC/copying.txt \ - ${DESTDIR}/usr/share/licenses/p7zip/LICENSE -} - -p7zip-unrar_package() { - short_desc+=" - RAR support" - license="custom:freeware" - depends="${sourcepkg}-${version}_${revision}" - repository=nonfree - pkg_install() { - vmove usr/lib/p7zip/Codecs/Rar.so - vlicense DOC/unRarLicense.txt LICENSE - } -} diff --git a/srcpkgs/p7zip/update b/srcpkgs/p7zip/update deleted file mode 100644 index 84ed46d74a1a..000000000000 --- a/srcpkgs/p7zip/update +++ /dev/null @@ -1 +0,0 @@ -pattern='p7zip_\K[.\d]+'