From e272a6bc74c8ec6b2813b36e8e0051d5b000df9a Mon Sep 17 00:00:00 2001 From: Toshaan Bharvani Date: Sat, 18 May 2024 16:59:53 +0200 Subject: [PATCH] initial package creation Signed-off-by: Toshaan Bharvani --- ...lay-for-logind-and-fallback-to-seat0.patch | 142 +++ SOURCES/README.scripts | 2 + SOURCES/sddm-0.18.0-environment_file.patch | 11 + SOURCES/sddm-0.20.0-fedora_config.patch | 53 + SOURCES/sddm-0.21.0-qt6greeter.patch | 67 ++ SOURCES/sddm-PR1876.patch | 1018 +++++++++++++++++ SOURCES/sddm-autologin.pam | 20 + SOURCES/sddm-greeter.pam | 17 + SOURCES/sddm-rpmostree-tmpfiles-hack.patch | 12 + SOURCES/sddm-systemd-sysusers.conf | 2 + SOURCES/sddm-x11.conf | 2 + SOURCES/sddm.conf | 122 ++ SOURCES/sddm.pam | 23 + SOURCES/sddm.sysconfig | 5 + SPECS/sddm.spec | 835 ++++++++++++++ 15 files changed, 2331 insertions(+) create mode 100644 SOURCES/0001-Delay-for-logind-and-fallback-to-seat0.patch create mode 100644 SOURCES/README.scripts create mode 100644 SOURCES/sddm-0.18.0-environment_file.patch create mode 100644 SOURCES/sddm-0.20.0-fedora_config.patch create mode 100644 SOURCES/sddm-0.21.0-qt6greeter.patch create mode 100644 SOURCES/sddm-PR1876.patch create mode 100644 SOURCES/sddm-autologin.pam create mode 100644 SOURCES/sddm-greeter.pam create mode 100644 SOURCES/sddm-rpmostree-tmpfiles-hack.patch create mode 100644 SOURCES/sddm-systemd-sysusers.conf create mode 100644 SOURCES/sddm-x11.conf create mode 100644 SOURCES/sddm.conf create mode 100644 SOURCES/sddm.pam create mode 100644 SOURCES/sddm.sysconfig create mode 100644 SPECS/sddm.spec diff --git a/SOURCES/0001-Delay-for-logind-and-fallback-to-seat0.patch b/SOURCES/0001-Delay-for-logind-and-fallback-to-seat0.patch new file mode 100644 index 0000000..e6292da --- /dev/null +++ b/SOURCES/0001-Delay-for-logind-and-fallback-to-seat0.patch @@ -0,0 +1,142 @@ +From 4d44531c8f624f5b479c3ff23e8fecc67eb848ab Mon Sep 17 00:00:00 2001 +From: Jeremy Linton +Date: Fri, 22 Oct 2021 14:51:54 -0500 +Subject: [PATCH] Delay for logind, and fallback to seat0 + +There is systemd/logind race with when restarting +sddm that causes logind1 not to be available. Previously +this meant the seat0 was immediately created regardless +of the state of CanGraphical. + +Fixing this, though we still want seat0 to be started +if none of the seats appear to be graphical. Presumably +there are some graphics on the machine, otherwise +why run sddm? Wait a bit, and create seat0 anyway. If +this fails the output from Xorg should tell us why. This +is generally a better strategy than what happens a good +amount of time now, where sddm is started and silent about +why the screen is blank. + +References: +* https://bugzilla.redhat.com/2011991 +* https://bugzilla.redhat.com/2016310 + +Signed-off-by: Jeremy Linton +--- + src/daemon/LogindDBusTypes.cpp | 31 +++++++++++++++++++++---------- + src/daemon/SeatManager.cpp | 22 ++++++++++++++++++++++ + src/daemon/SeatManager.h | 1 + + 3 files changed, 44 insertions(+), 10 deletions(-) + +diff --git a/src/daemon/LogindDBusTypes.cpp b/src/daemon/LogindDBusTypes.cpp +index 011bb7f..6255c69 100644 +--- a/src/daemon/LogindDBusTypes.cpp ++++ b/src/daemon/LogindDBusTypes.cpp +@@ -8,6 +8,8 @@ + + #include + ++#include ++ + class LogindPathInternal { + public: + LogindPathInternal(); +@@ -46,17 +48,26 @@ LogindPathInternal::LogindPathInternal() + qRegisterMetaType("UserInfoList"); + qDBusRegisterMetaType(); + +- if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.login1"))) { +- qDebug() << "Logind interface found"; +- available = true; +- serviceName = QStringLiteral("org.freedesktop.login1"); +- managerPath = QStringLiteral("/org/freedesktop/login1"); +- managerIfaceName = QStringLiteral("org.freedesktop.login1.Manager"); +- seatIfaceName = QStringLiteral("org.freedesktop.login1.Seat"); +- sessionIfaceName = QStringLiteral("org.freedesktop.login1.Session"); +- userIfaceName = QStringLiteral("org.freedesktop.login1.User"); +- return; ++#ifdef HAVE_SYSTEMD ++ // systemd-logind should be running, although because it takes a few moments to restart after ++ // systemctl isolate calls, it may not yet be running. Wait a few seconds for it, while blocking everything else. ++ int logind_wait_seconds = 50; ++ while (logind_wait_seconds--) { ++ if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.login1"))) { ++ qDebug() << "Logind interface found"; ++ available = true; ++ serviceName = QStringLiteral("org.freedesktop.login1"); ++ managerPath = QStringLiteral("/org/freedesktop/login1"); ++ managerIfaceName = QStringLiteral("org.freedesktop.login1.Manager"); ++ seatIfaceName = QStringLiteral("org.freedesktop.login1.Seat"); ++ sessionIfaceName = QStringLiteral("org.freedesktop.login1.Session"); ++ userIfaceName = QStringLiteral("org.freedesktop.login1.User"); ++ return; ++ } ++ qDebug() << "Sleeping for systemd-logind"; ++ usleep(100000); + } ++#endif + + if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.ConsoleKit"))) { + qDebug() << "Console kit interface found"; +diff --git a/src/daemon/SeatManager.cpp b/src/daemon/SeatManager.cpp +index bd207e6..39d8b85 100644 +--- a/src/daemon/SeatManager.cpp ++++ b/src/daemon/SeatManager.cpp +@@ -26,6 +26,9 @@ + #include + #include + #include ++#include ++#include ++#include + + #include "LogindDBusTypes.h" + +@@ -115,6 +118,8 @@ namespace SDDM { + + QDBusConnection::systemBus().connect(Logind::serviceName(), Logind::managerPath(), Logind::managerIfaceName(), QStringLiteral("SeatNew"), this, SLOT(logindSeatAdded(QString,QDBusObjectPath))); + QDBusConnection::systemBus().connect(Logind::serviceName(), Logind::managerPath(), Logind::managerIfaceName(), QStringLiteral("SeatRemoved"), this, SLOT(logindSeatRemoved(QString,QDBusObjectPath))); ++ ++ QTimer::singleShot(5000, this, &SeatManager::checkSeat); + } + + void SeatManager::createSeat(const QString &name) { +@@ -152,6 +157,23 @@ namespace SDDM { + m_seats.value(name)->createDisplay(Display::defaultDisplayServerType()); + } + ++ // this is a bit hacky, but linux DRM drivers ++ // won't initially be available so there is a race ++ // between determing if a efifb/etc graphical object ++ // is the only graphics on the machine, or a DRM driver ++ // will take over the display. So we will hang out for a few ++ // seconds and if none of the seats are declared cangraphical ++ // its possible the only graphics on the machine don't have ++ // a drm driver. ++ void SeatManager::checkSeat(void) { ++ if (m_seats.isEmpty()) { ++ //if (QFileInfo::exists(QStringLiteral("/dev/fb0"))) { ++ qWarning() << "No graphical seats found, attempt to start one on the main console anyway..."; ++ createSeat(QStringLiteral("seat0")); ++ //} ++ } ++ } ++ + void SDDM::SeatManager::logindSeatAdded(const QString& name, const QDBusObjectPath& objectPath) + { + auto logindSeat = new LogindSeat(name, objectPath); +diff --git a/src/daemon/SeatManager.h b/src/daemon/SeatManager.h +index b2f9796..aa43047 100644 +--- a/src/daemon/SeatManager.h ++++ b/src/daemon/SeatManager.h +@@ -49,6 +49,7 @@ namespace SDDM { + private: + QHash m_seats; //these will exist only for graphical seats + QHash m_systemSeats; //these will exist for all seats ++ void checkSeat(void); + }; + } + +-- +2.39.2 + diff --git a/SOURCES/README.scripts b/SOURCES/README.scripts new file mode 100644 index 0000000..70b5243 --- /dev/null +++ b/SOURCES/README.scripts @@ -0,0 +1,2 @@ +This scripts dir contains only samples, but are generally not used directly. +In practice, sddm runtime uses items under /etc/sddm by default diff --git a/SOURCES/sddm-0.18.0-environment_file.patch b/SOURCES/sddm-0.18.0-environment_file.patch new file mode 100644 index 0000000..6f89c36 --- /dev/null +++ b/SOURCES/sddm-0.18.0-environment_file.patch @@ -0,0 +1,11 @@ +diff -up sddm-0.18.0/services/sddm.service.in.env sddm-0.18.0/services/sddm.service.in +--- sddm-0.18.0/services/sddm.service.in.env 2018-07-18 05:31:40.000000000 -0500 ++++ sddm-0.18.0/services/sddm.service.in 2019-03-14 08:23:22.095498405 -0500 +@@ -7,6 +7,7 @@ After=systemd-user-sessions.service gett + [Service] + ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/sddm + Restart=always ++EnvironmentFile=-/etc/sysconfig/sddm + + [Install] + Alias=display-manager.service diff --git a/SOURCES/sddm-0.20.0-fedora_config.patch b/SOURCES/sddm-0.20.0-fedora_config.patch new file mode 100644 index 0000000..ec6c1b6 --- /dev/null +++ b/SOURCES/sddm-0.20.0-fedora_config.patch @@ -0,0 +1,53 @@ +diff --git a/src/common/Configuration.h b/src/common/Configuration.h +index 54bcace..9b8fa22 100644 +--- a/src/common/Configuration.h ++++ b/src/common/Configuration.h +@@ -37,9 +37,8 @@ namespace SDDM { + enum NumState { NUM_NONE, NUM_SET_ON, NUM_SET_OFF }; + + // Name Type Default value Description +- // TODO: Change default to x11-user in a future release +- Entry(DisplayServer, QString, _S("x11"), _S("Which display server should be used.\n" +- "Valid values are: x11, x11-user, wayland. Wayland support is experimental")); ++ Entry(DisplayServer, QString, _S("wayland"), _S("Which display server should be used.\n" ++ "Valid values are: x11, x11-user, wayland.")); + Entry(HaltCommand, QString, _S(HALT_COMMAND), _S("Halt command")); + Entry(RebootCommand, QString, _S(REBOOT_COMMAND), _S("Reboot command")); + Entry(Numlock, NumState, NUM_NONE, _S("Initial NumLock state. Can be on, off or none.\n" +@@ -51,7 +50,7 @@ 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")); +- Entry(Current, QString, _S(""), _S("Current theme name")); ++ Entry(Current, QString, _S("01-breeze-fedora"), _S("Current theme name")); + Entry(FacesDir, QString, _S(DATA_INSTALL_DIR "/faces"), _S("Global directory for user avatars\n" + "The files should be named .face.icon")); + Entry(CursorTheme, QString, QString(), _S("Cursor theme used in the greeter")); +@@ -71,9 +70,9 @@ namespace SDDM { + Entry(SessionDir, QStringList, {_S("/usr/local/share/xsessions"), + _S("/usr/share/xsessions")}, _S("Comma-separated list of directories containing available X sessions")); + Entry(SessionCommand, QString, _S(SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); +- Entry(SessionLogFile, QString, _S(".local/share/sddm/xorg-session.log"), _S("Path to the user session log file")); +- Entry(DisplayCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xsetup"), _S("Path to a script to execute when starting the display server")); +- Entry(DisplayStopCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xstop"), _S("Path to a script to execute when stopping the display server")); ++ Entry(SessionLogFile, QString, _S(".cache/xsession-errors"), _S("Path to the user session log file")); ++ Entry(DisplayCommand, QString, _S(SYS_CONFIG_DIR "/sddm/Xsetup"), _S("Path to a script to execute when starting the display server")); ++ Entry(DisplayStopCommand, QString, _S(SYS_CONFIG_DIR "/sddm/Xstop"), _S("Path to a script to execute when stopping the display server")); + Entry(EnableHiDPI, bool, true, _S("Enable Qt's automatic high-DPI scaling")); + ); + +@@ -82,12 +81,12 @@ namespace SDDM { + Entry(SessionDir, QStringList, {_S("/usr/local/share/wayland-sessions"), + _S("/usr/share/wayland-sessions")}, _S("Comma-separated list of directories containing available Wayland sessions")); + Entry(SessionCommand, QString, _S(WAYLAND_SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session")); +- Entry(SessionLogFile, QString, _S(".local/share/sddm/wayland-session.log"),_S("Path to the user session log file")); ++ Entry(SessionLogFile, QString, _S(".cache/wayland-errors"), _S("Path to the user session log file")); + Entry(EnableHiDPI, bool, true, _S("Enable Qt's automatic high-DPI scaling")); + ); + + Section(Users, +- Entry(DefaultPath, QString, _S("/usr/local/bin:/usr/bin:/bin"), _S("Default $PATH for logged in users")); ++ Entry(DefaultPath, QString, _S("/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"), _S("Default $PATH for logged in users")); + Entry(MinimumUid, int, UID_MIN, _S("Minimum user id for displayed users")); + Entry(MaximumUid, int, UID_MAX, _S("Maximum user id for displayed users")); + Entry(HideUsers, QStringList, QStringList(), _S("Comma-separated list of users that should not be listed")); diff --git a/SOURCES/sddm-0.21.0-qt6greeter.patch b/SOURCES/sddm-0.21.0-qt6greeter.patch new file mode 100644 index 0000000..b9e95a5 --- /dev/null +++ b/SOURCES/sddm-0.21.0-qt6greeter.patch @@ -0,0 +1,67 @@ +From 52175648f4e1b415f93b24a3ef970983024659f2 Mon Sep 17 00:00:00 2001 +From: Neal Gompa +Date: Wed, 28 Feb 2024 16:47:16 -0500 +Subject: [PATCH] Default to Qt6 and always use versioned greeters + +Distributors can handle creating an unversioned name if necessary. +--- + src/common/ThemeMetadata.cpp | 4 ++-- + src/daemon/Greeter.cpp | 3 +-- + src/greeter/CMakeLists.txt | 9 +-------- + 3 files changed, 4 insertions(+), 12 deletions(-) + +diff --git a/src/common/ThemeMetadata.cpp b/src/common/ThemeMetadata.cpp +index 2cb3762..003056a 100644 +--- a/src/common/ThemeMetadata.cpp ++++ b/src/common/ThemeMetadata.cpp +@@ -28,7 +28,7 @@ namespace SDDM { + QString mainScript { QStringLiteral("Main.qml") }; + QString configFile; + QString translationsDirectory { QStringLiteral(".") }; +- int qtVersion = 5; ++ int qtVersion = 6; + }; + + ThemeMetadata::ThemeMetadata(const QString &path, QObject *parent) : QObject(parent), d(new ThemeMetadataPrivate()) { +@@ -61,6 +61,6 @@ namespace SDDM { + d->mainScript = settings.value(QStringLiteral("SddmGreeterTheme/MainScript"), QStringLiteral("Main.qml")).toString(); + d->configFile = settings.value(QStringLiteral("SddmGreeterTheme/ConfigFile"), QStringLiteral("theme.conf")).toString(); + d->translationsDirectory = settings.value(QStringLiteral("SddmGreeterTheme/TranslationsDirectory"), QStringLiteral(".")).toString(); +- d->qtVersion = settings.value(QStringLiteral("SddmGreeterTheme/QtVersion"), 5).toInt(); ++ d->qtVersion = settings.value(QStringLiteral("SddmGreeterTheme/QtVersion"), 6).toInt(); + } + } +diff --git a/src/daemon/Greeter.cpp b/src/daemon/Greeter.cpp +index 07fccde..5a956b6 100644 +--- a/src/daemon/Greeter.cpp ++++ b/src/daemon/Greeter.cpp +@@ -82,8 +82,7 @@ namespace SDDM { + + QString Greeter::greeterPathForQt(int qtVersion) + { +- const QString suffix = qtVersion == 5 ? QString() : QStringLiteral("-qt%1").arg(qtVersion); +- return QStringLiteral(BIN_INSTALL_DIR "/sddm-greeter%1").arg(suffix); ++ return QStringLiteral(BIN_INSTALL_DIR "/sddm-greeter-qt%1").arg(qtVersion); + } + + bool Greeter::start() { +diff --git a/src/greeter/CMakeLists.txt b/src/greeter/CMakeLists.txt +index 72769e4..524368d 100644 +--- a/src/greeter/CMakeLists.txt ++++ b/src/greeter/CMakeLists.txt +@@ -1,11 +1,4 @@ +-if(QT_MAJOR_VERSION EQUAL "5") +- # Keep the unversioned name for Qt5. When upgrading SDDM, the old daemon +- # might still be running and only know about "sddm-greeter". Keeping the +- # previous name around also helps users calling it directly. +- set(GREETER_TARGET sddm-greeter) +-else() +- set(GREETER_TARGET sddm-greeter-qt${QT_MAJOR_VERSION}) +-endif() ++set(GREETER_TARGET sddm-greeter-qt${QT_MAJOR_VERSION}) + + message(STATUS "Building greeter for Qt ${QT_MAJOR_VERSION} as ${GREETER_TARGET}") + +-- +2.43.0 + diff --git a/SOURCES/sddm-PR1876.patch b/SOURCES/sddm-PR1876.patch new file mode 100644 index 0000000..c0a89fa --- /dev/null +++ b/SOURCES/sddm-PR1876.patch @@ -0,0 +1,1018 @@ +From 6831a26862e15347296a48a9b7825c7db7b5b957 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Tue, 30 Jan 2024 20:16:25 -0800 +Subject: [PATCH 1/7] Mark keyboard backend as disabled on Wayland + +8c370d9 already cleared the list of layouts, but Num/Caps indicators +are also not supported on Wayland. Let's communicate that clearly by +marking the KeyboardModel as disabled. +--- + src/greeter/waylandkeyboardbackend.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/greeter/waylandkeyboardbackend.cpp b/src/greeter/waylandkeyboardbackend.cpp +index fcea53614..c42bee6f2 100644 +--- a/src/greeter/waylandkeyboardbackend.cpp ++++ b/src/greeter/waylandkeyboardbackend.cpp +@@ -95,6 +95,7 @@ void WaylandKeyboardBackend::init() + // TODO: We can't actually switch keyboard layout yet, so don't populate a list of layouts + // so that themes can know to not show the option to change layout + // d->layouts = parseRules(QStringLiteral("/usr/share/X11/xkb/rules/evdev.xml"), d->layout_id); ++ d->enabled = false; + } + + void WaylandKeyboardBackend::disconnect() + +From e490bb994ada2a565e95fd32fb18818b1f05ff82 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Tue, 30 Jan 2024 21:10:15 -0800 +Subject: [PATCH 2/7] Themes: hide LayoutBox when keyboard model is empty or + disabled + +--- + data/themes/elarun/Main.qml | 4 ++++ + data/themes/maldives/Main.qml | 2 ++ + data/themes/maya/Main.qml | 4 ++++ + src/greeter/theme/Main.qml | 4 ++++ + 4 files changed, 14 insertions(+) + +diff --git a/data/themes/elarun/Main.qml b/data/themes/elarun/Main.qml +index e559b741b..523dab7b3 100644 +--- a/data/themes/elarun/Main.qml ++++ b/data/themes/elarun/Main.qml +@@ -270,6 +270,8 @@ Rectangle { + height: parent.height + anchors.verticalCenter: parent.verticalCenter + ++ visible: layoutBox.visible ++ + text: textConstants.layout + font.pixelSize: 14 + verticalAlignment: Text.AlignVCenter +@@ -281,6 +283,8 @@ Rectangle { + anchors.verticalCenter: parent.verticalCenter + font.pixelSize: 14 + ++ visible: keyboard.enabled && keyboard.layouts.length > 0 ++ + arrowIcon: "angle-down.png" + + KeyNavigation.backtab: session; KeyNavigation.tab: user_entry +diff --git a/data/themes/maldives/Main.qml b/data/themes/maldives/Main.qml +index 4fac9f3c5..7f1959a5f 100644 +--- a/data/themes/maldives/Main.qml ++++ b/data/themes/maldives/Main.qml +@@ -201,6 +201,8 @@ Rectangle { + spacing : 4 + anchors.bottom: parent.bottom + ++ visible: keyboard.enabled && keyboard.layouts.length > 0 ++ + Text { + id: lblLayout + width: parent.width +diff --git a/data/themes/maya/Main.qml b/data/themes/maya/Main.qml +index d8e470b39..d166b718c 100644 +--- a/data/themes/maya/Main.qml ++++ b/data/themes/maya/Main.qml +@@ -239,6 +239,8 @@ Rectangle { + width : spUnit * 2 + height : parent.height + ++ visible : keyboard.enabled && keyboard.layouts.length > 0 ++ + color : primaryHue1 + borderColor : primaryHue3 + focusColor : accentLight +@@ -261,6 +263,8 @@ Rectangle { + + text : textConstants.layout + ++ visible : maya_layout.visible ++ + color : normalText + + font.family : opensans_cond_light.name +diff --git a/src/greeter/theme/Main.qml b/src/greeter/theme/Main.qml +index 0a2ab9c84..2106f6004 100644 +--- a/src/greeter/theme/Main.qml ++++ b/src/greeter/theme/Main.qml +@@ -236,6 +236,8 @@ Rectangle { + height: parent.height + anchors.verticalCenter: parent.verticalCenter + ++ visible: layoutBox.visible ++ + text: textConstants.layout + font.pixelSize: 16 + verticalAlignment: Text.AlignVCenter +@@ -247,6 +249,8 @@ Rectangle { + anchors.verticalCenter: parent.verticalCenter + font.pixelSize: 14 + ++ visible: keyboard.enabled && keyboard.layouts.length > 0 ++ + arrowIcon: "angle-down.png" + + KeyNavigation.backtab: session; KeyNavigation.tab: btnShutdown + +From a8dad084766a31d92252b2c2707c778dca1f30cc Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Wed, 31 Jan 2024 02:08:47 -0800 +Subject: [PATCH 3/7] Themes: explicitly resolve image URLs + +Qt6 no longer resolves relative URLs on assignment to a property of type +url[^1]. The resolution now happens late, in the context of the item that +uses the URL. In our case, it would be a QML component containing Image. +However, the themes shipped with SDDM contain resources in the theme +directories and rely on the previous algorithm of the URL resolution. + +The only documented[^2] way to address that is to resolve the paths in +advance with `Qt.resolvedUrl` to avoid any ambiguity. `Qt.resolvedUrl` +is supported in Qt5, so that should be a safe, albeit a bit verbose, +conversion. + +Fixes following error: +``` +file:///usr/lib64/qt6/qml/SddmComponents/ComboBox.qml:105:9: QML Image: Cannot open: file:///usr/lib64/qt6/qml/SddmComponents/angle-down.png +``` + +[^1]: https://doc.qt.io/qt-6/qml-url.html +[^2]: `QQmlAbstractUrlInterceptor` exists in Qt5, but + `QQmlEngine::setUrlInterceptor` is undocumented and has potential +negative side-effects. It also receives already resolved absolute URLs. +--- + data/themes/elarun/Main.qml | 29 +++++++++++++++-------------- + data/themes/maldives/Main.qml | 13 +++++++------ + data/themes/maya/Main.qml | 10 +++++----- + docs/THEMING.md | 2 +- + src/greeter/theme/Main.qml | 14 +++++++------- + 5 files changed, 35 insertions(+), 33 deletions(-) + +diff --git a/data/themes/elarun/Main.qml b/data/themes/elarun/Main.qml +index 523dab7b3..8151bb52a 100644 +--- a/data/themes/elarun/Main.qml ++++ b/data/themes/elarun/Main.qml +@@ -50,11 +50,12 @@ Rectangle { + + Background { + anchors.fill: parent +- source: config.background ++ source: Qt.resolvedUrl(config.background) + fillMode: Image.PreserveAspectCrop + onStatusChanged: { +- if (status == Image.Error && source != config.defaultBackground) { +- source = config.defaultBackground ++ var defaultBackground = Qt.resolvedUrl(config.defaultBackground) ++ if (status == Image.Error && source != defaultBackground) { ++ source = defaultBackground + } + } + } +@@ -72,12 +73,12 @@ Rectangle { + + Image { + anchors.fill: parent +- source: "images/rectangle.png" ++ source: Qt.resolvedUrl("images/rectangle.png") + } + + Image { + anchors.fill: parent +- source: "images/rectangle_overlay.png" ++ source: Qt.resolvedUrl("images/rectangle_overlay.png") + opacity: 0.1 + } + +@@ -103,7 +104,7 @@ Rectangle { + anchors.centerIn: parent + + Row { +- Image { source: "images/user_icon.png" } ++ Image { source: Qt.resolvedUrl("images/user_icon.png") } + + TextBox { + id: user_entry +@@ -121,7 +122,7 @@ Rectangle { + + Row { + +- Image { source: "images/lock.png" } ++ Image { source: Qt.resolvedUrl("images/lock.png") } + + PasswordBox { + id: pw_entry +@@ -150,7 +151,7 @@ Rectangle { + anchors.verticalCenter: parent.verticalCenter + anchors.margins: 20 + +- source: "images/login_normal.png" ++ source: Qt.resolvedUrl("images/login_normal.png") + + onClicked: sddm.login(user_entry.text, pw_entry.text, sessionIndex) + +@@ -171,7 +172,7 @@ Rectangle { + + ImageButton { + id: system_button +- source: "images/system_shutdown.png" ++ source: Qt.resolvedUrl("images/system_shutdown.png") + onClicked: sddm.powerOff() + + KeyNavigation.backtab: session; KeyNavigation.tab: reboot_button +@@ -179,7 +180,7 @@ Rectangle { + + ImageButton { + id: reboot_button +- source: "images/system_reboot.png" ++ source: Qt.resolvedUrl("images/system_reboot.png") + onClicked: sddm.reboot() + + KeyNavigation.backtab: system_button; KeyNavigation.tab: suspend_button +@@ -187,7 +188,7 @@ Rectangle { + + ImageButton { + id: suspend_button +- source: "images/system_suspend.png" ++ source: Qt.resolvedUrl("images/system_suspend.png") + visible: sddm.canSuspend + onClicked: sddm.suspend() + +@@ -196,7 +197,7 @@ Rectangle { + + ImageButton { + id: hibernate_button +- source: "images/system_hibernate.png" ++ source: Qt.resolvedUrl("images/system_hibernate.png") + visible: sddm.canHibernate + onClicked: sddm.hibernate() + +@@ -256,7 +257,7 @@ Rectangle { + width: 245 + anchors.verticalCenter: parent.verticalCenter + +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedUrl("angle-down.png") + + model: sessionModel + index: sessionModel.lastIndex +@@ -285,7 +286,7 @@ Rectangle { + + visible: keyboard.enabled && keyboard.layouts.length > 0 + +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedUrl("angle-down.png") + + KeyNavigation.backtab: session; KeyNavigation.tab: user_entry + } +diff --git a/data/themes/maldives/Main.qml b/data/themes/maldives/Main.qml +index 7f1959a5f..f346829e8 100644 +--- a/data/themes/maldives/Main.qml ++++ b/data/themes/maldives/Main.qml +@@ -58,11 +58,12 @@ Rectangle { + + Background { + anchors.fill: parent +- source: config.background ++ source: Qt.resolvedUrl(config.background) + fillMode: Image.PreserveAspectCrop + onStatusChanged: { +- if (status == Image.Error && source != config.defaultBackground) { +- source = config.defaultBackground ++ var defaultBackground = Qt.resolvedUrl(config.defaultBackground) ++ if (status == Image.Error && source != defaultBackground) { ++ source = defaultBackground + } + } + } +@@ -87,7 +88,7 @@ Rectangle { + width: Math.max(320, mainColumn.implicitWidth + 50) + height: Math.max(320, mainColumn.implicitHeight + 50) + +- source: "rectangle.png" ++ source: Qt.resolvedUrl("rectangle.png") + + Column { + id: mainColumn +@@ -186,7 +187,7 @@ Rectangle { + width: parent.width; height: 30 + font.pixelSize: 14 + +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedUrl("angle-down.png") + + model: sessionModel + index: sessionModel.lastIndex +@@ -217,7 +218,7 @@ Rectangle { + width: parent.width; height: 30 + font.pixelSize: 14 + +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedUrl("angle-down.png") + + KeyNavigation.backtab: session; KeyNavigation.tab: loginButton + } +diff --git a/data/themes/maya/Main.qml b/data/themes/maya/Main.qml +index d166b718c..30bb530ca 100644 +--- a/data/themes/maya/Main.qml ++++ b/data/themes/maya/Main.qml +@@ -251,7 +251,7 @@ Rectangle { + font.family : opensans_cond_light.name + font.pixelSize : spFontNormal + +- arrowIcon: "images/ic_arrow_drop_down_white_24px.svg" ++ arrowIcon: Qt.resolvedUrl("images/ic_arrow_drop_down_white_24px.svg") + arrowColor: primaryHue3 + + KeyNavigation.tab : maya_username +@@ -296,7 +296,7 @@ Rectangle { + font.family : opensans_cond_light.name + font.pixelSize : spFontNormal + +- arrowIcon: "images/ic_arrow_drop_down_white_24px.svg" ++ arrowIcon: Qt.resolvedUrl("images/ic_arrow_drop_down_white_24px.svg") + arrowColor: primaryHue3 + + KeyNavigation.tab : maya_layout +@@ -355,7 +355,7 @@ Rectangle { + label : textConstants.shutdown + labelColor : normalText + +- icon : "images/ic_power_settings_new_white_24px.svg" ++ icon : Qt.resolvedUrl("images/ic_power_settings_new_white_24px.svg") + iconColor : accentShade + + hoverIconColor : powerColor +@@ -381,7 +381,7 @@ Rectangle { + label : textConstants.reboot + labelColor : normalText + +- icon : "images/ic_refresh_white_24px.svg" ++ icon : Qt.resolvedUrl("images/ic_refresh_white_24px.svg") + iconColor : accentLight + + hoverIconColor : rebootColor +@@ -492,7 +492,7 @@ Rectangle { + hoverColor : accentLight + textColor : normalText + +- image : "images/ic_warning_white_24px.svg" ++ image : Qt.resolvedUrl("images/ic_warning_white_24px.svg") + + tooltipEnabled : true + tooltipText : textConstants.capslockWarning +diff --git a/docs/THEMING.md b/docs/THEMING.md +index bc69be003..873172192 100644 +--- a/docs/THEMING.md ++++ b/docs/THEMING.md +@@ -8,7 +8,7 @@ We also provide models containing information about the screens, available sessi + + ComboBox { + id: session +- arrowIcon: "angle-down.png" ++ arrowIcon: Qt.resolvedPath("angle-down.png") + model: sessionModel + index: sessionModel.lastIndex + } +diff --git a/src/greeter/theme/Main.qml b/src/greeter/theme/Main.qml +index 2106f6004..b799670ac 100644 +--- a/src/greeter/theme/Main.qml ++++ b/src/greeter/theme/Main.qml +@@ -55,7 +55,7 @@ Rectangle { + + Background { + anchors.fill: parent +- source: "qrc:/theme/background.png" ++ source: "qrc:///theme/background.png" + fillMode: Image.PreserveAspectCrop + onStatusChanged: { + if (status == Image.Error && source != config.defaultBackground) { +@@ -131,7 +131,7 @@ Rectangle { + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + anchors.margins: 10 +- source: "angle-left.png" ++ source: "qrc:///theme/angle-left.png" + onClicked: listView.decrementCurrentIndex() + + KeyNavigation.backtab: btnShutdown; KeyNavigation.tab: listView +@@ -162,7 +162,7 @@ Rectangle { + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.margins: 10 +- source: "angle-right.png" ++ source: "qrc:///theme/angle-right.png" + onClicked: listView.incrementCurrentIndex() + KeyNavigation.backtab: listView; KeyNavigation.tab: session + } +@@ -222,7 +222,7 @@ Rectangle { + width: 245 + anchors.verticalCenter: parent.verticalCenter + +- arrowIcon: "angle-down.png" ++ arrowIcon: "qrc:///theme/angle-down.png" + + model: sessionModel + index: sessionModel.lastIndex +@@ -251,7 +251,7 @@ Rectangle { + + visible: keyboard.enabled && keyboard.layouts.length > 0 + +- arrowIcon: "angle-down.png" ++ arrowIcon: "qrc:///theme/angle-down.png" + + KeyNavigation.backtab: session; KeyNavigation.tab: btnShutdown + } +@@ -266,7 +266,7 @@ Rectangle { + ImageButton { + id: btnReboot + height: parent.height +- source: "reboot.png" ++ source: "qrc:///theme/reboot.png" + + visible: sddm.canReboot + +@@ -278,7 +278,7 @@ Rectangle { + ImageButton { + id: btnShutdown + height: parent.height +- source: "shutdown.png" ++ source: "qrc:///theme/shutdown.png" + + visible: sddm.canPowerOff + + +From fb6849312dd5eddf312b7bdb660162f23a2bdab8 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Mon, 26 Feb 2024 19:39:53 -0800 +Subject: [PATCH 4/7] Components: use Transitions instead of Behaviors + +It's not recommended[^1] to use Behaviors with States, but the specific +examples in SDDM weren't causing any problems previously (on Qt5). + +Now, with Qt6 support, we can finally observe the promised bugs from the +referenced article in the wild: + +* ComboBox can be closed only once. On a second activation it stays open +* Button color transitions on focus out are abruptly stopped on a wrong + color +* ... (this is where I noticed a pattern and decided to convert + everything else preemptively). + +This commit essentially reverts 930fa07bf24d391d42abcfb981f145117292d49d + +[^1]: https://doc.qt.io/qt-5/qtquick-statesanimations-behaviors.html +--- + components/2.0/Button.qml | 4 +++- + components/2.0/ComboBox.qml | 12 ++++++++---- + components/2.0/ImageButton.qml | 4 +++- + components/2.0/Menu.qml | 6 ++++-- + components/2.0/PictureBox.qml | 6 ++++-- + components/2.0/TextBox.qml | 6 ++++-- + 6 files changed, 26 insertions(+), 12 deletions(-) + +diff --git a/components/2.0/Button.qml b/components/2.0/Button.qml +index cedc8356e..7c74f1ded 100644 +--- a/components/2.0/Button.qml ++++ b/components/2.0/Button.qml +@@ -67,7 +67,9 @@ Rectangle { + } + ] + +- Behavior on color { NumberAnimation { duration: 200 } } ++ transitions: Transition { ++ ColorAnimation { duration: 200 } ++ } + + clip: true + smooth: true +diff --git a/components/2.0/ComboBox.qml b/components/2.0/ComboBox.qml +index 26bbef35e..e7fdb3362 100644 +--- a/components/2.0/ComboBox.qml ++++ b/components/2.0/ComboBox.qml +@@ -70,8 +70,6 @@ FocusScope { + border.color: container.borderColor + border.width: container.borderWidth + +- Behavior on border.color { ColorAnimation { duration: 100 } } +- + states: [ + State { + name: "hover"; when: mouseArea.containsMouse +@@ -82,6 +80,10 @@ FocusScope { + PropertyChanges { target: main; border.width: container.borderWidth; border.color: container.focusColor } + } + ] ++ ++ transitions: Transition { ++ ColorAnimation { property: "border.color"; duration: 100 } ++ } + } + + Loader { +@@ -157,8 +159,6 @@ FocusScope { + + clip: true + +- Behavior on height { NumberAnimation { duration: 100 } } +- + Component { + id: myDelegate + +@@ -214,6 +214,10 @@ FocusScope { + PropertyChanges { target: dropDown; height: (container.height - 2*container.borderWidth) * listView.count + container.borderWidth} + } + ] ++ ++ transitions: Transition { ++ NumberAnimation { property: "height"; duration: 100 } ++ } + } + + function toggle() { +diff --git a/components/2.0/ImageButton.qml b/components/2.0/ImageButton.qml +index 6277148ab..28bc940be 100644 +--- a/components/2.0/ImageButton.qml ++++ b/components/2.0/ImageButton.qml +@@ -53,7 +53,9 @@ Image { + } + ] + +- Behavior on opacity { NumberAnimation { duration: 200 } } ++ transitions: Transition { ++ NumberAnimation { property: "opacity"; duration: 200 } ++ } + + clip: true + smooth: true +diff --git a/components/2.0/Menu.qml b/components/2.0/Menu.qml +index 8ef29841e..9acecb9e2 100644 +--- a/components/2.0/Menu.qml ++++ b/components/2.0/Menu.qml +@@ -34,8 +34,6 @@ Rectangle { + property alias model: menuList.model + property alias index: menuList.currentIndex + +- Behavior on height { NumberAnimation { duration: 100 } } +- + states: [ + State { + name: "visible"; +@@ -43,6 +41,10 @@ Rectangle { + } + ] + ++ transitions: Transition { ++ NumberAnimation { property: "height"; duration: 100 } ++ } ++ + Component { + id: listViewItem + +diff --git a/components/2.0/PictureBox.qml b/components/2.0/PictureBox.qml +index eb2fbfee8..b9571f04e 100644 +--- a/components/2.0/PictureBox.qml ++++ b/components/2.0/PictureBox.qml +@@ -37,8 +37,6 @@ FocusScope { + + signal login() + +- Behavior on height { NumberAnimation { duration: 100 } } +- + states: [ + State { + name: "" +@@ -50,6 +48,10 @@ FocusScope { + } + ] + ++ transitions: Transition { ++ NumberAnimation { property: "height"; duration: 100 } ++ } ++ + Rectangle { + id: shadow + anchors.fill: parent +diff --git a/components/2.0/TextBox.qml b/components/2.0/TextBox.qml +index a8d89afd5..0db8ce885 100644 +--- a/components/2.0/TextBox.qml ++++ b/components/2.0/TextBox.qml +@@ -47,8 +47,6 @@ FocusScope { + border.color: container.borderColor + border.width: 1 + +- Behavior on border.color { ColorAnimation { duration: 100 } } +- + states: [ + State { + name: "hover"; when: mouseArea.containsMouse +@@ -59,6 +57,10 @@ FocusScope { + PropertyChanges { target: main; border.width: 1; border.color: container.focusColor } + } + ] ++ ++ transitions: Transition { ++ ColorAnimation { duration: 100 } ++ } + } + + MouseArea { + +From 5c9a8b7d479f8bf019c5fa1a5d9a78ca12db5793 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Mon, 26 Feb 2024 21:11:01 -0800 +Subject: [PATCH 5/7] Themes: fix deprecated signal handler declarations + +Fixes following warnings: +``` +QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo() { ... } +Parameter "event" is not declared. Injection of parameters into signal handlers is deprecated. Use JavaScript functions with formal parameters instead. +``` +--- + components/2.0/Button.qml | 4 ++-- + components/2.0/ComboBox.qml | 2 +- + components/2.0/ImageButton.qml | 4 ++-- + components/2.0/LayoutBox.qml | 8 ++++++-- + components/2.0/PictureBox.qml | 2 +- + data/themes/elarun/Main.qml | 8 ++++---- + data/themes/maldives/Main.qml | 11 +++++------ + data/themes/maya/Main.qml | 10 +++++----- + src/greeter/theme/Main.qml | 6 +++--- + 9 files changed, 29 insertions(+), 26 deletions(-) + +diff --git a/components/2.0/Button.qml b/components/2.0/Button.qml +index 7c74f1ded..4d6d40a76 100644 +--- a/components/2.0/Button.qml ++++ b/components/2.0/Button.qml +@@ -111,7 +111,7 @@ Rectangle { + onReleased: { container.focus = true; container.released() } + } + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Space) { + container.spaceDown = true; + container.pressed() +@@ -122,7 +122,7 @@ Rectangle { + } + } + +- Keys.onReleased: { ++ Keys.onReleased: function (event) { + if (event.key === Qt.Key_Space) { + container.spaceDown = false; + container.released() +diff --git a/components/2.0/ComboBox.qml b/components/2.0/ComboBox.qml +index e7fdb3362..997a3886e 100644 +--- a/components/2.0/ComboBox.qml ++++ b/components/2.0/ComboBox.qml +@@ -134,7 +134,7 @@ FocusScope { + } + } + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Up) { + listView.decrementCurrentIndex() + } else if (event.key === Qt.Key_Down) { +diff --git a/components/2.0/ImageButton.qml b/components/2.0/ImageButton.qml +index 28bc940be..b2c267d2b 100644 +--- a/components/2.0/ImageButton.qml ++++ b/components/2.0/ImageButton.qml +@@ -77,7 +77,7 @@ Image { + onReleased: { container.focus = true; container.released() } + } + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Space) { + container.spaceDown = true; + container.pressed() +@@ -88,7 +88,7 @@ Image { + } + } + +- Keys.onReleased: { ++ Keys.onReleased: function (event) { + if (event.key === Qt.Key_Space) { + container.spaceDown = false; + container.released() +diff --git a/components/2.0/LayoutBox.qml b/components/2.0/LayoutBox.qml +index b992f28de..5e62acd3f 100644 +--- a/components/2.0/LayoutBox.qml ++++ b/components/2.0/LayoutBox.qml +@@ -30,12 +30,16 @@ ComboBox { + model: keyboard.layouts + index: keyboard.currentLayout + +- onValueChanged: keyboard.currentLayout = id ++ function onValueChanged(id) { ++ keyboard.currentLayout = id ++ } + + Connections { + target: keyboard + +- onCurrentLayoutChanged: combo.index = keyboard.currentLayout ++ function onCurrentLayoutChanged() { ++ combo.index = keyboard.currentLayout ++ } + } + + rowDelegate: Rectangle { +diff --git a/components/2.0/PictureBox.qml b/components/2.0/PictureBox.qml +index b9571f04e..560556e40 100644 +--- a/components/2.0/PictureBox.qml ++++ b/components/2.0/PictureBox.qml +@@ -105,7 +105,7 @@ FocusScope { + focus: true + visible: showPassword + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + container.login(); + event.accepted = true +diff --git a/data/themes/elarun/Main.qml b/data/themes/elarun/Main.qml +index 8151bb52a..d0caadaea 100644 +--- a/data/themes/elarun/Main.qml ++++ b/data/themes/elarun/Main.qml +@@ -39,11 +39,11 @@ Rectangle { + + Connections { + target: sddm +- onLoginSucceeded: { ++ function onLoginSucceeded() { + } +- onInformationMessage: { ++ function onInformationMessage(message) { + } +- onLoginFailed: { ++ function onLoginFailed() { + pw_entry.text = "" + } + } +@@ -135,7 +135,7 @@ Rectangle { + + KeyNavigation.backtab: user_entry; KeyNavigation.tab: login_button + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + sddm.login(user_entry.text, pw_entry.text, sessionIndex) + event.accepted = true +diff --git a/data/themes/maldives/Main.qml b/data/themes/maldives/Main.qml +index f346829e8..17b1b8aff 100644 +--- a/data/themes/maldives/Main.qml ++++ b/data/themes/maldives/Main.qml +@@ -40,17 +40,16 @@ Rectangle { + Connections { + target: sddm + +- onLoginSucceeded: { ++ function onLoginSucceeded() { + errorMessage.color = "steelblue" + errorMessage.text = textConstants.loginSucceeded + } +- +- onLoginFailed: { ++ function onLoginFailed() { + password.text = "" + errorMessage.color = "red" + errorMessage.text = textConstants.loginFailed + } +- onInformationMessage: { ++ function onInformationMessage(message) { + errorMessage.color = "red" + errorMessage.text = message + } +@@ -126,7 +125,7 @@ Rectangle { + + KeyNavigation.backtab: rebootButton; KeyNavigation.tab: password + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + sddm.login(name.text, password.text, sessionIndex) + event.accepted = true +@@ -153,7 +152,7 @@ Rectangle { + + KeyNavigation.backtab: name; KeyNavigation.tab: session + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + sddm.login(name.text, password.text, sessionIndex) + event.accepted = true +diff --git a/data/themes/maya/Main.qml b/data/themes/maya/Main.qml +index 30bb530ca..60473a473 100644 +--- a/data/themes/maya/Main.qml ++++ b/data/themes/maya/Main.qml +@@ -75,7 +75,7 @@ Rectangle { + Connections { + target: sddm + +- onLoginSucceeded: { ++ function onLoginSucceeded() { + prompt_bg.color = successText + prompt_txt.text = textConstants.loginSucceeded + +@@ -84,7 +84,7 @@ Rectangle { + + anim_success.start() + } +- onLoginFailed: { ++ function onLoginFailed() { + prompt_bg.color = failureText + prompt_txt.text = textConstants.loginFailed + +@@ -93,7 +93,7 @@ Rectangle { + + anim_failure.start() + } +- onInformationMessage: { ++ function onInformationMessage(message) { + prompt_bg.color = failureText + prompt_txt.text = message + +@@ -505,7 +505,7 @@ Rectangle { + KeyNavigation.tab : maya_login + KeyNavigation.backtab : maya_username + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if ((event.key === Qt.Key_Return) || (event.key === Qt.Key_Enter)) { + maya_root.tryLogin() + +@@ -546,7 +546,7 @@ Rectangle { + + onClicked: maya_root.tryLogin() + +- Keys.onPressed: { ++ Keys.onPressed: function (event) { + if ((event.key === Qt.Key_Return) || (event.key === Qt.Key_Enter)) { + maya_root.tryLogin() + +diff --git a/src/greeter/theme/Main.qml b/src/greeter/theme/Main.qml +index b799670ac..257153b16 100644 +--- a/src/greeter/theme/Main.qml ++++ b/src/greeter/theme/Main.qml +@@ -40,15 +40,15 @@ Rectangle { + + Connections { + target: sddm +- onLoginSucceeded: { ++ function onLoginSucceeded() { + } + +- onLoginFailed: { ++ function onLoginFailed() { + txtMessage.text = textConstants.loginFailed + listView.currentItem.password = "" + } + +- onInformationMessage: { ++ function onInformationMessage(message) { + txtMessage.text = message + } + } + +From ae6313e7433acff4e8bbbfd431a44d715cb306a9 Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Tue, 27 Feb 2024 00:00:04 -0800 +Subject: [PATCH 6/7] Themes: set QtVersion=@QT_MAJOR_VERSION@ + +--- + data/themes/CMakeLists.txt | 12 +++++++++--- + .../elarun/{metadata.desktop => metadata.desktop.in} | 2 +- + .../{metadata.desktop => metadata.desktop.in} | 1 + + .../maya/{metadata.desktop => metadata.desktop.in} | 1 + + src/greeter/CMakeLists.txt | 1 + + src/greeter/theme.qrc | 2 +- + .../theme/{metadata.desktop => metadata.desktop.in} | 1 + + 7 files changed, 15 insertions(+), 5 deletions(-) + rename data/themes/elarun/{metadata.desktop => metadata.desktop.in} (97%) + rename data/themes/maldives/{metadata.desktop => metadata.desktop.in} (92%) + rename data/themes/maya/{metadata.desktop => metadata.desktop.in} (92%) + rename src/greeter/theme/{metadata.desktop => metadata.desktop.in} (92%) + +diff --git a/data/themes/CMakeLists.txt b/data/themes/CMakeLists.txt +index 60b29be2e..a18fe8926 100644 +--- a/data/themes/CMakeLists.txt ++++ b/data/themes/CMakeLists.txt +@@ -10,9 +10,15 @@ foreach(THEME ${THEMES}) + + qt_add_translation(QM_FILES "${TRANSLATION_SOURCES}") + +- install(DIRECTORY "${THEME}" DESTINATION "${DATA_INSTALL_DIR}/themes" PATTERN "${THEME}/*.ts" +- EXCLUDE PATTERN "${THEME}/.gitattributes" +- EXCLUDE) ++ configure_file("${THEME}/metadata.desktop.in" "${THEME}/metadata.desktop" @ONLY) ++ ++ install(DIRECTORY "${THEME}" DESTINATION "${DATA_INSTALL_DIR}/themes" ++ PATTERN "${THEME}/*.in" EXCLUDE ++ PATTERN "${THEME}/*.ts" EXCLUDE ++ PATTERN "${THEME}/.gitattributes" EXCLUDE) ++ ++ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${THEME}/metadata.desktop" ++ DESTINATION "${DATA_INSTALL_DIR}/themes/${THEME}/") + + list(APPEND THEMES_QM_FILES ${QM_FILES}) + endforeach(THEME) +diff --git a/data/themes/elarun/metadata.desktop b/data/themes/elarun/metadata.desktop.in +similarity index 97% +rename from data/themes/elarun/metadata.desktop +rename to data/themes/elarun/metadata.desktop.in +index 50455880a..a992a6102 100644 +--- a/data/themes/elarun/metadata.desktop ++++ b/data/themes/elarun/metadata.desktop.in +@@ -46,4 +46,4 @@ TranslationsDirectory=translations + Theme-Id=elarun + Theme-API=2.0 + Website=https://github.com/sddm/sddm +- ++QtVersion=@QT_MAJOR_VERSION@ +diff --git a/data/themes/maldives/metadata.desktop b/data/themes/maldives/metadata.desktop.in +similarity index 92% +rename from data/themes/maldives/metadata.desktop +rename to data/themes/maldives/metadata.desktop.in +index acd0fa47d..8931da6cd 100644 +--- a/data/themes/maldives/metadata.desktop ++++ b/data/themes/maldives/metadata.desktop.in +@@ -14,3 +14,4 @@ TranslationsDirectory=translations + Email=abdurrahmanavci@gmail.com + Theme-Id=maldives + Theme-API=2.0 ++QtVersion=@QT_MAJOR_VERSION@ +diff --git a/data/themes/maya/metadata.desktop b/data/themes/maya/metadata.desktop.in +similarity index 92% +rename from data/themes/maya/metadata.desktop +rename to data/themes/maya/metadata.desktop.in +index 0c2ab2623..ccda38bfb 100644 +--- a/data/themes/maya/metadata.desktop ++++ b/data/themes/maya/metadata.desktop.in +@@ -14,3 +14,4 @@ TranslationsDirectory=translations + Email=spremi@ymail.com + Theme-Id=maya + Theme-API=2.0 ++QtVersion=@QT_MAJOR_VERSION@ +diff --git a/src/greeter/CMakeLists.txt b/src/greeter/CMakeLists.txt +index 72769e4d0..b9159c53d 100644 +--- a/src/greeter/CMakeLists.txt ++++ b/src/greeter/CMakeLists.txt +@@ -36,6 +36,7 @@ set(GREETER_SOURCES + ) + + configure_file("theme.qrc" "theme.qrc") ++configure_file("theme/metadata.desktop.in" "theme/metadata.desktop" @ONLY) + + qt_add_resources(RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/theme.qrc) + +diff --git a/src/greeter/theme.qrc b/src/greeter/theme.qrc +index efed01179..299169ec1 100644 +--- a/src/greeter/theme.qrc ++++ b/src/greeter/theme.qrc +@@ -7,7 +7,7 @@ + ${CMAKE_CURRENT_SOURCE_DIR}/theme/Main.qml + ${CMAKE_CURRENT_SOURCE_DIR}/theme/reboot.png + ${CMAKE_CURRENT_SOURCE_DIR}/theme/shutdown.png +- ${CMAKE_CURRENT_SOURCE_DIR}/theme/metadata.desktop ++ ${CMAKE_CURRENT_BINARY_DIR}/theme/metadata.desktop + ${CMAKE_CURRENT_SOURCE_DIR}/theme/theme.conf + + +diff --git a/src/greeter/theme/metadata.desktop b/src/greeter/theme/metadata.desktop.in +similarity index 92% +rename from src/greeter/theme/metadata.desktop +rename to src/greeter/theme/metadata.desktop.in +index a1c22ce93..0a4c9f349 100644 +--- a/src/greeter/theme/metadata.desktop ++++ b/src/greeter/theme/metadata.desktop.in +@@ -14,3 +14,4 @@ TranslationsDirectory=translations + Email=abdurrahmanavci@gmail.com + Theme-Id=maui + Theme-API=2.0 ++QtVersion=@QT_MAJOR_VERSION@ + +From ed30ef9f3897dd14ef1d7d04674166171f646fce Mon Sep 17 00:00:00 2001 +From: Aleksei Bavshin +Date: Tue, 27 Feb 2024 07:07:26 -0800 +Subject: [PATCH 7/7] Docs: add QtVersion information to THEMING + +--- + docs/THEMING.md | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/docs/THEMING.md b/docs/THEMING.md +index 873172192..69997e88a 100644 +--- a/docs/THEMING.md ++++ b/docs/THEMING.md +@@ -13,6 +13,8 @@ We also provide models containing information about the screens, available sessi + index: sessionModel.lastIndex + } + ++Themes are run by a Qt 5 built sddm-greeter, unless the `QtVersion` property in metadata.desktop specifies a different version, such as `QtVersion=6` for using `sddm-greeter-qt6`. ++ + ## Proxy Object + + We provide a proxy object, called as `sddm` to the themes as a context property. This object holds some useful properties about the host system. It also acts as a proxy between the greeter and the daemon. All of the methods called on this object will be transferred to the daemon through a local socket to be executed there. diff --git a/SOURCES/sddm-autologin.pam b/SOURCES/sddm-autologin.pam new file mode 100644 index 0000000..f62fad0 --- /dev/null +++ b/SOURCES/sddm-autologin.pam @@ -0,0 +1,20 @@ + #%PAM-1.0 +auth required pam_env.so +auth required pam_permit.so +auth include postlogin + +account required pam_nologin.so +account include system-auth + +password include system-auth + +session required pam_selinux.so close +session required pam_loginuid.so +session required pam_selinux.so open +session optional pam_keyinit.so force revoke +session required pam_namespace.so +session include system-auth +-session optional pam_gnome_keyring.so auto_start +-session optional pam_kwallet5.so auto_start +-session optional pam_kwallet.so auto_start +session include postlogin diff --git a/SOURCES/sddm-greeter.pam b/SOURCES/sddm-greeter.pam new file mode 100644 index 0000000..44e209e --- /dev/null +++ b/SOURCES/sddm-greeter.pam @@ -0,0 +1,17 @@ +#%PAM-1.0 + +# Load environment from /etc/environment and ~/.pam_environment +auth required pam_env.so + +# Always let the greeter start without authentication +auth required pam_permit.so + +# No action required for account management +account required pam_permit.so + +# Can't change password +password required pam_deny.so + +# Setup session +session required pam_unix.so +session optional pam_systemd.so diff --git a/SOURCES/sddm-rpmostree-tmpfiles-hack.patch b/SOURCES/sddm-rpmostree-tmpfiles-hack.patch new file mode 100644 index 0000000..4f06aa1 --- /dev/null +++ b/SOURCES/sddm-rpmostree-tmpfiles-hack.patch @@ -0,0 +1,12 @@ +diff --git a/services/sddm-tmpfiles.conf.in b/services/sddm-tmpfiles.conf.in +index fb45553..6acfb6c 100644 +--- a/services/sddm-tmpfiles.conf.in ++++ b/services/sddm-tmpfiles.conf.in +@@ -1,5 +1,7 @@ + # Home dir of the sddm user, also contains state.conf + d ${STATE_DIR} 0750 sddm sddm ++# Workaround for https://pagure.io/fedora-kde/SIG/issue/87 ++Z ${STATE_DIR} - sddm sddm + # This contains X11 auth files passed to Xorg and the greeter + d ${RUNTIME_DIR} 0711 root root + # Sockets for IPC diff --git a/SOURCES/sddm-systemd-sysusers.conf b/SOURCES/sddm-systemd-sysusers.conf new file mode 100644 index 0000000..05fcb1c --- /dev/null +++ b/SOURCES/sddm-systemd-sysusers.conf @@ -0,0 +1,2 @@ +#Type Name ID GECOS Home directory Shell +u sddm - "SDDM Greeter Account" /var/lib/sddm - diff --git a/SOURCES/sddm-x11.conf b/SOURCES/sddm-x11.conf new file mode 100644 index 0000000..6d16a4a --- /dev/null +++ b/SOURCES/sddm-x11.conf @@ -0,0 +1,2 @@ +[General] +DisplayServer=x11 diff --git a/SOURCES/sddm.conf b/SOURCES/sddm.conf new file mode 100644 index 0000000..c4696b5 --- /dev/null +++ b/SOURCES/sddm.conf @@ -0,0 +1,122 @@ +[Autologin] +# Whether sddm should automatically log back into sessions when they exit +#Relogin=false + +# Name of session file for autologin session +#Session= + +# Username for autologin session +#User= + + +[General] +# Enable Qt's automatic high-DPI scaling +#EnableHiDPI=false + +# Halt command +#HaltCommand=/usr/bin/systemctl poweroff + +# Initial NumLock state. Can be on, off or none. +# If property is set to none, numlock won't be changed +# NOTE: Currently ignored if autologin is enabled. +#Numlock=none + +# Reboot command +#RebootCommand=/usr/bin/systemctl reboot + +# Control x11/wayland startup +# DisplayServer=wayland + +[Theme] +# Current theme name +#Current=01-breeze-fedora + +# Cursor theme used in the greeter +#CursorTheme= + +# Number of users to use as threshold +# above which avatars are disabled +# unless explicitly enabled with EnableAvatars +#DisableAvatarsThreshold=7 + +# Enable display of custom user avatars +#EnableAvatars=true + +# Global directory for user avatars +# The files should be named .face.icon +#FacesDir=/usr/share/sddm/faces + +# Theme directory path +#ThemeDir=/usr/share/sddm/themes + + +[Users] +# Default $PATH for logged in users +#DefaultPath=/usr/local/bin:/usr/bin:/bin + +# Comma-separated list of shells. +# Users with these shells as their default won't be listed +#HideShells= + +# Comma-separated list of users that should not be listed +#HideUsers= + +# Maximum user id for displayed users +#MaximumUid=60000 + +# Minimum user id for displayed users +#MinimumUid=1000 + +# Remember the session of the last successfully logged in user +#RememberLastSession=true + +# Remember the last successfully logged in user +#RememberLastUser=true + + +[Wayland] +# Path to a script to execute when starting the desktop session +#SessionCommand=/etc/sddm/wayland-session + +# Directory containing available Wayland sessions +#SessionDir=/usr/share/wayland-sessions + +# Path to the user session log file +#SessionLogFile=.cache/wayland-errors + + +[X11] +# Path to a script to execute when starting the display server +#DisplayCommand=/etc/sddm/Xsetup + +# Path to a script to execute when stopping the display server +#DisplayStopCommand=/etc/sddm/Xstop + +# The lowest virtual terminal number that will be used. +#MinimumVT=1 + +# Arguments passed to the X server invocation +#ServerArguments=-nolisten tcp + +# Path to X server binary +#ServerPath=/usr/bin/X + +# Path to a script to execute when starting the desktop session +#SessionCommand=/etc/X11/xinit/Xsession + +# Directory containing available X sessions +#SessionDir=/usr/share/xsessions + +# Path to the user session log file +#SessionLogFile=.cache/xsession-errors + +# Path to the Xauthority file +#UserAuthFile=.Xauthority + +# Path to xauth binary +#XauthPath=/usr/bin/xauth + +# Path to Xephyr binary +#XephyrPath=/usr/bin/Xephyr + + diff --git a/SOURCES/sddm.pam b/SOURCES/sddm.pam new file mode 100644 index 0000000..34c0777 --- /dev/null +++ b/SOURCES/sddm.pam @@ -0,0 +1,23 @@ +auth [success=done ignore=ignore default=bad] pam_selinux_permit.so +auth substack password-auth +-auth optional pam_gnome_keyring.so +-auth optional pam_kwallet5.so +-auth optional pam_kwallet.so +auth include postlogin + +account required pam_nologin.so +account include password-auth + +password include password-auth + +session required pam_selinux.so close +session required pam_loginuid.so +-session optional pam_ck_connector.so +session required pam_selinux.so open +session optional pam_keyinit.so force revoke +session required pam_namespace.so +session include password-auth +-session optional pam_gnome_keyring.so auto_start +-session optional pam_kwallet5.so auto_start +-session optional pam_kwallet.so auto_start +session include postlogin diff --git a/SOURCES/sddm.sysconfig b/SOURCES/sddm.sysconfig new file mode 100644 index 0000000..4911cb4 --- /dev/null +++ b/SOURCES/sddm.sysconfig @@ -0,0 +1,5 @@ +# workaround https://bugzilla.redhat.com/1686675 +# see also https://bugreports.qt.io/browse/QTBUG-58508 +QML_DISABLE_DISK_CACHE=1 +# enable qDebug messages for debug build +# QT_LOGGING_RULES="*.debug=true" diff --git a/SPECS/sddm.spec b/SPECS/sddm.spec new file mode 100644 index 0000000..5763bf7 --- /dev/null +++ b/SPECS/sddm.spec @@ -0,0 +1,835 @@ +# Disable X11 for RHEL 10+ +%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10] + +Name: sddm +Version: 0.21.0 +Release: 1%{?dist} +License: GPL-2.0-or-later +Summary: QML based desktop and login manager + +URL: https://github.com/sddm/sddm +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +## upstream patches +# Port all themes to Qt 6 +# Submitted: https://github.com/sddm/sddm/pull/1876 +Patch1: sddm-PR1876.patch + +## upstreamable patches +# Fix race with logind restart, and start seat0 if !CanGraphical on timer +# https://bugzilla.redhat.com/show_bug.cgi?id=2011991 +# https://bugzilla.redhat.com/show_bug.cgi?id=2016310 +# Submmited: https://github.com/sddm/sddm/pull/1494 +Patch11: 0001-Delay-for-logind-and-fallback-to-seat0.patch + +## downstream patches +Patch101: sddm-0.20.0-fedora_config.patch + +# sddm.service: +EnvironmentFile=-/etc/sysconfig/sddm +Patch103: sddm-0.18.0-environment_file.patch + +# Workaround for https://pagure.io/fedora-kde/SIG/issue/87 +Patch104: sddm-rpmostree-tmpfiles-hack.patch + +# Workaround lack of Qt 5 greeter build +Patch105: sddm-0.21.0-qt6greeter.patch + +# Shamelessly stolen from gdm +Source10: sddm.pam +# Shamelessly stolen from gdm +Source11: sddm-autologin.pam +# Previously included in sddm sources +Source12: sddm-greeter.pam +# sample sddm.conf generated with sddm --example-config, and entries commented-out +Source13: sddm.conf +# README.scripts +Source14: README.scripts +# sysconfig snippet +Source15: sddm.sysconfig +# sddm x11 override config +Source16: sddm-x11.conf +# sysusers config file. note these are shipped in the upstream tarball +# but we cannot use the files from the tarball for %pre scriptlet +# generation, so we duplicate them as source files for that purpose; +# this is an ugly hack that should be removed if it becomes possible. +# see https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/TFDMAU7KLMSQTKPJELHSM6PFVXIZ56GK/ +Source17: sddm-systemd-sysusers.conf + + +Provides: service(graphical-login) = sddm + +BuildRequires: cmake >= 2.8.8 +BuildRequires: extra-cmake-modules +BuildRequires: pam-devel +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(systemd) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xcb-xkb) +# sometimes python-docutils, sometimes python2-docutils, sometimes python3-docutils. +# use path then for sanity +BuildRequires: /usr/bin/rst2man +BuildRequires: cmake(Qt6Core) +BuildRequires: cmake(Qt6DBus) +BuildRequires: cmake(Qt6Gui) +BuildRequires: cmake(Qt6Qml) +BuildRequires: cmake(Qt6Quick) +BuildRequires: cmake(Qt6LinguistTools) +BuildRequires: cmake(Qt6Test) +BuildRequires: cmake(Qt6QuickTest) +# verify presence to pull defaults from /etc/login.defs +BuildRequires: shadow-utils +BuildRequires: systemd +BuildRequires: systemd-rpm-macros + +Obsoletes: kde-settings-sddm < 20-5 + +%if 0%{?fedora} +# for /usr/share/backgrounds/default.png +BuildRequires: desktop-backgrounds-compat +BuildRequires: GraphicsMagick +Requires: desktop-backgrounds-compat +# for /usr/share/pixmaps/system-logo-white.png +Requires: system-logos +%endif +Requires: systemd +%if %{with x11} +Requires: xorg-x11-xinit +%endif +%{?systemd_requires} + +Requires(pre): shadow-utils + +# Virtual dependency for sddm greeter setup +Requires: sddm-greeter-displayserver +Suggests: sddm-wayland-generic + +%description +SDDM is a modern graphical display manager aiming to be fast, simple and +beautiful. It uses modern technologies like QtQuick, which in turn gives the +designer the ability to create smooth, animated user interfaces. + +%package wayland-generic +Summary: Generic Wayland SDDM greeter configuration +Provides: sddm-greeter-displayserver +Conflicts: sddm-greeter-displayserver +Requires: weston +Requires: %{name} = %{version}-%{release} +BuildArch: noarch + +%description wayland-generic +This package contains configuration and dependencies for SDDM +to use Weston for the greeter display server. + +This is the generic default Wayland configuration provided +by SDDM. + +%if %{with x11} +%package x11 +Summary: X11 SDDM greeter configuration +Provides: sddm-greeter-displayserver +Conflicts: sddm-greeter-displayserver +# This will eventually go away... +Provides: deprecated() +Requires: xorg-x11-server-Xorg +Requires: %{name} = %{version}-%{release} +Recommends: qt6-qtvirtualkeyboard +BuildArch: noarch + +%description x11 +This package contains configuration and dependencies for SDDM +to use X11 for the greeter display server. +%endif + +%package themes +Summary: SDDM Themes +# for upgrade path +Obsoletes: sddm < 0.2.0-0.12 +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description themes +A collection of sddm themes, including: elarun, maldives, maya + + +%prep +%autosetup -p1 %{?commitdate:-n %{name}-%{commit}} + +%if 0%{?fedora} +#FIXME/TODO: use version on filesystem instead of using a bundled copy +cp -v /usr/share/backgrounds/default.png \ + src/greeter/theme/background.png +ls -sh src/greeter/theme/background.png +gm mogrify -resize 1920x1200 src/greeter/theme/background.png +ls -sh src/greeter/theme/background.png +%endif + + +%build +%cmake \ + -DBUILD_WITH_QT6:BOOL=ON \ + -DBUILD_MAN_PAGES:BOOL=ON \ + -DCMAKE_BUILD_TYPE:STRING="Release" \ + -DENABLE_JOURNALD:BOOL=ON \ + -DSESSION_COMMAND:PATH=/etc/X11/xinit/Xsession \ + -DWAYLAND_SESSION_COMMAND:PATH=/etc/sddm/wayland-session + +%cmake_build + + +%install +%cmake_install + +mkdir -p %{buildroot}%{_sysconfdir}/sddm.conf.d +mkdir -p %{buildroot}%{_prefix}/lib/sddm/sddm.conf.d +install -Dpm 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/sddm +install -Dpm 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/pam.d/sddm-autologin +install -Dpm 644 %{SOURCE12} %{buildroot}%{_sysconfdir}/pam.d/sddm-greeter +install -Dpm 644 %{SOURCE13} %{buildroot}%{_sysconfdir}/sddm.conf +install -Dpm 644 %{SOURCE14} %{buildroot}%{_datadir}/sddm/scripts/README.scripts +install -Dpm 644 %{SOURCE15} %{buildroot}%{_sysconfdir}/sysconfig/sddm +%if %{with x11} +install -Dpm 644 %{SOURCE16} %{buildroot}%{_prefix}/lib/sddm/sddm.conf.d/x11.conf +%endif +mkdir -p %{buildroot}/run/sddm +mkdir -p %{buildroot}%{_localstatedir}/lib/sddm +mkdir -p %{buildroot}%{_sysconfdir}/sddm/ +cp -a %{buildroot}%{_datadir}/sddm/scripts/* \ + %{buildroot}%{_sysconfdir}/sddm/ +# we're using /etc/X11/xinit/Xsession (by default) instead +rm -fv %{buildroot}%{_sysconfdir}/sddm/Xsession + +# De-conflict the dbus file +mv %{buildroot}%{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager.conf \ + %{buildroot}%{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager-sddm.conf + +%if 0%{?fedora} && 0%{?fedora} < 43 +# Provide unversioned greeter until F40 is EOL +ln -sr %{buildroot}%{_bindir}/sddm-greeter-qt6 %{buildroot}%{_bindir}/sddm-greeter +%endif + + +%pre +%sysusers_create_compat %{SOURCE17} + +%post +%systemd_post sddm.service +# handle incompatible configuration changes +(grep \ + -e '^Current=fedora$' \ + -e '^\[XDisplay\]$' \ + -e '^\[WaylandDisplay\]$' \ + %{_sysconfdir}/sddm.conf > /dev/null && \ + sed -i.rpmsave \ + -e 's|^Current=fedora$|#Current=01-breeze-fedora|' \ + -e 's|^\[XDisplay\]$|\[X11\]|' \ + -e 's|^\[WaylandDisplay\]$|\[Wayland\]|' \ + %{_sysconfdir}/sddm.conf +) ||: + + +%preun +%systemd_preun sddm.service + + +%postun +%systemd_postun sddm.service + + +%files +%license LICENSE +%doc README.md CONTRIBUTORS +%dir %{_sysconfdir}/sddm/ +%dir %{_sysconfdir}/sddm.conf.d +%dir %{_prefix}/lib/sddm/sddm.conf.d +%config(noreplace) %{_sysconfdir}/sddm/* +%config(noreplace) %{_sysconfdir}/sddm.conf +%config(noreplace) %{_sysconfdir}/sysconfig/sddm +%config(noreplace) %{_sysconfdir}/pam.d/sddm* +%{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager-sddm.conf +%{_bindir}/sddm +%{_bindir}/sddm-greeter* +%{_libexecdir}/sddm-helper +%{_libexecdir}/sddm-helper-start-wayland +%{_libexecdir}/sddm-helper-start-x11user +%{_tmpfilesdir}/sddm.conf +%{_sysusersdir}/sddm.conf +%attr(0711, root, sddm) %dir /run/sddm +%attr(1770, sddm, sddm) %dir %{_localstatedir}/lib/sddm +%{_unitdir}/sddm.service +%{_qt6_archdatadir}/qml/SddmComponents/ +%dir %{_datadir}/sddm +%{_datadir}/sddm/faces/ +%{_datadir}/sddm/flags/ +%{_datadir}/sddm/scripts/ +%dir %{_datadir}/sddm/themes/ +# %%lang'ify? they're small, probably not worth it -- rex +%{_datadir}/sddm/translations*/ +%{_mandir}/man1/sddm.1* +%{_mandir}/man1/sddm-greeter.1* +%{_mandir}/man5/sddm.conf.5* +%{_mandir}/man5/sddm-state.conf.5* + + +%files wayland-generic +# No files since default configuration + + +%if %{with x11} +%files x11 +%{_prefix}/lib/sddm/sddm.conf.d/x11.conf +%endif + + +%files themes +%{_datadir}/sddm/themes/elarun/ +%{_datadir}/sddm/themes/maldives/ +%{_datadir}/sddm/themes/maya/ + + +%changelog +* Wed Mar 20 2024 Neal Gompa - 0.21.0-4 +- Move pam configs back to /etc for now + +* Wed Mar 20 2024 Neal Gompa - 0.21.0-3 +- Use our own greeter pam config and install pam configs to /usr + +* Tue Mar 05 2024 Neal Gompa - 0.21.0-2 +- De-conflict sddm dbus configuration file + +* Wed Feb 28 2024 Neal Gompa - 0.21.0-1 +- Update to 0.21.0 + +* Wed Feb 14 2024 Neal Gompa - 0.20.0-11 +- Add patch to fix desktop file parsing + +* Wed Jan 31 2024 Alessandro Astone - 0.20.0-10 +- Remove LayerShellQt patch + +* Mon Jan 29 2024 Neal Gompa - 0.20.0-9 +- Add patch to make SDDM uses kiosk-shell rather than fullscreen-shell + +* Sat Jan 27 2024 Neal Gompa - 0.20.0-8 +- Switch to SPDX license identifiers + +* Thu Nov 23 2023 Neal Gompa - 0.20.0-7 +- Disable X11 subpackage in RHEL 10+ +- Drop unneeded scriptlets + +* Mon Nov 20 2023 Alessandro Astone - 0.20.0-6 +- Backport patch to fix the keyboard with layer-shell + +* Sun Nov 19 2023 Alessandro Astone - 0.20.0-5 +- Build against Qt6 + +* Tue Sep 19 2023 Alessandro Astone - 0.20.0-4 +- Hide keyboard layout picker in the wayland greeter + +* Sat Jul 22 2023 Fedora Release Engineering - 0.20.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 18 2023 Adam Williamson - 0.20.0-2 +- Fix user/group creation - the config file *has* to be a package source + +* Fri Jun 23 2023 Neal Gompa - 0.20.0-1 +- Update to 0.20.0 final + +* Wed Apr 05 2023 Neal Gompa - 0.19.0^git20230404.e652433-1 +- Update to new snapshot to include a fix for logout issues (#2179591) + +* Mon Mar 20 2023 Neal Gompa - 0.19.0^git20230320.e07e805-2 +- Add patch to stop launching xdg-desktop-portal with Wayland greeter (#2178971, #2129479) + +* Mon Mar 20 2023 Marc Deop i Argemí - 0.19.0^git20230320.e07e805-1 +- Update to snapshot e07e805c21310572b4fecc810fd5610b1d3d03fd +- Fixes #2179591 + +* Mon Mar 06 2023 Marc Deop i Argemí - 0.19.0^git20230306.7bd10de-1 +- Update to new snapshot +- Fixes #2175947 + +* Mon Feb 20 2023 Neal Gompa - 0.19.0^git20230214.8f1e3df-1 +- Update to new snapshot +- Drop our sysusers and tmpfiles configuration for upstream versions + +* Wed Feb 01 2023 Marc Deop - 0.19.0^git20230201.3ee57e9-2 +- Update to new snapshot + +* Wed Feb 01 2023 Marc Deop - 0.19.0^git20230201.b042f69-1 +- Update to new snapshot. +- Remove patches merged upstream. + +* Sun Jan 29 2023 Neal Gompa - 0.19.0^git20221123.3e48649-3 +- Add proposed patch to recover from tty switching failures (#2110801) + +* Sat Jan 21 2023 Fedora Release Engineering - 0.19.0^git20221123.3e48649-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Dec 24 2022 Neal Gompa - 0.19.0^git20221123.3e48649-1 +- Update to new snapshot +- Add patch to support non-default wayland socket names for sway/weston/etc. +- Refreshed patch for waiting on logind seat0 initialization + +* Mon Nov 14 2022 Neal Gompa - 0.19.0^git20221114.1d15689-1 +- Update to new snapshot + +* Tue Oct 25 2022 Neal Gompa - 0.19.0^git20221025.fc24321-1 +- Update to new snapshot + +* Thu Sep 22 2022 Neal Gompa - 0.19.0^git20220921.21e965a-1 +- Update to new snapshot + +* Thu Aug 18 2022 Timothée Ravier - 0.19.0^git20220321.e67307e-4 +- Skip enabling Wayland by default on F37 + +* Sat Jul 23 2022 Fedora Release Engineering - 0.19.0^git20220321.e67307e-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Apr 03 2022 Neal Gompa - 0.19.0^git20220321.e67307e-2 +- Switch X11 greeter to rootful X server (#2070130) + +* Sun Apr 03 2022 Neal Gompa - 0.19.0^git20220321.e67307e-1 +- Bump to new git snapshot to include refreshed fix for sddm crash (#2057419) + +* Mon Mar 14 2022 Neal Gompa - 0.19.0^git20220228.c257a40-4 +- Switch back to the X11 greeter for F36 + +* Sun Mar 06 2022 Neal Gompa - 0.19.0^git20220228.c257a40-3 +- Backport fix to get sddm to log to the journal more + +* Mon Feb 28 2022 Adam Williamson - 0.19.0^git20220228.c257a40-2 +- Backport PR#1522 to try and fix crash after login (#2057419) + +* Mon Feb 28 2022 Neal Gompa - 0.19.0^git20220228.c257a40-1 +- Update to new snapshot +- Drop merged proposed patch to not ignore EINTR when activating + +* Fri Feb 25 2022 Neal Gompa - 0.19.0^git20220224.5ad9f19-2 +- Add proposed patch to not ignore EINTR when activating + +* Fri Feb 25 2022 Neal Gompa - 0.19.0^git20220224.5ad9f19-1 +- Update to new snapshot release + +* Mon Feb 07 2022 Neal Gompa - 0.19.0^git20220130.85cbf3f-2 +- Use unprivileged X server for sddm-x11 configuration + +* Sun Jan 30 2022 Neal Gompa - 0.19.0^git20220130.85cbf3f-1 +- Update to snapshot release +- Drop upstreamed patches +- Drop Xauth patch due to inability to apply it +- Update status on remaining patches +- Add support for using a Wayland greeter +- Clean up Wayland conditionals + +* Sat Jan 22 2022 Fedora Release Engineering - 0.19.0-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Oct 25 2021 Adam Williamson - 0.19.0-18 +- Simplify Wayland session hiding to just look for /dev/dri (jlinton) (#2016788) + +* Sat Oct 23 2021 Adam Williamson - 0.19.0-17 +- Patch udev rules, logind race and seat0 fallback (jlinton) (#2011991) (#2016310) + +* Wed Oct 13 2021 Timothée Ravier - 0.19.0-16 +- Install the correct configuration for systemd-sysusers + +* Fri Jul 23 2021 Fedora Release Engineering - 0.19.0-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 08 2021 Rex Dieter - 0.19.0-14 +- Use systemd-sysusers config to setup user/group + +* Fri Apr 23 2021 Neal Gompa - 0.19.0-13 +- Simplify to creating/deleting the flag file in the udev rule (#1952431) + +* Thu Apr 22 2021 Neal Gompa - 0.19.0-12 +- Enable hiding Wayland sessions with a flag file (#1952431) + +* Thu Apr 22 2021 Neal Gompa - 0.19.0-11 +- Add auto-fallback hack for when KMS isn't available (#1952431) + +* Tue Apr 13 2021 Adam Williamson - 0.19.0-10 +- Backport part of PR #1371 to improve session switching (#1929643) + +* Fri Apr 02 2021 Rex Dieter - 0.19.0-9 +- initial support for sddm.conf.d snippets + +* Sun Feb 28 2021 Neal Gompa - 0.19.0-8 +- Add trigger to auto-transition to Wayland session on upgrade to F34 + +* Wed Feb 03 2021 Rex Dieter - 0.19.0-7 +- adjust perms on /run/sddm to 1733 to future-proof xauth handling (#1922772) + +* Mon Feb 01 2021 Rex Dieter - 0.19.0-6 +- revert to older Redesign-Xauth-handling.patch (#1922772) + +* Thu Jan 28 2021 Rex Dieter - 0.19.0-5 +- pull in upstream fix for autologin (sddm issue #1348) + +* Tue Jan 26 2021 Rex Dieter - 0.19.0-4 +- Refresh Xauth patch from upstream PR +- minor .spec cosmetics + +* Fri Jan 22 2021 Neal Gompa - 0.19.0-3 +- Adjust sddm state file trigger for plasma-workspace 5.20.90-2 + +* Sun Jan 17 2021 Neal Gompa - 0.19.0-2 +- Add fix proposed upstream to fix SHELL setting in Wayland sessions + +* Tue Nov 10 2020 Neal Gompa - 0.19.0-1 +- Rebase to version 0.19.0 +- Refresh patch set and drop upstreamed patches + +* Sun Oct 18 2020 Neal Gompa - 0.18.1-9 +- Add patch to prefer Wayland sessions on F34+ +- Correctly handle Plasma session filename changes on upgrade to F34+ + +* Wed Aug 05 2020 Rex Dieter - 0.18.1-8 +- tmpfiles: use /run instead of /var/run + +* Wed Jul 29 2020 Fedora Release Engineering - 0.18.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jun 26 2020 Rex Dieter - 0.18.1-6 +- pull in upstream fix for duplicate session name + +* Wed Apr 08 2020 Rex Dieter - 0.18.1-5 +- remove pam_console dependency (#182218) + +* Thu Jan 30 2020 Fedora Release Engineering - 0.18.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jul 26 2019 Fedora Release Engineering - 0.18.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri May 03 2019 Rex Dieter - 0.18.1-2 +- consistently use auto_start in pam config (#1706029) + +* Mon Apr 01 2019 Rex Dieter - 0.18.1-1 +- 0.18.1 + +* Fri Mar 15 2019 Rex Dieter 0.18.0-6 +- rebuild + +* Thu Mar 14 2019 Rex Dieter - 0.18.0-5 +- sddm.service: EnvironmentFile=-/etc/sysconfig/sddm (#1686675) +- %%build: use %%make_build + +* Wed Mar 13 2019 Rex Dieter - 0.18.0-4 +- pull in upstream fix for https://github.com/sddm/sddm/issues/1145 (#1667171) + +* Sat Feb 02 2019 Fedora Release Engineering - 0.18.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Oct 26 2018 Rex Dieter - 0.18.0-2 +- rebuild for f29 background + +* Wed Jul 18 2018 Rex Dieter - 0.18.0-1 +- sddm-0.18.0 +- rebase libXau patch (upstream pull request #863) +- drop patch from upstream pull request #735 +- drop remnants of 02-fedora sddm theme + +* Tue Jul 17 2018 Rex Dieter - 0.17.0-6 +- BR: /usr/bin/rst2man + +* Sat Jul 14 2018 Fedora Release Engineering - 0.17.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 18 2018 Rex Dieter - 0.17.0-4 +- pull in some upstream fixes + +* Wed May 09 2018 Rex Dieter - 0.17.0-3 +- Suggests: qt5-qtvirtualkeyboard + +* Fri Feb 09 2018 Fedora Release Engineering - 0.17.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Dec 06 2017 Rex Dieter - 0.17.0-1 +- sddm-0.17.0, rebase patches +- Recommends: qt5-qtvirtualkeyboard + +* Fri Dec 01 2017 Rex Dieter - 0.16.0-2 +- omit 'fedora' theme (rely on fallback maui instead) +- %%post themes: drop config hack, no longer needed + +* Thu Nov 23 2017 Martin Bříza - 0.16.0-1 +- sddm-0.16.0 (#1504466) + +* Fri Oct 27 2017 Rex Dieter - 0.15.0-3 +- use fedora wallpaper for fallback/maui theme + +* Wed Oct 04 2017 Martin Bříza - 0.15.0-2 +- Fix a crash in the libXau patch (#1492371) + +* Mon Sep 04 2017 Rex Dieter - 0.15.0-1 +- sddm-0.15.0 (#1487460) + +* Fri Aug 25 2017 Martin Bříza - 0.14.0-14 +- Update the libXau patch based on Steve Storey's findings + +* Thu Aug 17 2017 Martin Bříza - 0.14.0-13 +- Port from xauth to libXau (#1370222) + +* Thu Aug 03 2017 Fedora Release Engineering - 0.14.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 0.14.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Jun 13 2017 Rex Dieter - 0.14.0-10 +- actually apply patch for bug #1446782 + +* Tue Jun 13 2017 Rex Dieter - 0.14.0-9 +- backport: UserModel: Check for duplicates from getpwent() (#1446782) + +* Sat Feb 11 2017 Fedora Release Engineering - 0.14.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Jan 28 2017 Rex Dieter - 0.14.0-7 +- EnableHiDPI=false default + +* Tue Nov 08 2016 Adam Williamson - 0.14.0-6 +- backport PR #735 to fix RHBZ #1392654 + +* Wed Nov 02 2016 Rex Dieter - 0.14.0-5 +- pull in upstream fixes + +* Fri Oct 07 2016 Rex Dieter - 0.14.0-4 +- sddm.conf default: Current=01-breeze-fedora + +* Mon Oct 03 2016 Rex Dieter - 0.14.0-3 +- drop deps used for fedora-only theme + +* Mon Oct 03 2016 Rex Dieter - 0.14.0-2 +- make 02-fedora theme, fedora only + +* Sun Aug 28 2016 Rex Dieter - 0.14.0-1 +- sddm-0.14.0 +- -themes: circles theme was removed + +* Fri Mar 11 2016 Rex Dieter - 0.13.0-7 +- pull in upstream fixes, some new features +- The desktop selection drop down list has an empty box (#1222228) +- sddm: RememberLastUser=false does not work (#1240749) + +* Fri Mar 11 2016 Rex Dieter 0.13.0-6 +- sddm: use pam_gnome_keyring (#1317066) + +* Thu Feb 04 2016 Fedora Release Engineering - 0.13.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Nov 16 2015 Rex Dieter - 0.13.0-4 +- rev sddm.conf for new defaults +- add /usr/share/sddm/scripts/README.scripts + +* Sun Nov 15 2015 Rex Dieter - 0.13.0-3 +- merge Configuration.h into fedora_config.patch +- copy all scripts into /etc/sddm as %%config(noreplace) + +* Sun Nov 15 2015 Rex Dieter 0.13.0-2 +- %%config(noreplace) /etc/sddm/Xsetup + +* Sat Nov 07 2015 Rex Dieter 0.13.0-1 +- 0.13.0 + +* Thu Oct 29 2015 Rex Dieter 0.12.0-6 +- tweak DefaultPath (#1276450) + +* Thu Oct 15 2015 Rex Dieter 0.12.0-5 +- Security fix for CVE-2015-0856 (#1271992,#1271993) + +* Thu Sep 24 2015 Rex Dieter 0.12.0-4 +- omit 0008-Inherit-path-environment-variables-from-parent.patch pending security concerns + +* Thu Sep 24 2015 Rex Dieter - 0.12.0-3 +- pull in upstream fixes (#1265813) +- fedora theme QML error (#1264946) + +* Thu Sep 10 2015 Rex Dieter 0.12.0-2 +- sddm.pam: add pam_kwallet5 support + +* Tue Sep 08 2015 Rex Dieter 0.12.0-1 +- 0.12.0 + +* Wed Sep 02 2015 Rex Dieter 0.11.0-2 +- use %%license tag + +* Thu Aug 06 2015 Rex Dieter - 0.11.0-1 +- sddm-0.11 (#1209689), plus pull in a few post 0.11.0 upstream fixes +- Enable two fedora themes, allowing user selector as default (#1250204) + +* Fri Jun 19 2015 Fedora Release Engineering - 0.10.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 0.10.0-5 +- Rebuilt for GCC 5 C++11 ABI change + +* Thu Jan 29 2015 Dan Horák - 0.10.0-4 +- don't Require Xorg server on s390(x) + +* Wed Jan 21 2015 Martin Briza - 0.10.0-3 +- Fixed positioning in the Fedora theme +- Resolves: #1183207 + +* Mon Oct 27 2014 Rex Dieter - 0.10.0-2 +- create/own %%{_sysconfdir}/sddm.conf, %%{_localstatedir}/lib/sddm (#1155898) +- don't mark stuff under /etc/dbus-1 %%config +- make %%{_localstatedir}/run/sddm group writable + +* Thu Oct 16 2014 Martin Briza - 0.10.0-1 +- Bump to 0.10.0 + +* Thu Oct 09 2014 Martin Briza - 0.9.0-2.20141007git6a28c29b +- Remove pam_gnome_keyring.so (temporarily) from sddm.pam to fix impossibility to log out +- Resolves: #1150283 + +* Tue Oct 07 2014 Martin Briza - 0.9.0-1.20141007git6a28c29b +- Bump to latest upstream git (and a new release) +- Hack around focus problem in the Fedora theme +- Compile against Qt5 +- Removed upstreamed patch and files +- Resolves: #1114192 #1119777 #1123506 #1125129 #1140386 #1112841 #1128463 #1128465 #1149608 #1149628 #1148659 #1148660 #1149610 #1149629 + +* Mon Aug 18 2014 Fedora Release Engineering - 0.2.0-0.32.20140627gitf49c2c79 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jun 27 2014 Martin Briza - 0.2.0-0.31.20140627gitf49c2c79 +- Patch unitialized values in signal handler in the daemon + +* Fri Jun 27 2014 Martin Briza - 0.2.0-0.30.20140627gitf49c2c79 +- Bump to latest upstream, switch back to sddm project +- Drop sddm.service +- Enable manpage and journald support + +* Tue Jun 24 2014 Martin Briza - 0.2.0-0.29.20140623gitdb1d7381 +- Fix default config to respect the new /usr/share paths +- Fixed multiple users after autologin + +* Mon Jun 23 2014 Martin Briza - 0.2.0-0.28.20140623gitdb1d7381 +- Fix Requires, release + +* Mon Jun 23 2014 Martin Briza - 0.2.0-0.27.20131125gitdb1d7381 +- Updated to the latest upstream git +- Notable changes: Greeter runs under the sddm user, it's possible to configure display setup, different install paths in /usr/share +- Resolves: #1034414 #1035939 #1035950 #1036308 #1038548 #1045722 #1045937 #1065715 #1082229 #1007067 #1027711 #1031745 #1008951 #1016902 #1031415 #1020921 + +* Sun Jun 08 2014 Fedora Release Engineering - 0.2.0-0.26.20131125git7a008602 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu May 01 2014 Rex Dieter 0.2.0-0.25.20131125git7a008602 +- update pam config (+pam_kwallet,-pam_mate_keyring) + +* Mon Jan 27 2014 Adam Jackson 0.2.0-0.24.20131125git7a008602 +- Rebuild for new sonames in libxcb 1.10 + +* Mon Dec 16 2013 Martin Briza - 0.2.0-0.23.20131125git7a008602 +- Revert all work done on authentication, doesn't support multiple logins right now + +* Mon Nov 25 2013 Martin Briza - 0.2.0-0.22.20131125git7a008602 +- Fix saving of last session and user + +* Mon Nov 25 2013 Martin Briza - 0.2.0-0.21.20131125git7a008602 +- Rebase to current upstream +- Fix the theme (and improve it by a bit) +- Fix the authentication stack +- Don't touch numlock on startup +- Disabled the XDMCP server until it's accepted upstream +- Resolves: #1016902 #1028799 #1031415 #1031745 #1020921 #1008951 #1004621 + +* Tue Nov 05 2013 Martin Briza - 0.2.0-0.20.20130914git50ca5b20 +- Fix xdisplay and tty vars + +* Tue Nov 05 2013 Martin Briza - 0.2.0-0.19.20130914git50ca5b20 +- Patch cleanup + +* Tue Nov 05 2013 Martin Briza - 0.2.0-0.18.20130914git50ca5b20 +- Cmake magic + +* Tue Nov 05 2013 Martin Briza - 0.2.0-0.17.20130914git50ca5b20 +- Rewritten the authentication stack to work right with PAM + +* Tue Oct 15 2013 Martin Briza - 0.2.0-0.16.20130914git50ca5b20 +- Fixed the Fedora theme wallpaper path + +* Tue Oct 15 2013 Martin Briza - 0.2.0-0.15.20130914git50ca5b20 +- Added XDMCP support patch +- Modified the config to reflect the added XDMCP support (disabled by default) + +* Tue Oct 15 2013 Rex Dieter - 0.2.0-0.14.20130914git50ca5b20 +- sddm.conf: CurrentTheme=fedora + +* Mon Oct 14 2013 Rex Dieter - 0.2.0-0.13.20130914git50ca5b20 +- include standard theme/config here, Obsoletes: kde-settings-sddm +- sddm.conf: SessionCommand=/etc/X11/xinit/Xsession + +* Mon Oct 14 2013 Rex Dieter - 0.2.0-0.12.20130914git50ca5b20 +- -themes: Obsoletes: sddm ... for upgrade path + +* Mon Oct 14 2013 Rex Dieter - 0.2.0-0.11.20130914git50ca5b20 +- -themes subpkg + +* Sat Sep 21 2013 Rex Dieter - 0.2.0-0.10.20130914git50ca5b20 +- use %%_qt4_importdir, %%systemd_requires macros +- own %%_datadir/apps/sddm +- fix Release +- drop explicit Requires: pam (let rpm autodeps handle it) + +* Mon Sep 16 2013 Martin Briza - 0.2.0-0.9.20130914git50ca5b20 +- Requires: kde-settings-sddm + +* Mon Sep 16 2013 Martin Briza - 0.2.0-0.8.20130914git50ca5b20 +- Moved the config to the kde-settings-sddm package + +* Sat Sep 14 2013 Martin Briza - 0.2.0-0.7.20130914git50ca5b20 +- Removed the nonfree font from the package, replaced with "Sans" +- Temporarily set my own repository as the origin to avoid having the font in the srpm +- Changing the source also brings us a few new commits and removes Patch1 for PAM + +* Mon Sep 09 2013 Martin Briza - 0.2.0-0.6.20130821gite707e229 +- Added the patch, forgot to apply it, now it's okay + +* Mon Sep 09 2013 Martin Briza - 0.2.0-0.5.20130821gite707e229 +- Set a better order of the X sessions selection and hidden the Custom one (#1004902) + +* Mon Sep 02 2013 Martin Briza - 0.2.0-0.4.20130821gite707e229 +- Complete PAM conversations and end them properly when the session ends +- Ship our own systemd service file especially to provide Conflicts: getty@tty1.service + +* Tue Aug 27 2013 Martin Briza - 0.2.0-0.3.20130821gite707e229 +- Suppress error output from missing PAMs. + +* Tue Aug 27 2013 Martin Briza - 0.2.0-0.2.20130821gite707e229 +- Switched the pam config to the one GDM uses. Solves issues with pulseaudio and possibly more. + +* Thu Aug 22 2013 Martin Briza - 0.2.0-0.1.20130821gite707e229 +- Fixed the package version + +* Wed Aug 21 2013 Martin Briza - 0.2.0-0.130821.git.e707e229 +- Imported the latest upstream git commit + +* Mon Aug 19 2013 Martin Briza - 0.1.0-7 +- Set the build to be hardened + +* Tue Aug 06 2013 Martin Briza - 0.1.0-6 +- Added mate-keyring to PAM config (#993397) + +* Mon Jul 22 2013 Martin Briza - 0.1.0-5 +- Store xauth in /var/run/sddm + +* Mon Jul 22 2013 Martin Briza - 0.1.0-4 +- Added the documentation bits + +* Thu Jul 18 2013 Martin Briza - 0.1.0-3 +- Changed the source package to tar.gz +- Config files are now noreplace +- Buildrequires -systemd-devel +systemd +cmake + +* Tue Jul 16 2013 Martin Briza - 0.1.0-2 +- Removed unneeded BuildRequires +- Fixed systemd scriptlets +- Fixed release +- Simplified setup +- Added Requires needed for basic function +- Added Provides for graphical login + +* Thu Jul 04 2013 Martin Briza - 0.1.0-1 +- Initial build