From 0aadea351341f8fbd75d76863cbcb4a9c4154108 Mon Sep 17 00:00:00 2001 From: Gil Date: Sat, 18 Jan 2025 20:48:01 -0600 Subject: [PATCH] Remove: terra-sddm and terra-wl-clipboard (#3048) --- ...lay-for-logind-and-fallback-to-seat0.patch | 142 --- anda/desktops/sddm/README.scripts | 2 - anda/desktops/sddm/anda.hcl | 5 - .../sddm/sddm-0.18.0-environment_file.patch | 11 - .../sddm/sddm-0.20.0-fedora_config.patch | 53 - .../sddm/sddm-0.21.0-qt6greeter.patch | 67 -- anda/desktops/sddm/sddm-PR1876.patch | 1018 ----------------- anda/desktops/sddm/sddm-autologin.pam | 20 - anda/desktops/sddm/sddm-greeter.pam | 17 - .../sddm/sddm-rpmostree-tmpfiles-hack.patch | 12 - anda/desktops/sddm/sddm-systemd-sysusers.conf | 2 - anda/desktops/sddm/sddm-x11.conf | 2 - anda/desktops/sddm/sddm.conf | 122 -- anda/desktops/sddm/sddm.pam | 23 - anda/desktops/sddm/sddm.sysconfig | 5 - anda/desktops/sddm/terra-sddm.spec | 293 ----- anda/desktops/sddm/update.rhai | 1 - anda/tools/wl-clipboard/anda.hcl | 5 - .../wl-clipboard/terra-wl-clipboard.spec | 35 - anda/tools/wl-clipboard/update.rhai | 1 - 20 files changed, 1836 deletions(-) delete mode 100644 anda/desktops/sddm/0001-Delay-for-logind-and-fallback-to-seat0.patch delete mode 100644 anda/desktops/sddm/README.scripts delete mode 100644 anda/desktops/sddm/anda.hcl delete mode 100644 anda/desktops/sddm/sddm-0.18.0-environment_file.patch delete mode 100644 anda/desktops/sddm/sddm-0.20.0-fedora_config.patch delete mode 100644 anda/desktops/sddm/sddm-0.21.0-qt6greeter.patch delete mode 100644 anda/desktops/sddm/sddm-PR1876.patch delete mode 100644 anda/desktops/sddm/sddm-autologin.pam delete mode 100644 anda/desktops/sddm/sddm-greeter.pam delete mode 100644 anda/desktops/sddm/sddm-rpmostree-tmpfiles-hack.patch delete mode 100644 anda/desktops/sddm/sddm-systemd-sysusers.conf delete mode 100644 anda/desktops/sddm/sddm-x11.conf delete mode 100644 anda/desktops/sddm/sddm.conf delete mode 100644 anda/desktops/sddm/sddm.pam delete mode 100644 anda/desktops/sddm/sddm.sysconfig delete mode 100644 anda/desktops/sddm/terra-sddm.spec delete mode 100644 anda/desktops/sddm/update.rhai delete mode 100644 anda/tools/wl-clipboard/anda.hcl delete mode 100644 anda/tools/wl-clipboard/terra-wl-clipboard.spec delete mode 100644 anda/tools/wl-clipboard/update.rhai diff --git a/anda/desktops/sddm/0001-Delay-for-logind-and-fallback-to-seat0.patch b/anda/desktops/sddm/0001-Delay-for-logind-and-fallback-to-seat0.patch deleted file mode 100644 index e6292da34b..0000000000 --- a/anda/desktops/sddm/0001-Delay-for-logind-and-fallback-to-seat0.patch +++ /dev/null @@ -1,142 +0,0 @@ -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/anda/desktops/sddm/README.scripts b/anda/desktops/sddm/README.scripts deleted file mode 100644 index 70b5243104..0000000000 --- a/anda/desktops/sddm/README.scripts +++ /dev/null @@ -1,2 +0,0 @@ -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/anda/desktops/sddm/anda.hcl b/anda/desktops/sddm/anda.hcl deleted file mode 100644 index 3c3e12cf82..0000000000 --- a/anda/desktops/sddm/anda.hcl +++ /dev/null @@ -1,5 +0,0 @@ -project pkg { - rpm { - spec = "terra-sddm.spec" - } -} diff --git a/anda/desktops/sddm/sddm-0.18.0-environment_file.patch b/anda/desktops/sddm/sddm-0.18.0-environment_file.patch deleted file mode 100644 index 6f89c36b18..0000000000 --- a/anda/desktops/sddm/sddm-0.18.0-environment_file.patch +++ /dev/null @@ -1,11 +0,0 @@ -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/anda/desktops/sddm/sddm-0.20.0-fedora_config.patch b/anda/desktops/sddm/sddm-0.20.0-fedora_config.patch deleted file mode 100644 index ec6c1b6c88..0000000000 --- a/anda/desktops/sddm/sddm-0.20.0-fedora_config.patch +++ /dev/null @@ -1,53 +0,0 @@ -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/anda/desktops/sddm/sddm-0.21.0-qt6greeter.patch b/anda/desktops/sddm/sddm-0.21.0-qt6greeter.patch deleted file mode 100644 index b9e95a5a36..0000000000 --- a/anda/desktops/sddm/sddm-0.21.0-qt6greeter.patch +++ /dev/null @@ -1,67 +0,0 @@ -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/anda/desktops/sddm/sddm-PR1876.patch b/anda/desktops/sddm/sddm-PR1876.patch deleted file mode 100644 index c0a89faa52..0000000000 --- a/anda/desktops/sddm/sddm-PR1876.patch +++ /dev/null @@ -1,1018 +0,0 @@ -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/anda/desktops/sddm/sddm-autologin.pam b/anda/desktops/sddm/sddm-autologin.pam deleted file mode 100644 index f62fad0baf..0000000000 --- a/anda/desktops/sddm/sddm-autologin.pam +++ /dev/null @@ -1,20 +0,0 @@ - #%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/anda/desktops/sddm/sddm-greeter.pam b/anda/desktops/sddm/sddm-greeter.pam deleted file mode 100644 index 44e209e904..0000000000 --- a/anda/desktops/sddm/sddm-greeter.pam +++ /dev/null @@ -1,17 +0,0 @@ -#%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/anda/desktops/sddm/sddm-rpmostree-tmpfiles-hack.patch b/anda/desktops/sddm/sddm-rpmostree-tmpfiles-hack.patch deleted file mode 100644 index 4f06aa1946..0000000000 --- a/anda/desktops/sddm/sddm-rpmostree-tmpfiles-hack.patch +++ /dev/null @@ -1,12 +0,0 @@ -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/anda/desktops/sddm/sddm-systemd-sysusers.conf b/anda/desktops/sddm/sddm-systemd-sysusers.conf deleted file mode 100644 index 05fcb1c076..0000000000 --- a/anda/desktops/sddm/sddm-systemd-sysusers.conf +++ /dev/null @@ -1,2 +0,0 @@ -#Type Name ID GECOS Home directory Shell -u sddm - "SDDM Greeter Account" /var/lib/sddm - diff --git a/anda/desktops/sddm/sddm-x11.conf b/anda/desktops/sddm/sddm-x11.conf deleted file mode 100644 index 6d16a4a0b2..0000000000 --- a/anda/desktops/sddm/sddm-x11.conf +++ /dev/null @@ -1,2 +0,0 @@ -[General] -DisplayServer=x11 diff --git a/anda/desktops/sddm/sddm.conf b/anda/desktops/sddm/sddm.conf deleted file mode 100644 index c4696b5878..0000000000 --- a/anda/desktops/sddm/sddm.conf +++ /dev/null @@ -1,122 +0,0 @@ -[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/anda/desktops/sddm/sddm.pam b/anda/desktops/sddm/sddm.pam deleted file mode 100644 index 34c0777516..0000000000 --- a/anda/desktops/sddm/sddm.pam +++ /dev/null @@ -1,23 +0,0 @@ -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/anda/desktops/sddm/sddm.sysconfig b/anda/desktops/sddm/sddm.sysconfig deleted file mode 100644 index 4911cb4af3..0000000000 --- a/anda/desktops/sddm/sddm.sysconfig +++ /dev/null @@ -1,5 +0,0 @@ -# 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/anda/desktops/sddm/terra-sddm.spec b/anda/desktops/sddm/terra-sddm.spec deleted file mode 100644 index 7e5e82ceb2..0000000000 --- a/anda/desktops/sddm/terra-sddm.spec +++ /dev/null @@ -1,293 +0,0 @@ -# Disable X11 for RHEL 10+ -%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10] - -Name: terra-sddm -Version: 0.21.0 -Release: 5%{?dist} -License: GPL-2.0-or-later -Summary: QML based desktop and login manager -Provides: sddm = %version-%release - -URL: https://github.com/sddm/sddm -Source0: %{url}/archive/v%{version}/sddm-%{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 - -# https://github.com/sddm/sddm/pull/1779 -Patch106: https://github.com/sddm/sddm/pull/1779.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 sddm-%{commit}} -n sddm-%version - -%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 -%autochangelog diff --git a/anda/desktops/sddm/update.rhai b/anda/desktops/sddm/update.rhai deleted file mode 100644 index 857392fd70..0000000000 --- a/anda/desktops/sddm/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("sddm/sddm")); diff --git a/anda/tools/wl-clipboard/anda.hcl b/anda/tools/wl-clipboard/anda.hcl deleted file mode 100644 index 8f34eb2480..0000000000 --- a/anda/tools/wl-clipboard/anda.hcl +++ /dev/null @@ -1,5 +0,0 @@ -project pkg { - rpm { - spec = "terra-wl-clipboard.spec" - } -} diff --git a/anda/tools/wl-clipboard/terra-wl-clipboard.spec b/anda/tools/wl-clipboard/terra-wl-clipboard.spec deleted file mode 100644 index 9e21a4ae21..0000000000 --- a/anda/tools/wl-clipboard/terra-wl-clipboard.spec +++ /dev/null @@ -1,35 +0,0 @@ -Name: terra-wl-clipboard -Version: 2.2.1 -Release: 1%?dist -Summary: Command-line copy/paste utilities for Wayland -License: GPL-3.0 -URL: https://github.com/bugaevc/wl-clipboard -Source0: %url/archive/refs/tags/v%version.tar.gz -Requires: xdg-utils mailcap -#? Requires: wayland -BuildRequires: git-core meson wayland-protocols-devel gcc pkgconfig(wayland-client) redhat-rpm-config -Provides: wl-clipboard = %version - -%description -This project implements two command-line Wayland clipboard utilities, wl-copy and wl-paste, -that let you easily copy data between the clipboard and Unix pipes, sockets, files and so on. - -%prep -%autosetup -n wl-clipboard-%version - -%build -%meson -%meson_build - -%install -%meson_install - -%files -%_bindir/wl-* -%bash_completions_dir/wl-* -%fish_completions_dir/wl-* -%zsh_completions_dir/_wl-* -%_mandir/man1/wl-*.1.gz - -%changelog -%autochangelog diff --git a/anda/tools/wl-clipboard/update.rhai b/anda/tools/wl-clipboard/update.rhai deleted file mode 100644 index f920657e15..0000000000 --- a/anda/tools/wl-clipboard/update.rhai +++ /dev/null @@ -1 +0,0 @@ -rpm.version(gh("bugaevc/wl-clipboard"));