diff --git a/.gitignore b/.gitignore index 33e4a32..d94f561 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ /7zip-24.09.tar.zst -/7zip-25.01.tar.zst diff --git a/7z-dont-echo-password.diff b/7z-dont-echo-password.diff deleted file mode 100644 index c08f764..0000000 --- a/7z-dont-echo-password.diff +++ /dev/null @@ -1,75 +0,0 @@ -From ece9df515b12f9bde2e8150f402db3f394d03db3 Mon Sep 17 00:00:00 2001 -From: Wes <5124946+wesinator@users.noreply.github.com> -Date: Tue, 4 Jun 2024 10:18:45 -0400 -Subject: [PATCH] Disable local echo display with input passwords in linux - -https://salsa.debian.org/debian/7zip/-/commit/7b5e9a72d4579b875906134943fb9590cf165d73 - -close #10 ---- - CPP/7zip/UI/Console/UserInputUtils.cpp | 35 ++++++++++++++++++++++++-- - 1 file changed, 33 insertions(+), 2 deletions(-) - -diff --git a/CPP/7zip/UI/Console/UserInputUtils.cpp b/CPP/7zip/UI/Console/UserInputUtils.cpp -index 2adf9dfed..eb44fa00a 100644 ---- a/CPP/7zip/UI/Console/UserInputUtils.cpp -+++ b/CPP/7zip/UI/Console/UserInputUtils.cpp -@@ -57,9 +57,18 @@ NUserAnswerMode::EEnum ScanUserYesNoAllQuit(CStdOutStream *outStream) - #ifdef _WIN32 - #ifndef UNDER_CE - #define MY_DISABLE_ECHO -+#define MY_DISABLE_ECHO_WIN32 - #endif - #endif - -+#ifdef unix -+#include -+#include -+#include -+#define MY_DISABLE_ECHO -+#define MY_DISABLE_ECHO_UNIX -+#endif -+ - static bool GetPassword(CStdOutStream *outStream, UString &psw) - { - if (outStream) -@@ -72,7 +81,7 @@ static bool GetPassword(CStdOutStream *outStream, UString &psw) - outStream->Flush(); - } - -- #ifdef MY_DISABLE_ECHO -+ #ifdef MY_DISABLE_ECHO_WIN32 - - const HANDLE console = GetStdHandle(STD_INPUT_HANDLE); - -@@ -90,7 +99,29 @@ static bool GetPassword(CStdOutStream *outStream, UString &psw) - const bool res = g_StdIn.ScanUStringUntilNewLine(psw); - if (wasChanged) - SetConsoleMode(console, mode); -- -+ -+ #elif defined(MY_DISABLE_ECHO_UNIX) -+ -+ int ifd = fileno(stdin); -+ bool wasChanged = false; -+ struct termios old_mode = {}; -+ struct termios new_mode = {}; -+ -+ if (tcgetattr(ifd, &old_mode) == 0) { -+ new_mode = old_mode; -+ new_mode.c_lflag &= ~ECHO; -+ -+ wasChanged = true; -+ -+ tcsetattr(ifd, TCSAFLUSH, &new_mode); -+ } -+ -+ bool res = g_StdIn.ScanUStringUntilNewLine(psw); -+ -+ if (wasChanged) { -+ tcsetattr(ifd, TCSAFLUSH, &old_mode); -+ } -+ - #else - - const bool res = g_StdIn.ScanUStringUntilNewLine(psw); diff --git a/7zip-find-so-in-libexec.diff b/7zip-find-so-in-libexec.diff index f63e141..1213bc5 100644 --- a/7zip-find-so-in-libexec.diff +++ b/7zip-find-so-in-libexec.diff @@ -1,14 +1,10 @@ -diff --git a/CPP/7zip/UI/Common/ArchiveCommandLine.cpp b/CPP/7zip/UI/Common/ArchiveCommandLine.cpp -index 7fe18fb..4b79e2d 100644 --- a/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +++ b/CPP/7zip/UI/Common/ArchiveCommandLine.cpp -@@ -1780,8 +1780,8 @@ FString GetModuleDirPrefix() - FString s; +@@ -1751,7 +1751,7 @@ FString GetModuleDirPrefix() s = fas2fs(g_ModuleDirPrefix); -- if (s.IsEmpty()) + if (s.IsEmpty()) - s = FTEXT(".") FSTRING_PATH_SEPARATOR; -+ if (s.IsEmpty() || s.IsPrefixedBy("/usr/bin")) + s = FTEXT("/usr/libexec/7zip") FSTRING_PATH_SEPARATOR; return s; /* diff --git a/7zip.spec b/7zip.spec index 59ca9bc..f873aeb 100644 --- a/7zip.spec +++ b/7zip.spec @@ -3,7 +3,7 @@ %global obs_ver 16.03 Name: 7zip -Version: 25.01 +Version: 24.09 Release: %autorelease Summary: A file archiver @@ -22,7 +22,6 @@ URL: https://7-zip.org # Source: https://github.com/ip7z/7zip/archive/%%{version}/%%{name}-%%{version}.tar.gz Source: %{name}-%{version}.tar.zst Source: strip-rar-support.sh -Patch: https://github.com/ip7z/7zip/pull/33.patch#/7z-dont-echo-password.diff # patch where 7z.so is loaded from so we don't need to do shenanigans like having the 7z binary # there and invoking via a wrapper Patch: 7zip-find-so-in-libexec.diff diff --git a/sources b/sources index a341e08..cf5f764 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (7zip-25.01.tar.zst) = 3bd5ddddcfb120e83c101a42e41b1e3a37837bb2c117d1563199cb70524b1426e6dfcec761d956c40a931153587ecd3500d2f3a0f917323859ad5da86946013e +SHA512 (7zip-24.09.tar.zst) = 47e8f709209c4333bf2707a4b4953128a84669fce75fed3fc2d4d7b3b29db758481115f1d640d1becab200fcb6a83b84fd5fb448f7ac01ff9d99cc37674a2323