diff mbox series

[meta-oe] xscreensaver: move to template and update for emptty

Message ID 20260309233451.1995625-2-rs@ti.com
State New
Headers show
Series [meta-oe] xscreensaver: move to template and update for emptty | expand

Commit Message

Randolph Sapp March 9, 2026, 11:34 p.m. UTC
From: Randolph Sapp <rs@ti.com>

Emptty is a new display manager that couples the user accounts with the
configuration profiles as a requirement moving forward. As such,
dependencies need to be updated in this recipe to ensure the xuser
account and session are present.

Previously the systemd service would wait for the session despite the
recipe only explicitly requiring the xuser-account. This fixes that
issue and also makes the service a template, allowing multiple instances
to be started for specific users.

Long term this should be migrated to use graphical-session.target [1],
but that requires a little more setup on the core side of things.

[1] https://systemd.io/DESKTOP_ENVIRONMENTS/

Signed-off-by: Randolph Sapp <rs@ti.com>
---

Sending this now that emptty has been picked up on oe-core's master-next branch.

 .../xscreensaver/files/xscreensaver.service        | 14 --------------
 .../xscreensaver/files/xscreensaver@.service       | 11 +++++++++++
 .../xscreensaver/xscreensaver_6.04.bb              | 14 +++++++++-----
 3 files changed, 20 insertions(+), 19 deletions(-)
 delete mode 100755 meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service
 create mode 100644 meta-oe/recipes-graphics/xscreensaver/files/xscreensaver@.service
diff mbox series

Patch

diff --git a/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service b/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service
deleted file mode 100755
index 17dfe75ef1..0000000000
--- a/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service
+++ /dev/null
@@ -1,14 +0,0 @@ 
-[Unit]
-Description=Xscreensaver service
-PartOf=xserver-nodm.service
-After=xserver-nodm.service
-
-[Service]
-ExecStart=/usr/bin/xscreensaver
-Environment="DISPLAY=:0"
-User=xuser
-Restart=always
-RestartSec=1
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver@.service b/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver@.service
new file mode 100644
index 0000000000..d63f0f9019
--- /dev/null
+++ b/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver@.service
@@ -0,0 +1,11 @@ 
+[Unit]
+Description=Xscreensaver service for %I
+
+[Service]
+ExecStart=/usr/bin/xscreensaver
+User=%I
+Restart=always
+RestartSec=1
+
+[Install]
+WantedBy=default.target
diff --git a/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
index 073b3f0912..69c71f2e67 100644
--- a/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
+++ b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
@@ -4,7 +4,7 @@  LICENSE = "0BSD"
 LIC_FILES_CHKSUM = "file://driver/xscreensaver.h;endline=10;md5=c3ce41cdff745eb1dc9d4fcfbffb4d51"
 
 SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz \
-    file://xscreensaver.service \
+    file://xscreensaver@.service \
     file://0001-Tweak-app-defaults.patch \
     file://0002-build-Do-not-build-po-files.patch \
     file://0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch \
@@ -19,7 +19,7 @@  DEPENDS = "intltool-native libx11 libxext libxt libxft libxi glib-2.0-native bc-
 # These are only needed as part of the stopgap screensaver implementation:
 RDEPENDS:${PN} = " \
     liberation-fonts \
-    xuser-account \
+    xserver-nodm-init \
 "
 
 inherit systemd perlnative pkgconfig gettext autotools-brokensep features_check
@@ -40,7 +40,7 @@  CONFIGUREOPTS:remove = "--disable-silent-rules --disable-dependency-tracking"
 EXTRA_OECONF:remove = "--disable-static"
 
 do_install:append() {
-    install -D ${UNPACKDIR}/xscreensaver.service ${D}${systemd_unitdir}/system/xscreensaver.service
+    install -D ${UNPACKDIR}/xscreensaver@.service ${D}${systemd_unitdir}/system/xscreensaver@.service
     for f in xscreensaver-getimage-file xscreensaver-getimage-video webcollage xscreensaver-text vidwhacker
     do
         sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl|/usr/bin/perl|g" ${D}/${libexecdir}/${PN}/$f
@@ -56,8 +56,12 @@  FILES:${PN}-perl = "\
     ${libexecdir}/${PN}/xscreensaver-text \
     ${libexecdir}/${PN}/vidwhacker \
     "
-FILES:${PN} += "${datadir}/X11/app-defaults/XScreenSaver ${datadir}/fonts"
-SYSTEMD_SERVICE:${PN} = "xscreensaver.service"
+FILES:${PN} += "\
+    ${systemd_unitdir}/system/xscreensaver@.service \
+    ${datadir}/X11/app-defaults/XScreenSaver \
+    ${datadir}/fonts \
+    "
+SYSTEMD_SERVICE:${PN} = "xscreensaver@xuser.service"
 
 RDEPENDS:${PN}-perl = "perl"