Package: release.debian.org Control: affects -1 + src:p7zip-rar X-Debbugs-Cc: [email protected], [email protected], [email protected], [email protected] User: [email protected] Usertags: pu Tags: bookworm Severity: normal
Hello Release team, [ Reason ] This is a follow-up OSPU for p7zip's #1132466. Moreover, p7zip-rar in bookworm is affected by CVE-2025-53816: https://security-tracker.debian.org/tracker/source-package/p7zip-rar [ Impact ] New p7zip from #1132466 is not compatible with the current p7zip-rar, users won't be able to extract .rar archives. Users are also vulnerable to memory corruption when handling .rar archives, which allows for a Denial-of-Service attack. [ Tests ] .rar archives extraction was manually tested. New debian/tests/ were added. Salsa-CI is setup, but fails without the newer p7zip: https://salsa.debian.org/debian/p7zip/-/pipelines/1057870 A debusine standalone archive was setup to test both packages at once: https://debusine.debian.net/debian/developers-beuc-secure7zip/work-request/490121 https://deb.debusine.debian.net/debian/developers-beuc-secure7zip/ Binary debdiff was done to ensure the same fileset is installed (except for the old p7zip changelog.gz). We hope to push this update to oldstable-proposed-updates as soon as possible, to allow for end-users testing before the next point release mid-May. [ Risks ] The risk is mostly brought by the p7zip update. This p7zip-rar follow-up doesn't introduce any specific risk by itself. To ease auditing and future fixes, the exact same source tarball is used: $ sha1sum 7zip-rar_25.00+ds.orig.tar.bz2 p7zip-rar_16.02+really25.00+ds.orig.tar.bz2 88d68e8c63d705485758a6aef5875bde80131583 7zip-rar_25.00+ds.orig.tar.bz2 88d68e8c63d705485758a6aef5875bde80131583 p7zip-rar_16.02+really25.00+ds.orig.tar.bz2 [ Checklist ] [X] *all* changes are documented in the d/changelog [X] I reviewed all changes and I approve them [X] attach debdiff against the package in (old)stable [X] the issue is verified as fixed in unstable (removed from unstable, fixed in trixie via 7zip transition) [ Changes ] The v25.00 codebase was imported on top of the bookworm p7zip-rar packaging. As the full debdiff is very noisy due to all the new upstream code, care was taken to create a step-by-step minimal import, for review: https://salsa.debian.org/debian/p7zip-rar/-/commits/debian/bookworm The packaging was minimally modified to adapt the new build system. ASM support was dropped (requiring asmc-linux, not in bookworm). The existing Debian patchset was replaced by trixie's. Full debdiff with new codebase is large, plus full of DOS/Unix newline issues, and was not included. However this reuses the trixie tarball identically. debian/copyright was updated and debian/watch stubbed. [ Other info ] We plan to backport this version in Debian LTS bullseye as well, following your feedback. -- Sylvain Beucler Debian LTS Team
diff -Nru p7zip-rar-16.02/debian/changelog p7zip-rar-16.02+really25.00+ds/debian/changelog --- p7zip-rar-16.02/debian/changelog 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/changelog 2026-04-01 08:53:55.000000000 +0200 @@ -1,3 +1,26 @@ +p7zip-rar (16.02+really25.00+ds-0+deb12u1) bookworm; urgency=high + + * Non-maintainer upload by the LTS Security Team. + * Move codebase to 7-Zip (not p7zip) upstream 25.00, fixes: + - CVE-2025-53816: Zeroes written outside heap buffer in RAR5 handler + may lead to memory corruption and denial of service. + (Closes: #1109494) + * Edit package description about the codebase change. + * Drop yasm dependencies, ASM not enabled anymore in p7zip. + * Import patches from 25.00+ds-1+deb13u1. + * Selectively import packaging from trixie, to avoid disruption in + stable release: + - Bump p7zip-full dependency. + - Sync debian/copyright. + - Import debian/rules and 7zip-rar.install. + - Import debian/test/. + - Drop debian/format/ options. + * Stub debian/watch (reuse 7zip-rar tarball instead). + * Enable Salsa CI. + * Configure git-buildpackage for oldstable. + + -- Sylvain Beucler <[email protected]> Wed, 01 Apr 2026 08:53:55 +0200 + p7zip-rar (16.02-3) unstable; urgency=medium * Hopefully fix uninitialized memory access (CVE-2018-10115) diff -Nru p7zip-rar-16.02/debian/control p7zip-rar-16.02+really25.00+ds/debian/control --- p7zip-rar-16.02/debian/control 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/control 2026-03-04 09:36:44.000000000 +0100 @@ -2,7 +2,7 @@ Section: non-free/utils Priority: optional Maintainer: Robert Luberda <[email protected]> -Build-Depends: debhelper (>= 11), yasm [amd64], yasm [i386] +Build-Depends: debhelper (>= 11) XS-Autobuild: yes Rules-Requires-Root: no Standards-Version: 4.1.4 @@ -12,8 +12,7 @@ Package: p7zip-rar Architecture: any -Depends: p7zip-full (>= ${source:Upstream-Version}~), - p7zip-full (<< ${source:Upstream-Version}.~), +Depends: p7zip-full (>= 16.02+really25.00~), ${misc:Depends}, ${shlibs:Depends} Description: non-free rar module for p7zip @@ -22,3 +21,6 @@ . p7zip-rar provides a module for p7zip-full to make 7z able to extract RAR files. + . + To fix security vulnerabilities, this version is really a more recent + 7-Zip repackaged and patched to be reasonably compatible with p7zip. diff -Nru p7zip-rar-16.02/debian/copyright p7zip-rar-16.02+really25.00+ds/debian/copyright --- p7zip-rar-16.02/debian/copyright 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/copyright 2026-03-04 09:56:06.000000000 +0100 @@ -1,28 +1,174 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: Igor Pavlov -Source: https://sourceforge.net/projects/p7zip/ -Comment: This software is non-free, due to the terms of the UnRAR license, - that does not meet Debian Free Software Guidelines. In particular, this - source code cannot be used to re-create the RAR compression algorithm, - and the license requires you to remove the software if you do not accept - its terms. +Upstream-Name: 7-Zip +Source: https://www.7-zip.org/ +Disclaimer: RAR code is under the non-free "unRAR license restriction" +Comment: Upstream tarball was repacked because it uses non-standatd compression options. + Repack with known compression options helps pristine-tar(1). Files: * -Copyright: 1999-2015, Igor Pavlov +Copyright: 1999-2024 Igor Pavlov License: LGPL-2.1+ -Files: CPP/7zip/Compress/Rar* - DOC/unRarLicense.txt -Copyright: 1999-2015, Igor Pavlov -License: LGPL-2.1+ and unRAR +Files: Asm/arm64/7zAsm.S + Asm/arm64/LzmaDecOpt.S + Asm/x86/7zAsm.asm + Asm/x86/7zCrcOpt.asm + Asm/x86/AesOpt.asm + Asm/x86/LzFindOpt.asm + Asm/x86/LzmaDecOpt.asm + Asm/x86/Sha1Opt.asm + Asm/x86/Sha256Opt.asm + Asm/x86/XzCrc64Opt.asm + C/7z.h + C/7zAlloc.c + C/7zAlloc.h + C/7zArcIn.c + C/7zBuf.c + C/7zBuf.h + C/7zBuf2.c + C/7zCrc.c + C/7zCrc.h + C/7zCrcOpt.c + C/7zDec.c + C/7zFile.c + C/7zFile.h + C/7zStream.c + C/7zTypes.h + C/7zVersion.h + C/Aes.c + C/Aes.h + C/AesOpt.c + C/Alloc.c + C/Alloc.h + C/Bcj2.c + C/Bcj2.h + C/Bcj2Enc.c + C/Blake2.h + C/Blake2s.c + C/Bra.c + C/Bra.h + C/Bra86.c + C/BraIA64.c + C/BwtSort.c + C/BwtSort.h + C/Compiler.h + C/CpuArch.c + C/CpuArch.h + C/Delta.c + C/Delta.h + C/DllSecur.c + C/DllSecur.h + C/HuffEnc.c + C/HuffEnc.h + C/LzFind.c + C/LzFind.h + C/LzFindMt.c + C/LzFindMt.h + C/LzFindOpt.c + C/LzHash.h + C/Lzma2Dec.c + C/Lzma2Dec.h + C/Lzma2DecMt.c + C/Lzma2DecMt.h + C/Lzma2Enc.c + C/Lzma2Enc.h + C/Lzma86.h + C/Lzma86Dec.c + C/Lzma86Enc.c + C/LzmaDec.c + C/LzmaDec.h + C/LzmaEnc.c + C/LzmaEnc.h + C/LzmaLib.c + C/LzmaLib.h + C/MtCoder.c + C/MtCoder.h + C/MtDec.c + C/MtDec.h + C/Ppmd.h + C/Ppmd7.c + C/Ppmd7.h + C/Ppmd7aDec.c + C/Ppmd7Dec.c + C/Ppmd7Enc.c + C/Ppmd8.c + C/Ppmd8.h + C/Ppmd8Dec.c + C/Ppmd8Enc.c + C/Precomp.h + C/RotateDefs.h + C/Sha1.c + C/Sha1.h + C/Sha1Opt.c + C/Sha256.c + C/Sha256.h + C/Sha256Opt.c + C/Sort.c + C/Sort.h + C/Threads.c + C/Threads.h + C/Util/7z/7zMain.c + C/Util/7z/Precomp.c + C/Util/7z/Precomp.h + C/Util/7zipInstall/7zipInstall.c + C/Util/7zipInstall/Precomp.c + C/Util/7zipInstall/Precomp.h + C/Util/7zipUninstall/7zipUninstall.c + C/Util/7zipUninstall/Precomp.c + C/Util/7zipUninstall/Precomp.h + C/Util/Lzma/LzmaUtil.c + C/Util/LzmaLib/LzmaLibExports.c + C/Util/SfxSetup/Precomp.c + C/Util/SfxSetup/Precomp.h + C/Util/SfxSetup/SfxSetup.c + C/Xz.c + C/Xz.h + C/XzCrc64.c + C/XzCrc64.h + C/XzCrc64Opt.c + C/XzDec.c + C/XzEnc.c + C/XzEnc.h + C/XzIn.c + CPP/7zip/Archive/PpmdHandler.cpp + CPP/7zip/Compress/PpmdDecoder.cpp + CPP/7zip/Compress/PpmdDecoder.h +Copyright: No copyright claimed +License: public-domain + Igor Pavlov : Public domain + ---------- + This code is based on public domain code of Steve Reid from Wei Dai's Crypto++ library. + ---------- + This code is based on public domain code from Wei Dai's Crypto++ library. + ---------- + PPMd var.H (2001) / var.I (2002): Dmitry Shkarin : Public domain + ---------- + Carryless rangecoder (1999): Dmitry Subbotin : Public domain + ---------- + Samuel Neves : Public domain -Files: contrib/* -Copyright: 2004, Sergiy Niskorodov (sgh at mail dot zp dot ua) -License: GPL-2+ +Files: CPP/7zip/Compress/LzfseDecoder.cpp +Copyright: 2015-2017, Apple Inc. + 2018 Igor Pavlov +License: BSD-3-clause +Comment: Some parts come from the "LZFSE compression library" + +Files: C/ZstdDec.c +Copyright: 2024 Igor Pavlov +License: BSD-3-clause +Comment: the code was developed by Igor Pavlov, using Zstandard format + specification and original zstd decoder code as reference code. + +Files: CPP/7zip/Compress/Rar* +Copyright: Alexander L. Roshal +License: unRAR Files: debian/* Copyright: 2016, Robert Luberda <[email protected]> 2004-2012, Mohammed Adnè Trojette <[email protected]> + 2021 Collabora, Ltd. + 2023-2024 YOKOTA Hiroshi <[email protected]> + 2026 Sylvain Beucler <[email protected]> License: GPL-2+ License: GPL-2+ @@ -35,52 +181,84 @@ Public License can be found in '/usr/share/common-licenses/GPL-2'. License: LGPL-2.1+ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by the - Free Software Foundation; version 2.1 of the License, or (at - your option) any later version. + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation version 2.1 of the License, or (at your + option) any later version. This program is distributed in the hope that + it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. . - On Debian systems, the complete text of version 2.1 of the GNU Lesser - General Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + On Debian systems you can find the full text of the GNU Lesser General + Public License version 2.1 license at /usr/share/common-licenses/LGPL-2.1. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and\/or other materials provided with the + distribution. + . + Neither the name of the <ORGANIZATION> nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: unRAR - ****** ***** ****** unRAR - free utility for RAR archives - ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ****** ******* ****** License for use and distribution of - ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ** ** ** ** ** ** FREE portable version - ~~~~~~~~~~~~~~~~~~~~~ - . - The source code of unRAR utility is freeware. This means: - . - 1. All copyrights to RAR and the utility unRAR are exclusively - owned by the author - Alexander Roshal. - . - 2. The unRAR sources may be used in any software to handle RAR - archives without limitations free of charge, but cannot be used - to re-create the RAR compression algorithm, which is proprietary. - Distribution of modified unRAR sources in separate form or as a - part of other software is permitted, provided that it is clearly - stated in the documentation and source comments that the code may - not be used to develop a RAR (WinRAR) compatible archiver. - . - 3. The unRAR utility may be freely distributed. No person or company - may charge a fee for the distribution of unRAR without written - permission from the copyright holder. - . - 4. THE RAR ARCHIVER AND THE UNRAR UTILITY ARE DISTRIBUTED "AS IS". - NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT - YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, - DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING - OR MISUSING THIS SOFTWARE. - . - 5. Installing and using the unRAR utility signifies acceptance of - these terms and conditions of the license. - . - 6. If you don't agree with terms of the license you must remove - unRAR files from your storage devices and cease to use the - utility. + ****** ***** ****** unRAR - free utility for RAR archives + ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ****** ******* ****** License for use and distribution of + ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ** ** ** ** ** ** FREE portable version + ~~~~~~~~~~~~~~~~~~~~~ + . + The source code of unRAR utility is freeware. This means: + . + 1. All copyrights to RAR and the utility unRAR are exclusively + owned by the author - Alexander Roshal. + . + 2. The unRAR sources may be used in any software to handle RAR + archives without limitations free of charge, but cannot be used + to re-create the RAR compression algorithm, which is proprietary. + Distribution of modified unRAR sources in separate form or as a + part of other software is permitted, provided that it is clearly + stated in the documentation and source comments that the code may + not be used to develop a RAR (WinRAR) compatible archiver. + . + 3. The unRAR utility may be freely distributed. No person or company + may charge a fee for the distribution of unRAR without written + permission from the copyright holder. + . + 4. THE RAR ARCHIVER AND THE UNRAR UTILITY ARE DISTRIBUTED "AS IS". + NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT + YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, + DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING + OR MISUSING THIS SOFTWARE. + . + 5. Installing and using the unRAR utility signifies acceptance of + these terms and conditions of the license. + . + 6. If you don't agree with terms of the license you must remove + unRAR files from your storage devices and cease to use the + utility. + . + Thank you for your interest in RAR and unRAR. . - Thank you for your interest in RAR and unRAR. . - Alexander L. Roshal + Alexander L. Roshal diff -Nru p7zip-rar-16.02/debian/gbp.conf p7zip-rar-16.02+really25.00+ds/debian/gbp.conf --- p7zip-rar-16.02/debian/gbp.conf 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/gbp.conf 2026-03-04 09:56:55.000000000 +0100 @@ -0,0 +1,6 @@ +[DEFAULT] +debian-branch = debian/bookworm + +[import-orig] +pristine-tar = True +postunpack = find Asm C CPP DOC -type f -execdir chmod -x {} ";" diff -Nru p7zip-rar-16.02/debian/p7zip-rar.install p7zip-rar-16.02+really25.00+ds/debian/p7zip-rar.install --- p7zip-rar-16.02/debian/p7zip-rar.install 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/p7zip-rar.install 2026-03-04 08:48:36.000000000 +0100 @@ -0,0 +1 @@ +CPP/7zip/Bundles/FormatRAR/b/g/Rar.so usr/lib/p7zip/Codecs \ Pas de fin de ligne à la fin du fichier diff -Nru p7zip-rar-16.02/debian/rules p7zip-rar-16.02+really25.00+ds/debian/rules --- p7zip-rar-16.02/debian/rules 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/rules 2026-03-04 08:24:34.000000000 +0100 @@ -1,31 +1,19 @@ #!/usr/bin/make -f -DH_AUTO_OPTIONS := -v -Smakefile --parallel - -export DEB_BUILD_MAINT_OPTIONS=hardening=+all - include /usr/share/dpkg/architecture.mk -ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) - CC := $(DEB_HOST_GNU_TYPE)-gcc - CXX := $(DEB_HOST_GNU_TYPE)-g++ -else - CC := gcc - CXX := g++ -endif +export DEB_BUILD_MAINT_OPTIONS=hardening=+all reproducible=+all %: - dh ${@} - -override_dh_auto_clean: - # Make sure patches are applied otherwise `make clean' fails - # on trying to clean the removed Rar directory (see #769520). - dpkg-source --before-build $(CURDIR) - dh_auto_clean $(DH_AUTO_OPTIONS) -- OPTFLAGS= - rm -rf bin/ + dh $@ override_dh_auto_build: - dh_auto_build $(DH_AUTO_OPTIONS) -- OPTFLAGS= rar + $(MAKE) -C CPP/7zip/Bundles/FormatRAR -f ../../cmpl_gcc.mak \ + CROSS_COMPILE="$(DEB_HOST_GNU_TYPE)-" \ + DEB_CFLAGS="$(CFLAGS) -pipe" \ + DEB_CXXFLAGS="$(CXXFLAGS) -pipe" \ + DEB_CPPFLAGS="$(CPPFLAGS)" \ + DEB_LDFLAGS="$(LDFLAGS) -pipe" -override_dh_auto_install: - dh_install bin/Codecs usr/lib/p7zip +override_dh_auto_clean: + $(MAKE) -C CPP/7zip/Bundles/FormatRAR -f ../../cmpl_gcc.mak clean diff -Nru p7zip-rar-16.02/debian/salsa-ci.yml p7zip-rar-16.02+really25.00+ds/debian/salsa-ci.yml --- p7zip-rar-16.02/debian/salsa-ci.yml 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/salsa-ci.yml 2026-03-04 09:52:01.000000000 +0100 @@ -0,0 +1,3 @@ +--- +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml diff -Nru p7zip-rar-16.02/debian/source/include-binaries p7zip-rar-16.02+really25.00+ds/debian/source/include-binaries --- p7zip-rar-16.02/debian/source/include-binaries 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/source/include-binaries 2026-03-04 08:03:20.000000000 +0100 @@ -0,0 +1 @@ +debian/tests/data/data.rar diff -Nru p7zip-rar-16.02/debian/source/options p7zip-rar-16.02+really25.00+ds/debian/source/options --- p7zip-rar-16.02/debian/source/options 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/source/options 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -diff-ignore -tar-ignore diff -Nru p7zip-rar-16.02/debian/tests/control p7zip-rar-16.02+really25.00+ds/debian/tests/control --- p7zip-rar-16.02/debian/tests/control 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/tests/control 2026-03-04 08:03:20.000000000 +0100 @@ -0,0 +1,14 @@ +# -*- mode: conf -*- + +# Check RAR plugin is really loaded +Features: test-name=rar-plugin-load +Test-Command: 7z i +Restrictions: superficial + +# Check RAR container format support +Features: test-name=rar-list +Test-Command: 7z l debian/tests/data/data.rar + +# Check RAR complession decoder works +Features: test-name=rar-test +Test-Command: 7z t debian/tests/data/data.rar diff -Nru p7zip-rar-16.02/debian/watch p7zip-rar-16.02+really25.00+ds/debian/watch --- p7zip-rar-16.02/debian/watch 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/watch 2026-03-04 21:43:57.000000000 +0100 @@ -1,3 +1,2 @@ +# To ease auditing, please reuse the orig tarball from the 7zip-rar package. version=4 - -https://qa.debian.org/watch/sf.php/p7zip/p7zip_(.*)_src_all.tar.bz2 debian uupdate
diff -Nru p7zip-rar-16.02/debian/changelog p7zip-rar-16.02+really25.00+ds/debian/changelog --- p7zip-rar-16.02/debian/changelog 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/changelog 2026-04-01 08:53:55.000000000 +0200 @@ -1,3 +1,26 @@ +p7zip-rar (16.02+really25.00+ds-0+deb12u1) bookworm; urgency=high + + * Non-maintainer upload by the LTS Security Team. + * Move codebase to 7-Zip (not p7zip) upstream 25.00, fixes: + - CVE-2025-53816: Zeroes written outside heap buffer in RAR5 handler + may lead to memory corruption and denial of service. + (Closes: #1109494) + * Edit package description about the codebase change. + * Drop yasm dependencies, ASM not enabled anymore in p7zip. + * Import patches from 25.00+ds-1+deb13u1. + * Selectively import packaging from trixie, to avoid disruption in + stable release: + - Bump p7zip-full dependency. + - Sync debian/copyright. + - Import debian/rules and 7zip-rar.install. + - Import debian/test/. + - Drop debian/format/ options. + * Stub debian/watch (reuse 7zip-rar tarball instead). + * Enable Salsa CI. + * Configure git-buildpackage for oldstable. + + -- Sylvain Beucler <[email protected]> Wed, 01 Apr 2026 08:53:55 +0200 + p7zip-rar (16.02-3) unstable; urgency=medium * Hopefully fix uninitialized memory access (CVE-2018-10115) diff -Nru p7zip-rar-16.02/debian/control p7zip-rar-16.02+really25.00+ds/debian/control --- p7zip-rar-16.02/debian/control 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/control 2026-03-04 09:36:44.000000000 +0100 @@ -2,7 +2,7 @@ Section: non-free/utils Priority: optional Maintainer: Robert Luberda <[email protected]> -Build-Depends: debhelper (>= 11), yasm [amd64], yasm [i386] +Build-Depends: debhelper (>= 11) XS-Autobuild: yes Rules-Requires-Root: no Standards-Version: 4.1.4 @@ -12,8 +12,7 @@ Package: p7zip-rar Architecture: any -Depends: p7zip-full (>= ${source:Upstream-Version}~), - p7zip-full (<< ${source:Upstream-Version}.~), +Depends: p7zip-full (>= 16.02+really25.00~), ${misc:Depends}, ${shlibs:Depends} Description: non-free rar module for p7zip @@ -22,3 +21,6 @@ . p7zip-rar provides a module for p7zip-full to make 7z able to extract RAR files. + . + To fix security vulnerabilities, this version is really a more recent + 7-Zip repackaged and patched to be reasonably compatible with p7zip. diff -Nru p7zip-rar-16.02/debian/copyright p7zip-rar-16.02+really25.00+ds/debian/copyright --- p7zip-rar-16.02/debian/copyright 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/copyright 2026-03-04 09:56:06.000000000 +0100 @@ -1,28 +1,174 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: Igor Pavlov -Source: https://sourceforge.net/projects/p7zip/ -Comment: This software is non-free, due to the terms of the UnRAR license, - that does not meet Debian Free Software Guidelines. In particular, this - source code cannot be used to re-create the RAR compression algorithm, - and the license requires you to remove the software if you do not accept - its terms. +Upstream-Name: 7-Zip +Source: https://www.7-zip.org/ +Disclaimer: RAR code is under the non-free "unRAR license restriction" +Comment: Upstream tarball was repacked because it uses non-standatd compression options. + Repack with known compression options helps pristine-tar(1). Files: * -Copyright: 1999-2015, Igor Pavlov +Copyright: 1999-2024 Igor Pavlov License: LGPL-2.1+ -Files: CPP/7zip/Compress/Rar* - DOC/unRarLicense.txt -Copyright: 1999-2015, Igor Pavlov -License: LGPL-2.1+ and unRAR +Files: Asm/arm64/7zAsm.S + Asm/arm64/LzmaDecOpt.S + Asm/x86/7zAsm.asm + Asm/x86/7zCrcOpt.asm + Asm/x86/AesOpt.asm + Asm/x86/LzFindOpt.asm + Asm/x86/LzmaDecOpt.asm + Asm/x86/Sha1Opt.asm + Asm/x86/Sha256Opt.asm + Asm/x86/XzCrc64Opt.asm + C/7z.h + C/7zAlloc.c + C/7zAlloc.h + C/7zArcIn.c + C/7zBuf.c + C/7zBuf.h + C/7zBuf2.c + C/7zCrc.c + C/7zCrc.h + C/7zCrcOpt.c + C/7zDec.c + C/7zFile.c + C/7zFile.h + C/7zStream.c + C/7zTypes.h + C/7zVersion.h + C/Aes.c + C/Aes.h + C/AesOpt.c + C/Alloc.c + C/Alloc.h + C/Bcj2.c + C/Bcj2.h + C/Bcj2Enc.c + C/Blake2.h + C/Blake2s.c + C/Bra.c + C/Bra.h + C/Bra86.c + C/BraIA64.c + C/BwtSort.c + C/BwtSort.h + C/Compiler.h + C/CpuArch.c + C/CpuArch.h + C/Delta.c + C/Delta.h + C/DllSecur.c + C/DllSecur.h + C/HuffEnc.c + C/HuffEnc.h + C/LzFind.c + C/LzFind.h + C/LzFindMt.c + C/LzFindMt.h + C/LzFindOpt.c + C/LzHash.h + C/Lzma2Dec.c + C/Lzma2Dec.h + C/Lzma2DecMt.c + C/Lzma2DecMt.h + C/Lzma2Enc.c + C/Lzma2Enc.h + C/Lzma86.h + C/Lzma86Dec.c + C/Lzma86Enc.c + C/LzmaDec.c + C/LzmaDec.h + C/LzmaEnc.c + C/LzmaEnc.h + C/LzmaLib.c + C/LzmaLib.h + C/MtCoder.c + C/MtCoder.h + C/MtDec.c + C/MtDec.h + C/Ppmd.h + C/Ppmd7.c + C/Ppmd7.h + C/Ppmd7aDec.c + C/Ppmd7Dec.c + C/Ppmd7Enc.c + C/Ppmd8.c + C/Ppmd8.h + C/Ppmd8Dec.c + C/Ppmd8Enc.c + C/Precomp.h + C/RotateDefs.h + C/Sha1.c + C/Sha1.h + C/Sha1Opt.c + C/Sha256.c + C/Sha256.h + C/Sha256Opt.c + C/Sort.c + C/Sort.h + C/Threads.c + C/Threads.h + C/Util/7z/7zMain.c + C/Util/7z/Precomp.c + C/Util/7z/Precomp.h + C/Util/7zipInstall/7zipInstall.c + C/Util/7zipInstall/Precomp.c + C/Util/7zipInstall/Precomp.h + C/Util/7zipUninstall/7zipUninstall.c + C/Util/7zipUninstall/Precomp.c + C/Util/7zipUninstall/Precomp.h + C/Util/Lzma/LzmaUtil.c + C/Util/LzmaLib/LzmaLibExports.c + C/Util/SfxSetup/Precomp.c + C/Util/SfxSetup/Precomp.h + C/Util/SfxSetup/SfxSetup.c + C/Xz.c + C/Xz.h + C/XzCrc64.c + C/XzCrc64.h + C/XzCrc64Opt.c + C/XzDec.c + C/XzEnc.c + C/XzEnc.h + C/XzIn.c + CPP/7zip/Archive/PpmdHandler.cpp + CPP/7zip/Compress/PpmdDecoder.cpp + CPP/7zip/Compress/PpmdDecoder.h +Copyright: No copyright claimed +License: public-domain + Igor Pavlov : Public domain + ---------- + This code is based on public domain code of Steve Reid from Wei Dai's Crypto++ library. + ---------- + This code is based on public domain code from Wei Dai's Crypto++ library. + ---------- + PPMd var.H (2001) / var.I (2002): Dmitry Shkarin : Public domain + ---------- + Carryless rangecoder (1999): Dmitry Subbotin : Public domain + ---------- + Samuel Neves : Public domain -Files: contrib/* -Copyright: 2004, Sergiy Niskorodov (sgh at mail dot zp dot ua) -License: GPL-2+ +Files: CPP/7zip/Compress/LzfseDecoder.cpp +Copyright: 2015-2017, Apple Inc. + 2018 Igor Pavlov +License: BSD-3-clause +Comment: Some parts come from the "LZFSE compression library" + +Files: C/ZstdDec.c +Copyright: 2024 Igor Pavlov +License: BSD-3-clause +Comment: the code was developed by Igor Pavlov, using Zstandard format + specification and original zstd decoder code as reference code. + +Files: CPP/7zip/Compress/Rar* +Copyright: Alexander L. Roshal +License: unRAR Files: debian/* Copyright: 2016, Robert Luberda <[email protected]> 2004-2012, Mohammed Adnè Trojette <[email protected]> + 2021 Collabora, Ltd. + 2023-2024 YOKOTA Hiroshi <[email protected]> + 2026 Sylvain Beucler <[email protected]> License: GPL-2+ License: GPL-2+ @@ -35,52 +181,84 @@ Public License can be found in '/usr/share/common-licenses/GPL-2'. License: LGPL-2.1+ - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by the - Free Software Foundation; version 2.1 of the License, or (at - your option) any later version. + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation version 2.1 of the License, or (at your + option) any later version. This program is distributed in the hope that + it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. . - On Debian systems, the complete text of version 2.1 of the GNU Lesser - General Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + On Debian systems you can find the full text of the GNU Lesser General + Public License version 2.1 license at /usr/share/common-licenses/LGPL-2.1. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and\/or other materials provided with the + distribution. + . + Neither the name of the <ORGANIZATION> nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. License: unRAR - ****** ***** ****** unRAR - free utility for RAR archives - ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ****** ******* ****** License for use and distribution of - ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ** ** ** ** ** ** FREE portable version - ~~~~~~~~~~~~~~~~~~~~~ - . - The source code of unRAR utility is freeware. This means: - . - 1. All copyrights to RAR and the utility unRAR are exclusively - owned by the author - Alexander Roshal. - . - 2. The unRAR sources may be used in any software to handle RAR - archives without limitations free of charge, but cannot be used - to re-create the RAR compression algorithm, which is proprietary. - Distribution of modified unRAR sources in separate form or as a - part of other software is permitted, provided that it is clearly - stated in the documentation and source comments that the code may - not be used to develop a RAR (WinRAR) compatible archiver. - . - 3. The unRAR utility may be freely distributed. No person or company - may charge a fee for the distribution of unRAR without written - permission from the copyright holder. - . - 4. THE RAR ARCHIVER AND THE UNRAR UTILITY ARE DISTRIBUTED "AS IS". - NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT - YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, - DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING - OR MISUSING THIS SOFTWARE. - . - 5. Installing and using the unRAR utility signifies acceptance of - these terms and conditions of the license. - . - 6. If you don't agree with terms of the license you must remove - unRAR files from your storage devices and cease to use the - utility. + ****** ***** ****** unRAR - free utility for RAR archives + ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ****** ******* ****** License for use and distribution of + ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ** ** ** ** ** ** FREE portable version + ~~~~~~~~~~~~~~~~~~~~~ + . + The source code of unRAR utility is freeware. This means: + . + 1. All copyrights to RAR and the utility unRAR are exclusively + owned by the author - Alexander Roshal. + . + 2. The unRAR sources may be used in any software to handle RAR + archives without limitations free of charge, but cannot be used + to re-create the RAR compression algorithm, which is proprietary. + Distribution of modified unRAR sources in separate form or as a + part of other software is permitted, provided that it is clearly + stated in the documentation and source comments that the code may + not be used to develop a RAR (WinRAR) compatible archiver. + . + 3. The unRAR utility may be freely distributed. No person or company + may charge a fee for the distribution of unRAR without written + permission from the copyright holder. + . + 4. THE RAR ARCHIVER AND THE UNRAR UTILITY ARE DISTRIBUTED "AS IS". + NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT + YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, + DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING + OR MISUSING THIS SOFTWARE. + . + 5. Installing and using the unRAR utility signifies acceptance of + these terms and conditions of the license. + . + 6. If you don't agree with terms of the license you must remove + unRAR files from your storage devices and cease to use the + utility. + . + Thank you for your interest in RAR and unRAR. . - Thank you for your interest in RAR and unRAR. . - Alexander L. Roshal + Alexander L. Roshal diff -Nru p7zip-rar-16.02/debian/gbp.conf p7zip-rar-16.02+really25.00+ds/debian/gbp.conf --- p7zip-rar-16.02/debian/gbp.conf 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/gbp.conf 2026-03-04 09:56:55.000000000 +0100 @@ -0,0 +1,6 @@ +[DEFAULT] +debian-branch = debian/bookworm + +[import-orig] +pristine-tar = True +postunpack = find Asm C CPP DOC -type f -execdir chmod -x {} ";" diff -Nru p7zip-rar-16.02/debian/p7zip-rar.install p7zip-rar-16.02+really25.00+ds/debian/p7zip-rar.install --- p7zip-rar-16.02/debian/p7zip-rar.install 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/p7zip-rar.install 2026-03-04 08:48:36.000000000 +0100 @@ -0,0 +1 @@ +CPP/7zip/Bundles/FormatRAR/b/g/Rar.so usr/lib/p7zip/Codecs \ Pas de fin de ligne à la fin du fichier diff -Nru p7zip-rar-16.02/debian/patches/0001-Accept-Debian-build-flags.patch p7zip-rar-16.02+really25.00+ds/debian/patches/0001-Accept-Debian-build-flags.patch --- p7zip-rar-16.02/debian/patches/0001-Accept-Debian-build-flags.patch 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/patches/0001-Accept-Debian-build-flags.patch 2026-03-04 08:03:20.000000000 +0100 @@ -0,0 +1,57 @@ +From: YOKOTA Hiroshi <[email protected]> +Date: Sun, 9 May 2021 22:39:21 +0900 +Subject: Accept Debian build flags + +Forwarded: not-needed +--- + CPP/7zip/7zip_gcc.mak | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/CPP/7zip/7zip_gcc.mak b/CPP/7zip/7zip_gcc.mak +index 8fbef14..2756ba4 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 + +@@ -104,14 +104,14 @@ SHARED_EXT=.dll + LDFLAGS = -shared -DEF $(DEF_FILE) $(LDFLAGS_STATIC) + else + SHARED_EXT=.so +-LDFLAGS = -shared -fPIC $(LDFLAGS_STATIC) ++LDFLAGS = -shared -fPIC $(DEB_LDFLAGS) $(LDFLAGS_STATIC) + CC_SHARED=-fPIC + endif + + + else + +-LDFLAGS = $(LDFLAGS_STATIC) ++LDFLAGS = $(DEB_LDFLAGS) $(LDFLAGS_STATIC) + # -z force-bti + # -s is not required for clang, do we need it for GCC ??? + +@@ -169,7 +169,7 @@ endif + + + +-CFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CC_SHARED) -o $@ ++CFLAGS = $(DEB_CFLAGS) $(DEB_CPPFLAGS) $(MY_ARCH_2) $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CC_SHARED) -o $@ + + + ifdef IS_MINGW +@@ -210,7 +210,7 @@ CXX_WARN_FLAGS = + #-Wno-invalid-offsetof + #-Wno-reorder + +-CXXFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CXXFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CXXFLAGS_EXTRA) $(CC_SHARED) $(CXX_WARN_FLAGS) $(CXX_STD_FLAGS) $(CXX_INCLUDE_FLAGS) -o $@ ++CXXFLAGS = $(DEB_CXXFLAGS) $(DEB_CPPFLAGS) $(MY_ARCH_2) $(LOCAL_FLAGS) $(CXXFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CXXFLAGS_EXTRA) $(CC_SHARED) $(CXX_WARN_FLAGS) $(CXX_STD_FLAGS) $(CXX_INCLUDE_FLAGS) -o $@ + + STATIC_TARGET= + ifdef COMPL_STATIC diff -Nru p7zip-rar-16.02/debian/patches/0002-Add-RAR-plugin-builder.patch p7zip-rar-16.02+really25.00+ds/debian/patches/0002-Add-RAR-plugin-builder.patch --- p7zip-rar-16.02/debian/patches/0002-Add-RAR-plugin-builder.patch 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/patches/0002-Add-RAR-plugin-builder.patch 2026-03-04 08:03:20.000000000 +0100 @@ -0,0 +1,205 @@ +From: YOKOTA Hiroshi <[email protected]> +Date: Tue, 30 May 2023 20:11:52 +0900 +Subject: Add RAR plugin builder + +Forwarded: not-needed + +RAR support is separated to another plugin and main package keeps DFSG +--- + CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak | 126 ++++++++++++++++++++++++++++++++ + CPP/7zip/Bundles/FormatRAR/makefile.gcc | 53 ++++++++++++++ + 2 files changed, 179 insertions(+) + create mode 100644 CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak + create mode 100644 CPP/7zip/Bundles/FormatRAR/makefile.gcc + +diff --git a/CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak b/CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak +new file mode 100644 +index 0000000..2fbcf52 +--- /dev/null ++++ b/CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak +@@ -0,0 +1,126 @@ ++include ../../LzmaDec_gcc.mak ++ ++LOCAL_FLAGS_ST = ++MT_OBJS = ++ ++ifdef SystemDrive ++IS_MINGW = 1 ++else ++ifdef SYSTEMDRIVE ++# ifdef OS ++IS_MINGW = 1 ++endif ++endif ++ ++ifdef ST_MODE ++ ++LOCAL_FLAGS_ST = -DZ7_ST ++ ++ifdef IS_MINGW ++MT_OBJS = ++ ++endif ++ ++else ++ ++MT_OBJS = ++ ++endif ++ ++ ++ ++COMMON_OBJS = ++ ++WIN_OBJS = ++ ++7ZIP_COMMON_OBJS = \ ++ $O/InBuffer.o \ ++ $O/OutBuffer.o \ ++ $O/StreamUtils.o ++ ++AR_OBJS = ++ ++AR_COMMON_OBJS = ++ ++ ++7Z_OBJS = ++ ++CAB_OBJS = ++ ++CHM_OBJS = ++ ++ISO_OBJS = ++ ++NSIS_OBJS = ++ ++ifndef DISABLE_RAR ++RAR_OBJS = ++ ++endif ++ ++ ++TAR_OBJS = ++ ++UDF_OBJS = ++ ++WIM_OBJS = ++ ++ZIP_OBJS = ++ ++COMPRESS_OBJS = \ ++ $O/LzOutWindow.o ++ ++ifdef DISABLE_RAR ++DISABLE_RAR_COMPRESS=1 ++endif ++ ++ifndef DISABLE_RAR_COMPRESS ++COMPRESS_OBJS += \ ++ $O/Rar1Decoder.o \ ++ $O/Rar2Decoder.o \ ++ $O/Rar3Decoder.o \ ++ $O/Rar3Vm.o \ ++ $O/Rar5Decoder.o \ ++ $O/RarCodecsRegister.o ++ ++endif ++ ++CRYPTO_OBJS = ++ ++ifndef DISABLE_RAR ++CRYPTO_OBJS += ++ ++endif ++ ++ ++C_OBJS = \ ++ $O/Alloc.o \ ++ $O/CpuArch.o \ ++ $O/Ppmd7.o \ ++ $O/Ppmd7Dec.o \ ++ $O/Ppmd7aDec.o \ ++ $O/7zCrc.o \ ++ $O/7zCrcOpt.o ++ ++ARC_OBJS = \ ++ $(LZMA_DEC_OPT_OBJS) \ ++ $(C_OBJS) \ ++ $(MT_OBJS) \ ++ $(COMMON_OBJS) \ ++ $(WIN_OBJS) \ ++ $(AR_OBJS) \ ++ $(AR_COMMON_OBJS) \ ++ $(7Z_OBJS) \ ++ $(CAB_OBJS) \ ++ $(CHM_OBJS) \ ++ $(COM_OBJS) \ ++ $(ISO_OBJS) \ ++ $(NSIS_OBJS) \ ++ $(RAR_OBJS) \ ++ $(TAR_OBJS) \ ++ $(UDF_OBJS) \ ++ $(WIM_OBJS) \ ++ $(ZIP_OBJS) \ ++ $(COMPRESS_OBJS) \ ++ $(CRYPTO_OBJS) \ ++ $(7ZIP_COMMON_OBJS) +diff --git a/CPP/7zip/Bundles/FormatRAR/makefile.gcc b/CPP/7zip/Bundles/FormatRAR/makefile.gcc +new file mode 100644 +index 0000000..d070b84 +--- /dev/null ++++ b/CPP/7zip/Bundles/FormatRAR/makefile.gcc +@@ -0,0 +1,53 @@ ++PROG = Rar ++DEF_FILE = ../../Archive/Archive2.def ++ ++# IS_X64 = 1 ++# USE_ASM = 1 ++# ST_MODE = 1 ++ ++include Arc_gcc.mak ++ ++ifdef SystemDrive ++IS_MINGW = 1 ++else ++ifdef SYSTEMDRIVE ++# ifdef OS ++IS_MINGW = 1 ++endif ++endif ++ ++ ++ifdef IS_MINGW ++ ++LOCAL_FLAGS_WIN = \ ++ -DZ7_LARGE_PAGES \ ++ $(LOCAL_FLAGS_ST) ++ ++SYS_OBJS = ++ ++else ++ ++SYS_OBJS = \ ++ $O/MyWindows.o ++ ++endif ++ ++LOCAL_FLAGS = \ ++ -DZ7_EXTERNAL_CODECS \ ++ $(LOCAL_FLAGS_WIN) \ ++ $(LOCAL_FLAGS_ST) ++ ++ ++COMPRESS_OBJS_2 = \ ++ $O/CodecExports.o \ ++ $O/DllExportsCompress.o ++ ++AR_OBJS_2 = ++ ++OBJS = \ ++ $(ARC_OBJS) \ ++ $(AR_OBJS_2) \ ++ $(COMPRESS_OBJS_2) \ ++ $(SYS_OBJS) ++ ++include ../../7zip_gcc.mak diff -Nru p7zip-rar-16.02/debian/patches/0003-Add-missing-CRC-table-constructor-Closes-1118733.patch p7zip-rar-16.02+really25.00+ds/debian/patches/0003-Add-missing-CRC-table-constructor-Closes-1118733.patch --- p7zip-rar-16.02/debian/patches/0003-Add-missing-CRC-table-constructor-Closes-1118733.patch 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/patches/0003-Add-missing-CRC-table-constructor-Closes-1118733.patch 2026-03-04 08:03:20.000000000 +0100 @@ -0,0 +1,25 @@ +From: YOKOTA Hiroshi <[email protected]> +Date: Sun, 2 Nov 2025 10:29:49 +0900 +Subject: Add missing CRC table constructor (Closes: #1118733) + +This function requires to select Rar3 standard VM filters. +If it missing, RAR plugin fails to extract Rar3 codec data with +compression filters. +--- + CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak b/CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak +index 2fbcf52..54ceece 100644 +--- a/CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak ++++ b/CPP/7zip/Bundles/FormatRAR/Arc_gcc.mak +@@ -29,7 +29,8 @@ endif + + + +-COMMON_OBJS = ++COMMON_OBJS = \ ++ $O/CRC.o + + WIN_OBJS = + diff -Nru p7zip-rar-16.02/debian/patches/01-clean-makefile.patch p7zip-rar-16.02+really25.00+ds/debian/patches/01-clean-makefile.patch --- p7zip-rar-16.02/debian/patches/01-clean-makefile.patch 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/patches/01-clean-makefile.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,255 +0,0 @@ -From: Robert Luberda <[email protected]> -Date: Fri, 22 Jan 2016 00:47:56 +0100 -Subject: Clean makefile - ---- - makefile | 87 +++-------------------------------- - makefile.common | 139 -------------------------------------------------------- - 2 files changed, 6 insertions(+), 220 deletions(-) - -diff --git a/makefile b/makefile -index 745c8ed..c176a60 100644 ---- a/makefile -+++ b/makefile -@@ -1,85 +1,10 @@ -+.PHONY: all rar clean - - include makefile.common - --test_lib: common -- $(MAKE) -C CPP/myWindows all -- --other: common -- $(MAKE) -C Utils/CPUTest/MemLat all -- $(MAKE) -C Utils/CPUTest/PipeLen all -- $(MAKE) -C CPP/7zip/UI/P7ZIP all -- $(MAKE) -C CPP/7zip/TEST/TestUI all -- --other2: -- $(MAKE) -C CPP/7zip/Bundles/AloneGCOV all -- --7za: common -- $(MAKE) -C CPP/7zip/Bundles/Alone all -- --7zr: common -- $(MAKE) -C CPP/7zip/Bundles/Alone7z all -- --Client7z: common -- $(MKDIR) bin/Codecs -- $(MAKE) -C CPP/7zip/Bundles/Format7zFree all -- $(MAKE) -C CPP/7zip/UI/Client7z all -- --depend: -- $(MAKE) -C CPP/7zip/Bundles/Alone depend -- $(MAKE) -C CPP/7zip/Bundles/Alone7z depend -- $(MAKE) -C CPP/7zip/Bundles/SFXCon depend -- $(MAKE) -C CPP/7zip/UI/Client7z depend -- $(MAKE) -C CPP/7zip/UI/Console depend -- $(MAKE) -C CPP/7zip/Bundles/Format7zFree depend -- $(MAKE) -C CPP/7zip/Compress/Rar depend -- $(MAKE) -C CPP/7zip/UI/GUI depend -- $(MAKE) -C CPP/7zip/UI/FileManager depend -- --sfx: common -- $(MKDIR) bin -- $(MAKE) -C CPP/7zip/Bundles/SFXCon all -- --common7z:common -- $(MKDIR) bin/Codecs -- $(MAKE) -C CPP/7zip/Bundles/Format7zFree all -- $(MAKE) -C CPP/7zip/Compress/Rar all -- --lzham:common -- $(MKDIR) bin/Codecs -- $(MAKE) -C CPP/7zip/Compress/Lzham all -- --7z: common7z -- $(MAKE) -C CPP/7zip/UI/Console all -- --7zG: common7z LangAndHelp -- $(MAKE) -C CPP/7zip/UI/GUI all -- --7zFM: common7z LangAndHelp -- $(MAKE) -C CPP/7zip/UI/FileManager all -- --clean_C: -- $(MAKE) -C CPP/myWindows clean -- $(MAKE) -C CPP/7zip/Bundles/Alone clean -- $(MAKE) -C CPP/7zip/Bundles/Alone7z clean -- $(MAKE) -C CPP/7zip/Bundles/SFXCon clean -- $(MAKE) -C CPP/7zip/UI/Client7z clean -- $(MAKE) -C CPP/7zip/UI/Console clean -- $(MAKE) -C CPP/7zip/UI/FileManager clean -- $(MAKE) -C CPP/7zip/UI/GUI clean -- $(MAKE) -C CPP/7zip/Bundles/Format7zFree clean -- $(MAKE) -C CPP/7zip/Compress/Rar clean -- $(MAKE) -C CPP/7zip/Compress/Lzham clean -- $(MAKE) -C CPP/7zip/Bundles/LzmaCon clean2 -- $(MAKE) -C CPP/7zip/Bundles/AloneGCOV clean -- $(MAKE) -C CPP/7zip/TEST/TestUI clean -- $(MAKE) -C CPP/ANDROID clean -- $(MAKE) -C Utils/CPUTest/MemLat clean -- $(MAKE) -C Utils/CPUTest/PipeLen clean -- $(MAKE) -C CPP/7zip/UI/P7ZIP clean -- --LzmaCon: -- $(MAKE) -C CPP/7zip/Bundles/LzmaCon -- --test_LzmaCon: -- $(MAKE) -C CPP/7zip/Bundles/LzmaCon test -+all rar: -+ $(MKDIR) bin bin/Codecs -+ $(MAKE) -C CPP/7zip/Compress/Rar all - -+clean: -+ $(MAKE) -C CPP/7zip/Compress/Rar clean -diff --git a/makefile.common b/makefile.common -index d8f6e16..1912ba7 100644 ---- a/makefile.common -+++ b/makefile.common -@@ -6,145 +6,6 @@ DEST_SHARE=$(DEST_HOME)/lib/p7zip - DEST_SHARE_DOC=$(DEST_HOME)/share/doc/p7zip - DEST_MAN=$(DEST_HOME)/man - --.PHONY: default all all2 7za 7zG 7zFM sfx 7z 7zr Client7z common common7z LangAndHelp tar_bin depend test test_7z test_7zr test_7zG test_Client7z LzmaCon test_LzmaCon all_test app cppcheck lzham test_lib other -- --.PHONY: clean clean_full clean_C -- - include makefile.machine - --default:7za -- --all:7za sfx -- --all2: all 7z -- --all3: all2 7zr -- --all4: all3 Client7z LzmaCon lzham test_lib -- --all4bis: all3 Client7z LzmaCon test_lib # lzham not supported on x32 CPU. -- --all5: all4 7zG 7zFM -- --all6: all5 other -- --all_all : all6 -- --all_test : test test_7z test_7zr test_LzmaCon test_Client7z -- --all_test2 : all_test test_7zG -- --common: -- $(MKDIR) bin -- --app: common 7zFM 7zG 7z sfx -- rm -fr p7zip.app -- $(MKDIR) p7zip.app -- cp -rp GUI/Contents p7zip.app/ -- $(MKDIR) p7zip.app/Contents -- $(MKDIR) p7zip.app/Contents/MacOS -- cp bin/7zFM_do_not_use p7zip.app/Contents/MacOS/ -- cp bin/7zG p7zip.app/Contents/MacOS/ -- cp bin/7z.so p7zip.app/Contents/MacOS/ -- cp bin/7zCon.sfx p7zip.app/Contents/MacOS/ -- cp -rp bin/Codecs p7zip.app/Contents/MacOS/ -- cp -rp GUI/Lang p7zip.app/Contents/MacOS/ -- cp -rp DOC/MANUAL p7zip.app/Contents/MacOS/help -- --LangAndHelp: -- cd bin ; rm -f Lang ; ln -s ../GUI/Lang . -- cd bin ; rm -f help ; ln -s ../DOC/MANUAL help -- --clean: clean_C -- rm -fr bin -- rm -fr p7zip.app -- rm -f Lang -- rm -fr CPP/7zip/P7ZIP.* -- rm -fr CPP/7zip/CMAKE/P7ZIP.* -- rm -fr CPP/7zip/PREMAKE/P7ZIP.* -- rm -f CPP/7zip/QMAKE/*/*.o -- rm -f CPP/7zip/QMAKE/*/Makefile -- rm -f CPP/7zip/QMAKE/*/*.pro.user -- rm -f CPP/7zip/QMAKE/*/*.x -- -find . -name "build*" -exec rm -fr {} \; -- -find . -name "*-build-*" -exec rm -fr {} \; -- -find . -name "*.user" -exec rm -f {} \; -- -find . -name "._*" -exec rm -f {} \; -- rm -fr CPP/7zip/ANDROID/libs -- rm -fr CPP/7zip/ANDROID/obj -- rm -f make.log 1 2 cppcheck.out scan-build.out -- rm -f check/7z.so -- rm -fr p7zip.app/Contents/MacOS -- cd check ; ./clean_all.sh -- -- --clean_full:clean -- find . -name "makefile.depend" -exec rm -f {} \; -exec touch {} \; # empty makefile.depend -- find . -name "*~" -exec rm -f {} \; -- find . -name "*.orig" -exec rm -fr {} \; # kdiff3 merge -- find . -name ".*.swp" -exec rm -f {} \; -- find . -name "*.i" -exec rm -f {} \; -- find . -name "*.s" -exec rm -f {} \; -- find . -name ".DS_Store" -exec rm -f {} \; # MacOSX -- find . -name "._*" -exec rm -f {} \; # MacOSX -- find . -name "*.pyc" -exec rm -f {} \; -- find . -name "*.[ch]" -exec chmod -x {} \; -- find . -name "*.cpp" -exec chmod -x {} \; -- find . -name "*.asm" -exec chmod -x {} \; -- find . -name "makefile*" -exec chmod -x {} \; -- chmod -x ChangeLog README TODO man1/* DOC/*.txt -- chmod +x contrib/VirtualFileSystemForMidnightCommander/u7z -- chmod +x contrib/gzip-like_CLI_wrapper_for_7z/p7zip -- chmod +x install.sh check/*.sh -- --test: 7za sfx -- cd check ; TOOLS="${TOOLS}" ./check.sh "`pwd`/../bin/7za" -- --test_7z: 7z sfx -- cd check ; TOOLS="${TOOLS}" ./check.sh "`pwd`/../bin/7z" -- --test_7zr: 7zr sfx -- cd check ; TOOLS="${TOOLS}" ./check_7zr.sh "`pwd`/../bin/7zr" -- --test_7zG: 7zG sfx -- cd check ; TOOLS="${TOOLS}" ./check.sh "`pwd`/../bin/7zG" -- --test_Client7z: Client7z -- cd check ; TOOLS="${TOOLS}" ./check_Client7z.sh "`pwd`/../bin/Client7z" -- --install: -- ./install.sh $(DEST_BIN) $(DEST_SHARE) $(DEST_MAN) $(DEST_SHARE_DOC) $(DEST_DIR) -- --# cppcheck -f : test all flags --cppcheck: -- cppcheck --enable=all -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DNDEBUG -D_REENTRANT -DENV_UNIX -D_7ZIP_LARGE_PAGES -DBREAK_HANDLER -DUNICODE -D_UNICODE . 2>&1 | tee -i cppcheck.out -- --REP=$(shell pwd) --ARCHIVE=$(shell basename $(REP)) -- --.PHONY: tar_all tar_all2 src_7z tar_bin tar_bin2 -- --tar_all : clean_full -- rm -f ../$(ARCHIVE)_src_all.tar.bz2 -- cp makefile.linux_any_cpu makefile.machine -- cd .. ; (tar cf - $(ARCHIVE) | bzip2 -9 > $(ARCHIVE)_src_all.tar.bz2) -- --tar_all2 : clean_full -- rm -f ../$(ARCHIVE)_src_all.tar.bz2 -- cp makefile.linux_any_cpu makefile.machine -- cd .. ; (tar cf - $(ARCHIVE) | 7za a -mx=9 -tbzip2 -si $(ARCHIVE)_src_all.tar.bz2 ) -- --src_7z : clean_full -- rm -f ../$(ARCHIVE)_src.7z -- cd .. ; 7za a -mx=9 -m0=ppmd:mem=128m:o=32 $(ARCHIVE)_src.7z $(ARCHIVE) -- --tar_bin: -- rm -f ../$(ARCHIVE)_x86_linux_bin.tar.bz2 -- chmod +x install.sh contrib/VirtualFileSystemForMidnightCommander/u7z contrib/gzip-like_CLI_wrapper_for_7z/p7zip -- cd .. ; (tar cf - $(ARCHIVE)/bin $(ARCHIVE)/contrib $(ARCHIVE)/man1 $(ARCHIVE)/install.sh $(ARCHIVE)/ChangeLog $(ARCHIVE)/DOC $(ARCHIVE)/README $(ARCHIVE)/TODO | bzip2 -9 > $(ARCHIVE)_x86_linux_bin.tar.bz2) -- --tar_bin2: -- rm -f ../$(ARCHIVE)_x86_linux_bin.tar.bz2 -- chmod +x install.sh contrib/VirtualFileSystemForMidnightCommander/u7z contrib/gzip-like_CLI_wrapper_for_7z/p7zip -- cd .. ; (tar cf - $(ARCHIVE)/bin $(ARCHIVE)/contrib $(ARCHIVE)/man1 $(ARCHIVE)/install.sh $(ARCHIVE)/ChangeLog $(ARCHIVE)/DOC $(ARCHIVE)/README $(ARCHIVE)/TODO | 7za a -mx=9 -tbzip2 -si $(ARCHIVE)_x86_linux_bin.tar.bz2) - diff -Nru p7zip-rar-16.02/debian/patches/03-include-linux-makefile.patch p7zip-rar-16.02+really25.00+ds/debian/patches/03-include-linux-makefile.patch --- p7zip-rar-16.02/debian/patches/03-include-linux-makefile.patch 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/patches/03-include-linux-makefile.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,82 +0,0 @@ -From: Robert Luberda <[email protected]> -Date: Fri, 22 Jan 2016 11:16:14 +0100 -Subject: Include linux makefile - -Include appropriate makefile from makefile.machine - - makefile.linux_x86_asm_gcc_4.X on i386; - - makefile.linux_amd64_asm on amd64; - - makefile.linux_any_cpu_gcc_4.X otherwise. - -Update makefile.linux_amd64_asm to have the same visibility -flags as the *gcc_4.X makefiles. - -Update makefile.linux_x86_asm_gcc_4.X to use yasm instead -of nasm. ---- - makefile.linux_amd64_asm | 3 +++ - makefile.linux_x86_asm_gcc_4.X | 2 +- - makefile.machine | 20 ++++++++++++++++++++ - 3 files changed, 24 insertions(+), 1 deletion(-) - -diff --git a/makefile.linux_amd64_asm b/makefile.linux_amd64_asm -index 075c6a8..223559d 100644 ---- a/makefile.linux_amd64_asm -+++ b/makefile.linux_amd64_asm -@@ -11,6 +11,9 @@ ALLFLAGS=-m64 ${OPTFLAGS} -pipe \ - -D_7ZIP_ASM \ - $(LOCAL_FLAGS) - -+ALLFLAGS_CPP=-DENV_HAVE_GCCVISIBILITYPATCH -fvisibility=hidden -fvisibility-inlines-hidden -+ -+ - CXX=g++ - CC=gcc - CC_SHARED=-fPIC -diff --git a/makefile.linux_x86_asm_gcc_4.X b/makefile.linux_x86_asm_gcc_4.X -index 1ac339b..3b86ccc 100644 ---- a/makefile.linux_x86_asm_gcc_4.X -+++ b/makefile.linux_x86_asm_gcc_4.X -@@ -18,7 +18,7 @@ CXX=g++ - CC=gcc - CC_SHARED=-fPIC - LINK_SHARED=-fPIC -shared --ASM=nasm -f elf -+ASM=yasm -f elf - - PRE_COMPILED_HEADER=StdAfx.h.gch - -diff --git a/makefile.machine b/makefile.machine -index 9e34c34..715e900 100644 ---- a/makefile.machine -+++ b/makefile.machine -@@ -1,6 +1,25 @@ - # - # makefile for Linux (x86, PPC, alpha ...) - # -+ifeq (1,1) # In debian always include the approrpiate makefile -+ -+ ifndef DEBIAN_P7ZIP_MAKEFILE -+ -+ ifeq (i386,$(DEB_HOST_ARCH)) -+ export DEBIAN_P7ZIP_MAKEFILE := makefile.linux_x86_asm_gcc_4.X -+ else -+ ifeq (amd64.64,$(DEB_HOST_ARCH).$(DEB_HOST_ARCH_BITS)) -+ export DEBIAN_P7ZIP_MAKEFILE := makefile.linux_amd64_asm -+ else -+ export DEBIAN_P7ZIP_MAKEFILE := makefile.linux_any_cpu_gcc_4.X # default -+ endif -+ endif -+ -+ endif -+ -+ include $(dir $(lastword $(MAKEFILE_LIST)))/$(DEBIAN_P7ZIP_MAKEFILE) -+ -+else - - OPTFLAGS=-O -s - -@@ -21,3 +40,4 @@ LOCAL_LIBS_DLL=$(LOCAL_LIBS) -ldl - OBJ_CRC32=$(OBJ_CRC32_C) - OBJ_AES= - -+endif diff -Nru p7zip-rar-16.02/debian/patches/05-hardening-flags.patch p7zip-rar-16.02+really25.00+ds/debian/patches/05-hardening-flags.patch --- p7zip-rar-16.02/debian/patches/05-hardening-flags.patch 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/patches/05-hardening-flags.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,33 +0,0 @@ -From: Robert Luberda <[email protected]> -Date: Fri, 22 Jan 2016 00:53:09 +0100 -Subject: Hardening flags - -Add support for $(CPPFLAGS) and do not override $(CXXFLAGS) -and $(CFLAGS) - -Bug-Debian: https://bugs.debian.org/#682167 ---- - makefile.glb | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/makefile.glb b/makefile.glb -index fb001d5..e10ae03 100644 ---- a/makefile.glb -+++ b/makefile.glb -@@ -1,14 +1,14 @@ - - RM=rm -f - --CFLAGS=-c -I. \ -+CFLAGS+=$(CPPFLAGS) -c -I. \ - -I../../../../C \ - -I../../../../CPP/myWindows \ - -I../../../../CPP/include_windows \ - -I../../../../CPP \ - $(ALLFLAGS) $(ALLFLAGS_C) - --CXXFLAGS=-c -I. \ -+CXXFLAGS+=$(CPPFLAGS) -c -I. \ - -I../../../../C \ - -I../../../../CPP/myWindows \ - -I../../../../CPP/include_windows \ diff -Nru p7zip-rar-16.02/debian/patches/06-CVE-2018-5996.patch p7zip-rar-16.02+really25.00+ds/debian/patches/06-CVE-2018-5996.patch --- p7zip-rar-16.02/debian/patches/06-CVE-2018-5996.patch 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/patches/06-CVE-2018-5996.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,221 +0,0 @@ -From: Robert Luberda <[email protected]> -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 -Nru p7zip-rar-16.02/debian/patches/CVE-2018-10115.patch p7zip-rar-16.02+really25.00+ds/debian/patches/CVE-2018-10115.patch --- p7zip-rar-16.02/debian/patches/CVE-2018-10115.patch 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/patches/CVE-2018-10115.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,311 +0,0 @@ -From: Robert Luberda <[email protected]> -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 -Nru p7zip-rar-16.02/debian/patches/series p7zip-rar-16.02+really25.00+ds/debian/patches/series --- p7zip-rar-16.02/debian/patches/series 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/patches/series 2026-03-04 08:03:20.000000000 +0100 @@ -1,5 +1,3 @@ -01-clean-makefile.patch -03-include-linux-makefile.patch -05-hardening-flags.patch -06-CVE-2018-5996.patch -CVE-2018-10115.patch +0001-Accept-Debian-build-flags.patch +0002-Add-RAR-plugin-builder.patch +0003-Add-missing-CRC-table-constructor-Closes-1118733.patch diff -Nru p7zip-rar-16.02/debian/rules p7zip-rar-16.02+really25.00+ds/debian/rules --- p7zip-rar-16.02/debian/rules 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/rules 2026-03-04 08:24:34.000000000 +0100 @@ -1,31 +1,19 @@ #!/usr/bin/make -f -DH_AUTO_OPTIONS := -v -Smakefile --parallel - -export DEB_BUILD_MAINT_OPTIONS=hardening=+all - include /usr/share/dpkg/architecture.mk -ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) - CC := $(DEB_HOST_GNU_TYPE)-gcc - CXX := $(DEB_HOST_GNU_TYPE)-g++ -else - CC := gcc - CXX := g++ -endif +export DEB_BUILD_MAINT_OPTIONS=hardening=+all reproducible=+all %: - dh ${@} - -override_dh_auto_clean: - # Make sure patches are applied otherwise `make clean' fails - # on trying to clean the removed Rar directory (see #769520). - dpkg-source --before-build $(CURDIR) - dh_auto_clean $(DH_AUTO_OPTIONS) -- OPTFLAGS= - rm -rf bin/ + dh $@ override_dh_auto_build: - dh_auto_build $(DH_AUTO_OPTIONS) -- OPTFLAGS= rar + $(MAKE) -C CPP/7zip/Bundles/FormatRAR -f ../../cmpl_gcc.mak \ + CROSS_COMPILE="$(DEB_HOST_GNU_TYPE)-" \ + DEB_CFLAGS="$(CFLAGS) -pipe" \ + DEB_CXXFLAGS="$(CXXFLAGS) -pipe" \ + DEB_CPPFLAGS="$(CPPFLAGS)" \ + DEB_LDFLAGS="$(LDFLAGS) -pipe" -override_dh_auto_install: - dh_install bin/Codecs usr/lib/p7zip +override_dh_auto_clean: + $(MAKE) -C CPP/7zip/Bundles/FormatRAR -f ../../cmpl_gcc.mak clean diff -Nru p7zip-rar-16.02/debian/salsa-ci.yml p7zip-rar-16.02+really25.00+ds/debian/salsa-ci.yml --- p7zip-rar-16.02/debian/salsa-ci.yml 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/salsa-ci.yml 2026-03-04 09:52:01.000000000 +0100 @@ -0,0 +1,3 @@ +--- +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml diff -Nru p7zip-rar-16.02/debian/source/include-binaries p7zip-rar-16.02+really25.00+ds/debian/source/include-binaries --- p7zip-rar-16.02/debian/source/include-binaries 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/source/include-binaries 2026-03-04 08:03:20.000000000 +0100 @@ -0,0 +1 @@ +debian/tests/data/data.rar diff -Nru p7zip-rar-16.02/debian/source/options p7zip-rar-16.02+really25.00+ds/debian/source/options --- p7zip-rar-16.02/debian/source/options 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/source/options 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -diff-ignore -tar-ignore diff -Nru p7zip-rar-16.02/debian/tests/control p7zip-rar-16.02+really25.00+ds/debian/tests/control --- p7zip-rar-16.02/debian/tests/control 1970-01-01 01:00:00.000000000 +0100 +++ p7zip-rar-16.02+really25.00+ds/debian/tests/control 2026-03-04 08:03:20.000000000 +0100 @@ -0,0 +1,14 @@ +# -*- mode: conf -*- + +# Check RAR plugin is really loaded +Features: test-name=rar-plugin-load +Test-Command: 7z i +Restrictions: superficial + +# Check RAR container format support +Features: test-name=rar-list +Test-Command: 7z l debian/tests/data/data.rar + +# Check RAR complession decoder works +Features: test-name=rar-test +Test-Command: 7z t debian/tests/data/data.rar diff -Nru p7zip-rar-16.02/debian/watch p7zip-rar-16.02+really25.00+ds/debian/watch --- p7zip-rar-16.02/debian/watch 2018-05-30 09:04:26.000000000 +0200 +++ p7zip-rar-16.02+really25.00+ds/debian/watch 2026-03-04 21:43:57.000000000 +0100 @@ -1,3 +1,2 @@ +# To ease auditing, please reuse the orig tarball from the 7zip-rar package. version=4 - -https://qa.debian.org/watch/sf.php/p7zip/p7zip_(.*)_src_all.tar.bz2 debian uupdate

