mbox series

[RFC,0/3] Display manager proposal for x11 and wayland

Message ID 20250314002937.672768-1-rs@ti.com
Headers show
Series Display manager proposal for x11 and wayland | expand

Message

Randolph Sapp March 14, 2025, 12:29 a.m. UTC
From: Randolph Sapp <rs@ti.com>

Example implementation of emptty for weston-init following the request on the
previous RFC [1] and previous example [2]. This variant is applicable to master.

This packages emptty and a default configuration for emptty as "emptty" and
"emptty-conf" respectively. This allows the existing init packages to override
the configuration similar to the way grub boot configs are handled.

The weston-init package still handles the weston config and weston user setup as
it always has. The only real difference from a consumer standpoint is that the
autologin group for the weston user changed from "wayland" to the more generic
"nopasswdlogin".

[1] https://lists.openembedded.org/g/openembedded-core/message/212640
[2] https://lists.openembedded.org/g/openembedded-core/message/212785 

Randolph Sapp (3):
  emptty: add version 0.13.0
  weston-init: convert to virtual-emptty-conf
  default-providers: set virtual-emptty-conf

 .../conf/distro/include/default-providers.inc |  1 +
 meta/recipes-graphics/emptty/emptty/init      | 26 ++++++
 meta/recipes-graphics/emptty/emptty/pamconf   | 10 +++
 meta/recipes-graphics/emptty/emptty_0.13.0.bb | 80 +++++++++++++++++++
 meta/recipes-graphics/wayland/weston-init.bb  | 61 +++-----------
 .../wayland/weston-init/emptty.conf           | 77 ++++++++++++++++++
 .../recipes-graphics/wayland/weston-init/init | 54 -------------
 .../wayland/weston-init/weston-autologin      | 11 ---
 .../wayland/weston-init/weston-socket.sh      | 20 -----
 .../wayland/weston-init/weston.env            |  0
 .../wayland/weston-init/weston.service        | 71 ----------------
 .../wayland/weston-init/weston.socket         | 14 ----
 12 files changed, 206 insertions(+), 219 deletions(-)
 create mode 100644 meta/recipes-graphics/emptty/emptty/init
 create mode 100644 meta/recipes-graphics/emptty/emptty/pamconf
 create mode 100644 meta/recipes-graphics/emptty/emptty_0.13.0.bb
 create mode 100644 meta/recipes-graphics/wayland/weston-init/emptty.conf
 delete mode 100644 meta/recipes-graphics/wayland/weston-init/init
 delete mode 100644 meta/recipes-graphics/wayland/weston-init/weston-autologin
 delete mode 100755 meta/recipes-graphics/wayland/weston-init/weston-socket.sh
 delete mode 100644 meta/recipes-graphics/wayland/weston-init/weston.env
 delete mode 100644 meta/recipes-graphics/wayland/weston-init/weston.service
 delete mode 100644 meta/recipes-graphics/wayland/weston-init/weston.socket

Comments

Randolph Sapp March 14, 2025, 12:39 a.m. UTC | #1
On Thu Mar 13, 2025 at 7:29 PM CDT, Randolph Sapp via lists.openembedded.org wrote:
> From: Randolph Sapp <rs@ti.com>
>
> This reverts commit e18fc96f9d4c0a0525c21371d3f36e8dfe008b35.
> ---
>  ...1-intl-Fix-build-failure-with-make-j.patch | 35 -------------------
>  meta/recipes-core/gettext/gettext_0.22.5.bb   |  1 -
>  2 files changed, 36 deletions(-)
>  delete mode 100644 meta/recipes-core/gettext/gettext/0001-intl-Fix-build-failure-with-make-j.patch
>
> diff --git a/meta/recipes-core/gettext/gettext/0001-intl-Fix-build-failure-with-make-j.patch b/meta/recipes-core/gettext/gettext/0001-intl-Fix-build-failure-with-make-j.patch
> deleted file mode 100644
> index 144259dd3f..0000000000
> --- a/meta/recipes-core/gettext/gettext/0001-intl-Fix-build-failure-with-make-j.patch
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -From 97a6a63ad61949663283f5fad68c9d5fb9be1f15 Mon Sep 17 00:00:00 2001
> -From: Bruno Haible <bruno@clisp.org>
> -Date: Tue, 12 Sep 2023 11:33:41 +0200
> -Subject: [PATCH] intl: Fix build failure with "make -j".
> -
> -Reported by Christian Weisgerber <naddy@mips.inka.de> at
> -<https://lists.gnu.org/archive/html/bug-gettext/2023-09/msg00005.html>.
> -
> -* gettext-runtime/intl/Makefile.am (langprefs.lo, log.lo): Depend on gettextP.h
> -and its subordinate includes.
> -
> -Upstream-Status: Backport [https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commit;h=97a6a63ad61949663283f5fad68c9d5fb9be1f15]
> -Signed-off-by: Changqing Li <changqing.li@windriver.com>
> ----
> - gettext-runtime/intl/Makefile.am | 4 ++--
> - 1 file changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/gettext-runtime/intl/Makefile.am b/gettext-runtime/intl/Makefile.am
> -index da7abb758..9e56978bc 100644
> ---- a/gettext-runtime/intl/Makefile.am
> -+++ b/gettext-runtime/intl/Makefile.am
> -@@ -387,8 +387,8 @@ dngettext.lo:        ../config.h $(srcdir)/gettextP.h libgnuintl.h $(srcdir)/gmo
> - ngettext.lo:         ../config.h $(srcdir)/gettextP.h libgnuintl.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
> - plural.lo:           ../config.h $(srcdir)/plural-exp.h $(PLURAL_DEPS)
> - plural-exp.lo:       ../config.h $(srcdir)/plural-exp.h
> --langprefs.lo:        ../config.h
> --log.lo:              ../config.h
> -+langprefs.lo:        ../config.h $(srcdir)/gettextP.h libgnuintl.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
> -+log.lo:              ../config.h $(srcdir)/gettextP.h libgnuintl.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
> - printf.lo:           ../config.h
> - setlocale.lo:        ../config.h $(srcdir)/gettextP.h libgnuintl.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
> - version.lo:          ../config.h libgnuintl.h
> --- 
> -2.25.1
> -
> diff --git a/meta/recipes-core/gettext/gettext_0.22.5.bb b/meta/recipes-core/gettext/gettext_0.22.5.bb
> index 7eeb1a86fd..1a66d37916 100644
> --- a/meta/recipes-core/gettext/gettext_0.22.5.bb
> +++ b/meta/recipes-core/gettext/gettext_0.22.5.bb
> @@ -28,7 +28,6 @@ SRC_URI += " \
>             file://serial-tests-config.patch \
>             file://0001-tests-autopoint-3-unset-MAKEFLAGS.patch \
>             file://0001-init-env.in-do-not-add-C-CXX-parameters.patch \
> -           file://0001-intl-Fix-build-failure-with-make-j.patch \
>             "
>  
>  inherit autotools texinfo pkgconfig ptest

Sorry for the spam. These are not part of the RFC series and should be ignored.
Old patches I forgot to clean out of my pwd.
Randolph Sapp March 14, 2025, 12:40 a.m. UTC | #2
On Thu Mar 13, 2025 at 7:29 PM CDT, Randolph Sapp via lists.openembedded.org wrote:
> From: Randolph Sapp <rs@ti.com>
>
> Add a link from libbz2.so.1.0 to libbz2.so.${PV} for compatibility with
> other distributions.
>
> A handfull of distributions are still using the "Makefile-libbz2_so" to
> generate libbz2 and bzip2-shared. This creates a library with a soname
> of "libbz2.so.1.0". This library link is not provide by default in
> autotools builds so add one here as Gentoo does now [1].
>
> This has been addressed upstream already, but there hasn't been a stable
> release since then [2].
>
> [1] https://bugs.gentoo.org/338321
> [2] https://gitlab.com/bzip2/bzip2/-/merge_requests/42
>
> Signed-off-by: Randolph Sapp <rs@ti.com>
> ---
>  meta/recipes-extended/bzip2/bzip2_1.0.8.bb | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
> index 78138d1543..02d81e7069 100644
> --- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
> +++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
> @@ -62,6 +62,11 @@ do_install_ptest () {
>  	sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile
>  }
>  
> +# add the following link for cross-distro compatibility
> +do_install:append () {
> +	ln -s libbz2.so.${PV} "${D}${libdir}/libbz2.so.1.0"
> +}
> +
>  FILES:libbz2 = "${libdir}/lib*${SOLIBS}"
>  
>  RDEPENDS:${PN}-ptest += "make bash"

Sorry for the spam. These are not part of the RFC series and should be ignored.
Old patches I forgot to clean out of my pwd.
Alexander Kanavin March 14, 2025, 9:14 a.m. UTC | #3
On Fri, 14 Mar 2025 at 01:30, <rs@ti.com> wrote:
> Example implementation of emptty for weston-init following the request on the
> previous RFC [1] and previous example [2]. This variant is applicable to master.
>
> This packages emptty and a default configuration for emptty as "emptty" and
> "emptty-conf" respectively. This allows the existing init packages to override
> the configuration similar to the way grub boot configs are handled.
>
> The weston-init package still handles the weston config and weston user setup as
> it always has. The only real difference from a consumer standpoint is that the
> autologin group for the weston user changed from "wayland" to the more generic
> "nopasswdlogin".
>
> [1] https://lists.openembedded.org/g/openembedded-core/message/212640
> [2] https://lists.openembedded.org/g/openembedded-core/message/212785

I quickly checked this locally. There are some issues that need to be
addressed before this goes to the autobuilder:

1. WARNING: emptty-0.13.0-r0 do_recipe_qa: QA Issue: Recipe emptty in
/srv/work/alex/poky/meta/recipes-graphics/emptty/emptty_0.13.0.bb does
not have an assigned maintainer. Please add an entry into
meta/conf/distro/include/maintainers.inc. [missing-maintainer]

2. With default poky config:

ERROR: Nothing RPROVIDES 'pam-plugin-succeed-if' (but
/srv/work/alex/poky/meta/recipes-graphics/emptty/emptty_0.13.0.bb
RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'pam-plugin-succeed-if' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['pam-plugin-succeed-if']
ERROR: Required build target 'emptty' has no buildable providers.
Missing or unbuildable dependency chain was: ['emptty', 'pam-plugin-succeed-if']

You should either make the pam dependency optional (via PACKAGECONFIG
subject to pam in DISTRO_FEATURES), or use REQUIRED_DISTRO_FEATURES.

3. Again, with default poky config:

NOTE: Multiple providers are available for runtime virtual-emptty-conf
(emptty, weston-init)
Consider defining a PREFERRED_RPROVIDER entry to match virtual-emptty-conf


Alex
Randolph Sapp March 14, 2025, 7:14 p.m. UTC | #4
On Fri Mar 14, 2025 at 4:14 AM CDT, Alexander Kanavin wrote:
> On Fri, 14 Mar 2025 at 01:30, <rs@ti.com> wrote:
>> Example implementation of emptty for weston-init following the request on the
>> previous RFC [1] and previous example [2]. This variant is applicable to master.
>>
>> This packages emptty and a default configuration for emptty as "emptty" and
>> "emptty-conf" respectively. This allows the existing init packages to override
>> the configuration similar to the way grub boot configs are handled.
>>
>> The weston-init package still handles the weston config and weston user setup as
>> it always has. The only real difference from a consumer standpoint is that the
>> autologin group for the weston user changed from "wayland" to the more generic
>> "nopasswdlogin".
>>
>> [1] https://lists.openembedded.org/g/openembedded-core/message/212640
>> [2] https://lists.openembedded.org/g/openembedded-core/message/212785
>
> I quickly checked this locally. There are some issues that need to be
> addressed before this goes to the autobuilder:
>
> 1. WARNING: emptty-0.13.0-r0 do_recipe_qa: QA Issue: Recipe emptty in
> /srv/work/alex/poky/meta/recipes-graphics/emptty/emptty_0.13.0.bb does
> not have an assigned maintainer. Please add an entry into
> meta/conf/distro/include/maintainers.inc. [missing-maintainer]

Yeah. I wouldn't mind maintaining this package and can set that. Just didn't
know if there was someone I needed to check with before I did that.

> 2. With default poky config:
>
> ERROR: Nothing RPROVIDES 'pam-plugin-succeed-if' (but
> /srv/work/alex/poky/meta/recipes-graphics/emptty/emptty_0.13.0.bb
> RDEPENDS on or otherwise requires it)
> NOTE: Runtime target 'pam-plugin-succeed-if' is unbuildable, removing...
> Missing or unbuildable dependency chain was: ['pam-plugin-succeed-if']
> ERROR: Required build target 'emptty' has no buildable providers.
> Missing or unbuildable dependency chain was: ['emptty', 'pam-plugin-succeed-if']
>
> You should either make the pam dependency optional (via PACKAGECONFIG
> subject to pam in DISTRO_FEATURES), or use REQUIRED_DISTRO_FEATURES.

Good point. I added the PACKAGECONFIG to remove pam support, that should also
toggle the runtime dep on pam-plugin-succeed-if. Will address in the proper
series.

> 3. Again, with default poky config:
>
> NOTE: Multiple providers are available for runtime virtual-emptty-conf
> (emptty, weston-init)
> Consider defining a PREFERRED_RPROVIDER entry to match virtual-emptty-conf
>
>
> Alex

That last note is perplexing. Patch 3/3 is literally setting the default runtime
provider for virtual-emptty-conf. I'm also seeing the following notice though:

NOTE: Multiple providers are available for runtime libnss-mdns (avahi-libnss-mdns, mdns)    
Consider defining a PREFERRED_RPROVIDER entry to match libnss-mdns                                                           
Is there some other variable I need to set for master? Is that message now being
printed if 2 package are being produced?  If that's the case I can check the
PREFERRED_RPROVIDER variable and conditionally prevent producing the emptty-conf
package, but that feels a little hacky. Anyone have any better ideas about that?

- Randolph
Randolph Sapp March 15, 2025, 12:36 a.m. UTC | #5
On Fri Mar 14, 2025 at 2:14 PM CDT, Randolph Sapp wrote:
> On Fri Mar 14, 2025 at 4:14 AM CDT, Alexander Kanavin wrote:
>> On Fri, 14 Mar 2025 at 01:30, <rs@ti.com> wrote:
>>> Example implementation of emptty for weston-init following the request on the
>>> previous RFC [1] and previous example [2]. This variant is applicable to master.
>>>
>>> This packages emptty and a default configuration for emptty as "emptty" and
>>> "emptty-conf" respectively. This allows the existing init packages to override
>>> the configuration similar to the way grub boot configs are handled.
>>>
>>> The weston-init package still handles the weston config and weston user setup as
>>> it always has. The only real difference from a consumer standpoint is that the
>>> autologin group for the weston user changed from "wayland" to the more generic
>>> "nopasswdlogin".
>>>
>>> [1] https://lists.openembedded.org/g/openembedded-core/message/212640
>>> [2] https://lists.openembedded.org/g/openembedded-core/message/212785
>>
>> I quickly checked this locally. There are some issues that need to be
>> addressed before this goes to the autobuilder:
>>
>> 1. WARNING: emptty-0.13.0-r0 do_recipe_qa: QA Issue: Recipe emptty in
>> /srv/work/alex/poky/meta/recipes-graphics/emptty/emptty_0.13.0.bb does
>> not have an assigned maintainer. Please add an entry into
>> meta/conf/distro/include/maintainers.inc. [missing-maintainer]
>
> Yeah. I wouldn't mind maintaining this package and can set that. Just didn't
> know if there was someone I needed to check with before I did that.
>
>> 2. With default poky config:
>>
>> ERROR: Nothing RPROVIDES 'pam-plugin-succeed-if' (but
>> /srv/work/alex/poky/meta/recipes-graphics/emptty/emptty_0.13.0.bb
>> RDEPENDS on or otherwise requires it)
>> NOTE: Runtime target 'pam-plugin-succeed-if' is unbuildable, removing...
>> Missing or unbuildable dependency chain was: ['pam-plugin-succeed-if']
>> ERROR: Required build target 'emptty' has no buildable providers.
>> Missing or unbuildable dependency chain was: ['emptty', 'pam-plugin-succeed-if']
>>
>> You should either make the pam dependency optional (via PACKAGECONFIG
>> subject to pam in DISTRO_FEATURES), or use REQUIRED_DISTRO_FEATURES.
>
> Good point. I added the PACKAGECONFIG to remove pam support, that should also
> toggle the runtime dep on pam-plugin-succeed-if. Will address in the proper
> series.
>
>> 3. Again, with default poky config:
>>
>> NOTE: Multiple providers are available for runtime virtual-emptty-conf
>> (emptty, weston-init)
>> Consider defining a PREFERRED_RPROVIDER entry to match virtual-emptty-conf
>>
>>
>> Alex
>
> That last note is perplexing. Patch 3/3 is literally setting the default runtime
> provider for virtual-emptty-conf. I'm also seeing the following notice though:
>
> NOTE: Multiple providers are available for runtime libnss-mdns (avahi-libnss-mdns, mdns)
> Consider defining a PREFERRED_RPROVIDER entry to match libnss-mdns
>
> Is there some other variable I need to set for master? Is that message now being
> printed if 2 package are being produced?  If that's the case I can check the
> PREFERRED_RPROVIDER variable and conditionally prevent producing the emptty-conf
> package, but that feels a little hacky. Anyone have any better ideas about that?
>
> - Randolph

Another fun issue. This actually adds additional checks to user accounts using
unix_chkpwd in pam and an equivalent mechanism in the libxcrypt path. It's
uncovered a relatively interesting issue around device initialization where
system time is reset to a date prior to the build in the case where there is no
RTC to read and the weston user's login attempts fail until the time catches up.
The password change for that user is in the future.

Forcing a time jump during startup with a custom service resolves the issue, but
it's unusual nothing else has had any problems with this. I thought I remember
Yocto defaulting the OS time to the image build time. Was I hallucinating that?

- Randolph