diff mbox series

x11-volatiles: register x11 volatile directories

Message ID 20251027231918.3987817-2-rs@ti.com
State Accepted, archived
Commit 36473898f0a122880aaa2220fbf98732027d759f
Headers show
Series x11-volatiles: register x11 volatile directories | expand

Commit Message

Randolph Sapp Oct. 27, 2025, 11:19 p.m. UTC
From: Randolph Sapp <rs@ti.com>

Add a volatiles entry for popular x11 and adjacent utilities. This is
designed to mimic the systemd tmpfiles.d entries and prevent any one
user from creating these directories with permissions that may
negatively impact multi-user environments.

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

Split to separate package and conditionally enabled following previous
discussions here:
https://lists.openembedded.org/g/openembedded-core/topic/115646663#msg225134

 meta/conf/distro/include/maintainers.inc      |  1 +
 .../x11-common/x11-volatiles.bb               | 20 +++++++++++++++++++
 .../x11-common/x11-volatiles/02_x11           |  6 ++++++
 .../xorg-xserver/xserver-xorg_21.1.18.bb      |  2 ++
 .../xwayland/xwayland_24.1.8.bb               |  2 +-
 5 files changed, 30 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-graphics/x11-common/x11-volatiles.bb
 create mode 100644 meta/recipes-graphics/x11-common/x11-volatiles/02_x11

Comments

Alexander Kanavin Oct. 30, 2025, 11:14 a.m. UTC | #1
On Tue, 28 Oct 2025 at 00:20, Randolph Sapp via lists.openembedded.org
<rs=ti.com@lists.openembedded.org> wrote:
> +inherit bin_package features_check

It's not a major issue, but I don't think bin_package is required (and
it's intended for installing prebuilt binaries). On the other hand,
this recipe installs only architecture-independent data, and so should
inherit allarch.

Can you make these changes, test that they work, and send a followup patch?

Alex
diff mbox series

Patch

diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 444c7f6521..cf74785e59 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -886,6 +886,7 @@  RECIPE_MAINTAINER:pn-wic-tools = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-wireless-regdb = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-wpa-supplicant = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-wpebackend-fdo = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-x11-volatiles = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-x11perf = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-x264 = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xauth = "Unassigned <unassigned@yoctoproject.org>"
diff --git a/meta/recipes-graphics/x11-common/x11-volatiles.bb b/meta/recipes-graphics/x11-common/x11-volatiles.bb
new file mode 100644
index 0000000000..23bd6e1661
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-volatiles.bb
@@ -0,0 +1,20 @@ 
+SUMMARY = "Xserver Volatile Directories"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
+SECTION = "x11"
+
+SRC_URI = "file://02_x11"
+
+S = "${UNPACKDIR}"
+
+inherit bin_package features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+CONFLICT_DISTRO_FEATURES = "systemd"
+
+do_install() {
+	install -d ${D}${sysconfdir}/default/volatiles
+	install -m 0644 ${UNPACKDIR}/02_x11 ${D}${sysconfdir}/default/volatiles
+}
+
+FILES:${PN} += "${sysconfdir}/default/volatiles"
diff --git a/meta/recipes-graphics/x11-common/x11-volatiles/02_x11 b/meta/recipes-graphics/x11-common/x11-volatiles/02_x11
new file mode 100644
index 0000000000..35c3698479
--- /dev/null
+++ b/meta/recipes-graphics/x11-common/x11-volatiles/02_x11
@@ -0,0 +1,6 @@ 
+# Volatile entries to match systemd
+# https://github.com/systemd/systemd/blob/main/tmpfiles.d/x11.conf
+d root root 1777 /tmp/.X11-unix none
+d root root 1777 /tmp/.ICE-unix none
+d root root 1777 /tmp/.XIM-unix none
+d root root 1777 /tmp/.font-unix none
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.18.bb b/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.18.bb
index 14c45be432..3c8cb0173f 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.18.bb
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.18.bb
@@ -26,3 +26,5 @@  RCONFLICTS:${PN} = "${PN}-extension-dri \
                     ${PN}-extension-extmod \
                     ${PN}-extension-dbe \
                    "
+
+RDEPENDS:${PN} += "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "x11-volatiles", d)}"
diff --git a/meta/recipes-graphics/xwayland/xwayland_24.1.8.bb b/meta/recipes-graphics/xwayland/xwayland_24.1.8.bb
index 900da524b3..a621af1a7f 100644
--- a/meta/recipes-graphics/xwayland/xwayland_24.1.8.bb
+++ b/meta/recipes-graphics/xwayland/xwayland_24.1.8.bb
@@ -47,4 +47,4 @@  do_install:append() {
 
 FILES:${PN} += "${libdir}/xorg/protocol.txt"
 
-RDEPENDS:${PN} += "xkbcomp"
+RDEPENDS:${PN} += "xkbcomp ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "x11-volatiles", d)}"