# Disable X11 for RHEL 10+ %bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10] %global commit 7dc6f4afee1dfb765a2c57aab43969c64e04a504 %global shortcommit %{sub %{commit} 1 7} %global commitdate 20251117 Name: plasma-login-manager Version: 0.21.0%{?commitdate:~git%{commitdate}.%{shortcommit}} Release: 1%{?dist} License: GPL-2.0-or-later Summary: QML based login manager from KDE URL: https://invent.kde.org/plasma/plasma-login-manager %dnl Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz Source0: %{url}/-/archive/%{commit}/%{name}-%{shortcommit}.tar.gz # README.scripts Source10: README.scripts # sysconfig snippet Source11: plasmalogin.sysconfig # 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/ Source12: plasmalogin.sysusers # upstream patches # upstreamable patches Patch0101: https://invent.kde.org/plasma/plasma-login-manager/-/merge_requests/31.patch # downstream patches ## plasmalogin.service: +EnvironmentFile=-/etc/sysconfig/plasmalogin Patch1001: plasmalogin-environment_file.patch ## Workaround for https://pagure.io/fedora-kde/SIG/issue/87 Patch1002: plasmalogin-rpmostree-tmpfiles-hack.patch Provides: service(graphical-login) = plasmalogin BuildRequires: cmake >= 3.22 BuildRequires: extra-cmake-modules BuildRequires: pam-devel BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb-xkb) BuildRequires: cmake(Qt6Core) BuildRequires: cmake(Qt6DBus) BuildRequires: cmake(Qt6Gui) BuildRequires: cmake(Qt6Qml) BuildRequires: cmake(Qt6Quick) BuildRequires: cmake(Qt6LinguistTools) BuildRequires: cmake(Qt6Test) BuildRequires: cmake(Qt6QuickTest) BuildRequires: cmake(KF6Config) BuildRequires: cmake(KF6Package) BuildRequires: cmake(KF6WindowSystem) BuildRequires: cmake(KF6I18n) BuildRequires: cmake(KF6DBusAddons) BuildRequires: cmake(KF6KCMUtils) BuildRequires: cmake(KF6Auth) BuildRequires: cmake(KF6KIO) BuildRequires: cmake(PlasmaQuick) BuildRequires: cmake(LayerShellQt) BuildRequires: cmake(LibKWorkspace) # verify presence to pull defaults from /etc/login.defs BuildRequires: shadow-utils BuildRequires: systemd BuildRequires: systemd-rpm-macros BuildRequires: kf6-rpm-macros # for jxl support Requires: kf6-kimageformats%{?_isa} %if %{with x11} Requires: xorg-x11-xinit %endif %{?systemd_requires} Requires: kf6-filesystem Requires(pre): shadow-utils # Requires kwin-wayland Requires: kwin-wayland%{?_isa} Requires: (kcm-plasmalogin%{?_isa} if plasma-systemsettings%{?_isa}) %description Plasma Login provides a display manager for KDE Plasma and with an new frontend providing a greeter, wallpaper plugin integration and a System Settings module (KCM). %package -n kcm-plasmalogin Summary: KDE KCM for %{name} Requires: %{name} = %{version}-%{release} %description -n kcm-plasmalogin %{summary}. %prep %autosetup -p1 %{?commitdate:-n %{name}-%{commit}} %conf %cmake_kf6 \ -DCMAKE_BUILD_TYPE:STRING="Release" \ -DPAM_OS_CONFIGURATION:STRING="fedora" \ -DSESSION_COMMAND:PATH=/etc/X11/xinit/Xsession \ -DWAYLAND_SESSION_COMMAND:PATH=/etc/plasmalogin/wayland-session %build %cmake_build %install %cmake_install %find_lang plasma_login %find_lang kcm_plasmalogin install -Dpm 644 %{SOURCE10} %{buildroot}%{_datadir}/plasmalogin/scripts/README.scripts install -Dpm 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/sysconfig/plasmalogin mkdir -p %{buildroot}/run/plasmalogin mkdir -p %{buildroot}%{_localstatedir}/lib/plasmalogin mkdir -p %{buildroot}%{_sysconfdir}/plasmalogin/ cp -a %{buildroot}%{_datadir}/plasmalogin/scripts/* \ %{buildroot}%{_sysconfdir}/plasmalogin/ # we're using /etc/X11/xinit/Xsession (by default) instead rm -fv %{buildroot}%{_sysconfdir}/plasmalogin/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-plasmalogin.conf %pre %sysusers_create_compat %{SOURCE12} %post %systemd_post plasmalogin.service %preun %systemd_preun plasmalogin.service %postun %systemd_postun plasmalogin.service %files -f plasma_login.lang %license LICENSE* LICENSES/* %doc README.md %dir %{_sysconfdir}/plasmalogin/ %config(noreplace) %{_sysconfdir}/plasmalogin/* %config(noreplace) %{_sysconfdir}/sysconfig/plasmalogin %config(noreplace) %{_sysconfdir}/pam.d/plasmalogin* %{_datadir}/dbus-1/system.d/org.freedesktop.DisplayManager-plasmalogin.conf %{_bindir}/plasmalogin %{_bindir}/startplasma-login-wayland %{_bindir}/plasma-login-wallpaper %{_libexecdir}/plasmalogin-helper %{_libexecdir}/plasmalogin-helper-start-x11user %{_libexecdir}/plasma-login-greeter %{_tmpfilesdir}/plasmalogin.conf %{_sysusersdir}/plasmalogin.conf %attr(0711, root, plasmalogin) %dir /run/plasmalogin %attr(1770, plasmalogin, plasmalogin) %dir %{_localstatedir}/lib/plasmalogin %{_unitdir}/plasmalogin.service %{_userunitdir}/plasma-login*.service %{_userunitdir}/plasma-login-wayland.target %{_userunitdir}/plasma-wallpaper.service %dir %{_datadir}/plasmalogin %{_datadir}/plasmalogin/scripts/ %files -n kcm-plasmalogin -f kcm_plasmalogin.lang %{_kf6_libexecdir}/kauth/kcmplasmalogin_authhelper %{_kf6_qtplugindir}/plasma/kcms/systemsettings/kcm_plasmalogin.so %{_datadir}/applications/kcm_plasmalogin.desktop %{_datadir}/dbus-1/system-services/org.kde.kcontrol.kcmplasmalogin.service %{_datadir}/dbus-1/system.d/org.kde.kcontrol.kcmplasmalogin.conf %{_datadir}/polkit-1/actions/org.kde.kcontrol.kcmplasmalogin.policy %changelog * Sun Nov 23 2025 Neal Gompa - 0.21.0~git20251117.7dc6f4a-1 - Initial package