| Message ID | 20260305205455.267385-1-a-christidis@ti.com |
|---|---|
| State | Superseded |
| Delegated to: | Ryan Eatmon |
| Headers | show |
| Series | [meta-arago,master] emptty: add version 0.15.0 | expand |
meta-arago / na / 20260305205455.267385-1-a-christidis
PRC Results: FAIL
=========================================================
check-yocto-patches: FAIL
=========================================================
Patches
----------------------------------------
FAIL - [meta-arago][master][PATCH] emptty: add version 0.15.0
ERROR: Missing Upstream-Status in added patch file: hunk(1) 0001-emptty-add-version-0.15.0.patch (UPSTREAM-STATUS-1)
patch
For details on the above errors/warnings visit: https://lists.yoctoproject.org/g/meta-ti/wiki/40887
How is it different from Randolph's continued efforts to push it to OE-Core for many months? On Thu, Mar 05, 2026 at 02:54:55PM -0600, Antonios Christidis via lists.yoctoproject.org wrote: > From: Antonios Christidis <a-christidis@ti.com> > > Add emptty, a "Dead simple CLI Display Manager on TTY". This is a > relatively lightweight display manager that supports x11 as well as > wayland through both a CLI and an automatic login mechanism. > > This can effectively replace the custom init scripts for both x11 > (xserver-nodm-init) and wayland (weston-init) with a single tool with > more verbose logging capabilities. > > This is split into two recipes. The emptty package provides the binary > and various agnostic configs while the emptty-conf package provides the > default configuration for the application itself. This RPROVIDES > virtual-emptty-conf, allowing other recipes to provide their own > configurations to override the default behavior. > > Signed-off-by: Antonios Christidis <a-christidis@ti.com> > --- > 0001-emptty-add-version-0.15.0.patch | 522 ++++++++++++++++++ > .../classes/tisdk-bundle.bbclass | 14 +- > meta-arago-distro/conf/distro/arago.conf | 2 + > .../recipes-graphics/emptty/emptty-conf.bb | 14 + > .../recipes-graphics/emptty/emptty.inc | 27 + > .../recipes-graphics/emptty/emptty/pamconf | 11 + > .../recipes-graphics/emptty/emptty_0.15.0.bb | 57 ++ > .../wayland/weston-init-arago.bb | 72 +++ > .../weston-init-arago/beaglebone/weston.ini | 85 +++ > .../wayland/weston-init-arago/emptty.conf | 77 +++ > .../weston-launch-calibrator.sh | 13 + > .../wayland/weston-init-arago/weston.ini | 21 + > 12 files changed, 914 insertions(+), 1 deletion(-) > create mode 100644 0001-emptty-add-version-0.15.0.patch > create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb > create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty.inc > create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty/pamconf > create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb > create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb > create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini > create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf > create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh > create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini > > diff --git a/0001-emptty-add-version-0.15.0.patch b/0001-emptty-add-version-0.15.0.patch > new file mode 100644 > index 00000000..dba3013d > --- /dev/null > +++ b/0001-emptty-add-version-0.15.0.patch > @@ -0,0 +1,522 @@ > +From d41ec048882b955124d7dbeee1c2bf1351a0aba4 Mon Sep 17 00:00:00 2001 > +From: Antonios Christidis <a-christidis@ti.com> > +Date: Thu, 5 Mar 2026 13:12:08 -0600 > +Subject: [PATCH] emptty: add version 0.15.0 > + > +Add emptty, a "Dead simple CLI Display Manager on TTY". This is a > +relatively lightweight display manager that supports x11 as well as > +wayland through both a CLI and an automatic login mechanism. > + > +This can effectively replace the custom init scripts for both x11 > +(xserver-nodm-init) and wayland (weston-init) with a single tool with > +more verbose logging capabilities. > + > +This is split into two recipes. The emptty package provides the binary > +and various agnostic configs while the emptty-conf package provides the > +default configuration for the application itself. This RPROVIDES > +virtual-emptty-conf, allowing other recipes to provide their own > +configurations to override the default behavior. > + > +Signed-off-by: Antonios Christidis <a-christidis@ti.com> > +--- > + .../classes/tisdk-bundle.bbclass | 14 ++- > + meta-arago-distro/conf/distro/arago.conf | 2 + > + .../recipes-graphics/emptty/emptty-conf.bb | 14 +++ > + .../recipes-graphics/emptty/emptty.inc | 27 ++++++ > + .../recipes-graphics/emptty/emptty/pamconf | 11 +++ > + .../recipes-graphics/emptty/emptty_0.15.0.bb | 57 +++++++++++++ > + .../wayland/weston-init-arago.bb | 72 ++++++++++++++++ > + .../weston-init-arago/beaglebone/weston.ini | 85 +++++++++++++++++++ > + .../wayland/weston-init-arago/emptty.conf | 77 +++++++++++++++++ > + .../weston-launch-calibrator.sh | 13 +++ > + .../wayland/weston-init-arago/weston.ini | 21 +++++ > + 11 files changed, 392 insertions(+), 1 deletion(-) > + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb > + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty.inc > + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty/pamconf > + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb > + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb > + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini > + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf > + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh > + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini > + > +diff --git a/meta-arago-distro/classes/tisdk-bundle.bbclass b/meta-arago-distro/classes/tisdk-bundle.bbclass > +index cc5d1481..24146529 100644 > +--- a/meta-arago-distro/classes/tisdk-bundle.bbclass > ++++ b/meta-arago-distro/classes/tisdk-bundle.bbclass > +@@ -106,7 +106,7 @@ cleanup_host_packages() { > + } > + > + ROOTFS_PREPROCESS_COMMAND += "tisdk_image_setup; " > +-ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; " > ++ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; add_emptty_inittab; " > + IMAGE_PREPROCESS_COMMAND:append = "tisdk_image_cleanup; " > + > + # Create the SDK image. We will re-use the rootfs_ipk_do_rootfs functionality > +@@ -304,6 +304,18 @@ tisdk_image_build () { > + cp ${WORKDIR}/opkg.conf ${IMAGE_ROOTFS}/etc/ > + } > + > ++ > ++add_emptty_inittab() { > ++ [ -f ${IMAGE_ROOTFS}${sysconfdir}/inittab ] || return 0 > ++ > ++ if ${@bb.utils.contains_any("IMAGE_FEATURES", [ "x11-base", "weston" ], "true", "false", d)} > ++ then > ++ echo "7:5:respawn:${bindir}/emptty -t 7 -d" >> ${IMAGE_ROOTFS}${sysconfdir}/inittab > ++ fi > ++} > ++ > ++ > ++ > + TISDK_IMAGE_CLEANUP_DIRS ?= "var etc lib boot dev home media mnt proc run sbin sys tmp usr" > + TISDK_IMAGE_CLEANUP_FILES ?= "bin/bash bin/bash.bash bin/sh" > + > +diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf > +index fb5c703f..43d4db53 100644 > +--- a/meta-arago-distro/conf/distro/arago.conf > ++++ b/meta-arago-distro/conf/distro/arago.conf > +@@ -68,6 +68,8 @@ PACKAGECONFIG:pn-glmark2 = "drm-gles2 wayland-gles2" > + > + # Set this to empty string to prevent xwayland config from being added > + PACKAGECONFIG:pn-weston-init = "" > ++PREFERRED_RPROVIDER_virtual-emptty-conf = "weston-init-arago" > ++PREFERRED_RPROVIDER_weston-init = "weston-init-arago" > + > + # Enable testing for opencl and vulkan with piglit > + PACKAGECONFIG:append:pn-piglit = " \ > +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb > +new file mode 100644 > +index 00000000..0b98e2e1 > +--- /dev/null > ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb > +@@ -0,0 +1,14 @@ > ++require emptty.inc > ++ > ++SUMMARY += " (Default config)" > ++ > ++do_configure[noexec] = "1" > ++do_compile[noexec] = "1" > ++ > ++do_install () { > ++ oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-config > ++} > ++ > ++FILES:${PN} = "${sysconfdir}/emptty/conf" > ++CONFFILES:${PN} = "${sysconfdir}/emptty/conf" > ++RPROVIDES:${PN} += "virtual-emptty-conf" > +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty.inc b/meta-arago-distro/recipes-graphics/emptty/emptty.inc > +new file mode 100644 > +index 00000000..d99c4d8c > +--- /dev/null > ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty.inc > +@@ -0,0 +1,27 @@ > ++SUMMARY = "Dead simple CLI Display Manager on TTY" > ++DESCRIPTION = "Emptty is a simple display manager with a command line greeter \ > ++It supports both X11 and Wayland sessions, exporting required variables and \ > ++creating user paths as necessary." > ++ > ++HOMEPAGE = "https://github.com/tvrzna/emptty" > ++BUGTRACKER = "https://github.com/tvrzna/emptty/issues" > ++LICENSE = "MIT" > ++LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=d1e4d12c7d1d17367ba5668706a405ba" > ++ > ++S = "${UNPACKDIR}" > ++ > ++FILESEXTRAPATHS:append = ":${THISDIR}/emptty" > ++ > ++GO_IMPORT = "github.com/tvrzna/emptty" > ++GO_IMPORT_pam = "github.com/msteinert/pam" > ++SRC_URI = "\ > ++ git://${GO_IMPORT}.git;protocol=https;branch=master;destsuffix=src/${GO_IMPORT} \ > ++ git://${GO_IMPORT_pam}.git;protocol=https;branch=master;name=pam;destsuffix=src/${GO_IMPORT_pam} \ > ++ file://pamconf \ > ++ " > ++SRCREV = "bb203ad0a224731a7a2ff50deeb342ab79c4af09" > ++SRCREV_pam = "50ded1b0e7864b9bf75005eb945a8ec826bcf69d" > ++ > ++SRCREV_FORMAT .= "_pam" > ++ > ++PR = "r1" > +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf > +new file mode 100644 > +index 00000000..5c82d46b > +--- /dev/null > ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf > +@@ -0,0 +1,11 @@ > ++#%PAM-1.0 > ++auth sufficient pam_succeed_if.so user ingroup nopasswdlogin > ++auth include common-auth > ++-auth optional pam_gnome_keyring.so > ++-auth optional pam_kwallet5.so > ++account include common-account > ++session include common-session > ++-session optional pam_gnome_keyring.so auto_start > ++-session optional pam_kwallet5.so auto_start force_run > ++password include common-password > ++ > +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb > +new file mode 100644 > +index 00000000..415c5ea5 > +--- /dev/null > ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb > +@@ -0,0 +1,57 @@ > ++require emptty.inc > ++ > ++PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam x11', d)}" > ++PACKAGECONFIG[pam] = ",,libpam,pam-plugin-succeed-if" > ++PACKAGECONFIG[x11] = ",,virtual/libx11,util-linux-mcookie" > ++ > ++DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'virtual/crypt', d)}" > ++ > ++GO_TAGS = "" > ++GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', ',nopam', d)}" > ++GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', ',noxlib', d)}" > ++ > ++GOBUILDFLAGS:append = " -tags=${GO_TAGS}" > ++ > ++export GO111MODULE = "off" > ++ > ++inherit go > ++ > ++DEPENDS += "gzip" > ++ > ++do_install () { > ++ # general collateral > ++ install -Dm755 ${B}/${GO_BUILD_BINDIR}/emptty ${D}${bindir}/emptty > ++ install -d ${D}${mandir}/man1 > ++ gzip -cn ${S}/src/${GO_IMPORT}/res/emptty.1 > ${D}${mandir}/man1/emptty.1.gz > ++ > ++ # pam config > ++ if "${@bb.utils.contains('PACKAGECONFIG','pam','true','false',d)}" > ++ then > ++ install -Dm644 ${S}/pamconf ${D}${sysconfdir}/pam.d/emptty > ++ fi > ++ > ++ # systemd init service > ++ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)} > ++ then > ++ oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-systemd > ++ fi > ++} > ++ > ++FILES:${PN} = "\ > ++ ${systemd_system_unitdir}/emptty.service \ > ++ ${bindir}/emptty \ > ++ ${mandir}/man1/emptty.1.gz \ > ++ ${sysconfdir}/pam.d/emptty \ > ++" > ++ > ++RDEPENDS:${PN} += "virtual-emptty-conf" > ++SYSTEMD_SERVICE:${PN} = "emptty.service" > ++ > ++inherit systemd > ++ > ++USERADD_PACKAGES = "${PN}" > ++GROUPADD_PARAM:${PN} = "-r nopasswdlogin" > ++ > ++inherit useradd > ++ > ++ > +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb > +new file mode 100644 > +index 00000000..484d25e1 > +--- /dev/null > ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb > +@@ -0,0 +1,72 @@ > ++SUMMARY = "Configuration files for the Weston Wayland compositor" > ++LICENSE = "MIT" > ++LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" > ++ > ++PACKAGE_ARCH = "${MACHINE_ARCH}" > ++ > ++SRC_URI:append = " \ > ++ file://weston.ini \ > ++ file://weston-launch-calibrator.sh \ > ++ file://emptty.conf \ > ++" > ++ > ++S = "${UNPACKDIR}" > ++ > ++PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}" > ++PACKAGECONFIG:append:qemuriscv64 = " use-pixman" > ++PACKAGECONFIG:append:qemuppc64 = " use-pixman" > ++ > ++PACKAGECONFIG[xwayland] = ",," > ++PACKAGECONFIG[no-idle-timeout] = ",," > ++PACKAGECONFIG[use-pixman] = ",," > ++ > ++DEFAULTBACKEND ??= "" > ++DEFAULTBACKEND:qemuall ?= "drm" > ++ > ++do_install() { > ++ install -D -p -m0644 weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini > ++ install -D -p -m0644 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 > ++ fi > ++ > ++ if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then > ++ sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini > ++ fi > ++ > ++ if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then > ++ sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini > ++ fi > ++ > ++ if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then > ++ sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini > ++ fi > ++ > ++ install -dm 755 -o weston -g weston ${D}/home/weston > ++ install -Dm755 weston-launch-calibrator.sh ${D}/${bindir}/weston-launch-calibrator > ++} > ++ > ++inherit useradd > ++ > ++USERADD_PACKAGES = "${PN}" > ++ > ++# rdepends on weston which depends on virtual/egl > ++# > ++require ${COREBASE}/meta/recipes-graphics/wayland/required-distro-features.inc > ++ > ++RDEPENDS:${PN} = "weston kbd ${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'weston-xwayland', '', d)} emptty" > ++ > ++FILES:${PN} += "\ > ++ ${sysconfdir}/xdg/weston/weston.ini \ > ++ ${sysconfdir}/emptty/conf \ > ++ /home/weston \ > ++ ${bindir}/weston-launch-calibrator \ > ++ " > ++ > ++CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/emptty/conf" > ++RPROVIDES:${PN}:append = " virtual-emptty-conf weston-init" > ++RCONFLICTS:${PN} += "weston-init" > ++ > ++USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,nopasswdlogin weston" > ++GROUPADD_PARAM:${PN} = "-r wayland; -r render; -r nopasswdlogin" > +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini > +new file mode 100644 > +index 00000000..9fd9851d > +--- /dev/null > ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini > +@@ -0,0 +1,85 @@ > ++# configuration file for Weston > ++ > ++[core] > ++idle-time=0 > ++#modules=xwayland.so,cms-colord.so > ++#shell=desktop-shell.so > ++gbm-format=rgb565 > ++require-input=false > ++ > ++[shell] > ++locking=false > ++animation=zoom > ++panel-position=top > ++startup-animation=fade > ++#background-image=/usr/share/backgrounds/gnome/Aqua.jpg > ++#background-color=0xff002244 > ++#background-type=tile > ++#clock-format=minutes > ++#panel-color=0x90ff0000 > ++#locking=true > ++#animation=zoom > ++#startup-animation=fade > ++#binding-modifier=ctrl > ++#num-workspaces=6 > ++#cursor-theme=whiteglass > ++#cursor-size=24 > ++ > ++#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png > ++#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg > ++#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg > ++#animation=fade > ++ > ++#[launcher] > ++#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png > ++#path=/usr/bin/gnome-terminal > ++ > ++#[launcher] > ++#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png > ++#path=/usr/bin/weston-terminal > ++ > ++#[launcher] > ++#icon=/usr/share/icons/hicolor/24x24/apps/google-chrome.png > ++#path=/usr/bin/google-chrome > ++ > ++#[launcher] > ++#icon=/usr/share/icons/gnome/24x24/apps/arts.png > ++#path=/build/weston-0lEgCh/weston-1.11.0/weston-flower > ++ > ++#[input-method] > ++#path=/usr/libexec/weston-keyboard > ++ > ++[output] > ++name=HDMI-A-1 > ++#mode=1680x1050 > ++#transform=90 > ++#icc_profile=/usr/share/color/icc/colord/Bluish.icc > ++ > ++#[output] > ++#name=VGA1 > ++#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync > ++#transform=flipped > ++ > ++#[output] > ++#name=X1 > ++#mode=1024x768 > ++#transform=flipped-90 > ++ > ++[libinput] > ++touchscreen_calibrator=true > ++#enable_tap=true > ++ > ++#[touchpad] > ++#constant_accel_factor = 50 > ++#min_accel_factor = 0.16 > ++#max_accel_factor = 1.0 > ++ > ++[screen-share] > ++command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize > ++ > ++#[xwayland] > ++#path=/usr/bin/Xwayland > ++ > ++[autolaunch] > ++# launch the calibrator on startup if a touchscreen is detected > ++path=/usr/bin/weston-launch-calibrator > +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf > +new file mode 100644 > +index 00000000..ffe1a3c2 > +--- /dev/null > ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/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=-1 > ++ > ++# 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-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh > +new file mode 100644 > +index 00000000..45863ecd > +--- /dev/null > ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh > +@@ -0,0 +1,13 @@ > ++#!/bin/sh > ++ > ++if [ -e /dev/input/touchscreen0 ]; then > ++ echo "Touch screen detected..." > ++ if [ -n "$LIBINPUT_CALIBRATION_MATRIX" ]; then > ++ echo "Calibration matrix already present, skipping calibration..." > ++ else > ++ echo "Calibrating touchscreen..." > ++ exec weston-calibrator > ++ fi > ++else > ++ echo "Touch screen not detected, skipping calibration..." > ++fi > +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini > +new file mode 100644 > +index 00000000..1bc7a010 > +--- /dev/null > ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini > +@@ -0,0 +1,21 @@ > ++[core] > ++idle-time=0 > ++require-input=false > ++require-outputs=none > ++ > ++[shell] > ++locking=false > ++animation=zoom > ++panel-position=top > ++startup-animation=fade > ++ > ++[libinput] > ++touchscreen_calibrator=true > ++ > ++[autolaunch] > ++# launch the calibrator on startup if a touchscreen is detected > ++path=/usr/bin/weston-launch-calibrator > ++ > ++[screensaver] > ++# Uncomment path to disable screensaver > ++#path=@libexecdir@/weston-screensaver > +-- > +2.34.1 > + > diff --git a/meta-arago-distro/classes/tisdk-bundle.bbclass b/meta-arago-distro/classes/tisdk-bundle.bbclass > index cc5d1481..24146529 100644 > --- a/meta-arago-distro/classes/tisdk-bundle.bbclass > +++ b/meta-arago-distro/classes/tisdk-bundle.bbclass > @@ -106,7 +106,7 @@ cleanup_host_packages() { > } > > ROOTFS_PREPROCESS_COMMAND += "tisdk_image_setup; " > -ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; " > +ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; add_emptty_inittab; " > IMAGE_PREPROCESS_COMMAND:append = "tisdk_image_cleanup; " > > # Create the SDK image. We will re-use the rootfs_ipk_do_rootfs functionality > @@ -304,6 +304,18 @@ tisdk_image_build () { > cp ${WORKDIR}/opkg.conf ${IMAGE_ROOTFS}/etc/ > } > > + > +add_emptty_inittab() { > + [ -f ${IMAGE_ROOTFS}${sysconfdir}/inittab ] || return 0 > + > + if ${@bb.utils.contains_any("IMAGE_FEATURES", [ "x11-base", "weston" ], "true", "false", d)} > + then > + echo "7:5:respawn:${bindir}/emptty -t 7 -d" >> ${IMAGE_ROOTFS}${sysconfdir}/inittab > + fi > +} > + > + > + > TISDK_IMAGE_CLEANUP_DIRS ?= "var etc lib boot dev home media mnt proc run sbin sys tmp usr" > TISDK_IMAGE_CLEANUP_FILES ?= "bin/bash bin/bash.bash bin/sh" > > diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf > index fb5c703f..43d4db53 100644 > --- a/meta-arago-distro/conf/distro/arago.conf > +++ b/meta-arago-distro/conf/distro/arago.conf > @@ -68,6 +68,8 @@ PACKAGECONFIG:pn-glmark2 = "drm-gles2 wayland-gles2" > > # Set this to empty string to prevent xwayland config from being added > PACKAGECONFIG:pn-weston-init = "" > +PREFERRED_RPROVIDER_virtual-emptty-conf = "weston-init-arago" > +PREFERRED_RPROVIDER_weston-init = "weston-init-arago" > > # Enable testing for opencl and vulkan with piglit > PACKAGECONFIG:append:pn-piglit = " \ > diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb > new file mode 100644 > index 00000000..0b98e2e1 > --- /dev/null > +++ b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb > @@ -0,0 +1,14 @@ > +require emptty.inc > + > +SUMMARY += " (Default config)" > + > +do_configure[noexec] = "1" > +do_compile[noexec] = "1" > + > +do_install () { > + oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-config > +} > + > +FILES:${PN} = "${sysconfdir}/emptty/conf" > +CONFFILES:${PN} = "${sysconfdir}/emptty/conf" > +RPROVIDES:${PN} += "virtual-emptty-conf" > diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty.inc b/meta-arago-distro/recipes-graphics/emptty/emptty.inc > new file mode 100644 > index 00000000..d99c4d8c > --- /dev/null > +++ b/meta-arago-distro/recipes-graphics/emptty/emptty.inc > @@ -0,0 +1,27 @@ > +SUMMARY = "Dead simple CLI Display Manager on TTY" > +DESCRIPTION = "Emptty is a simple display manager with a command line greeter \ > +It supports both X11 and Wayland sessions, exporting required variables and \ > +creating user paths as necessary." > + > +HOMEPAGE = "https://github.com/tvrzna/emptty" > +BUGTRACKER = "https://github.com/tvrzna/emptty/issues" > +LICENSE = "MIT" > +LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=d1e4d12c7d1d17367ba5668706a405ba" > + > +S = "${UNPACKDIR}" > + > +FILESEXTRAPATHS:append = ":${THISDIR}/emptty" > + > +GO_IMPORT = "github.com/tvrzna/emptty" > +GO_IMPORT_pam = "github.com/msteinert/pam" > +SRC_URI = "\ > + git://${GO_IMPORT}.git;protocol=https;branch=master;destsuffix=src/${GO_IMPORT} \ > + git://${GO_IMPORT_pam}.git;protocol=https;branch=master;name=pam;destsuffix=src/${GO_IMPORT_pam} \ > + file://pamconf \ > + " > +SRCREV = "bb203ad0a224731a7a2ff50deeb342ab79c4af09" > +SRCREV_pam = "50ded1b0e7864b9bf75005eb945a8ec826bcf69d" > + > +SRCREV_FORMAT .= "_pam" > + > +PR = "r1" > diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf > new file mode 100644 > index 00000000..5c82d46b > --- /dev/null > +++ b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf > @@ -0,0 +1,11 @@ > +#%PAM-1.0 > +auth sufficient pam_succeed_if.so user ingroup nopasswdlogin > +auth include common-auth > +-auth optional pam_gnome_keyring.so > +-auth optional pam_kwallet5.so > +account include common-account > +session include common-session > +-session optional pam_gnome_keyring.so auto_start > +-session optional pam_kwallet5.so auto_start force_run > +password include common-password > + > diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb > new file mode 100644 > index 00000000..415c5ea5 > --- /dev/null > +++ b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb > @@ -0,0 +1,57 @@ > +require emptty.inc > + > +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam x11', d)}" > +PACKAGECONFIG[pam] = ",,libpam,pam-plugin-succeed-if" > +PACKAGECONFIG[x11] = ",,virtual/libx11,util-linux-mcookie" > + > +DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'virtual/crypt', d)}" > + > +GO_TAGS = "" > +GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', ',nopam', d)}" > +GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', ',noxlib', d)}" > + > +GOBUILDFLAGS:append = " -tags=${GO_TAGS}" > + > +export GO111MODULE = "off" > + > +inherit go > + > +DEPENDS += "gzip" > + > +do_install () { > + # general collateral > + install -Dm755 ${B}/${GO_BUILD_BINDIR}/emptty ${D}${bindir}/emptty > + install -d ${D}${mandir}/man1 > + gzip -cn ${S}/src/${GO_IMPORT}/res/emptty.1 > ${D}${mandir}/man1/emptty.1.gz > + > + # pam config > + if "${@bb.utils.contains('PACKAGECONFIG','pam','true','false',d)}" > + then > + install -Dm644 ${S}/pamconf ${D}${sysconfdir}/pam.d/emptty > + fi > + > + # systemd init service > + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)} > + then > + oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-systemd > + fi > +} > + > +FILES:${PN} = "\ > + ${systemd_system_unitdir}/emptty.service \ > + ${bindir}/emptty \ > + ${mandir}/man1/emptty.1.gz \ > + ${sysconfdir}/pam.d/emptty \ > +" > + > +RDEPENDS:${PN} += "virtual-emptty-conf" > +SYSTEMD_SERVICE:${PN} = "emptty.service" > + > +inherit systemd > + > +USERADD_PACKAGES = "${PN}" > +GROUPADD_PARAM:${PN} = "-r nopasswdlogin" > + > +inherit useradd > + > + > diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb > new file mode 100644 > index 00000000..484d25e1 > --- /dev/null > +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb > @@ -0,0 +1,72 @@ > +SUMMARY = "Configuration files for the Weston Wayland compositor" > +LICENSE = "MIT" > +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" > + > +PACKAGE_ARCH = "${MACHINE_ARCH}" > + > +SRC_URI:append = " \ > + file://weston.ini \ > + file://weston-launch-calibrator.sh \ > + file://emptty.conf \ > +" > + > +S = "${UNPACKDIR}" > + > +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}" > +PACKAGECONFIG:append:qemuriscv64 = " use-pixman" > +PACKAGECONFIG:append:qemuppc64 = " use-pixman" > + > +PACKAGECONFIG[xwayland] = ",," > +PACKAGECONFIG[no-idle-timeout] = ",," > +PACKAGECONFIG[use-pixman] = ",," > + > +DEFAULTBACKEND ??= "" > +DEFAULTBACKEND:qemuall ?= "drm" > + > +do_install() { > + install -D -p -m0644 weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini > + install -D -p -m0644 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 > + fi > + > + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then > + sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini > + fi > + > + if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then > + sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini > + fi > + > + if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then > + sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini > + fi > + > + install -dm 755 -o weston -g weston ${D}/home/weston > + install -Dm755 weston-launch-calibrator.sh ${D}/${bindir}/weston-launch-calibrator > +} > + > +inherit useradd > + > +USERADD_PACKAGES = "${PN}" > + > +# rdepends on weston which depends on virtual/egl > +# > +require ${COREBASE}/meta/recipes-graphics/wayland/required-distro-features.inc > + > +RDEPENDS:${PN} = "weston kbd ${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'weston-xwayland', '', d)} emptty" > + > +FILES:${PN} += "\ > + ${sysconfdir}/xdg/weston/weston.ini \ > + ${sysconfdir}/emptty/conf \ > + /home/weston \ > + ${bindir}/weston-launch-calibrator \ > + " > + > +CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/emptty/conf" > +RPROVIDES:${PN}:append = " virtual-emptty-conf weston-init" > +RCONFLICTS:${PN} += "weston-init" > + > +USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,nopasswdlogin weston" > +GROUPADD_PARAM:${PN} = "-r wayland; -r render; -r nopasswdlogin" > diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini > new file mode 100644 > index 00000000..9fd9851d > --- /dev/null > +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini > @@ -0,0 +1,85 @@ > +# configuration file for Weston > + > +[core] > +idle-time=0 > +#modules=xwayland.so,cms-colord.so > +#shell=desktop-shell.so > +gbm-format=rgb565 > +require-input=false > + > +[shell] > +locking=false > +animation=zoom > +panel-position=top > +startup-animation=fade > +#background-image=/usr/share/backgrounds/gnome/Aqua.jpg > +#background-color=0xff002244 > +#background-type=tile > +#clock-format=minutes > +#panel-color=0x90ff0000 > +#locking=true > +#animation=zoom > +#startup-animation=fade > +#binding-modifier=ctrl > +#num-workspaces=6 > +#cursor-theme=whiteglass > +#cursor-size=24 > + > +#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png > +#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg > +#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg > +#animation=fade > + > +#[launcher] > +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png > +#path=/usr/bin/gnome-terminal > + > +#[launcher] > +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png > +#path=/usr/bin/weston-terminal > + > +#[launcher] > +#icon=/usr/share/icons/hicolor/24x24/apps/google-chrome.png > +#path=/usr/bin/google-chrome > + > +#[launcher] > +#icon=/usr/share/icons/gnome/24x24/apps/arts.png > +#path=/build/weston-0lEgCh/weston-1.11.0/weston-flower > + > +#[input-method] > +#path=/usr/libexec/weston-keyboard > + > +[output] > +name=HDMI-A-1 > +#mode=1680x1050 > +#transform=90 > +#icc_profile=/usr/share/color/icc/colord/Bluish.icc > + > +#[output] > +#name=VGA1 > +#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync > +#transform=flipped > + > +#[output] > +#name=X1 > +#mode=1024x768 > +#transform=flipped-90 > + > +[libinput] > +touchscreen_calibrator=true > +#enable_tap=true > + > +#[touchpad] > +#constant_accel_factor = 50 > +#min_accel_factor = 0.16 > +#max_accel_factor = 1.0 > + > +[screen-share] > +command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize > + > +#[xwayland] > +#path=/usr/bin/Xwayland > + > +[autolaunch] > +# launch the calibrator on startup if a touchscreen is detected > +path=/usr/bin/weston-launch-calibrator > diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf > new file mode 100644 > index 00000000..ffe1a3c2 > --- /dev/null > +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/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=-1 > + > +# 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-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh > new file mode 100644 > index 00000000..45863ecd > --- /dev/null > +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh > @@ -0,0 +1,13 @@ > +#!/bin/sh > + > +if [ -e /dev/input/touchscreen0 ]; then > + echo "Touch screen detected..." > + if [ -n "$LIBINPUT_CALIBRATION_MATRIX" ]; then > + echo "Calibration matrix already present, skipping calibration..." > + else > + echo "Calibrating touchscreen..." > + exec weston-calibrator > + fi > +else > + echo "Touch screen not detected, skipping calibration..." > +fi > diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini > new file mode 100644 > index 00000000..1bc7a010 > --- /dev/null > +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini > @@ -0,0 +1,21 @@ > +[core] > +idle-time=0 > +require-input=false > +require-outputs=none > + > +[shell] > +locking=false > +animation=zoom > +panel-position=top > +startup-animation=fade > + > +[libinput] > +touchscreen_calibrator=true > + > +[autolaunch] > +# launch the calibrator on startup if a touchscreen is detected > +path=/usr/bin/weston-launch-calibrator > + > +[screensaver] > +# Uncomment path to disable screensaver > +#path=@libexecdir@/weston-screensaver > -- > 2.34.1
On 3/5/2026 3:14 PM, Denys Dmytriyenko wrote: > How is it different from Randolph's continued efforts to push it to OE-Core > for many months? > It's not. We just need it for our testing and they are still reviewing it in the patch review meetings. So this is hopefully temporary. > On Thu, Mar 05, 2026 at 02:54:55PM -0600, Antonios Christidis via lists.yoctoproject.org wrote: >> From: Antonios Christidis <a-christidis@ti.com> >> >> Add emptty, a "Dead simple CLI Display Manager on TTY". This is a >> relatively lightweight display manager that supports x11 as well as >> wayland through both a CLI and an automatic login mechanism. >> >> This can effectively replace the custom init scripts for both x11 >> (xserver-nodm-init) and wayland (weston-init) with a single tool with >> more verbose logging capabilities. >> >> This is split into two recipes. The emptty package provides the binary >> and various agnostic configs while the emptty-conf package provides the >> default configuration for the application itself. This RPROVIDES >> virtual-emptty-conf, allowing other recipes to provide their own >> configurations to override the default behavior. >> >> Signed-off-by: Antonios Christidis <a-christidis@ti.com> >> --- >> 0001-emptty-add-version-0.15.0.patch | 522 ++++++++++++++++++ >> .../classes/tisdk-bundle.bbclass | 14 +- >> meta-arago-distro/conf/distro/arago.conf | 2 + >> .../recipes-graphics/emptty/emptty-conf.bb | 14 + >> .../recipes-graphics/emptty/emptty.inc | 27 + >> .../recipes-graphics/emptty/emptty/pamconf | 11 + >> .../recipes-graphics/emptty/emptty_0.15.0.bb | 57 ++ >> .../wayland/weston-init-arago.bb | 72 +++ >> .../weston-init-arago/beaglebone/weston.ini | 85 +++ >> .../wayland/weston-init-arago/emptty.conf | 77 +++ >> .../weston-launch-calibrator.sh | 13 + >> .../wayland/weston-init-arago/weston.ini | 21 + >> 12 files changed, 914 insertions(+), 1 deletion(-) >> create mode 100644 0001-emptty-add-version-0.15.0.patch >> create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb >> create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty.inc >> create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty/pamconf >> create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb >> create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb >> create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini >> create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf >> create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh >> create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini >> >> diff --git a/0001-emptty-add-version-0.15.0.patch b/0001-emptty-add-version-0.15.0.patch >> new file mode 100644 >> index 00000000..dba3013d >> --- /dev/null >> +++ b/0001-emptty-add-version-0.15.0.patch >> @@ -0,0 +1,522 @@ >> +From d41ec048882b955124d7dbeee1c2bf1351a0aba4 Mon Sep 17 00:00:00 2001 >> +From: Antonios Christidis <a-christidis@ti.com> >> +Date: Thu, 5 Mar 2026 13:12:08 -0600 >> +Subject: [PATCH] emptty: add version 0.15.0 >> + >> +Add emptty, a "Dead simple CLI Display Manager on TTY". This is a >> +relatively lightweight display manager that supports x11 as well as >> +wayland through both a CLI and an automatic login mechanism. >> + >> +This can effectively replace the custom init scripts for both x11 >> +(xserver-nodm-init) and wayland (weston-init) with a single tool with >> +more verbose logging capabilities. >> + >> +This is split into two recipes. The emptty package provides the binary >> +and various agnostic configs while the emptty-conf package provides the >> +default configuration for the application itself. This RPROVIDES >> +virtual-emptty-conf, allowing other recipes to provide their own >> +configurations to override the default behavior. >> + >> +Signed-off-by: Antonios Christidis <a-christidis@ti.com> >> +--- >> + .../classes/tisdk-bundle.bbclass | 14 ++- >> + meta-arago-distro/conf/distro/arago.conf | 2 + >> + .../recipes-graphics/emptty/emptty-conf.bb | 14 +++ >> + .../recipes-graphics/emptty/emptty.inc | 27 ++++++ >> + .../recipes-graphics/emptty/emptty/pamconf | 11 +++ >> + .../recipes-graphics/emptty/emptty_0.15.0.bb | 57 +++++++++++++ >> + .../wayland/weston-init-arago.bb | 72 ++++++++++++++++ >> + .../weston-init-arago/beaglebone/weston.ini | 85 +++++++++++++++++++ >> + .../wayland/weston-init-arago/emptty.conf | 77 +++++++++++++++++ >> + .../weston-launch-calibrator.sh | 13 +++ >> + .../wayland/weston-init-arago/weston.ini | 21 +++++ >> + 11 files changed, 392 insertions(+), 1 deletion(-) >> + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb >> + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty.inc >> + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty/pamconf >> + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb >> + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb >> + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini >> + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf >> + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh >> + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini >> + >> +diff --git a/meta-arago-distro/classes/tisdk-bundle.bbclass b/meta-arago-distro/classes/tisdk-bundle.bbclass >> +index cc5d1481..24146529 100644 >> +--- a/meta-arago-distro/classes/tisdk-bundle.bbclass >> ++++ b/meta-arago-distro/classes/tisdk-bundle.bbclass >> +@@ -106,7 +106,7 @@ cleanup_host_packages() { >> + } >> + >> + ROOTFS_PREPROCESS_COMMAND += "tisdk_image_setup; " >> +-ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; " >> ++ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; add_emptty_inittab; " >> + IMAGE_PREPROCESS_COMMAND:append = "tisdk_image_cleanup; " >> + >> + # Create the SDK image. We will re-use the rootfs_ipk_do_rootfs functionality >> +@@ -304,6 +304,18 @@ tisdk_image_build () { >> + cp ${WORKDIR}/opkg.conf ${IMAGE_ROOTFS}/etc/ >> + } >> + >> ++ >> ++add_emptty_inittab() { >> ++ [ -f ${IMAGE_ROOTFS}${sysconfdir}/inittab ] || return 0 >> ++ >> ++ if ${@bb.utils.contains_any("IMAGE_FEATURES", [ "x11-base", "weston" ], "true", "false", d)} >> ++ then >> ++ echo "7:5:respawn:${bindir}/emptty -t 7 -d" >> ${IMAGE_ROOTFS}${sysconfdir}/inittab >> ++ fi >> ++} >> ++ >> ++ >> ++ >> + TISDK_IMAGE_CLEANUP_DIRS ?= "var etc lib boot dev home media mnt proc run sbin sys tmp usr" >> + TISDK_IMAGE_CLEANUP_FILES ?= "bin/bash bin/bash.bash bin/sh" >> + >> +diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf >> +index fb5c703f..43d4db53 100644 >> +--- a/meta-arago-distro/conf/distro/arago.conf >> ++++ b/meta-arago-distro/conf/distro/arago.conf >> +@@ -68,6 +68,8 @@ PACKAGECONFIG:pn-glmark2 = "drm-gles2 wayland-gles2" >> + >> + # Set this to empty string to prevent xwayland config from being added >> + PACKAGECONFIG:pn-weston-init = "" >> ++PREFERRED_RPROVIDER_virtual-emptty-conf = "weston-init-arago" >> ++PREFERRED_RPROVIDER_weston-init = "weston-init-arago" >> + >> + # Enable testing for opencl and vulkan with piglit >> + PACKAGECONFIG:append:pn-piglit = " \ >> +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb >> +new file mode 100644 >> +index 00000000..0b98e2e1 >> +--- /dev/null >> ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb >> +@@ -0,0 +1,14 @@ >> ++require emptty.inc >> ++ >> ++SUMMARY += " (Default config)" >> ++ >> ++do_configure[noexec] = "1" >> ++do_compile[noexec] = "1" >> ++ >> ++do_install () { >> ++ oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-config >> ++} >> ++ >> ++FILES:${PN} = "${sysconfdir}/emptty/conf" >> ++CONFFILES:${PN} = "${sysconfdir}/emptty/conf" >> ++RPROVIDES:${PN} += "virtual-emptty-conf" >> +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty.inc b/meta-arago-distro/recipes-graphics/emptty/emptty.inc >> +new file mode 100644 >> +index 00000000..d99c4d8c >> +--- /dev/null >> ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty.inc >> +@@ -0,0 +1,27 @@ >> ++SUMMARY = "Dead simple CLI Display Manager on TTY" >> ++DESCRIPTION = "Emptty is a simple display manager with a command line greeter \ >> ++It supports both X11 and Wayland sessions, exporting required variables and \ >> ++creating user paths as necessary." >> ++ >> ++HOMEPAGE = "https://github.com/tvrzna/emptty" >> ++BUGTRACKER = "https://github.com/tvrzna/emptty/issues" >> ++LICENSE = "MIT" >> ++LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=d1e4d12c7d1d17367ba5668706a405ba" >> ++ >> ++S = "${UNPACKDIR}" >> ++ >> ++FILESEXTRAPATHS:append = ":${THISDIR}/emptty" >> ++ >> ++GO_IMPORT = "github.com/tvrzna/emptty" >> ++GO_IMPORT_pam = "github.com/msteinert/pam" >> ++SRC_URI = "\ >> ++ git://${GO_IMPORT}.git;protocol=https;branch=master;destsuffix=src/${GO_IMPORT} \ >> ++ git://${GO_IMPORT_pam}.git;protocol=https;branch=master;name=pam;destsuffix=src/${GO_IMPORT_pam} \ >> ++ file://pamconf \ >> ++ " >> ++SRCREV = "bb203ad0a224731a7a2ff50deeb342ab79c4af09" >> ++SRCREV_pam = "50ded1b0e7864b9bf75005eb945a8ec826bcf69d" >> ++ >> ++SRCREV_FORMAT .= "_pam" >> ++ >> ++PR = "r1" >> +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf >> +new file mode 100644 >> +index 00000000..5c82d46b >> +--- /dev/null >> ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf >> +@@ -0,0 +1,11 @@ >> ++#%PAM-1.0 >> ++auth sufficient pam_succeed_if.so user ingroup nopasswdlogin >> ++auth include common-auth >> ++-auth optional pam_gnome_keyring.so >> ++-auth optional pam_kwallet5.so >> ++account include common-account >> ++session include common-session >> ++-session optional pam_gnome_keyring.so auto_start >> ++-session optional pam_kwallet5.so auto_start force_run >> ++password include common-password >> ++ >> +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb >> +new file mode 100644 >> +index 00000000..415c5ea5 >> +--- /dev/null >> ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb >> +@@ -0,0 +1,57 @@ >> ++require emptty.inc >> ++ >> ++PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam x11', d)}" >> ++PACKAGECONFIG[pam] = ",,libpam,pam-plugin-succeed-if" >> ++PACKAGECONFIG[x11] = ",,virtual/libx11,util-linux-mcookie" >> ++ >> ++DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'virtual/crypt', d)}" >> ++ >> ++GO_TAGS = "" >> ++GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', ',nopam', d)}" >> ++GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', ',noxlib', d)}" >> ++ >> ++GOBUILDFLAGS:append = " -tags=${GO_TAGS}" >> ++ >> ++export GO111MODULE = "off" >> ++ >> ++inherit go >> ++ >> ++DEPENDS += "gzip" >> ++ >> ++do_install () { >> ++ # general collateral >> ++ install -Dm755 ${B}/${GO_BUILD_BINDIR}/emptty ${D}${bindir}/emptty >> ++ install -d ${D}${mandir}/man1 >> ++ gzip -cn ${S}/src/${GO_IMPORT}/res/emptty.1 > ${D}${mandir}/man1/emptty.1.gz >> ++ >> ++ # pam config >> ++ if "${@bb.utils.contains('PACKAGECONFIG','pam','true','false',d)}" >> ++ then >> ++ install -Dm644 ${S}/pamconf ${D}${sysconfdir}/pam.d/emptty >> ++ fi >> ++ >> ++ # systemd init service >> ++ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)} >> ++ then >> ++ oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-systemd >> ++ fi >> ++} >> ++ >> ++FILES:${PN} = "\ >> ++ ${systemd_system_unitdir}/emptty.service \ >> ++ ${bindir}/emptty \ >> ++ ${mandir}/man1/emptty.1.gz \ >> ++ ${sysconfdir}/pam.d/emptty \ >> ++" >> ++ >> ++RDEPENDS:${PN} += "virtual-emptty-conf" >> ++SYSTEMD_SERVICE:${PN} = "emptty.service" >> ++ >> ++inherit systemd >> ++ >> ++USERADD_PACKAGES = "${PN}" >> ++GROUPADD_PARAM:${PN} = "-r nopasswdlogin" >> ++ >> ++inherit useradd >> ++ >> ++ >> +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb >> +new file mode 100644 >> +index 00000000..484d25e1 >> +--- /dev/null >> ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb >> +@@ -0,0 +1,72 @@ >> ++SUMMARY = "Configuration files for the Weston Wayland compositor" >> ++LICENSE = "MIT" >> ++LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" >> ++ >> ++PACKAGE_ARCH = "${MACHINE_ARCH}" >> ++ >> ++SRC_URI:append = " \ >> ++ file://weston.ini \ >> ++ file://weston-launch-calibrator.sh \ >> ++ file://emptty.conf \ >> ++" >> ++ >> ++S = "${UNPACKDIR}" >> ++ >> ++PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}" >> ++PACKAGECONFIG:append:qemuriscv64 = " use-pixman" >> ++PACKAGECONFIG:append:qemuppc64 = " use-pixman" >> ++ >> ++PACKAGECONFIG[xwayland] = ",," >> ++PACKAGECONFIG[no-idle-timeout] = ",," >> ++PACKAGECONFIG[use-pixman] = ",," >> ++ >> ++DEFAULTBACKEND ??= "" >> ++DEFAULTBACKEND:qemuall ?= "drm" >> ++ >> ++do_install() { >> ++ install -D -p -m0644 weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini >> ++ install -D -p -m0644 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 >> ++ fi >> ++ >> ++ if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then >> ++ sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini >> ++ fi >> ++ >> ++ if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then >> ++ sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini >> ++ fi >> ++ >> ++ if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then >> ++ sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini >> ++ fi >> ++ >> ++ install -dm 755 -o weston -g weston ${D}/home/weston >> ++ install -Dm755 weston-launch-calibrator.sh ${D}/${bindir}/weston-launch-calibrator >> ++} >> ++ >> ++inherit useradd >> ++ >> ++USERADD_PACKAGES = "${PN}" >> ++ >> ++# rdepends on weston which depends on virtual/egl >> ++# >> ++require ${COREBASE}/meta/recipes-graphics/wayland/required-distro-features.inc >> ++ >> ++RDEPENDS:${PN} = "weston kbd ${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'weston-xwayland', '', d)} emptty" >> ++ >> ++FILES:${PN} += "\ >> ++ ${sysconfdir}/xdg/weston/weston.ini \ >> ++ ${sysconfdir}/emptty/conf \ >> ++ /home/weston \ >> ++ ${bindir}/weston-launch-calibrator \ >> ++ " >> ++ >> ++CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/emptty/conf" >> ++RPROVIDES:${PN}:append = " virtual-emptty-conf weston-init" >> ++RCONFLICTS:${PN} += "weston-init" >> ++ >> ++USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,nopasswdlogin weston" >> ++GROUPADD_PARAM:${PN} = "-r wayland; -r render; -r nopasswdlogin" >> +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini >> +new file mode 100644 >> +index 00000000..9fd9851d >> +--- /dev/null >> ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini >> +@@ -0,0 +1,85 @@ >> ++# configuration file for Weston >> ++ >> ++[core] >> ++idle-time=0 >> ++#modules=xwayland.so,cms-colord.so >> ++#shell=desktop-shell.so >> ++gbm-format=rgb565 >> ++require-input=false >> ++ >> ++[shell] >> ++locking=false >> ++animation=zoom >> ++panel-position=top >> ++startup-animation=fade >> ++#background-image=/usr/share/backgrounds/gnome/Aqua.jpg >> ++#background-color=0xff002244 >> ++#background-type=tile >> ++#clock-format=minutes >> ++#panel-color=0x90ff0000 >> ++#locking=true >> ++#animation=zoom >> ++#startup-animation=fade >> ++#binding-modifier=ctrl >> ++#num-workspaces=6 >> ++#cursor-theme=whiteglass >> ++#cursor-size=24 >> ++ >> ++#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png >> ++#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg >> ++#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg >> ++#animation=fade >> ++ >> ++#[launcher] >> ++#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png >> ++#path=/usr/bin/gnome-terminal >> ++ >> ++#[launcher] >> ++#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png >> ++#path=/usr/bin/weston-terminal >> ++ >> ++#[launcher] >> ++#icon=/usr/share/icons/hicolor/24x24/apps/google-chrome.png >> ++#path=/usr/bin/google-chrome >> ++ >> ++#[launcher] >> ++#icon=/usr/share/icons/gnome/24x24/apps/arts.png >> ++#path=/build/weston-0lEgCh/weston-1.11.0/weston-flower >> ++ >> ++#[input-method] >> ++#path=/usr/libexec/weston-keyboard >> ++ >> ++[output] >> ++name=HDMI-A-1 >> ++#mode=1680x1050 >> ++#transform=90 >> ++#icc_profile=/usr/share/color/icc/colord/Bluish.icc >> ++ >> ++#[output] >> ++#name=VGA1 >> ++#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync >> ++#transform=flipped >> ++ >> ++#[output] >> ++#name=X1 >> ++#mode=1024x768 >> ++#transform=flipped-90 >> ++ >> ++[libinput] >> ++touchscreen_calibrator=true >> ++#enable_tap=true >> ++ >> ++#[touchpad] >> ++#constant_accel_factor = 50 >> ++#min_accel_factor = 0.16 >> ++#max_accel_factor = 1.0 >> ++ >> ++[screen-share] >> ++command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize >> ++ >> ++#[xwayland] >> ++#path=/usr/bin/Xwayland >> ++ >> ++[autolaunch] >> ++# launch the calibrator on startup if a touchscreen is detected >> ++path=/usr/bin/weston-launch-calibrator >> +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf >> +new file mode 100644 >> +index 00000000..ffe1a3c2 >> +--- /dev/null >> ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/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=-1 >> ++ >> ++# 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-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh >> +new file mode 100644 >> +index 00000000..45863ecd >> +--- /dev/null >> ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh >> +@@ -0,0 +1,13 @@ >> ++#!/bin/sh >> ++ >> ++if [ -e /dev/input/touchscreen0 ]; then >> ++ echo "Touch screen detected..." >> ++ if [ -n "$LIBINPUT_CALIBRATION_MATRIX" ]; then >> ++ echo "Calibration matrix already present, skipping calibration..." >> ++ else >> ++ echo "Calibrating touchscreen..." >> ++ exec weston-calibrator >> ++ fi >> ++else >> ++ echo "Touch screen not detected, skipping calibration..." >> ++fi >> +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini >> +new file mode 100644 >> +index 00000000..1bc7a010 >> +--- /dev/null >> ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini >> +@@ -0,0 +1,21 @@ >> ++[core] >> ++idle-time=0 >> ++require-input=false >> ++require-outputs=none >> ++ >> ++[shell] >> ++locking=false >> ++animation=zoom >> ++panel-position=top >> ++startup-animation=fade >> ++ >> ++[libinput] >> ++touchscreen_calibrator=true >> ++ >> ++[autolaunch] >> ++# launch the calibrator on startup if a touchscreen is detected >> ++path=/usr/bin/weston-launch-calibrator >> ++ >> ++[screensaver] >> ++# Uncomment path to disable screensaver >> ++#path=@libexecdir@/weston-screensaver >> +-- >> +2.34.1 >> + >> diff --git a/meta-arago-distro/classes/tisdk-bundle.bbclass b/meta-arago-distro/classes/tisdk-bundle.bbclass >> index cc5d1481..24146529 100644 >> --- a/meta-arago-distro/classes/tisdk-bundle.bbclass >> +++ b/meta-arago-distro/classes/tisdk-bundle.bbclass >> @@ -106,7 +106,7 @@ cleanup_host_packages() { >> } >> >> ROOTFS_PREPROCESS_COMMAND += "tisdk_image_setup; " >> -ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; " >> +ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; add_emptty_inittab; " >> IMAGE_PREPROCESS_COMMAND:append = "tisdk_image_cleanup; " >> >> # Create the SDK image. We will re-use the rootfs_ipk_do_rootfs functionality >> @@ -304,6 +304,18 @@ tisdk_image_build () { >> cp ${WORKDIR}/opkg.conf ${IMAGE_ROOTFS}/etc/ >> } >> >> + >> +add_emptty_inittab() { >> + [ -f ${IMAGE_ROOTFS}${sysconfdir}/inittab ] || return 0 >> + >> + if ${@bb.utils.contains_any("IMAGE_FEATURES", [ "x11-base", "weston" ], "true", "false", d)} >> + then >> + echo "7:5:respawn:${bindir}/emptty -t 7 -d" >> ${IMAGE_ROOTFS}${sysconfdir}/inittab >> + fi >> +} >> + >> + >> + >> TISDK_IMAGE_CLEANUP_DIRS ?= "var etc lib boot dev home media mnt proc run sbin sys tmp usr" >> TISDK_IMAGE_CLEANUP_FILES ?= "bin/bash bin/bash.bash bin/sh" >> >> diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf >> index fb5c703f..43d4db53 100644 >> --- a/meta-arago-distro/conf/distro/arago.conf >> +++ b/meta-arago-distro/conf/distro/arago.conf >> @@ -68,6 +68,8 @@ PACKAGECONFIG:pn-glmark2 = "drm-gles2 wayland-gles2" >> >> # Set this to empty string to prevent xwayland config from being added >> PACKAGECONFIG:pn-weston-init = "" >> +PREFERRED_RPROVIDER_virtual-emptty-conf = "weston-init-arago" >> +PREFERRED_RPROVIDER_weston-init = "weston-init-arago" >> >> # Enable testing for opencl and vulkan with piglit >> PACKAGECONFIG:append:pn-piglit = " \ >> diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb >> new file mode 100644 >> index 00000000..0b98e2e1 >> --- /dev/null >> +++ b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb >> @@ -0,0 +1,14 @@ >> +require emptty.inc >> + >> +SUMMARY += " (Default config)" >> + >> +do_configure[noexec] = "1" >> +do_compile[noexec] = "1" >> + >> +do_install () { >> + oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-config >> +} >> + >> +FILES:${PN} = "${sysconfdir}/emptty/conf" >> +CONFFILES:${PN} = "${sysconfdir}/emptty/conf" >> +RPROVIDES:${PN} += "virtual-emptty-conf" >> diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty.inc b/meta-arago-distro/recipes-graphics/emptty/emptty.inc >> new file mode 100644 >> index 00000000..d99c4d8c >> --- /dev/null >> +++ b/meta-arago-distro/recipes-graphics/emptty/emptty.inc >> @@ -0,0 +1,27 @@ >> +SUMMARY = "Dead simple CLI Display Manager on TTY" >> +DESCRIPTION = "Emptty is a simple display manager with a command line greeter \ >> +It supports both X11 and Wayland sessions, exporting required variables and \ >> +creating user paths as necessary." >> + >> +HOMEPAGE = "https://github.com/tvrzna/emptty" >> +BUGTRACKER = "https://github.com/tvrzna/emptty/issues" >> +LICENSE = "MIT" >> +LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=d1e4d12c7d1d17367ba5668706a405ba" >> + >> +S = "${UNPACKDIR}" >> + >> +FILESEXTRAPATHS:append = ":${THISDIR}/emptty" >> + >> +GO_IMPORT = "github.com/tvrzna/emptty" >> +GO_IMPORT_pam = "github.com/msteinert/pam" >> +SRC_URI = "\ >> + git://${GO_IMPORT}.git;protocol=https;branch=master;destsuffix=src/${GO_IMPORT} \ >> + git://${GO_IMPORT_pam}.git;protocol=https;branch=master;name=pam;destsuffix=src/${GO_IMPORT_pam} \ >> + file://pamconf \ >> + " >> +SRCREV = "bb203ad0a224731a7a2ff50deeb342ab79c4af09" >> +SRCREV_pam = "50ded1b0e7864b9bf75005eb945a8ec826bcf69d" >> + >> +SRCREV_FORMAT .= "_pam" >> + >> +PR = "r1" >> diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf >> new file mode 100644 >> index 00000000..5c82d46b >> --- /dev/null >> +++ b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf >> @@ -0,0 +1,11 @@ >> +#%PAM-1.0 >> +auth sufficient pam_succeed_if.so user ingroup nopasswdlogin >> +auth include common-auth >> +-auth optional pam_gnome_keyring.so >> +-auth optional pam_kwallet5.so >> +account include common-account >> +session include common-session >> +-session optional pam_gnome_keyring.so auto_start >> +-session optional pam_kwallet5.so auto_start force_run >> +password include common-password >> + >> diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb >> new file mode 100644 >> index 00000000..415c5ea5 >> --- /dev/null >> +++ b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb >> @@ -0,0 +1,57 @@ >> +require emptty.inc >> + >> +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam x11', d)}" >> +PACKAGECONFIG[pam] = ",,libpam,pam-plugin-succeed-if" >> +PACKAGECONFIG[x11] = ",,virtual/libx11,util-linux-mcookie" >> + >> +DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'virtual/crypt', d)}" >> + >> +GO_TAGS = "" >> +GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', ',nopam', d)}" >> +GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', ',noxlib', d)}" >> + >> +GOBUILDFLAGS:append = " -tags=${GO_TAGS}" >> + >> +export GO111MODULE = "off" >> + >> +inherit go >> + >> +DEPENDS += "gzip" >> + >> +do_install () { >> + # general collateral >> + install -Dm755 ${B}/${GO_BUILD_BINDIR}/emptty ${D}${bindir}/emptty >> + install -d ${D}${mandir}/man1 >> + gzip -cn ${S}/src/${GO_IMPORT}/res/emptty.1 > ${D}${mandir}/man1/emptty.1.gz >> + >> + # pam config >> + if "${@bb.utils.contains('PACKAGECONFIG','pam','true','false',d)}" >> + then >> + install -Dm644 ${S}/pamconf ${D}${sysconfdir}/pam.d/emptty >> + fi >> + >> + # systemd init service >> + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)} >> + then >> + oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-systemd >> + fi >> +} >> + >> +FILES:${PN} = "\ >> + ${systemd_system_unitdir}/emptty.service \ >> + ${bindir}/emptty \ >> + ${mandir}/man1/emptty.1.gz \ >> + ${sysconfdir}/pam.d/emptty \ >> +" >> + >> +RDEPENDS:${PN} += "virtual-emptty-conf" >> +SYSTEMD_SERVICE:${PN} = "emptty.service" >> + >> +inherit systemd >> + >> +USERADD_PACKAGES = "${PN}" >> +GROUPADD_PARAM:${PN} = "-r nopasswdlogin" >> + >> +inherit useradd >> + >> + >> diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb >> new file mode 100644 >> index 00000000..484d25e1 >> --- /dev/null >> +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb >> @@ -0,0 +1,72 @@ >> +SUMMARY = "Configuration files for the Weston Wayland compositor" >> +LICENSE = "MIT" >> +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" >> + >> +PACKAGE_ARCH = "${MACHINE_ARCH}" >> + >> +SRC_URI:append = " \ >> + file://weston.ini \ >> + file://weston-launch-calibrator.sh \ >> + file://emptty.conf \ >> +" >> + >> +S = "${UNPACKDIR}" >> + >> +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}" >> +PACKAGECONFIG:append:qemuriscv64 = " use-pixman" >> +PACKAGECONFIG:append:qemuppc64 = " use-pixman" >> + >> +PACKAGECONFIG[xwayland] = ",," >> +PACKAGECONFIG[no-idle-timeout] = ",," >> +PACKAGECONFIG[use-pixman] = ",," >> + >> +DEFAULTBACKEND ??= "" >> +DEFAULTBACKEND:qemuall ?= "drm" >> + >> +do_install() { >> + install -D -p -m0644 weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini >> + install -D -p -m0644 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 >> + fi >> + >> + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then >> + sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini >> + fi >> + >> + if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then >> + sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini >> + fi >> + >> + if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then >> + sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini >> + fi >> + >> + install -dm 755 -o weston -g weston ${D}/home/weston >> + install -Dm755 weston-launch-calibrator.sh ${D}/${bindir}/weston-launch-calibrator >> +} >> + >> +inherit useradd >> + >> +USERADD_PACKAGES = "${PN}" >> + >> +# rdepends on weston which depends on virtual/egl >> +# >> +require ${COREBASE}/meta/recipes-graphics/wayland/required-distro-features.inc >> + >> +RDEPENDS:${PN} = "weston kbd ${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'weston-xwayland', '', d)} emptty" >> + >> +FILES:${PN} += "\ >> + ${sysconfdir}/xdg/weston/weston.ini \ >> + ${sysconfdir}/emptty/conf \ >> + /home/weston \ >> + ${bindir}/weston-launch-calibrator \ >> + " >> + >> +CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/emptty/conf" >> +RPROVIDES:${PN}:append = " virtual-emptty-conf weston-init" >> +RCONFLICTS:${PN} += "weston-init" >> + >> +USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,nopasswdlogin weston" >> +GROUPADD_PARAM:${PN} = "-r wayland; -r render; -r nopasswdlogin" >> diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini >> new file mode 100644 >> index 00000000..9fd9851d >> --- /dev/null >> +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini >> @@ -0,0 +1,85 @@ >> +# configuration file for Weston >> + >> +[core] >> +idle-time=0 >> +#modules=xwayland.so,cms-colord.so >> +#shell=desktop-shell.so >> +gbm-format=rgb565 >> +require-input=false >> + >> +[shell] >> +locking=false >> +animation=zoom >> +panel-position=top >> +startup-animation=fade >> +#background-image=/usr/share/backgrounds/gnome/Aqua.jpg >> +#background-color=0xff002244 >> +#background-type=tile >> +#clock-format=minutes >> +#panel-color=0x90ff0000 >> +#locking=true >> +#animation=zoom >> +#startup-animation=fade >> +#binding-modifier=ctrl >> +#num-workspaces=6 >> +#cursor-theme=whiteglass >> +#cursor-size=24 >> + >> +#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png >> +#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg >> +#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg >> +#animation=fade >> + >> +#[launcher] >> +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png >> +#path=/usr/bin/gnome-terminal >> + >> +#[launcher] >> +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png >> +#path=/usr/bin/weston-terminal >> + >> +#[launcher] >> +#icon=/usr/share/icons/hicolor/24x24/apps/google-chrome.png >> +#path=/usr/bin/google-chrome >> + >> +#[launcher] >> +#icon=/usr/share/icons/gnome/24x24/apps/arts.png >> +#path=/build/weston-0lEgCh/weston-1.11.0/weston-flower >> + >> +#[input-method] >> +#path=/usr/libexec/weston-keyboard >> + >> +[output] >> +name=HDMI-A-1 >> +#mode=1680x1050 >> +#transform=90 >> +#icc_profile=/usr/share/color/icc/colord/Bluish.icc >> + >> +#[output] >> +#name=VGA1 >> +#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync >> +#transform=flipped >> + >> +#[output] >> +#name=X1 >> +#mode=1024x768 >> +#transform=flipped-90 >> + >> +[libinput] >> +touchscreen_calibrator=true >> +#enable_tap=true >> + >> +#[touchpad] >> +#constant_accel_factor = 50 >> +#min_accel_factor = 0.16 >> +#max_accel_factor = 1.0 >> + >> +[screen-share] >> +command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize >> + >> +#[xwayland] >> +#path=/usr/bin/Xwayland >> + >> +[autolaunch] >> +# launch the calibrator on startup if a touchscreen is detected >> +path=/usr/bin/weston-launch-calibrator >> diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf >> new file mode 100644 >> index 00000000..ffe1a3c2 >> --- /dev/null >> +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/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=-1 >> + >> +# 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-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh >> new file mode 100644 >> index 00000000..45863ecd >> --- /dev/null >> +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh >> @@ -0,0 +1,13 @@ >> +#!/bin/sh >> + >> +if [ -e /dev/input/touchscreen0 ]; then >> + echo "Touch screen detected..." >> + if [ -n "$LIBINPUT_CALIBRATION_MATRIX" ]; then >> + echo "Calibration matrix already present, skipping calibration..." >> + else >> + echo "Calibrating touchscreen..." >> + exec weston-calibrator >> + fi >> +else >> + echo "Touch screen not detected, skipping calibration..." >> +fi >> diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini >> new file mode 100644 >> index 00000000..1bc7a010 >> --- /dev/null >> +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini >> @@ -0,0 +1,21 @@ >> +[core] >> +idle-time=0 >> +require-input=false >> +require-outputs=none >> + >> +[shell] >> +locking=false >> +animation=zoom >> +panel-position=top >> +startup-animation=fade >> + >> +[libinput] >> +touchscreen_calibrator=true >> + >> +[autolaunch] >> +# launch the calibrator on startup if a touchscreen is detected >> +path=/usr/bin/weston-launch-calibrator >> + >> +[screensaver] >> +# Uncomment path to disable screensaver >> +#path=@libexecdir@/weston-screensaver >> -- >> 2.34.1 >
diff --git a/0001-emptty-add-version-0.15.0.patch b/0001-emptty-add-version-0.15.0.patch new file mode 100644 index 00000000..dba3013d --- /dev/null +++ b/0001-emptty-add-version-0.15.0.patch @@ -0,0 +1,522 @@ +From d41ec048882b955124d7dbeee1c2bf1351a0aba4 Mon Sep 17 00:00:00 2001 +From: Antonios Christidis <a-christidis@ti.com> +Date: Thu, 5 Mar 2026 13:12:08 -0600 +Subject: [PATCH] emptty: add version 0.15.0 + +Add emptty, a "Dead simple CLI Display Manager on TTY". This is a +relatively lightweight display manager that supports x11 as well as +wayland through both a CLI and an automatic login mechanism. + +This can effectively replace the custom init scripts for both x11 +(xserver-nodm-init) and wayland (weston-init) with a single tool with +more verbose logging capabilities. + +This is split into two recipes. The emptty package provides the binary +and various agnostic configs while the emptty-conf package provides the +default configuration for the application itself. This RPROVIDES +virtual-emptty-conf, allowing other recipes to provide their own +configurations to override the default behavior. + +Signed-off-by: Antonios Christidis <a-christidis@ti.com> +--- + .../classes/tisdk-bundle.bbclass | 14 ++- + meta-arago-distro/conf/distro/arago.conf | 2 + + .../recipes-graphics/emptty/emptty-conf.bb | 14 +++ + .../recipes-graphics/emptty/emptty.inc | 27 ++++++ + .../recipes-graphics/emptty/emptty/pamconf | 11 +++ + .../recipes-graphics/emptty/emptty_0.15.0.bb | 57 +++++++++++++ + .../wayland/weston-init-arago.bb | 72 ++++++++++++++++ + .../weston-init-arago/beaglebone/weston.ini | 85 +++++++++++++++++++ + .../wayland/weston-init-arago/emptty.conf | 77 +++++++++++++++++ + .../weston-launch-calibrator.sh | 13 +++ + .../wayland/weston-init-arago/weston.ini | 21 +++++ + 11 files changed, 392 insertions(+), 1 deletion(-) + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty.inc + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty/pamconf + create mode 100644 meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh + create mode 100644 meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini + +diff --git a/meta-arago-distro/classes/tisdk-bundle.bbclass b/meta-arago-distro/classes/tisdk-bundle.bbclass +index cc5d1481..24146529 100644 +--- a/meta-arago-distro/classes/tisdk-bundle.bbclass ++++ b/meta-arago-distro/classes/tisdk-bundle.bbclass +@@ -106,7 +106,7 @@ cleanup_host_packages() { + } + + ROOTFS_PREPROCESS_COMMAND += "tisdk_image_setup; " +-ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; " ++ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; add_emptty_inittab; " + IMAGE_PREPROCESS_COMMAND:append = "tisdk_image_cleanup; " + + # Create the SDK image. We will re-use the rootfs_ipk_do_rootfs functionality +@@ -304,6 +304,18 @@ tisdk_image_build () { + cp ${WORKDIR}/opkg.conf ${IMAGE_ROOTFS}/etc/ + } + ++ ++add_emptty_inittab() { ++ [ -f ${IMAGE_ROOTFS}${sysconfdir}/inittab ] || return 0 ++ ++ if ${@bb.utils.contains_any("IMAGE_FEATURES", [ "x11-base", "weston" ], "true", "false", d)} ++ then ++ echo "7:5:respawn:${bindir}/emptty -t 7 -d" >> ${IMAGE_ROOTFS}${sysconfdir}/inittab ++ fi ++} ++ ++ ++ + TISDK_IMAGE_CLEANUP_DIRS ?= "var etc lib boot dev home media mnt proc run sbin sys tmp usr" + TISDK_IMAGE_CLEANUP_FILES ?= "bin/bash bin/bash.bash bin/sh" + +diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf +index fb5c703f..43d4db53 100644 +--- a/meta-arago-distro/conf/distro/arago.conf ++++ b/meta-arago-distro/conf/distro/arago.conf +@@ -68,6 +68,8 @@ PACKAGECONFIG:pn-glmark2 = "drm-gles2 wayland-gles2" + + # Set this to empty string to prevent xwayland config from being added + PACKAGECONFIG:pn-weston-init = "" ++PREFERRED_RPROVIDER_virtual-emptty-conf = "weston-init-arago" ++PREFERRED_RPROVIDER_weston-init = "weston-init-arago" + + # Enable testing for opencl and vulkan with piglit + PACKAGECONFIG:append:pn-piglit = " \ +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb +new file mode 100644 +index 00000000..0b98e2e1 +--- /dev/null ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb +@@ -0,0 +1,14 @@ ++require emptty.inc ++ ++SUMMARY += " (Default config)" ++ ++do_configure[noexec] = "1" ++do_compile[noexec] = "1" ++ ++do_install () { ++ oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-config ++} ++ ++FILES:${PN} = "${sysconfdir}/emptty/conf" ++CONFFILES:${PN} = "${sysconfdir}/emptty/conf" ++RPROVIDES:${PN} += "virtual-emptty-conf" +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty.inc b/meta-arago-distro/recipes-graphics/emptty/emptty.inc +new file mode 100644 +index 00000000..d99c4d8c +--- /dev/null ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty.inc +@@ -0,0 +1,27 @@ ++SUMMARY = "Dead simple CLI Display Manager on TTY" ++DESCRIPTION = "Emptty is a simple display manager with a command line greeter \ ++It supports both X11 and Wayland sessions, exporting required variables and \ ++creating user paths as necessary." ++ ++HOMEPAGE = "https://github.com/tvrzna/emptty" ++BUGTRACKER = "https://github.com/tvrzna/emptty/issues" ++LICENSE = "MIT" ++LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=d1e4d12c7d1d17367ba5668706a405ba" ++ ++S = "${UNPACKDIR}" ++ ++FILESEXTRAPATHS:append = ":${THISDIR}/emptty" ++ ++GO_IMPORT = "github.com/tvrzna/emptty" ++GO_IMPORT_pam = "github.com/msteinert/pam" ++SRC_URI = "\ ++ git://${GO_IMPORT}.git;protocol=https;branch=master;destsuffix=src/${GO_IMPORT} \ ++ git://${GO_IMPORT_pam}.git;protocol=https;branch=master;name=pam;destsuffix=src/${GO_IMPORT_pam} \ ++ file://pamconf \ ++ " ++SRCREV = "bb203ad0a224731a7a2ff50deeb342ab79c4af09" ++SRCREV_pam = "50ded1b0e7864b9bf75005eb945a8ec826bcf69d" ++ ++SRCREV_FORMAT .= "_pam" ++ ++PR = "r1" +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf +new file mode 100644 +index 00000000..5c82d46b +--- /dev/null ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf +@@ -0,0 +1,11 @@ ++#%PAM-1.0 ++auth sufficient pam_succeed_if.so user ingroup nopasswdlogin ++auth include common-auth ++-auth optional pam_gnome_keyring.so ++-auth optional pam_kwallet5.so ++account include common-account ++session include common-session ++-session optional pam_gnome_keyring.so auto_start ++-session optional pam_kwallet5.so auto_start force_run ++password include common-password ++ +diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb +new file mode 100644 +index 00000000..415c5ea5 +--- /dev/null ++++ b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb +@@ -0,0 +1,57 @@ ++require emptty.inc ++ ++PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam x11', d)}" ++PACKAGECONFIG[pam] = ",,libpam,pam-plugin-succeed-if" ++PACKAGECONFIG[x11] = ",,virtual/libx11,util-linux-mcookie" ++ ++DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'virtual/crypt', d)}" ++ ++GO_TAGS = "" ++GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', ',nopam', d)}" ++GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', ',noxlib', d)}" ++ ++GOBUILDFLAGS:append = " -tags=${GO_TAGS}" ++ ++export GO111MODULE = "off" ++ ++inherit go ++ ++DEPENDS += "gzip" ++ ++do_install () { ++ # general collateral ++ install -Dm755 ${B}/${GO_BUILD_BINDIR}/emptty ${D}${bindir}/emptty ++ install -d ${D}${mandir}/man1 ++ gzip -cn ${S}/src/${GO_IMPORT}/res/emptty.1 > ${D}${mandir}/man1/emptty.1.gz ++ ++ # pam config ++ if "${@bb.utils.contains('PACKAGECONFIG','pam','true','false',d)}" ++ then ++ install -Dm644 ${S}/pamconf ${D}${sysconfdir}/pam.d/emptty ++ fi ++ ++ # systemd init service ++ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)} ++ then ++ oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-systemd ++ fi ++} ++ ++FILES:${PN} = "\ ++ ${systemd_system_unitdir}/emptty.service \ ++ ${bindir}/emptty \ ++ ${mandir}/man1/emptty.1.gz \ ++ ${sysconfdir}/pam.d/emptty \ ++" ++ ++RDEPENDS:${PN} += "virtual-emptty-conf" ++SYSTEMD_SERVICE:${PN} = "emptty.service" ++ ++inherit systemd ++ ++USERADD_PACKAGES = "${PN}" ++GROUPADD_PARAM:${PN} = "-r nopasswdlogin" ++ ++inherit useradd ++ ++ +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb +new file mode 100644 +index 00000000..484d25e1 +--- /dev/null ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb +@@ -0,0 +1,72 @@ ++SUMMARY = "Configuration files for the Weston Wayland compositor" ++LICENSE = "MIT" ++LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" ++ ++PACKAGE_ARCH = "${MACHINE_ARCH}" ++ ++SRC_URI:append = " \ ++ file://weston.ini \ ++ file://weston-launch-calibrator.sh \ ++ file://emptty.conf \ ++" ++ ++S = "${UNPACKDIR}" ++ ++PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}" ++PACKAGECONFIG:append:qemuriscv64 = " use-pixman" ++PACKAGECONFIG:append:qemuppc64 = " use-pixman" ++ ++PACKAGECONFIG[xwayland] = ",," ++PACKAGECONFIG[no-idle-timeout] = ",," ++PACKAGECONFIG[use-pixman] = ",," ++ ++DEFAULTBACKEND ??= "" ++DEFAULTBACKEND:qemuall ?= "drm" ++ ++do_install() { ++ install -D -p -m0644 weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini ++ install -D -p -m0644 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 ++ fi ++ ++ if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then ++ sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini ++ fi ++ ++ if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then ++ sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini ++ fi ++ ++ if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then ++ sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini ++ fi ++ ++ install -dm 755 -o weston -g weston ${D}/home/weston ++ install -Dm755 weston-launch-calibrator.sh ${D}/${bindir}/weston-launch-calibrator ++} ++ ++inherit useradd ++ ++USERADD_PACKAGES = "${PN}" ++ ++# rdepends on weston which depends on virtual/egl ++# ++require ${COREBASE}/meta/recipes-graphics/wayland/required-distro-features.inc ++ ++RDEPENDS:${PN} = "weston kbd ${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'weston-xwayland', '', d)} emptty" ++ ++FILES:${PN} += "\ ++ ${sysconfdir}/xdg/weston/weston.ini \ ++ ${sysconfdir}/emptty/conf \ ++ /home/weston \ ++ ${bindir}/weston-launch-calibrator \ ++ " ++ ++CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/emptty/conf" ++RPROVIDES:${PN}:append = " virtual-emptty-conf weston-init" ++RCONFLICTS:${PN} += "weston-init" ++ ++USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,nopasswdlogin weston" ++GROUPADD_PARAM:${PN} = "-r wayland; -r render; -r nopasswdlogin" +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini +new file mode 100644 +index 00000000..9fd9851d +--- /dev/null ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini +@@ -0,0 +1,85 @@ ++# configuration file for Weston ++ ++[core] ++idle-time=0 ++#modules=xwayland.so,cms-colord.so ++#shell=desktop-shell.so ++gbm-format=rgb565 ++require-input=false ++ ++[shell] ++locking=false ++animation=zoom ++panel-position=top ++startup-animation=fade ++#background-image=/usr/share/backgrounds/gnome/Aqua.jpg ++#background-color=0xff002244 ++#background-type=tile ++#clock-format=minutes ++#panel-color=0x90ff0000 ++#locking=true ++#animation=zoom ++#startup-animation=fade ++#binding-modifier=ctrl ++#num-workspaces=6 ++#cursor-theme=whiteglass ++#cursor-size=24 ++ ++#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png ++#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg ++#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg ++#animation=fade ++ ++#[launcher] ++#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png ++#path=/usr/bin/gnome-terminal ++ ++#[launcher] ++#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png ++#path=/usr/bin/weston-terminal ++ ++#[launcher] ++#icon=/usr/share/icons/hicolor/24x24/apps/google-chrome.png ++#path=/usr/bin/google-chrome ++ ++#[launcher] ++#icon=/usr/share/icons/gnome/24x24/apps/arts.png ++#path=/build/weston-0lEgCh/weston-1.11.0/weston-flower ++ ++#[input-method] ++#path=/usr/libexec/weston-keyboard ++ ++[output] ++name=HDMI-A-1 ++#mode=1680x1050 ++#transform=90 ++#icc_profile=/usr/share/color/icc/colord/Bluish.icc ++ ++#[output] ++#name=VGA1 ++#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync ++#transform=flipped ++ ++#[output] ++#name=X1 ++#mode=1024x768 ++#transform=flipped-90 ++ ++[libinput] ++touchscreen_calibrator=true ++#enable_tap=true ++ ++#[touchpad] ++#constant_accel_factor = 50 ++#min_accel_factor = 0.16 ++#max_accel_factor = 1.0 ++ ++[screen-share] ++command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize ++ ++#[xwayland] ++#path=/usr/bin/Xwayland ++ ++[autolaunch] ++# launch the calibrator on startup if a touchscreen is detected ++path=/usr/bin/weston-launch-calibrator +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf +new file mode 100644 +index 00000000..ffe1a3c2 +--- /dev/null ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/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=-1 ++ ++# 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-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh +new file mode 100644 +index 00000000..45863ecd +--- /dev/null ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh +@@ -0,0 +1,13 @@ ++#!/bin/sh ++ ++if [ -e /dev/input/touchscreen0 ]; then ++ echo "Touch screen detected..." ++ if [ -n "$LIBINPUT_CALIBRATION_MATRIX" ]; then ++ echo "Calibration matrix already present, skipping calibration..." ++ else ++ echo "Calibrating touchscreen..." ++ exec weston-calibrator ++ fi ++else ++ echo "Touch screen not detected, skipping calibration..." ++fi +diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini +new file mode 100644 +index 00000000..1bc7a010 +--- /dev/null ++++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini +@@ -0,0 +1,21 @@ ++[core] ++idle-time=0 ++require-input=false ++require-outputs=none ++ ++[shell] ++locking=false ++animation=zoom ++panel-position=top ++startup-animation=fade ++ ++[libinput] ++touchscreen_calibrator=true ++ ++[autolaunch] ++# launch the calibrator on startup if a touchscreen is detected ++path=/usr/bin/weston-launch-calibrator ++ ++[screensaver] ++# Uncomment path to disable screensaver ++#path=@libexecdir@/weston-screensaver +-- +2.34.1 + diff --git a/meta-arago-distro/classes/tisdk-bundle.bbclass b/meta-arago-distro/classes/tisdk-bundle.bbclass index cc5d1481..24146529 100644 --- a/meta-arago-distro/classes/tisdk-bundle.bbclass +++ b/meta-arago-distro/classes/tisdk-bundle.bbclass @@ -106,7 +106,7 @@ cleanup_host_packages() { } ROOTFS_PREPROCESS_COMMAND += "tisdk_image_setup; " -ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; " +ROOTFS_POSTPROCESS_COMMAND += "tisdk_image_build; add_emptty_inittab; " IMAGE_PREPROCESS_COMMAND:append = "tisdk_image_cleanup; " # Create the SDK image. We will re-use the rootfs_ipk_do_rootfs functionality @@ -304,6 +304,18 @@ tisdk_image_build () { cp ${WORKDIR}/opkg.conf ${IMAGE_ROOTFS}/etc/ } + +add_emptty_inittab() { + [ -f ${IMAGE_ROOTFS}${sysconfdir}/inittab ] || return 0 + + if ${@bb.utils.contains_any("IMAGE_FEATURES", [ "x11-base", "weston" ], "true", "false", d)} + then + echo "7:5:respawn:${bindir}/emptty -t 7 -d" >> ${IMAGE_ROOTFS}${sysconfdir}/inittab + fi +} + + + TISDK_IMAGE_CLEANUP_DIRS ?= "var etc lib boot dev home media mnt proc run sbin sys tmp usr" TISDK_IMAGE_CLEANUP_FILES ?= "bin/bash bin/bash.bash bin/sh" diff --git a/meta-arago-distro/conf/distro/arago.conf b/meta-arago-distro/conf/distro/arago.conf index fb5c703f..43d4db53 100644 --- a/meta-arago-distro/conf/distro/arago.conf +++ b/meta-arago-distro/conf/distro/arago.conf @@ -68,6 +68,8 @@ PACKAGECONFIG:pn-glmark2 = "drm-gles2 wayland-gles2" # Set this to empty string to prevent xwayland config from being added PACKAGECONFIG:pn-weston-init = "" +PREFERRED_RPROVIDER_virtual-emptty-conf = "weston-init-arago" +PREFERRED_RPROVIDER_weston-init = "weston-init-arago" # Enable testing for opencl and vulkan with piglit PACKAGECONFIG:append:pn-piglit = " \ diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb new file mode 100644 index 00000000..0b98e2e1 --- /dev/null +++ b/meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb @@ -0,0 +1,14 @@ +require emptty.inc + +SUMMARY += " (Default config)" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install () { + oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-config +} + +FILES:${PN} = "${sysconfdir}/emptty/conf" +CONFFILES:${PN} = "${sysconfdir}/emptty/conf" +RPROVIDES:${PN} += "virtual-emptty-conf" diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty.inc b/meta-arago-distro/recipes-graphics/emptty/emptty.inc new file mode 100644 index 00000000..d99c4d8c --- /dev/null +++ b/meta-arago-distro/recipes-graphics/emptty/emptty.inc @@ -0,0 +1,27 @@ +SUMMARY = "Dead simple CLI Display Manager on TTY" +DESCRIPTION = "Emptty is a simple display manager with a command line greeter \ +It supports both X11 and Wayland sessions, exporting required variables and \ +creating user paths as necessary." + +HOMEPAGE = "https://github.com/tvrzna/emptty" +BUGTRACKER = "https://github.com/tvrzna/emptty/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=d1e4d12c7d1d17367ba5668706a405ba" + +S = "${UNPACKDIR}" + +FILESEXTRAPATHS:append = ":${THISDIR}/emptty" + +GO_IMPORT = "github.com/tvrzna/emptty" +GO_IMPORT_pam = "github.com/msteinert/pam" +SRC_URI = "\ + git://${GO_IMPORT}.git;protocol=https;branch=master;destsuffix=src/${GO_IMPORT} \ + git://${GO_IMPORT_pam}.git;protocol=https;branch=master;name=pam;destsuffix=src/${GO_IMPORT_pam} \ + file://pamconf \ + " +SRCREV = "bb203ad0a224731a7a2ff50deeb342ab79c4af09" +SRCREV_pam = "50ded1b0e7864b9bf75005eb945a8ec826bcf69d" + +SRCREV_FORMAT .= "_pam" + +PR = "r1" diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf new file mode 100644 index 00000000..5c82d46b --- /dev/null +++ b/meta-arago-distro/recipes-graphics/emptty/emptty/pamconf @@ -0,0 +1,11 @@ +#%PAM-1.0 +auth sufficient pam_succeed_if.so user ingroup nopasswdlogin +auth include common-auth +-auth optional pam_gnome_keyring.so +-auth optional pam_kwallet5.so +account include common-account +session include common-session +-session optional pam_gnome_keyring.so auto_start +-session optional pam_kwallet5.so auto_start force_run +password include common-password + diff --git a/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb new file mode 100644 index 00000000..415c5ea5 --- /dev/null +++ b/meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb @@ -0,0 +1,57 @@ +require emptty.inc + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam x11', d)}" +PACKAGECONFIG[pam] = ",,libpam,pam-plugin-succeed-if" +PACKAGECONFIG[x11] = ",,virtual/libx11,util-linux-mcookie" + +DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'virtual/crypt', d)}" + +GO_TAGS = "" +GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', ',nopam', d)}" +GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', ',noxlib', d)}" + +GOBUILDFLAGS:append = " -tags=${GO_TAGS}" + +export GO111MODULE = "off" + +inherit go + +DEPENDS += "gzip" + +do_install () { + # general collateral + install -Dm755 ${B}/${GO_BUILD_BINDIR}/emptty ${D}${bindir}/emptty + install -d ${D}${mandir}/man1 + gzip -cn ${S}/src/${GO_IMPORT}/res/emptty.1 > ${D}${mandir}/man1/emptty.1.gz + + # pam config + if "${@bb.utils.contains('PACKAGECONFIG','pam','true','false',d)}" + then + install -Dm644 ${S}/pamconf ${D}${sysconfdir}/pam.d/emptty + fi + + # systemd init service + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)} + then + oe_runmake -C ${S}/src/${GO_IMPORT} DESTDIR=${D} install-systemd + fi +} + +FILES:${PN} = "\ + ${systemd_system_unitdir}/emptty.service \ + ${bindir}/emptty \ + ${mandir}/man1/emptty.1.gz \ + ${sysconfdir}/pam.d/emptty \ +" + +RDEPENDS:${PN} += "virtual-emptty-conf" +SYSTEMD_SERVICE:${PN} = "emptty.service" + +inherit systemd + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM:${PN} = "-r nopasswdlogin" + +inherit useradd + + diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb new file mode 100644 index 00000000..484d25e1 --- /dev/null +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb @@ -0,0 +1,72 @@ +SUMMARY = "Configuration files for the Weston Wayland compositor" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +SRC_URI:append = " \ + file://weston.ini \ + file://weston-launch-calibrator.sh \ + file://emptty.conf \ +" + +S = "${UNPACKDIR}" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}" +PACKAGECONFIG:append:qemuriscv64 = " use-pixman" +PACKAGECONFIG:append:qemuppc64 = " use-pixman" + +PACKAGECONFIG[xwayland] = ",," +PACKAGECONFIG[no-idle-timeout] = ",," +PACKAGECONFIG[use-pixman] = ",," + +DEFAULTBACKEND ??= "" +DEFAULTBACKEND:qemuall ?= "drm" + +do_install() { + install -D -p -m0644 weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini + install -D -p -m0644 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 + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then + sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then + sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then + sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini + fi + + install -dm 755 -o weston -g weston ${D}/home/weston + install -Dm755 weston-launch-calibrator.sh ${D}/${bindir}/weston-launch-calibrator +} + +inherit useradd + +USERADD_PACKAGES = "${PN}" + +# rdepends on weston which depends on virtual/egl +# +require ${COREBASE}/meta/recipes-graphics/wayland/required-distro-features.inc + +RDEPENDS:${PN} = "weston kbd ${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'weston-xwayland', '', d)} emptty" + +FILES:${PN} += "\ + ${sysconfdir}/xdg/weston/weston.ini \ + ${sysconfdir}/emptty/conf \ + /home/weston \ + ${bindir}/weston-launch-calibrator \ + " + +CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/emptty/conf" +RPROVIDES:${PN}:append = " virtual-emptty-conf weston-init" +RCONFLICTS:${PN} += "weston-init" + +USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,nopasswdlogin weston" +GROUPADD_PARAM:${PN} = "-r wayland; -r render; -r nopasswdlogin" diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini new file mode 100644 index 00000000..9fd9851d --- /dev/null +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/beaglebone/weston.ini @@ -0,0 +1,85 @@ +# configuration file for Weston + +[core] +idle-time=0 +#modules=xwayland.so,cms-colord.so +#shell=desktop-shell.so +gbm-format=rgb565 +require-input=false + +[shell] +locking=false +animation=zoom +panel-position=top +startup-animation=fade +#background-image=/usr/share/backgrounds/gnome/Aqua.jpg +#background-color=0xff002244 +#background-type=tile +#clock-format=minutes +#panel-color=0x90ff0000 +#locking=true +#animation=zoom +#startup-animation=fade +#binding-modifier=ctrl +#num-workspaces=6 +#cursor-theme=whiteglass +#cursor-size=24 + +#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png +#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg +#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg +#animation=fade + +#[launcher] +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png +#path=/usr/bin/gnome-terminal + +#[launcher] +#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png +#path=/usr/bin/weston-terminal + +#[launcher] +#icon=/usr/share/icons/hicolor/24x24/apps/google-chrome.png +#path=/usr/bin/google-chrome + +#[launcher] +#icon=/usr/share/icons/gnome/24x24/apps/arts.png +#path=/build/weston-0lEgCh/weston-1.11.0/weston-flower + +#[input-method] +#path=/usr/libexec/weston-keyboard + +[output] +name=HDMI-A-1 +#mode=1680x1050 +#transform=90 +#icc_profile=/usr/share/color/icc/colord/Bluish.icc + +#[output] +#name=VGA1 +#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync +#transform=flipped + +#[output] +#name=X1 +#mode=1024x768 +#transform=flipped-90 + +[libinput] +touchscreen_calibrator=true +#enable_tap=true + +#[touchpad] +#constant_accel_factor = 50 +#min_accel_factor = 0.16 +#max_accel_factor = 1.0 + +[screen-share] +command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize + +#[xwayland] +#path=/usr/bin/Xwayland + +[autolaunch] +# launch the calibrator on startup if a touchscreen is detected +path=/usr/bin/weston-launch-calibrator diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/emptty.conf new file mode 100644 index 00000000..ffe1a3c2 --- /dev/null +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/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=-1 + +# 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-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh new file mode 100644 index 00000000..45863ecd --- /dev/null +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston-launch-calibrator.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +if [ -e /dev/input/touchscreen0 ]; then + echo "Touch screen detected..." + if [ -n "$LIBINPUT_CALIBRATION_MATRIX" ]; then + echo "Calibration matrix already present, skipping calibration..." + else + echo "Calibrating touchscreen..." + exec weston-calibrator + fi +else + echo "Touch screen not detected, skipping calibration..." +fi diff --git a/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini new file mode 100644 index 00000000..1bc7a010 --- /dev/null +++ b/meta-arago-distro/recipes-graphics/wayland/weston-init-arago/weston.ini @@ -0,0 +1,21 @@ +[core] +idle-time=0 +require-input=false +require-outputs=none + +[shell] +locking=false +animation=zoom +panel-position=top +startup-animation=fade + +[libinput] +touchscreen_calibrator=true + +[autolaunch] +# launch the calibrator on startup if a touchscreen is detected +path=/usr/bin/weston-launch-calibrator + +[screensaver] +# Uncomment path to disable screensaver +#path=@libexecdir@/weston-screensaver