diff --git a/security/lxqt-sudo/Makefile b/security/lxqt-sudo/Makefile index cc6ca83ef583..1b3ade7eac1d 100644 --- a/security/lxqt-sudo/Makefile +++ b/security/lxqt-sudo/Makefile @@ -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 diff --git a/security/lxqt-sudo/distinfo b/security/lxqt-sudo/distinfo index d875aa26c73c..ccfb0d0f19f5 100644 --- a/security/lxqt-sudo/distinfo +++ b/security/lxqt-sudo/distinfo @@ -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 diff --git a/security/lxqt-sudo/files/patch-sudo.cpp b/security/lxqt-sudo/files/patch-sudo.cpp index 90b6b023d2ac..64446a88be30 100644 --- a/security/lxqt-sudo/files/patch-sudo.cpp +++ b/security/lxqt-sudo/files/patch-sudo.cpp @@ -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 - #include - #include -+#if defined(__linux__) - #include -+#elif defined(__FreeBSD__) +@@ -44,7 +44,7 @@ + #else + #include + #include +-#include +#include -+#include -+#include -+#endif + #endif #include #include - #include -@@ -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 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(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 { diff --git a/security/lxqt-sudo/pkg-plist b/security/lxqt-sudo/pkg-plist index 3351cd92deb3..d027debf2b1e 100644 --- a/security/lxqt-sudo/pkg-plist +++ b/security/lxqt-sudo/pkg-plist @@ -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