typo: "virtual-emptty-conf"? On Tue, 16 Dec 2025, Randolph Sapp via lists.openembedded.org wrote:
> From: Randolph Sapp <[email protected]> > > Convert this script package into a simple config for emptty using the > same weston user but leveraging the nopasswdlogin session provided by > emptty. Runtime provide virtual-emptty-conf as we need to set parameters > for the default session. > > Signed-off-by: Randolph Sapp <[email protected]> > --- > meta/lib/oeqa/runtime/cases/weston.py | 18 +++-- > meta/recipes-graphics/wayland/weston-init.bb | 66 +++------------- > .../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-start | 76 ------------------ > .../wayland/weston-init/weston.env | 0 > .../wayland/weston-init/weston.service | 71 ----------------- > .../wayland/weston-init/weston.socket | 14 ---- > 10 files changed, 101 insertions(+), 306 deletions(-) > 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 100755 meta/recipes-graphics/wayland/weston-init/weston-start > 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 > > diff --git a/meta/lib/oeqa/runtime/cases/weston.py > b/meta/lib/oeqa/runtime/cases/weston.py > index b0dccee73b..bf18331e84 100644 > --- a/meta/lib/oeqa/runtime/cases/weston.py > +++ b/meta/lib/oeqa/runtime/cases/weston.py > @@ -33,7 +33,7 @@ class WestonTest(OERuntimeTestCase): > > def run_weston_init(self): > if 'systemd' in self.tc.td['VIRTUAL-RUNTIME_init_manager']: > - self.target.run('systemd-run --collect > --unit=weston-ptest.service --uid=0 -p PAMName=login -p TTYPath=/dev/tty6 -E > XDG_RUNTIME_DIR=/tmp -E WAYLAND_DISPLAY=wayland-0 /usr/bin/weston > --socket=wayland-1 --log=%s' % self.weston_log_file) > + self.target.run(self.get_weston_command('systemd-run --collect > --unit=weston-ptest.service --uid=0 -p PAMName=login -p TTYPath=/dev/tty6 -E > XDG_RUNTIME_DIR -E WAYLAND_DISPLAY /usr/bin/weston --socket=wayland-2 > --log=%s' % self.weston_log_file)) > else: > self.target.run(self.get_weston_command('openvt -- weston > --socket=wayland-2 --log=%s' % self.weston_log_file)) > > @@ -51,12 +51,18 @@ class WestonTest(OERuntimeTestCase): > > @OEHasPackage(['wayland-utils']) > def test_wayland_info(self): > - if 'systemd' in self.tc.td['VIRTUAL-RUNTIME_init_manager']: > - command = 'XDG_RUNTIME_DIR=/run wayland-info' > - else: > - command = self.get_weston_command('wayland-info') > + command = self.get_weston_command('wayland-info') > status, output = self.target.run(command) > - self.assertEqual(status, 0, msg='wayland-info error: %s' % output) > + msg = 'wayland-info error: %s' % output > + > + # dump last 20 lines of emptty log in case of failure > + log_cmd = 'tail -n 20 /var/log/emptty/7.log' > + msg += '\n\n===== start: snippet =====\n\n' > + msg += 'file: /var/log/emptty/7.log\n\n' > + msg += '\n\n%s\n\n' % self.target.run(log_cmd)[1] > + msg += '\n\n===== end: snippet =====\n\n' > + > + self.assertEqual(status, 0, msg=msg) > > @OEHasPackage(['weston']) > def test_weston_can_initialize_new_wayland_compositor(self): > diff --git a/meta/recipes-graphics/wayland/weston-init.bb > b/meta/recipes-graphics/wayland/weston-init.bb > index 29cfba0833..7ef49e06f7 100644 > --- a/meta/recipes-graphics/wayland/weston-init.bb > +++ b/meta/recipes-graphics/wayland/weston-init.bb > @@ -1,18 +1,14 @@ > -SUMMARY = "Startup script and systemd unit file for the Weston Wayland > compositor" > +SUMMARY = "Autologin package for the Weston Wayland compositor" > HOMEPAGE = "https://www.yoctoproject.org/" > LICENSE = "MIT" > LIC_FILES_CHKSUM = > "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" > > PACKAGE_ARCH = "${MACHINE_ARCH}" > > -SRC_URI = "file://init \ > - file://weston.env \ > +SRC_URI = "\ > file://weston.ini \ > - file://weston.service \ > - file://weston.socket \ > - file://weston-socket.sh \ > - file://weston-autologin \ > - file://weston-start" > + file://emptty.conf \ > +" > > S = "${UNPACKDIR}" > > @@ -30,37 +26,8 @@ WESTON_USER ??= "weston" > WESTON_USER_HOME ??= "/home/${WESTON_USER}" > > do_install() { > - # Install weston-start script > - if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then > - install -Dm755 ${S}/weston-start ${D}${bindir}/weston-start > - sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start > - sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' > ${D}${bindir}/weston-start > - install -Dm755 ${S}/init ${D}/${sysconfdir}/init.d/weston > - sed -i 's#ROOTHOME#${ROOT_HOME}#' > ${D}/${sysconfdir}/init.d/weston > - fi > - > - # Install Weston systemd service > - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; > then > - install -D -p -m0644 ${S}/weston.service > ${D}${systemd_system_unitdir}/weston.service > - install -D -p -m0644 ${S}/weston.socket > ${D}${systemd_system_unitdir}/weston.socket > - install -D -p -m0644 ${S}/weston-socket.sh > ${D}${sysconfdir}/profile.d/weston-socket.sh > - sed -i -e s:@sysconfdir@:${sysconfdir}:g \ > - -e s:@bindir@:${bindir}:g \ > - -e s:@localstatedir@:${localstatedir}:g \ > - -e s:@runtimedir@:${runtimedir}:g \ > - -e s:@WESTON_USER@:${WESTON_USER}:g \ > - -e s:@WESTON_USER_HOME@:${WESTON_USER_HOME}:g \ > - ${D}${systemd_system_unitdir}/weston.service \ > - ${D}${systemd_system_unitdir}/weston.socket \ > - ${D}${sysconfdir}/profile.d/weston-socket.sh > - fi > - > - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then > - install -D -p -m0644 ${S}/weston-autologin > ${D}${sysconfdir}/pam.d/weston-autologin > - fi > - > install -D -p -m0644 ${S}/weston.ini > ${D}${sysconfdir}/xdg/weston/weston.ini > - install -Dm644 ${S}/weston.env ${D}${sysconfdir}/default/weston > + install -D -p -m0644 ${S}/emptty.conf ${D}${sysconfdir}/emptty/conf > > if [ -n "${DEFAULTBACKEND}" ]; then > sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" > ${D}${sysconfdir}/xdg/weston/weston.ini > @@ -81,9 +48,7 @@ do_install() { > install -dm 755 -o ${WESTON_USER} -g ${WESTON_USER} > ${D}/${WESTON_USER_HOME} > } > > -INHIBIT_UPDATERCD_BBCLASS = > "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', > d)}" > - > -inherit update-rc.d systemd useradd > +inherit useradd > > USERADD_PACKAGES = "${PN}" > > @@ -91,23 +56,16 @@ USERADD_PACKAGES = "${PN}" > # > require ${THISDIR}/required-distro-features.inc > > -RDEPENDS:${PN} = "weston kbd ${@bb.utils.contains('PACKAGECONFIG', > 'xwayland', 'weston-xwayland', '', d)}" > - > -INITSCRIPT_NAME = "weston" > -INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ." > +RDEPENDS:${PN} = "emptty weston kbd ${@bb.utils.contains('PACKAGECONFIG', > 'xwayland', 'weston-xwayland', '', d)}" > > FILES:${PN} += "\ > ${sysconfdir}/xdg/weston/weston.ini \ > - ${sysconfdir}/profile.d/weston-socket.sh \ > - ${systemd_system_unitdir}/weston.service \ > - ${systemd_system_unitdir}/weston.socket \ > - ${sysconfdir}/default/weston \ > - ${sysconfdir}/pam.d/ \ > + ${sysconfdir}/emptty/conf \ > ${WESTON_USER_HOME} \ > " > > -CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini > ${sysconfdir}/default/weston" > +CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini > ${sysconfdir}/emptty/conf" > +RPROVIDES:${PN} += "virtual-emptty-conf" > > -SYSTEMD_SERVICE:${PN} = "weston.service weston.socket" > -USERADD_PARAM:${PN} = "--home ${WESTON_USER_HOME} --shell /bin/sh > --user-group -G video,input,render,seat,wayland ${WESTON_USER}" > -GROUPADD_PARAM:${PN} = "-r wayland; -r render; -r seat" > +USERADD_PARAM:${PN} = "--home ${WESTON_USER_HOME} --shell /bin/sh > --user-group -G video,input,render,seat,nopasswdlogin weston" > +GROUPADD_PARAM:${PN} = "-r nopasswdlogin; -r render; -r seat" > diff --git a/meta/recipes-graphics/wayland/weston-init/emptty.conf > b/meta/recipes-graphics/wayland/weston-init/emptty.conf > new file mode 100644 > index 0000000000..1918cc02a7 > --- /dev/null > +++ b/meta/recipes-graphics/wayland/weston-init/emptty.conf > @@ -0,0 +1,77 @@ > +# TTY, where emptty will start. > +TTY_NUMBER=7 > + > +# Enables switching to defined TTY number. > +SWITCH_TTY=true > + > +# Enables printing of /etc/issue in daemon mode. > +PRINT_ISSUE=true > + > +# Enables printing of default motd, /etc/emptty/motd or > /etc/emptty/motd-gen.sh. > +PRINT_MOTD=true > + > +# Preselected user, if AUTOLOGIN is enabled, this user is logged in. > +DEFAULT_USER=weston > + > +# Enables Autologin, if DEFAULT_USER is defined and part of nopasswdlogin > group. Possible values are "true" or "false". > +AUTOLOGIN=true > + > +# The default session used, if Autologin is enabled. If session is not found > in list of session, it proceeds to manual selection. > +AUTOLOGIN_SESSION=Weston > + > +# If Autologin is enabled and session does not start correctly, the number > of retries in short period is kept to eventually stop the infinite loop of > restarts. -1 is for infinite retries, 0 is for no retry. > +# AUTOLOGIN_MAX_RETRY=2 > + > +# Default LANG, if user does not have set own in init script. > +#LANG=en_US.UTF-8 > + > +# Starts desktop with calling "dbus-launch". > +DBUS_LAUNCH=true > + > +# Starts Xorg desktop with calling "~/.xinitrc" script, if is true, file > exists and selected WM/DE is Xorg session, it overrides DBUS_LAUNCH. > +XINITRC_LAUNCH=false > + > +# Prints available WM/DE each on new line instead of printing on single line. > +VERTICAL_SELECTION=false > + > +# Defines the way, how is logging handled. Possible values are "rotate", > "appending" or "disabled". > +#LOGGING=rotate > + > +# Overrides path of log file > +#LOGGING_FILE=/var/log/emptty/[TTY_NUMBER].log > + > +# Arguments passed to Xorg server. > +#XORG_ARGS= > + > +# Allows to use dynamic motd script to generate custom MOTD. > +#DYNAMIC_MOTD=false > + > +# Allows to override default path to dynamic motd. > +#DYNAMIC_MOTD_PATH=/etc/emptty/motd-gen.sh > + > +# Allows to override default path to static motd. > +#MOTD_PATH=/etc/emptty/motd > + > +# Foreground color, available only in daemon mode. > +#FG_COLOR=LIGHT_BLACK > + > +# Background color, available only in daemon mode. > +#BG_COLOR=BLACK > + > +# Enables numlock in daemon mode. Possible values are "true" or "false". > +#ENABLE_NUMLOCK=false > + > +# Defines the way, how is logging of session errors handled. Possible values > are "rotate", "appending" or "disabled". > +SESSION_ERROR_LOGGING=rotate > + > +# Overrides path of session errors log file > +#SESSION_ERROR_LOGGING_FILE=/var/log/emptty/session-errors.[TTY_NUMBER].log > + > +# If set true, it will not use `.emptty-xauth` file, but the standard > `~/.Xauthority` file. This allows to handle xauth issues. > +#DEFAULT_XAUTHORITY=false > + > +#If set true, Xorg will be started as rootless, if system allows and emptty > is running in daemon mode. > +#ROOTLESS_XORG=false > + > +#If set true, environmental groups are printed to differ > Xorg/Wayland/Custom/UserCustom desktops. > +IDENTIFY_ENVS=false > diff --git a/meta/recipes-graphics/wayland/weston-init/init > b/meta/recipes-graphics/wayland/weston-init/init > deleted file mode 100644 > index a5c54e001e..0000000000 > --- a/meta/recipes-graphics/wayland/weston-init/init > +++ /dev/null > @@ -1,54 +0,0 @@ > -#!/bin/sh > -# > -### BEGIN INIT INFO > -# Provides: weston > -# Required-Start: $local_fs $remote_fs > -# Required-Stop: $local_fs $remote_fs > -# Default-Start: 2 3 4 5 > -# Default-Stop: 0 1 6 > -### END INIT INFO > - > -if test -e /etc/default/weston ; then > - . /etc/default/weston > -fi > - > -killproc() { > - pid=`/bin/pidof $1` > - [ "$pid" != "" ] && kill $pid > -} > - > -read CMDLINE < /proc/cmdline > -for x in $CMDLINE; do > - case $x in > - weston=false) > - echo "Weston disabled" > - exit 0; > - ;; > - esac > -done > - > -case "$1" in > - start) > - . /etc/profile > - export HOME=ROOTHOME > - > - WESTON_USER=weston weston-start $OPTARGS & > - ;; > - > - stop) > - echo "Stopping Weston" > - killproc weston > - ;; > - > - restart) > - $0 stop > - sleep 1 > - $0 start > - ;; > - > - *) > - echo "usage: $0 { start | stop | restart }" > - ;; > -esac > - > -exit 0 > diff --git a/meta/recipes-graphics/wayland/weston-init/weston-autologin > b/meta/recipes-graphics/wayland/weston-init/weston-autologin > deleted file mode 100644 > index f6e6d106de..0000000000 > --- a/meta/recipes-graphics/wayland/weston-init/weston-autologin > +++ /dev/null > @@ -1,11 +0,0 @@ > -auth required pam_nologin.so > -auth required pam_unix.so try_first_pass nullok > - > -account required pam_nologin.so > -account required pam_unix.so > - > -session required pam_env.so > -session required pam_unix.so > --session optional pam_systemd.so type=wayland class=user desktop=weston > --session optional pam_loginuid.so > - > diff --git a/meta/recipes-graphics/wayland/weston-init/weston-socket.sh > b/meta/recipes-graphics/wayland/weston-init/weston-socket.sh > deleted file mode 100755 > index 8f652862da..0000000000 > --- a/meta/recipes-graphics/wayland/weston-init/weston-socket.sh > +++ /dev/null > @@ -1,20 +0,0 @@ > -#!/bin/sh > - > -# set weston variables for use with global weston socket > -global_socket="@runtimedir@/wayland-0" > -if [ -e "$global_socket" ]; then > - weston_group=$(stat -c "%G" "$global_socket") > - if [ "$(id -u)" = "0" ]; then > - export WAYLAND_DISPLAY="$global_socket" > - else > - case "$(groups "$USER")" in > - *"$weston_group"*) > - export WAYLAND_DISPLAY="$global_socket" > - ;; > - *) > - ;; > - esac > - fi > - unset weston_group > -fi > -unset global_socket > diff --git a/meta/recipes-graphics/wayland/weston-init/weston-start > b/meta/recipes-graphics/wayland/weston-init/weston-start > deleted file mode 100755 > index 3b13a0047a..0000000000 > --- a/meta/recipes-graphics/wayland/weston-init/weston-start > +++ /dev/null > @@ -1,76 +0,0 @@ > -#!/bin/sh > -# Copyright (C) 2016 O.S. Systems Software LTDA. > -# Copyright (C) 2016 Freescale Semiconductor > - > -export PATH="/sbin:/usr/sbin:/bin:/usr/bin" > - > -usage() { > - cat <<EOF > - $0 [<weston options>] > -EOF > -} > - > -## Module support > -modules_dir=@DATADIR@/weston-start > - > -# Add weston extra argument > -add_weston_argument() { > - weston_args="$weston_args $1" > -} > - > -## Add module to --modules argument > -add_weston_module() { > - if [[ "x${weston_modules}" == "x" ]]; then > - weston_modules="--modules " > - fi; > - weston_modules+="${1}," > -} > - > -if [ -n "$WAYLAND_DISPLAY" ]; then > - echo "ERROR: A Wayland compositor is already running, nested Weston > instance is not supported yet." > - exit 1 > -fi > - > -if [ -n "$WESTON_USER" ]; then > - if [ -z "$WESTON_GROUP" ]; then > - # no explicit WESTON_GROUP given, therefore use WESTON_USER > - export WESTON_GROUP="${WESTON_USER}" > - fi > -fi > - > -weston_args=$* > - > -# Load and run modules > -if [ -d "$modules_dir" ]; then > - for m in "$modules_dir"/*; do > - # Skip backup files > - if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then > - continue > - fi > - > - # process module > - . $m > - if [[ x"{$weston_modules}" != "x" ]]; then > - add_weston_argument "${weston_modules}" > - fi; > - done > -fi > - > -if test -z "$XDG_RUNTIME_DIR"; then > - export XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}` > - if test -d "$XDG_RUNTIME_DIR"; then > - # Check permissions on existing directory > - if [ "$(stat -c %u-%a "$XDG_RUNTIME_DIR")" != "$(id -u > ${WESTON_USER})-700" ]; then > - echo "ERROR: $XDG_RUNTIME_DIR has incorrect permissions" > - exit 1 > - fi > - else > - mkdir --mode 0700 --parents $XDG_RUNTIME_DIR > - if [ -n "$WESTON_USER" ] > - then > - chown $WESTON_USER:$WESTON_GROUP $XDG_RUNTIME_DIR > - fi > - fi > -fi > - > -su -c "XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR weston $weston_args > --log=/tmp/weston.log" $WESTON_USER > diff --git a/meta/recipes-graphics/wayland/weston-init/weston.env > b/meta/recipes-graphics/wayland/weston-init/weston.env > deleted file mode 100644 > index e69de29bb2..0000000000 > diff --git a/meta/recipes-graphics/wayland/weston-init/weston.service > b/meta/recipes-graphics/wayland/weston-init/weston.service > deleted file mode 100644 > index b7e845e88d..0000000000 > --- a/meta/recipes-graphics/wayland/weston-init/weston.service > +++ /dev/null > @@ -1,71 +0,0 @@ > -# This is a system unit for launching Weston with auto-login as the > -# user configured here. > -# > -# Weston must be built with systemd support, and your weston.ini must load > -# the plugin systemd-notify.so. > -[Unit] > -Description=Weston, a Wayland compositor, as a system service > -Documentation=man:weston(1) man:weston.ini(5) > -Documentation=http://wayland.freedesktop.org/ > - > -# Make sure we are started after logins are permitted. > -Requires=systemd-user-sessions.service > -After=systemd-user-sessions.service > - > -# If Plymouth is used, we want to start when it is on its way out. > -After=plymouth-quit-wait.service > - > -# D-Bus is necessary for contacting logind. Logind is required. > -Wants=dbus.socket > -After=dbus.socket > - > -# Ensure the socket is present > -Requires=weston.socket > - > -# Since we are part of the graphical session, make sure we are started before > -# it is complete. > -Before=graphical.target > - > -# Prevent starting on systems without virtual consoles, Weston requires one > -# for now. > -ConditionPathExists=/dev/tty0 > - > -[Service] > -# Requires systemd-notify.so Weston plugin. > -Type=notify > -EnvironmentFile=@sysconfdir@/default/weston > -ExecStart=@bindir@/weston --modules=systemd-notify.so > - > -# Optional watchdog setup > -#TimeoutStartSec=60 > -#WatchdogSec=20 > - > -# The user to run Weston as. > -User=@WESTON_USER@ > -Group=@WESTON_USER@ > - > -# Make sure the working directory is the users home directory > -WorkingDirectory=@WESTON_USER_HOME@ > - > -# Set up a full user session for the user, required by Weston. > -PAMName=weston-autologin > - > -# A virtual terminal is needed. > -TTYPath=/dev/tty7 > -TTYReset=yes > -TTYVHangup=yes > -TTYVTDisallocate=yes > - > -# Fail to start if not controlling the tty. > -StandardInput=tty-fail > -StandardOutput=journal > -StandardError=journal > - > -# Log this user with utmp, letting it show up with commands 'w' and 'who'. > -UtmpIdentifier=tty7 > -UtmpMode=user > - > -[Install] > -# Note: If you only want weston to start on-demand, remove this line with a > -# service drop file > -WantedBy=graphical.target > diff --git a/meta/recipes-graphics/wayland/weston-init/weston.socket > b/meta/recipes-graphics/wayland/weston-init/weston.socket > deleted file mode 100644 > index a7d461ee30..0000000000 > --- a/meta/recipes-graphics/wayland/weston-init/weston.socket > +++ /dev/null > @@ -1,14 +0,0 @@ > -[Unit] > -Description=Weston socket > -RequiresMountsFor=@runtimedir@ > - > -[Socket] > -ListenStream=@runtimedir@/wayland-0 > -SocketMode=0775 > -SocketUser=@WESTON_USER@ > -SocketGroup=wayland > -RemoveOnStop=yes > - > -[Install] > -WantedBy=sockets.target > - > -- > 2.51.1 > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#227991): https://lists.openembedded.org/g/openembedded-core/message/227991 Mute This Topic: https://lists.openembedded.org/mt/116816269/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
