Github messages for voidlinux
 help / color / mirror / Atom feed
From: r-ricci <r-ricci@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] New package: 7zip-22.01
Date: Mon, 29 Aug 2022 15:40:30 +0200	[thread overview]
Message-ID: <20220829134030.QuwcEham--WuFeG7KBWd5LYEvPPx8JFG36eUVBusbJc@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-37940@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 1958 bytes --]

There is an updated pull request by r-ricci against master on the void-packages repository

https://github.com/r-ricci/void-packages 7zip
https://github.com/void-linux/void-packages/pull/37940

New package: 7zip-22.01
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->

I don't think there's any reason to ship the full and the reduced versions in the same package, so I just compile the full one and create symlinks for compatibility.

#### TODO:

- [x] fix musl
- [ ] ~build with assembly where possible: on i686 and x86_64* it requires `asmc` or `jwasm`/`uasm` assemblers, none of which are packaged~
- [x] build a version with RAR support (nonfree repo)
- [x] use our compile and link flags
- [x] test packages that depend on `p7zip` at build/check time: SLADE, Z80Explorer, ark, cbp2make. (I just tested that they still build)
- test packages that depend on `p7zip` at run time:
    - [ ] julia
    - [ ] lutris
    - [ ] multibootusb
    - [ ] playonlinux

closes #37875

A patch file from https://github.com/void-linux/void-packages/pull/37940.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-7zip-37940.patch --]
[-- Type: text/x-diff, Size: 26492 bytes --]

From 1920654f167417f49fbf7f65d5d7c9392d728be8 Mon Sep 17 00:00:00 2001
From: Roberto Ricci <ricci@disroot.org>
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 <ricci@disroot.org>"
+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 <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
----
- 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 <robert@debian.org>
-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<CTempFilter *>  _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?= <anarcat@debian.org>
-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 <orphan@voidlinux.org>"
-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]+'

  parent reply	other threads:[~2022-08-29 13:40 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-09 10:27 [PR PATCH] New package: 7zip-22.00 r-ricci
2022-07-09 10:34 ` [PR PATCH] [Updated] " r-ricci
2022-07-10 18:15 ` r-ricci
2022-07-10 19:50 ` r-ricci
2022-07-10 22:11 ` r-ricci
2022-07-12 13:20 ` r-ricci
2022-07-12 13:23 ` r-ricci
2022-07-12 13:52 ` r-ricci
2022-07-12 14:47 ` r-ricci
2022-07-12 15:46 ` r-ricci
2022-07-13  9:04 ` [PR PATCH] [Updated] " r-ricci
2022-07-13  9:18 ` r-ricci
2022-07-13  9:43 ` [PR PATCH] [Updated] " r-ricci
2022-07-13 11:00 ` 0x5c
2022-07-13 12:13 ` r-ricci
2022-07-13 18:24 ` [PR PATCH] [Updated] " r-ricci
2022-07-13 18:25 ` r-ricci
2022-07-13 18:37 ` [PR PATCH] [Updated] " r-ricci
2022-07-13 18:40 ` r-ricci
2022-07-14  1:39 ` abenson
2022-07-14 12:45 ` r-ricci
2022-07-18 10:07 ` r-ricci
2022-07-18 17:40 ` 0x5c
2022-07-18 19:39 ` [PR PATCH] [Updated] " r-ricci
2022-07-18 20:46 ` r-ricci
2022-07-18 20:50 ` 0x5c
2022-07-18 20:51 ` r-ricci
2022-08-15 16:50 ` [PR PATCH] [Updated] " r-ricci
2022-08-15 17:23 ` r-ricci
2022-08-15 17:25 ` r-ricci
2022-08-15 17:26 ` [PR PATCH] [Updated] " r-ricci
2022-08-28 21:52 ` r-ricci
2022-08-28 21:52 ` [PR PATCH] [Updated] " r-ricci
2022-08-29 12:40 ` r-ricci
2022-08-29 12:53 ` [PR PATCH] [Updated] New package: 7zip-22.01 r-ricci
2022-08-29 12:58 ` r-ricci
2022-08-29 13:07 ` r-ricci
2022-08-29 13:40 ` r-ricci [this message]
2022-08-29 13:40 ` r-ricci
2022-08-29 17:11 ` [PR PATCH] [Updated] " r-ricci
2022-11-28  2:04 ` github-actions
2022-12-03 22:30 ` [PR PATCH] [Updated] " r-ricci
2022-12-03 22:38 ` r-ricci
2022-12-04 14:56 ` r-ricci
2022-12-17 17:54 ` r-ricci
2022-12-20 19:25 ` [PR PATCH] [Merged]: " leahneukirchen
2022-12-21  2:07 ` sgn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220829134030.QuwcEham--WuFeG7KBWd5LYEvPPx8JFG36eUVBusbJc@z \
    --to=r-ricci@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).