Compare commits
4 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
51f2e00a64 | ||
|
|
a36dfa5ae6 |
||
|
|
7d0d042366 |
||
|
|
ed66170e44 |
5 changed files with 85 additions and 4 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1 +1,2 @@
|
|||
/7zip-24.09.tar.zst
|
||||
/7zip-25.01.tar.zst
|
||||
|
|
|
|||
75
7z-dont-echo-password.diff
Normal file
75
7z-dont-echo-password.diff
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
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 <stdio.h>
|
||||
+#include <termios.h>
|
||||
+#include <unistd.h>
|
||||
+#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);
|
||||
|
|
@ -1,10 +1,14 @@
|
|||
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
|
||||
@@ -1751,7 +1751,7 @@ FString GetModuleDirPrefix()
|
||||
@@ -1780,8 +1780,8 @@ FString GetModuleDirPrefix()
|
||||
FString s;
|
||||
|
||||
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;
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
%global obs_ver 16.03
|
||||
|
||||
Name: 7zip
|
||||
Version: 24.09
|
||||
Version: 25.01
|
||||
Release: %autorelease
|
||||
Summary: A file archiver
|
||||
|
||||
|
|
@ -22,6 +22,7 @@ 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
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (7zip-24.09.tar.zst) = 47e8f709209c4333bf2707a4b4953128a84669fce75fed3fc2d4d7b3b29db758481115f1d640d1becab200fcb6a83b84fd5fb448f7ac01ff9d99cc37674a2323
|
||||
SHA512 (7zip-25.01.tar.zst) = 3bd5ddddcfb120e83c101a42e41b1e3a37837bb2c117d1563199cb70524b1426e6dfcec761d956c40a931153587ecd3500d2f3a0f917323859ad5da86946013e
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue