diff mbox series

[PATCHv10,7/7] xuser-account: merge with xserver-nodm-init

Message ID 20250923225150.2407390-8-rs@ti.com
State New
Headers show
Series Display manager proposal for x11 and wayland | expand

Commit Message

Randolph Sapp Sept. 23, 2025, 10:51 p.m. UTC
From: Randolph Sapp <rs@ti.com>

Merge the xuser-account recipe with xserver-nodm-init, since:

 - This is the only recipe dependent on it
 - This matches the current behavior in weston-init
 - Running x11 as root is no longer a supported path in
   xserver-nodm-init

Signed-off-by: Randolph Sapp <rs@ti.com>
---
 meta/conf/distro/include/maintainers.inc      |  1 -
 .../xserver-nodm-init}/system-xuser.conf      |  0
 .../x11-common/xserver-nodm-init_3.0.bb       | 20 +++++++++---
 .../user-creation/xuser-account_0.1.bb        | 31 -------------------
 4 files changed, 15 insertions(+), 37 deletions(-)
 rename meta/{recipes-support/user-creation/files => recipes-graphics/x11-common/xserver-nodm-init}/system-xuser.conf (100%)
 delete mode 100644 meta/recipes-support/user-creation/xuser-account_0.1.bb

Comments

Richard Purdie Sept. 23, 2025, 10:57 p.m. UTC | #1
On Tue, 2025-09-23 at 17:51 -0500, rs@ti.com wrote:
> From: Randolph Sapp <rs@ti.com>
> 
> Merge the xuser-account recipe with xserver-nodm-init, since:
> 
>  - This is the only recipe dependent on it

This is not a good reason to merge them. The reason they were kept
separate was so that people could replace the user with their own user
setup whilst reusing the xserver init code (or vice versa).

>  - This matches the current behavior in weston-init
>  - Running x11 as root is no longer a supported path in
>    xserver-nodm-init

Does rootless X work everywhere now? 

Cheers,

Richard
patchtest@automation.yoctoproject.org Sept. 23, 2025, 11:03 p.m. UTC | #2
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch /home/patchtest/share/mboxes/PATCHv10-7-7-xuser-account-merge-with-xserver-nodm-init.patch

FAIL: test lic files chksum modified not mentioned: LIC_FILES_CHKSUM changed without "License-Update:" tag and description in commit message (test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)

PASS: test CVE check ignore (test_metadata.TestMetadata.test_cve_check_ignore)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)

SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: pretest src uri left files: Patch cannot be merged (test_metadata.TestMetadata.pretest_src_uri_left_files)
SKIP: test CVE tag format: No new CVE patches introduced (test_patch.TestPatch.test_cve_tag_format)
SKIP: test Signed-off-by presence: No new CVE patches introduced (test_patch.TestPatch.test_signed_off_by_presence)
SKIP: test Upstream-Status presence: No new CVE patches introduced (test_patch.TestPatch.test_upstream_status_presence_format)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test lic files chksum presence: No added recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_presence)
SKIP: test license presence: No added recipes, skipping test (test_metadata.TestMetadata.test_license_presence)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
SKIP: test src uri left files: Patch cannot be merged (test_metadata.TestMetadata.test_src_uri_left_files)
SKIP: test summary presence: No added recipes, skipping test (test_metadata.TestMetadata.test_summary_presence)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
Randolph Sapp Sept. 23, 2025, 11:38 p.m. UTC | #3
On Tue Sep 23, 2025 at 5:57 PM CDT, Richard Purdie wrote:
> On Tue, 2025-09-23 at 17:51 -0500, rs@ti.com wrote:
>> From: Randolph Sapp <rs@ti.com>
>> 
>> Merge the xuser-account recipe with xserver-nodm-init, since:
>> 
>>  - This is the only recipe dependent on it
>
> This is not a good reason to merge them. The reason they were kept
> separate was so that people could replace the user with their own user
> setup whilst reusing the xserver init code (or vice versa).

Sure, but now this is all encompassed by the virtual-emptty-conf providers, as
the conf dictates what user is to be automatically logged in. This conf needs to
be kept in sync with whatever user is submitted.

If people want to forgo managing the conf and just manage their own users then
they can just set the preferred rprovider for virtual-emptty-conf to emptty-conf
and add their own users in their own recipes. This will give them the desktop
like experience where they are greeted with a console login prompt and session
picker on tty7.

I guess this also means that the x-session-manager recipes should be updated to
provide their desktop files for their sessions instead of us doing that in
xserver-nodm-init though. I may need to address that in another revision.

>>  - This matches the current behavior in weston-init
>>  - Running x11 as root is no longer a supported path in
>>    xserver-nodm-init
>
> Does rootless X work everywhere now? 
>
> Cheers,
>
> Richard

Uh, that's a good question. I didn't think there were any particular usecases
left that were limited by rootless X. It's been a desktop thing for so long now
the only issues I remember were specifically around the way the handoff to the
user account occurred.

Gentoo cites the difference between using a login manager / display manager vs
the old suid scheme as being problematic for remote start depending on how seat
management is handled. We didn't seem to be relying on that behavior so I want
to say it's fine.

- Randolph
diff mbox series

Patch

diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 621bf32066..b8f405741c 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -931,7 +931,6 @@  RECIPE_MAINTAINER:pn-xserver-xf86-config = "Unassigned <unassigned@yoctoproject.
 RECIPE_MAINTAINER:pn-xserver-xorg = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xset = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xtrans = "Unassigned <unassigned@yoctoproject.org>"
-RECIPE_MAINTAINER:pn-xuser-account = "Randolph Sapp <rs@ti.com>"
 RECIPE_MAINTAINER:pn-xvinfo = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xwayland = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-xwininfo = "Unassigned <unassigned@yoctoproject.org>"
diff --git a/meta/recipes-support/user-creation/files/system-xuser.conf b/meta/recipes-graphics/x11-common/xserver-nodm-init/system-xuser.conf
similarity index 100%
rename from meta/recipes-support/user-creation/files/system-xuser.conf
rename to meta/recipes-graphics/x11-common/xserver-nodm-init/system-xuser.conf
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb b/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
index 1fc10159e8..e4fe1f3c27 100644
--- a/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
+++ b/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
@@ -1,14 +1,15 @@ 
-SUMMARY = "Simple Xserver Init Script (no dm)"
+SUMMARY = "Simple Xserver Init Script and user account"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
 SECTION = "x11"
 
 SRC_URI = "file://emptty.conf.in \
-           file://default.desktop"
+           file://default.desktop \
+           file://system-xuser.conf"
 
 S = "${UNPACKDIR}"
 
-inherit features_check
+inherit features_check useradd
 
 REQUIRED_DISTRO_FEATURES = "x11 pam"
 
@@ -26,10 +27,19 @@  do_install() {
 
     sed -i "s:@NO_CURSOR_ARG@:${NO_CURSOR_ARG}:" ${D}${sysconfdir}/emptty/conf
     sed -i "s:@BLANK_ARGS@:${BLANK_ARGS}:" ${D}${sysconfdir}/emptty/conf
+
+    install -D -m 0644 ${S}/system-xuser.conf ${D}${sysconfdir}/dbus-1/system.d/system-xuser.conf
 }
 
 FILES:${PN} = "${sysconfdir}/emptty/conf \
-               ${datadir}/xsessions/default.desktop"
+               ${datadir}/xsessions/default.desktop \
+               ${sysconfdir}/dbus-1/system.d/system-xuser.conf"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--create-home \
+                       --groups video,tty,audio,input,shutdown,disk,nopasswdlogin \
+                       --user-group xuser"
+GROUPADD_PARAM:${PN} = "-r nopasswdlogin"
 
-RDEPENDS:${PN} = "emptty xuser-account"
+RDEPENDS:${PN} = "emptty"
 RPROVIDES:${PN} += "virtual-emptty-conf"
diff --git a/meta/recipes-support/user-creation/xuser-account_0.1.bb b/meta/recipes-support/user-creation/xuser-account_0.1.bb
deleted file mode 100644
index f1e4cb674f..0000000000
--- a/meta/recipes-support/user-creation/xuser-account_0.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@ 
-SUMMARY = "Creates an 'xuser' account used for running X11"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-SRC_URI = "file://system-xuser.conf"
-
-inherit allarch useradd
-
-S = "${UNPACKDIR}"
-
-do_configure() {
-    :
-}
-
-do_compile() {
-    :
-}
-
-do_install() {
-    install -D -m 0644 ${UNPACKDIR}/system-xuser.conf ${D}${sysconfdir}/dbus-1/system.d/system-xuser.conf
-}
-
-FILES:${PN} = "${sysconfdir}/dbus-1/system.d/system-xuser.conf"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM:${PN} = "--create-home \
-                       --groups video,tty,audio,input,shutdown,disk,nopasswdlogin \
-                       --user-group xuser"
-GROUPADD_PARAM:${PN} = "-r nopasswdlogin"
-
-ALLOW_EMPTY:${PN} = "1"