[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