[packages/p7zip] - updated to 26.02, switched to upstream 7-Zip sources
arekm
arekm at pld-linux.org
Sun Jul 19 10:44:30 CEST 2026
commit f784477df5fa89848be78b7110d1eb7bc98587e3
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Sun Jul 19 10:43:19 2026 +0200
- updated to 26.02, switched to upstream 7-Zip sources
p7zip upstream died in 2016; switch to maintained upstream
while keeping spec name for compatibility
05-hardening-flags.patch | 33 ------
14-Fix-g++-warning.patch | 24 ----
7z.1 | 279 +++++++++++++++++++++++++++++++++++++++++++++
7zz.1 | 22 ++++
CVE-2016-9296.patch | 12 --
CVE-2017-17969.patch | 26 -----
gcc10-conversion.patch | 26 -----
p7zip-sfx-module-dir.patch | 15 +++
p7zip.spec | 81 ++++++-------
9 files changed, 352 insertions(+), 166 deletions(-)
---
diff --git a/p7zip.spec b/p7zip.spec
index 91e0449..3fc065d 100644
--- a/p7zip.spec
+++ b/p7zip.spec
@@ -1,20 +1,19 @@
Summary: File archiver with highest compression ratio
Summary(pl.UTF-8): Paker plików z najwyższym stopniem kompresji
Name: p7zip
-Version: 16.02
-Release: 3
-License: LGPL v2.1+
+Version: 26.02
+Release: 1
+License: LGPL v2.1+ with unRAR restriction (RAR decoder), BSD (Lzfse, Zstd, Xxh64)
Group: Applications/Archiving
-Source0: http://downloads.sourceforge.net/p7zip/%{name}_%{version}_src_all.tar.bz2
-# Source0-md5: a0128d661cfe7cc8c121e73519c54fbf
-Patch0: 05-hardening-flags.patch
-Patch1: 14-Fix-g++-warning.patch
-Patch2: CVE-2016-9296.patch
-Patch3: CVE-2017-17969.patch
-Patch4: gcc10-conversion.patch
-URL: http://p7zip.sourceforge.net/
+#Source0Download: https://github.com/ip7z/7zip/releases
+Source0: https://github.com/ip7z/7zip/archive/%{version}/7zip-%{version}.tar.gz
+# Source0-md5: 29f692dc18d150acbbd31a86e3ffe610
+# upstream ships no manual pages; these are from Debian's 7zip packaging (LGPL v2.1+)
+Source1: 7z.1
+Source2: 7zz.1
+Patch0: %{name}-sfx-module-dir.patch
+URL: https://7-zip.org/
BuildRequires: libstdc++-devel
-BuildRequires: sed >= 4.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -50,61 +49,53 @@ Group: Applications/Archiving
Obsoletes: p7zip-stand-alone
%description standalone
-Standalone version of 7zip. It handles less archive formats than
-plugin capable version.
+Standalone version of 7zip. It handles less archive formats than the
+full version.
%description standalone -l pl.UTF-8
-Samodzielna wersja 7zip-a. Obsługuje mniej formatów archiwów niż
-wersja obsługująca wtyczki.
+Samodzielna wersja 7zip-a. Obsługuje mniej formatów archiwów niż wersja
+pełna.
%prep
-%setup -q -n %{name}_%{version}
+%setup -q -n 7zip-%{version}
%patch -P0 -p1
-%patch -P1 -p1
-%patch -P2 -p1
-%patch -P3 -p1
-%patch -P4 -p1
-
-%{__sed} -i -e 's/ -s / /' makefile.machine
-
-find . -name '*.cpp' -exec %{__sed} -i -e 's at getenv("P7ZIP_HOME_DIR")@"%{_libdir}/%{name}/"@g' {} \;
%build
-#%%{__make} all2 test \
-%{__make} all2 \
- CC="%{__cc} \$(ALLFLAGS)" \
- CXX="%{__cxx} \$(ALLFLAGS)" \
- CPPFLAGS="%{rpmcppflags}" \
- LDFLAGS="%{rpmldflags}" \
- OPTFLAGS="%{rpmcxxflags}"
+# LOCAL_FLAGS is not a usable hook - every bundle sets it to its own defines
+# (-DZ7_SFX etc.); CFLAGS_BASE2/CXXFLAGS_BASE2 are unused by upstream.
+# LFLAGS_STRIP= keeps upstream's -s away from the link so debuginfo survives.
+%define buildflags CFLAGS_BASE2="%{rpmcppflags} %{rpmcflags}" CXXFLAGS_BASE2="%{rpmcppflags} %{rpmcxxflags} -DZ7_SFX_MODULE_DIR='\\"%{_libdir}/%{name}/\\"'" LDFLAGS_STATIC_3="%{rpmldflags}" LFLAGS_STRIP= -f makefile.gcc
+
+%{__make} -C CPP/7zip/Bundles/Alone2 %{buildflags}
+%{__make} -C CPP/7zip/Bundles/Alone %{buildflags}
+%{__make} -C CPP/7zip/Bundles/SFXCon %{buildflags}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/%{name}/{Codecs,Formats},%{_mandir}/man1}
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}/%{name},%{_mandir}/man1}
-install bin/{7z,7za} $RPM_BUILD_ROOT%{_bindir}
-install bin/7z.so $RPM_BUILD_ROOT%{_libdir}/%{name}
-install bin/Codecs/* $RPM_BUILD_ROOT%{_libdir}/%{name}/Codecs
-install bin/7zCon.sfx $RPM_BUILD_ROOT%{_libdir}/%{name}
+install -p CPP/7zip/Bundles/Alone2/_o/7zz $RPM_BUILD_ROOT%{_bindir}/7zz
+install -p CPP/7zip/Bundles/Alone/_o/7za $RPM_BUILD_ROOT%{_bindir}/7za
+ln -sf 7zz $RPM_BUILD_ROOT%{_bindir}/7z
+install -p CPP/7zip/Bundles/SFXCon/_o/7zCon $RPM_BUILD_ROOT%{_libdir}/%{name}/7zCon.sfx
-install man1/*.1 $RPM_BUILD_ROOT%{_mandir}/man1
-# 7zr is not packaged (subset of 7za functionality)
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/7zr.1
+cp -p %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/man1
+# Debian ships 7za.1 as a ".so man1/7z.1" redirect, which dangles when
+# -standalone is installed without the main package
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_mandir}/man1/7za.1
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc DOC/{MANUAL,{7zFormat,License,Methods,lzma,readme,src-history}.txt} ChangeLog README TODO
-# devel: %doc DOC/7zC.txt
+%doc DOC/{7zFormat,License,Methods,lzma,readme,src-history,unRarLicense}.txt
%attr(755,root,root) %{_bindir}/7z
+%attr(755,root,root) %{_bindir}/7zz
%dir %{_libdir}/%{name}
%attr(755,root,root) %{_libdir}/%{name}/7zCon.sfx
-%attr(755,root,root) %{_libdir}/%{name}/7z.so
-%dir %{_libdir}/%{name}/Codecs
-%attr(755,root,root) %{_libdir}/%{name}/Codecs/*
%{_mandir}/man1/7z.1*
+%{_mandir}/man1/7zz.1*
%files standalone
%defattr(644,root,root,755)
diff --git a/05-hardening-flags.patch b/05-hardening-flags.patch
deleted file mode 100644
index aa42431..0000000
--- a/05-hardening-flags.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Robert Luberda <robert at debian.org>
-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 --git a/14-Fix-g++-warning.patch b/14-Fix-g++-warning.patch
deleted file mode 100644
index 226e239..0000000
--- a/14-Fix-g++-warning.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Robert Luberda <robert at debian.org>
-Date: Sun, 28 Jan 2018 22:19:13 +0100
-Subject: Fix g++ warning
-
-Fix for "use of an operand of type 'bool' in 'operator++'
-is deprecated [-Wdeprecated]" warning taken from 7zip 18.00.beta
-package.
----
- CPP/7zip/Archive/Wim/WimHandler.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CPP/7zip/Archive/Wim/WimHandler.cpp b/CPP/7zip/Archive/Wim/WimHandler.cpp
-index 27d3298..4ff5cfe 100644
---- a/CPP/7zip/Archive/Wim/WimHandler.cpp
-+++ b/CPP/7zip/Archive/Wim/WimHandler.cpp
-@@ -298,7 +298,7 @@ STDMETHODIMP CHandler::GetArchiveProperty(PROPID propID, PROPVARIANT *value)
-
- AString res;
-
-- bool numMethods = 0;
-+ unsigned numMethods = 0;
- for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
- {
- if (methodMask & ((UInt32)1 << i))
diff --git a/7z.1 b/7z.1
new file mode 100644
index 0000000..e32be6f
--- /dev/null
+++ b/7z.1
@@ -0,0 +1,279 @@
+.\"
+.TH 7z "1" "Apr 2026" "26.01"
+.SH NAME
+7z \- 7-Zip file archiver with a high compression ratio
+.SH SYNOPSIS
+.SY 7z
+\fI\,command\/\fR
+[\fI\,switches\/\fR\&.\|.\|.\&]
+\fI\,archive_name\/\fR
+[\fI\,file_names\/\fR]
+[@\fI\,listfile\/\fR]
+.YS
+.SY 7zz
+\fI\,command\/\fR
+[\fI\,switches\/\fR\&.\|.\|.\&]
+\fI\,archive_name\/\fR
+[\fI\,file_names\/\fR]
+[@\fI\,listfile\/\fR]
+.YS
+.SY 7za
+\fI\,command\/\fR
+[\fI\,switches\/\fR\&.\|.\|.\&]
+\fI\,archive_name\/\fR
+[\fI\,file_names\/\fR]
+[@\fI\,listfile\/\fR]
+.YS
+.SY 7zr
+\fI\,command\/\fR
+[\fI\,switches\/\fR\&.\|.\|.\&]
+\fI\,archive_name\/\fR
+[\fI\,file_names\/\fR]
+[@\fI\,listfile\/\fR]
+.YS
+.SH DESCRIPTION
+7-Zip file archiver with a high compression ratio
+.br
+There are some variants for 7z executable.
+.TP
+7z
+Full featured with plugin support
+.TP
+7zz
+Full featured single binary executable with no plugins support
+.TP
+7za
+Supports major formats only, no plugins, but smaller executable size
+.TP
+7zr
+Only supports LZMA codec and related formats (7z, lzma, xz),
+no plugins, but smallest executable size
+.SH Important Note of 7zip behavior
+When used without any \fI\,file_names\fR\, argument, 7z implicitly uses "."
+for \fI\,file_names\fR\,.
+This behavior leads some unexpected result.
+.TP
+"a" (add) command
+Recursively add files from current directory into \fI\,archive_name\fR file.
+.TP
+"d" (delete) command
+Recursively delete files from \fI\,archive_name\fR file.
+This means \fB\,delete all files\fR from \fI\,archive_name\fR file.
+.SH OPTIONS
+.SS Commands
+.TP
+a
+Add files to archive
+.TP
+b
+Benchmark
+.TP
+d
+Delete files from archive
+.TP
+e
+Extract files from archive (without using directory names)
+.TP
+h
+Calculate hash values for files
+.TP
+i
+Show information about supported formats
+.TP
+l
+List contents of archive
+.TP
+rn
+Rename files in archive
+.TP
+t
+Test integrity of archive
+.TP
+u
+Update files to archive
+.TP
+x
+eXtract files with full paths
+.SS Switches
+.TP
+\-\-
+Stop switches and @\fI\,listfile\/\fR parsing
+.TP
+\-ai[r[\-|0]]{@\fI\,listfile\/\fR|!\fI\,wildcard\/\fR}
+Include archives
+.TP
+\-ax[r[\-|0]]{@\fI\,listfile\/\fR|!\fI\,wildcard\/\fR}
+eXclude archives
+.TP
+\-ao{a|s|t|u}
+set Overwrite mode
+.TP
+\-an
+disable archive_name field
+.TP
+\-bb[0\-3]
+set output log level
+.TP
+\-bd
+disable progress indicator
+.TP
+\-bs{o|e|p}{0|1|2}
+set output stream for output/error/progress line
+.TP
+\-bt
+show execution time statistics
+.TP
+\-i[r[\-|0]]{@\fI\,listfile\/\fR|!\fI\,wildcard\/\fR}
+Include filenames
+.TP
+\-m{\fI\,Parameters\/\fR}
+set compression Method
+.RS
+.TQ
+\-mmt[\fI\,N\/\fR]
+set number of CPU threads
+.TQ
+\-mx[\fI\,N\/\fR]
+set compression level: \-mx1 (fastest) ... \-mx9 (ultra)
+
+.TQ
+\-mcp=[\fIcodepage number\fR]
+[Extra options for Zip format]:
+.br
+Use \fIcodepage number\fR for internal file name encoding in the archive file.
+When 7-Zip detects legacy (MS-DOS etc.) Zip format, 7-Zip automatically choose suitable legacy
+encoding codepage number for internal file name encoding by your current locale,
+and converts to UTF-8 for external file name encoding.
+If automatic codepage chooser fails, use this option to manually set codepage number.
+.br
+(example): Use "\-mcp=437" for CP437
+.RE
+.TP
+\-o{\fI\,Directory\/\fR}
+set Output directory
+.TP
+\-p{\fI\,Password\/\fR}
+set Password
+.TP
+\-r[\-|0]
+Recurse subdirectories for name search
+.TP
+\-sa{a|e|s}
+set Archive name mode
+.TP
+\-scc{UTF\-8|WIN|DOS}
+set charset for for console input/output
+.TP
+\-scs{UTF\-8|UTF\-16LE|UTF\-16BE|WIN|DOS|{\fI\,id\/\fR}}
+set charset for list files
+.TP
+\-scrc[CRC32|CRC64|SHA1|SHA256|*]
+set hash function for \fBx\fR, \fBe\fR, \fBh\fR commands
+.TP
+\-sdel
+delete files after compression
+.TP
+\-seml[.]
+send archive by email
+.TP
+\-sfx[{\fI\,name\/\fR}]
+Create SFX archive
+.TP
+\-si[{\fI\,name\/\fR}]
+read data from stdin
+.TP
+\-slp
+set Large Pages mode
+.TP
+\-slt
+show technical information for \fBl\fR (List) command
+.TP
+\-snh
+store hard links as links
+.TP
+\-snl
+store symbolic links as links
+.TP
+\-sni
+store NT security information
+.TP
+\-sns[\-]
+store NTFS alternate streams
+.TP
+\-so
+write data to stdout
+.TP
+\-spd
+disable wildcard matching for file names
+.TP
+\-spe
+eliminate duplication of root folder for extract command
+.TP
+\-spf
+use fully qualified file paths
+.TP
+\-spo{d|c|r}
+specifies the path generation mode for the output directory
+for archive extraction. The output directory path is generated from the path specified
+in the -o{\fI\,dir_path\fR\,} switch and the name of the archive being unpacked.
+.RS
+.TQ
+\-spod
+for Linux/Posix/macOS: -o{\fI\,dir_path\fR\,} specifies the direct path to the output directory.
+The asterisk (*) character in {\fI\,dir_path\fR\,} will not be replaced by the archive name.
+.TQ
+\-spoc
+7-Zip will concatenate the path specified in -o{\fI\,dir_path\fR\,} with the archive name
+to form the final path to the output directory.
+.TQ
+\-spor
+7-Zip will replace asterisk (*) character in the path specified in the -o{\fI\,dir_path\fR\,}
+with the archive name. This is the default option.
+.RE
+.TP
+\-ssc[\-]
+set sensitive case mode
+.TP
+\-sse
+stop archive creating, if it can't open some input file
+.TP
+\-ssp
+do not change Last Access Time of source files while archiving
+.TP
+\-ssw
+compress shared files
+.TP
+\-stl
+set archive timestamp from the most recently modified file
+.TP
+\-stm{\fI\,HexMask\/\fR}
+set CPU thread affinity mask (hexadecimal number)
+.TP
+\-stx{\fI\,Type\/\fR}
+exclude archive type
+.TP
+\-t{\fI\,Type\/\fR}
+Set type of archive
+.TP
+\-u[\-][p\fI\,#\/\fR][q\fI\,#\/\fR][r\fI\,#\/\fR][x\fI\,#\/\fR][y\fI\,#\/\fR][z\fI\,#\/\fR][!\fI\,newArchiveName\/\fR]
+Update options
+.TP
+\-v{\fI\,Size\/\fR}[b|k|m|g]
+Create volumes
+.TP
+\-w[{\fI\,path\/\fR}]
+assign Work directory. Empty path means a temporary directory
+.TP
+\-x[r[\-|0]]{@\fI\,listfile\/\fR|!\fI\,wildcard\/\fR}
+eXclude filenames
+.TP
+\-y
+assume Yes on all queries
+.SH SEE ALSO
+7-Zip
+.UR https://\:www.7-zip.org/
+.UE
+.SH COPYRIGHT
+Copyright \(co 1999\-2026 Igor Pavlov.
+.br
+Distributed under the LGPL-2.1+ license.
diff --git a/7zz.1 b/7zz.1
new file mode 100644
index 0000000..9c02486
--- /dev/null
+++ b/7zz.1
@@ -0,0 +1,22 @@
+.\"
+.TH 7zz "1" "Jan 2024" "23.01"
+.SH NAME
+7zz - 7-Zip file archiver with a high compression ratio (standalone)
+.SH SYNOPSIS
+.SY 7zz
+\fI\,command\/\fR
+[\fI\,switches\/\fR\&.\|.\|.\&]
+\fI\,archive_name\/\fR
+[\fI\,file_names\/\fR]
+[@\fI\,listfile\/\fR]
+.YS
+.SH DESCRIPTION
+7-Zip file archiver with a high compression ratio
+.SH SEE ALSO
+7z(1), 7-Zip
+.UR https://\:www.7-zip.org/
+.UE
+.SH COPYRIGHT
+Copyright \(co 1999\-2023 Igor Pavlov.
+.br
+Distributed under the LGPL-2.1+ license.
diff --git a/CVE-2016-9296.patch b/CVE-2016-9296.patch
deleted file mode 100644
index 773f92a..0000000
--- a/CVE-2016-9296.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- ./CPP/7zip/Archive/7z/7zIn.cpp.orig 2016-11-21 01:42:29.460901230 +0000
-+++ ./CPP/7zip/Archive/7z/7zIn.cpp 2016-11-21 01:42:57.481197725 +0000
-@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedS
- if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
- ThrowIncorrect();
- }
-- HeadersSize += folders.PackPositions[folders.NumPackStreams];
-+ if (folders.PackPositions)
-+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
- return S_OK;
- }
-
diff --git a/CVE-2017-17969.patch b/CVE-2017-17969.patch
deleted file mode 100644
index ebc0ac9..0000000
--- a/CVE-2017-17969.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 79bca880ce7bcf07216c45f93afea545e0344418 Mon Sep 17 00:00:00 2001
-From: aone <aone at keka.io>
-Date: Mon, 5 Feb 2018 13:01:09 +0100
-Subject: [PATCH] Security fix CVE-2017-17969
-
----
- CPP/7zip/Compress/ShrinkDecoder.cpp | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
-index 80b7e67..5bb0559 100644
---- a/CPP/7zip/Compress/ShrinkDecoder.cpp
-+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
-@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
- {
- _stack[i++] = _suffixes[cur];
- cur = _parents[cur];
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
- }
-+
-+ if (cur >= kNumItems || i >= kNumItems)
-+ break;
-
- _stack[i++] = (Byte)cur;
- lastChar2 = (Byte)cur;
diff --git a/gcc10-conversion.patch b/gcc10-conversion.patch
deleted file mode 100644
index 45f9f84..0000000
--- a/gcc10-conversion.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Nrup a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
---- a/CPP/Windows/ErrorMsg.cpp 2015-01-18 11:20:28.000000000 -0700
-+++ b/CPP/Windows/ErrorMsg.cpp 2019-09-24 13:01:18.887289152 -0600
-@@ -14,14 +14,14 @@ UString MyFormatMessage(DWORD errorCode)
- AString msg;
-
- switch(errorCode) {
-- case ERROR_NO_MORE_FILES : txt = "No more files"; break ;
-- case E_NOTIMPL : txt = "E_NOTIMPL"; break ;
-- case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;
-- case E_ABORT : txt = "E_ABORT"; break ;
-- case E_FAIL : txt = "E_FAIL"; break ;
-- case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
-- case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;
-- case E_INVALIDARG : txt = "E_INVALIDARG"; break ;
-+ case unsigned (ERROR_NO_MORE_FILES) : txt = "No more files"; break ;
-+ case unsigned (E_NOTIMPL) : txt = "E_NOTIMPL"; break ;
-+ case unsigned (E_NOINTERFACE) : txt = "E_NOINTERFACE"; break ;
-+ case unsigned (E_ABORT) : txt = "E_ABORT"; break ;
-+ case unsigned (E_FAIL) : txt = "E_FAIL"; break ;
-+ case unsigned (STG_E_INVALIDFUNCTION) : txt = "STG_E_INVALIDFUNCTION"; break ;
-+ case unsigned (E_OUTOFMEMORY) : txt = "E_OUTOFMEMORY"; break ;
-+ case unsigned (E_INVALIDARG) : txt = "E_INVALIDARG"; break ;
- case ERROR_DIRECTORY : txt = "Error Directory"; break ;
- default:
- txt = strerror(errorCode);
diff --git a/p7zip-sfx-module-dir.patch b/p7zip-sfx-module-dir.patch
new file mode 100644
index 0000000..f3482c8
--- /dev/null
+++ b/p7zip-sfx-module-dir.patch
@@ -0,0 +1,15 @@
+--- a/CPP/7zip/UI/Common/Update.cpp
++++ b/CPP/7zip/UI/Common/Update.cpp
+@@ -1177,7 +1177,12 @@
+ bool found = false;
+ if (options.SfxModule.Find(FCHAR_PATH_SEPARATOR) < 0)
+ {
++ // SFX modules live in a fixed data dir, not next to the executable (FHS)
++#ifdef Z7_SFX_MODULE_DIR
++ const FString fullName = FString(Z7_SFX_MODULE_DIR) + options.SfxModule;
++#else
+ const FString fullName = NDLL::GetModuleDirPrefix() + options.SfxModule;
++#endif
+ if (NFind::DoesFileExist_FollowLink(fullName))
+ {
+ options.SfxModule = fullName;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/p7zip.git/commitdiff/f784477df5fa89848be78b7110d1eb7bc98587e3
More information about the pld-cvs-commit
mailing list