x11/sddm: Update to 0.20.0
Co-authored-by: Kenneth Raplee <kenrap@kennethraplee.com>
This commit is contained in:
parent
8e8792bf83
commit
718687d3ee
10 changed files with 40 additions and 159 deletions
|
@ -1,12 +1,8 @@
|
|||
PORTNAME= sddm
|
||||
PORTVERSION= 0.19.0
|
||||
PORTVERSION= 0.20.0
|
||||
DISTVERSIONPREFIX= v
|
||||
PORTREVISION= 8
|
||||
CATEGORIES= x11
|
||||
|
||||
PATCH_SITES= https://github.com/sddm/sddm/commit/
|
||||
PATCHFILES= e93bf95c54ad8c2a1604f8d7be05339164b19308.patch:-p1
|
||||
|
||||
MAINTAINER= kde@FreeBSD.org
|
||||
COMMENT= QML based login manager
|
||||
WWW= https://github.com/sddm/sddm
|
||||
|
@ -30,8 +26,9 @@ CPE_VENDOR= ${PORTNAME}_project
|
|||
USE_GITHUB= yes
|
||||
USE_KDE= ecm:build
|
||||
USE_QT= core declarative dbus gui network \
|
||||
buildtools:build linguisttools:build qmake:build testlib:build
|
||||
USE_XORG= xcb
|
||||
buildtools:build linguisttools:build declarative-test:build \
|
||||
qmake:build testlib:build
|
||||
USE_XORG= xau xcb
|
||||
|
||||
CONFLICTS_INSTALL= lightdm
|
||||
|
||||
|
@ -39,7 +36,8 @@ CMAKE_ON= BUILD_MAN_PAGES
|
|||
CMAKE_ARGS= -DUID_MIN=1000 \
|
||||
-DUID_MAX=65000 \
|
||||
-DCMAKE_INSTALL_SYSCONFDIR:PATH=${LOCALBASE}/etc \
|
||||
-DRST2MAN_EXECUTABLE=${LOCALBASE}/bin/rst2man.py-${PYTHON_VER}
|
||||
-DRST2MAN_EXECUTABLE=${LOCALBASE}/bin/rst2man.py-${PYTHON_VER} \
|
||||
-DSDDM_INITIAL_VT=7
|
||||
|
||||
USE_RC_SUBR= sddm
|
||||
SUB_FILES= xinitrc.desktop
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
TIMESTAMP = 1640593130
|
||||
SHA256 (sddm-sddm-v0.19.0_GH0.tar.gz) = e76da1f13d5ad5e0179e3fec57543126044339405ef19c397e105e0807bd4e41
|
||||
SIZE (sddm-sddm-v0.19.0_GH0.tar.gz) = 3532945
|
||||
SHA256 (e93bf95c54ad8c2a1604f8d7be05339164b19308.patch) = 4878cbadf98d0219e268ba2dd73adda917fccf1bd99113652e626082f2bdfc72
|
||||
SIZE (e93bf95c54ad8c2a1604f8d7be05339164b19308.patch) = 865
|
||||
TIMESTAMP = 1689196955
|
||||
SHA256 (sddm-sddm-v0.20.0_GH0.tar.gz) = 467c8bd91e0d4f76d4bc4e57ab334f1f48a33478482ba9476d93b0b3d7ace9fb
|
||||
SIZE (sddm-sddm-v0.20.0_GH0.tar.gz) = 3552722
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
Fix use of "$@" (see sh(1)).
|
||||
|
||||
There's no systemd on FreeBSD so start the session using $STARTUP which is
|
||||
defined in 90-consolekit if ConsoleKit2 is installed. By default this allows
|
||||
local users to shutdown/reboot the machine and access devices like USB keys.
|
||||
|
||||
Also use dbus-run-session so libdbus doesn't have to autolauch the session bus
|
||||
daemon on first use. Autolaunched dbus daemons tend to linger and may only
|
||||
exit if the X server exits.
|
||||
|
||||
--- data/scripts/Xsession.orig 2019-03-13 09:22:35 UTC
|
||||
+++ data/scripts/Xsession
|
||||
@@ -98,5 +98,5 @@ fi
|
||||
if [ -z "$*" ]; then
|
||||
exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session."
|
||||
else
|
||||
- exec $@
|
||||
+ exec $STARTUP /usr/bin/dbus-run-session --dbus-daemon=/usr/bin/dbus-daemon -- "$@"
|
||||
fi
|
|
@ -1,9 +1,9 @@
|
|||
--- services/sddm-autologin.pam.orig 2020-11-03 09:55:31 UTC
|
||||
--- services/sddm-autologin.pam.orig 2021-10-03 13:28:23 UTC
|
||||
+++ services/sddm-autologin.pam
|
||||
@@ -1,13 +1,9 @@
|
||||
@@ -1,13 +1,10 @@
|
||||
#%PAM-1.0
|
||||
-auth required pam_env.so
|
||||
-auth required pam_tally2.so file=/var/log/tallylog onerr=succeed
|
||||
auth required pam_faillock.so preauth
|
||||
-auth required pam_shells.so
|
||||
-auth required pam_nologin.so
|
||||
auth required pam_permit.so
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
--- services/sddm.pam.orig 2017-12-05 16:00:16 UTC
|
||||
--- services/sddm.pam.orig 2023-02-08 07:12:21 UTC
|
||||
+++ services/sddm.pam
|
||||
@@ -1,15 +1,14 @@
|
||||
#%PAM-1.0
|
||||
|
||||
-auth include system-login
|
||||
--auth optional pam_gnome_keyring.so
|
||||
--auth optional pam_kwallet5.so
|
||||
+auth include login
|
||||
+#auth optional pam_gnome_keyring.so
|
||||
+#auth optional pam_kwallet5.so
|
||||
-auth include system-login
|
||||
--auth optional pam_gnome_keyring.so
|
||||
--auth optional pam_kwallet5.so
|
||||
+auth include login
|
||||
+#auth optional pam_gnome_keyring.so
|
||||
+#auth optional pam_kwallet5.so
|
||||
|
||||
-account include system-login
|
||||
+account include login
|
||||
-account include system-login
|
||||
+account include login
|
||||
|
||||
-password include system-login
|
||||
--password optional pam_gnome_keyring.so use_authtok
|
||||
+password include login
|
||||
+#password optional pam_gnome_keyring.so use_authtok
|
||||
-password include system-login
|
||||
--password optional pam_gnome_keyring.so use_authtok
|
||||
+password include login
|
||||
+#password optional pam_gnome_keyring.so use_authtok
|
||||
|
||||
-session optional pam_keyinit.so force revoke
|
||||
-session include system-login
|
||||
--session optional pam_gnome_keyring.so auto_start
|
||||
--session optional pam_kwallet5.so auto_start
|
||||
+session include login
|
||||
+#session optional pam_gnome_keyring.so auto_start
|
||||
+#session optional pam_kwallet5.so auto_start
|
||||
-session optional pam_keyinit.so force revoke
|
||||
-session include system-login
|
||||
--session optional pam_gnome_keyring.so auto_start
|
||||
--session optional pam_kwallet5.so auto_start
|
||||
+session include login
|
||||
+#session optional pam_gnome_keyring.so auto_start
|
||||
+#session optional pam_kwallet5.so auto_start
|
||||
|
|
|
@ -6,9 +6,9 @@ Set the default theme and cursor theme to breeze, because sddm is most likely
|
|||
used together with Plasma. If they aren't available sddm falls back to a
|
||||
compiled-in theme.
|
||||
|
||||
--- src/common/Configuration.h.orig 2020-11-03 09:55:31 UTC
|
||||
--- src/common/Configuration.h.orig 2021-10-12 20:26:16 UTC
|
||||
+++ src/common/Configuration.h
|
||||
@@ -47,10 +47,10 @@ namespace SDDM {
|
||||
@@ -51,10 +51,10 @@ namespace SDDM {
|
||||
// Name Entries (but it's a regular class again)
|
||||
Section(Theme,
|
||||
Entry(ThemeDir, QString, _S(DATA_INSTALL_DIR "/themes"), _S("Theme directory path"));
|
||||
|
@ -18,6 +18,6 @@ compiled-in theme.
|
|||
"The files should be named <username>.face.icon"));
|
||||
- Entry(CursorTheme, QString, QString(), _S("Cursor theme used in the greeter"));
|
||||
+ Entry(CursorTheme, QString, _S("breeze_cursors"), _S("Cursor theme used in the greeter"));
|
||||
Entry(CursorSize, QString, QString(), _S("Cursor size used in the greeter"));
|
||||
Entry(Font, QString, QString(), _S("Font used in the greeter"));
|
||||
Entry(EnableAvatars, bool, true, _S("Enable display of custom user avatars"));
|
||||
Entry(DisableAvatarsThreshold,int, 7, _S("Number of users to use as threshold\n"
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
On FreeBSD console-kit-daemon isn't started by the init system, so try to
|
||||
start it from sddm.
|
||||
|
||||
--- src/daemon/DaemonApp.cpp.orig 2017-12-05 16:00:16 UTC
|
||||
+++ src/daemon/DaemonApp.cpp
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
#include "MessageHandler.h"
|
||||
|
||||
+#include <QDBusConnectionInterface>
|
||||
#include <QDebug>
|
||||
#include <QHostInfo>
|
||||
#include <QTimer>
|
||||
@@ -48,6 +49,8 @@ namespace SDDM {
|
||||
|
||||
// set testing parameter
|
||||
m_testing = (arguments().indexOf(QStringLiteral("--test-mode")) != -1);
|
||||
+
|
||||
+ QDBusConnection::systemBus().interface()->startService(QStringLiteral("org.freedesktop.ConsoleKit"));
|
||||
|
||||
// create display manager
|
||||
m_displayManager = new DisplayManager(this);
|
|
@ -1,24 +0,0 @@
|
|||
VirtualTerminal for Wayland is only present on Linux at the moment.
|
||||
As we are only interested in an X11 session at the moment, we therefore
|
||||
can hide it behind a Q_OS_LINUX.
|
||||
|
||||
Only set XDG_CURRENT_DESKTOP and XDG_SESSION_DESKTOP if the xsession .desktop
|
||||
file defines DesktopNames. Our xinitrc.desktop does not set it because that
|
||||
may confuse the desktop session started from ~/.xinitrc. These environment
|
||||
variables are used for OnlyShowIn and NotShowIn in .desktop files.
|
||||
|
||||
--- src/daemon/Display.cpp.orig 2020-11-03 09:55:31 UTC
|
||||
+++ src/daemon/Display.cpp
|
||||
@@ -320,10 +320,12 @@ namespace SDDM {
|
||||
env.insert(QStringLiteral("XDG_SEAT_PATH"), daemonApp->displayManager()->seatPath(seat()->name()));
|
||||
env.insert(QStringLiteral("XDG_SESSION_PATH"), daemonApp->displayManager()->sessionPath(QStringLiteral("Session%1").arg(daemonApp->newSessionId())));
|
||||
env.insert(QStringLiteral("DESKTOP_SESSION"), session.desktopSession());
|
||||
+ if (!session.desktopNames().isEmpty())
|
||||
env.insert(QStringLiteral("XDG_CURRENT_DESKTOP"), session.desktopNames());
|
||||
env.insert(QStringLiteral("XDG_SESSION_CLASS"), QStringLiteral("user"));
|
||||
env.insert(QStringLiteral("XDG_SESSION_TYPE"), session.xdgSessionType());
|
||||
env.insert(QStringLiteral("XDG_SEAT"), seat()->name());
|
||||
+ if (!session.desktopNames().isEmpty())
|
||||
env.insert(QStringLiteral("XDG_SESSION_DESKTOP"), session.desktopNames());
|
||||
|
||||
m_auth->insertEnvironment(env);
|
|
@ -1,55 +0,0 @@
|
|||
--- src/helper/UserSession.cpp.orig 2019-03-13 09:22:35 UTC
|
||||
+++ src/helper/UserSession.cpp
|
||||
@@ -33,6 +33,9 @@
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sched.h>
|
||||
+#if defined(Q_OS_FREEBSD)
|
||||
+#include <login_cap.h>
|
||||
+#endif /* defined(Q_OS_FREEBSD) */
|
||||
|
||||
namespace SDDM {
|
||||
UserSession::UserSession(HelperApp *parent)
|
||||
@@ -46,10 +49,8 @@ namespace SDDM {
|
||||
bool UserSession::start() {
|
||||
QProcessEnvironment env = qobject_cast<HelperApp*>(parent())->session()->processEnvironment();
|
||||
|
||||
- if (env.value(QStringLiteral("XDG_SESSION_CLASS")) == QLatin1String("greeter")) {
|
||||
- QProcess::start(m_path);
|
||||
- } else if (env.value(QStringLiteral("XDG_SESSION_TYPE")) == QLatin1String("x11")) {
|
||||
- const QString cmd = QStringLiteral("%1 \"%2\"").arg(mainConfig.X11.SessionCommand.get()).arg(m_path);
|
||||
+ if (env.value(QStringLiteral("XDG_SESSION_TYPE")) == QLatin1String("x11")) {
|
||||
+ const QString cmd = QStringLiteral("%1 %2").arg(mainConfig.X11.SessionCommand.get()).arg(m_path);
|
||||
qInfo() << "Starting:" << cmd;
|
||||
QProcess::start(cmd);
|
||||
} else if (env.value(QStringLiteral("XDG_SESSION_TYPE")) == QLatin1String("wayland")) {
|
||||
@@ -130,6 +131,21 @@ namespace SDDM {
|
||||
|
||||
// switch user
|
||||
const QByteArray username = qobject_cast<HelperApp*>(parent())->user().toLocal8Bit();
|
||||
+#if defined(Q_OS_FREEBSD)
|
||||
+ struct passwd *pw = getpwnam(username.constData());
|
||||
+ /* execve() uses the environment prepared in Backend::openSession(),
|
||||
+ therefore environment variables which are set here are ignored. */
|
||||
+ if (setusercontext(NULL, pw, pw->pw_uid, LOGIN_SETALL) != 0) {
|
||||
+ qCritical() << "setusercontext(NULL, *, " << pw->pw_uid << ", LOGIN_SETALL) failed for user: " << username;
|
||||
+ exit(Auth::HELPER_OTHER_ERROR);
|
||||
+ }
|
||||
+ if (chdir(pw->pw_dir) != 0) {
|
||||
+ qCritical() << "chdir(" << pw->pw_dir << ") failed for user: " << username;
|
||||
+ qCritical() << "verify directory exist and has sufficient permissions";
|
||||
+ exit(Auth::HELPER_OTHER_ERROR);
|
||||
+ }
|
||||
+ const QString homeDir = QString::fromLocal8Bit(pw->pw_dir);
|
||||
+#else /* defined(Q_OS_FREEBSD) */
|
||||
struct passwd pw;
|
||||
struct passwd *rpw;
|
||||
long bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
|
||||
@@ -221,6 +237,7 @@ namespace SDDM {
|
||||
exit(Auth::HELPER_OTHER_ERROR);
|
||||
}
|
||||
const QString homeDir = QString::fromLocal8Bit(pw.pw_dir);
|
||||
+#endif /* defined(Q_OS_FREEBSD) */
|
||||
|
||||
//we cannot use setStandardError file as this code is run in the child process
|
||||
//we want to redirect after we setuid so that the log file is owned by the user
|
|
@ -18,6 +18,8 @@ etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf
|
|||
%%QT_QMLDIR%%/SddmComponents/qmldir
|
||||
%%QT_QMLDIR%%/SddmComponents/warning.png
|
||||
libexec/sddm-helper
|
||||
libexec/sddm-helper-start-wayland
|
||||
libexec/sddm-helper-start-x11user
|
||||
share/man/man1/sddm-greeter.1.gz
|
||||
share/man/man1/sddm.1.gz
|
||||
share/man/man5/sddm-state.conf.5.gz
|
||||
|
@ -29,6 +31,7 @@ share/man/man5/sddm.conf.5.gz
|
|||
%%DATADIR%%/flags/ar.png
|
||||
%%DATADIR%%/flags/at.png
|
||||
%%DATADIR%%/flags/az.png
|
||||
%%DATADIR%%/flags/bd.png
|
||||
%%DATADIR%%/flags/be.png
|
||||
%%DATADIR%%/flags/bg.png
|
||||
%%DATADIR%%/flags/bh.png
|
||||
|
@ -159,6 +162,7 @@ share/man/man5/sddm.conf.5.gz
|
|||
%%DATADIR%%/translations/eu.qm
|
||||
%%DATADIR%%/translations/fi.qm
|
||||
%%DATADIR%%/translations/fr.qm
|
||||
%%DATADIR%%/translations/gl.qm
|
||||
%%DATADIR%%/translations/he.qm
|
||||
%%DATADIR%%/translations/hi_IN.qm
|
||||
%%DATADIR%%/translations/hu.qm
|
||||
|
@ -166,6 +170,7 @@ share/man/man5/sddm.conf.5.gz
|
|||
%%DATADIR%%/translations/is.qm
|
||||
%%DATADIR%%/translations/it.qm
|
||||
%%DATADIR%%/translations/ja.qm
|
||||
%%DATADIR%%/translations/ka.qm
|
||||
%%DATADIR%%/translations/kk.qm
|
||||
%%DATADIR%%/translations/ko.qm
|
||||
%%DATADIR%%/translations/lt.qm
|
||||
|
|
Loading…
Reference in a new issue