aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Popov <arrowd@FreeBSD.org>2021-10-12 16:10:40 +0000
committerGleb Popov <arrowd@FreeBSD.org>2023-07-14 16:07:47 +0000
commit718687d3ee3e9556cd440c0aa26a36c52937e620 (patch)
treeb289eac7d8cf28119037e60eb585023da30a605f
parent8e8792bf83e9561bf9bf8d8796720a935c1a7ea4 (diff)
downloadports-718687d3ee3e9556cd440c0aa26a36c52937e620.tar.gz
ports-718687d3ee3e9556cd440c0aa26a36c52937e620.zip
x11/sddm: Update to 0.20.0
Co-authored-by: Kenneth Raplee <kenrap@kennethraplee.com>
-rw-r--r--x11/sddm/Makefile14
-rw-r--r--x11/sddm/distinfo8
-rw-r--r--x11/sddm/files/patch-data_scripts_Xsession19
-rw-r--r--x11/sddm/files/patch-services_sddm-autologin.pam6
-rw-r--r--x11/sddm/files/patch-services_sddm.pam40
-rw-r--r--x11/sddm/files/patch-src_common_Configuration.h6
-rw-r--r--x11/sddm/files/patch-src_daemon_DaemonApp.cpp22
-rw-r--r--x11/sddm/files/patch-src_daemon_Display.cpp24
-rw-r--r--x11/sddm/files/patch-src_helper_UserSession.cpp55
-rw-r--r--x11/sddm/pkg-plist5
10 files changed, 40 insertions, 159 deletions
diff --git a/x11/sddm/Makefile b/x11/sddm/Makefile
index 94f46a1fc1c4..553e9c4288b5 100644
--- a/x11/sddm/Makefile
+++ b/x11/sddm/Makefile
@@ -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
diff --git a/x11/sddm/distinfo b/x11/sddm/distinfo
index bf6877f2adcf..22293e126b67 100644
--- a/x11/sddm/distinfo
+++ b/x11/sddm/distinfo
@@ -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
diff --git a/x11/sddm/files/patch-data_scripts_Xsession b/x11/sddm/files/patch-data_scripts_Xsession
deleted file mode 100644
index 1cde066065fb..000000000000
--- a/x11/sddm/files/patch-data_scripts_Xsession
+++ /dev/null
@@ -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
diff --git a/x11/sddm/files/patch-services_sddm-autologin.pam b/x11/sddm/files/patch-services_sddm-autologin.pam
index 4117b6d709ff..6bbe10335f32 100644
--- a/x11/sddm/files/patch-services_sddm-autologin.pam
+++ b/x11/sddm/files/patch-services_sddm-autologin.pam
@@ -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
diff --git a/x11/sddm/files/patch-services_sddm.pam b/x11/sddm/files/patch-services_sddm.pam
index 5b77e395a39f..58d80d965b2d 100644
--- a/x11/sddm/files/patch-services_sddm.pam
+++ b/x11/sddm/files/patch-services_sddm.pam
@@ -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
diff --git a/x11/sddm/files/patch-src_common_Configuration.h b/x11/sddm/files/patch-src_common_Configuration.h
index decb680a3c0d..cb15eb236b8a 100644
--- a/x11/sddm/files/patch-src_common_Configuration.h
+++ b/x11/sddm/files/patch-src_common_Configuration.h
@@ -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"
diff --git a/x11/sddm/files/patch-src_daemon_DaemonApp.cpp b/x11/sddm/files/patch-src_daemon_DaemonApp.cpp
deleted file mode 100644
index 78c7f42763fd..000000000000
--- a/x11/sddm/files/patch-src_daemon_DaemonApp.cpp
+++ /dev/null
@@ -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);
diff --git a/x11/sddm/files/patch-src_daemon_Display.cpp b/x11/sddm/files/patch-src_daemon_Display.cpp
deleted file mode 100644
index d4e583a60caf..000000000000
--- a/x11/sddm/files/patch-src_daemon_Display.cpp
+++ /dev/null
@@ -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);
diff --git a/x11/sddm/files/patch-src_helper_UserSession.cpp b/x11/sddm/files/patch-src_helper_UserSession.cpp
deleted file mode 100644
index efe28218dfa0..000000000000
--- a/x11/sddm/files/patch-src_helper_UserSession.cpp
+++ /dev/null
@@ -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
diff --git a/x11/sddm/pkg-plist b/x11/sddm/pkg-plist
index 35988b33a4ad..bc24fd18f449 100644
--- a/x11/sddm/pkg-plist
+++ b/x11/sddm/pkg-plist
@@ -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