Upgrade to 0.15.0
Approved by: swills (mentor) Differential Revision: https://reviews.freebsd.org/D24717
This commit is contained in:
parent
27fa3f7263
commit
6219abfe93
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=539717
@ -2,7 +2,7 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= lxqt-sudo
|
||||
PORTVERSION= 0.14.1
|
||||
PORTVERSION= 0.15.0
|
||||
CATEGORIES= security
|
||||
MASTER_SITES= LXQT
|
||||
|
||||
@ -14,11 +14,12 @@ LICENSE= LGPL21+
|
||||
RUN_DEPENDS= sudo:security/sudo
|
||||
|
||||
USES= cmake compiler:c++14-lang gettext kde:5 lxqt qt:5 \
|
||||
pkgconfig tar:xz
|
||||
pkgconfig tar:xz gnome
|
||||
USE_QT= buildtools_build qmake_build core dbus gui svg widgets \
|
||||
x11extras xml
|
||||
|
||||
USE_KDE= windowsystem
|
||||
USE_LXQT= buildtools lxqt
|
||||
USE_GNOME= glib20
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
@ -1,3 +1,3 @@
|
||||
TIMESTAMP = 1563915013
|
||||
SHA256 (lxqt/lxqt-sudo-0.14.1.tar.xz) = 5e59d592b8cd06fe47ede6b1460fac08f5ccdb56dcdeddf599fcde39c57d7e55
|
||||
SIZE (lxqt/lxqt-sudo-0.14.1.tar.xz) = 30692
|
||||
TIMESTAMP = 1588437993
|
||||
SHA256 (lxqt/lxqt-sudo-0.15.0.tar.xz) = bc148b2aa80c3dc6fea200a848e25b5c0684295a70f876931f11ffd168fd8fec
|
||||
SIZE (lxqt/lxqt-sudo-0.15.0.tar.xz) = 34528
|
||||
|
@ -1,20 +1,15 @@
|
||||
--- sudo.cpp.orig 2019-01-25 23:40:04 UTC
|
||||
--- sudo.cpp.orig 2020-04-23 18:44:01 UTC
|
||||
+++ sudo.cpp
|
||||
@@ -38,7 +38,13 @@
|
||||
#include <QThread>
|
||||
#include <QProcessEnvironment>
|
||||
#include <QTimer>
|
||||
+#if defined(__linux__)
|
||||
#include <pty.h>
|
||||
+#elif defined(__FreeBSD__)
|
||||
@@ -44,7 +44,7 @@
|
||||
#else
|
||||
#include <errno.h>
|
||||
#include <termios.h>
|
||||
-#include <util.h>
|
||||
+#include <libutil.h>
|
||||
+#include <errno.h>
|
||||
+#include <termios.h>
|
||||
+#endif
|
||||
#endif
|
||||
#include <unistd.h>
|
||||
#include <memory>
|
||||
#include <csignal>
|
||||
@@ -56,6 +62,9 @@ namespace
|
||||
@@ -64,7 +64,11 @@ namespace
|
||||
|
||||
const QString su_prog{QStringLiteral(LXQTSUDO_SU)};
|
||||
const QString sudo_prog{QStringLiteral(LXQTSUDO_SUDO)};
|
||||
@ -22,83 +17,27 @@
|
||||
+ const QString pwd_prompt_end_c_locale{QStringLiteral(":")};
|
||||
+#endif
|
||||
const QString pwd_prompt_end{QStringLiteral(": ")};
|
||||
+
|
||||
const QChar nl{QLatin1Char('\n')};
|
||||
|
||||
@@ -240,27 +249,39 @@ QString Sudo::backendName (backend_t backEnd)
|
||||
void Sudo::child()
|
||||
{
|
||||
int params_cnt = 3 //1. su/sudo & "shell command" & last nullptr
|
||||
+#ifndef __FreeBSD__
|
||||
+ (BACK_SU == mBackend ? 1 : 3); //-c for su | -E /bin/sh -c for sudo
|
||||
+#else
|
||||
+ + (BACK_SU == mBackend ? 3 : 3);
|
||||
+#endif
|
||||
std::unique_ptr<char const *[]> params{new char const *[params_cnt]};
|
||||
const char ** param_arg = params.get() + 1;
|
||||
|
||||
std::string program = backendName().toLocal8Bit().data();
|
||||
+ if (BACK_SU == mBackend)
|
||||
+ {
|
||||
+ *(param_arg++) = "-m";
|
||||
+ *(param_arg++) = "root";
|
||||
+ *(param_arg++) = "-c";
|
||||
+ }
|
||||
if (BACK_SUDO == mBackend)
|
||||
{
|
||||
+
|
||||
*(param_arg++) = "-E"; //preserve environment
|
||||
*(param_arg++) = "/bin/sh";
|
||||
+ *(param_arg++) = "-c"; //run command
|
||||
}
|
||||
- *(param_arg++) = "-c"; //run command
|
||||
|
||||
params[0] = program.c_str();
|
||||
-
|
||||
// Note: we force the su/sudo to communicate with us in the simplest
|
||||
// locale and then set the locale back for the command
|
||||
- char const * const env_lc_all = getenv("LC_ALL");
|
||||
+
|
||||
std::string command;
|
||||
+#ifndef __FreeBSD__
|
||||
+ char const * const env_lc_all = getenv("LC_ALL");
|
||||
if (env_lc_all == nullptr)
|
||||
{
|
||||
- command = "unset LC_ALL; ";
|
||||
+ command = "unset LC_ALL;";
|
||||
} else
|
||||
{
|
||||
// Note: we need to check if someone is not trying to inject commands
|
||||
@@ -276,6 +297,9 @@ void Sudo::child()
|
||||
}
|
||||
command += "exec ";
|
||||
command += squashedArgs().toLocal8Bit().data();
|
||||
+#else
|
||||
+ command = squashedArgs().toLocal8Bit().data();
|
||||
+#endif
|
||||
*(param_arg++) = command.c_str();
|
||||
|
||||
*param_arg = nullptr;
|
||||
@@ -283,12 +307,11 @@ void Sudo::child()
|
||||
setenv("LC_ALL", "C", 1);
|
||||
|
||||
env_workarounds();
|
||||
-
|
||||
setsid(); //session leader
|
||||
execvp(params[0], const_cast<char **>(params.get()));
|
||||
-
|
||||
//exec never returns in case of success
|
||||
QTextStream{stderr, QIODevice::WriteOnly} << tr("%1: Failed to exec '%2': %3\n").arg(app_master).arg(params[0]).arg(strerror(errno));
|
||||
+
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -354,7 +377,11 @@ int Sudo::parent()
|
||||
void usage(QString const & err = QString())
|
||||
@@ -270,6 +274,8 @@ void Sudo::child()
|
||||
*(param_arg++) = "/bin/sh";
|
||||
break;
|
||||
case BACK_SU:
|
||||
+ *(param_arg++) = "-m";
|
||||
+ *(param_arg++) = "root";
|
||||
case BACK_NONE:
|
||||
env_workarounds();
|
||||
break;
|
||||
@@ -377,7 +383,12 @@ int Sudo::parent()
|
||||
}
|
||||
} else
|
||||
{
|
||||
+#ifdef __FreeBSD__
|
||||
+ if( line.endsWith(pwd_prompt_end_c_locale) || line.endsWith(pwd_prompt_end))
|
||||
+#else
|
||||
+
|
||||
if (line.endsWith(pwd_prompt_end))
|
||||
+#endif
|
||||
{
|
||||
|
@ -1,10 +1,9 @@
|
||||
bin/lxqt-sudo
|
||||
bin/lxsu
|
||||
bin/lxsudo
|
||||
share/man/man1/lxqt-sudo.1.gz
|
||||
share/man/man1/lxsu.1.gz
|
||||
share/man/man1/lxsudo.1.gz
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_ar.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_arn.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_ast.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_ca.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_cs.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_cy.qm
|
||||
@ -25,10 +24,15 @@ share/man/man1/lxsudo.1.gz
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_nl.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_pl.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_pt.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_pt_BR.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_ru.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_sk.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_sl.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_tr.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_uk.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_vi.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_zh_CN.qm
|
||||
%%LXQT_TRANSLATIONS%%/lxqt-sudo/lxqt-sudo_zh_TW.qm
|
||||
share/man/man1/lxqt-sudo.1.gz
|
||||
share/man/man1/lxsu.1.gz
|
||||
share/man/man1/lxsudo.1.gz
|
||||
|
Loading…
Reference in New Issue
Block a user