diff options
-rw-r--r-- | meta/recipes-graphics/x11-common/xserver-nodm-init.bb | 51 | ||||
-rw-r--r-- | meta/recipes-graphics/x11-common/xserver-nodm-init/Xserver | 25 | ||||
-rw-r--r-- | meta/recipes-graphics/x11-common/xserver-nodm-init/Xusername | 1 | ||||
-rwxr-xr-x | meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm | 10 | ||||
-rw-r--r-- | meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf | 1 | ||||
-rw-r--r-- | meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf.in | 7 | ||||
-rw-r--r-- | meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service.in (renamed from meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service) | 4 |
7 files changed, 70 insertions, 29 deletions
diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init.bb b/meta/recipes-graphics/x11-common/xserver-nodm-init.bb index b68d40e1be..a6d0d5eeea 100644 --- a/meta/recipes-graphics/x11-common/xserver-nodm-init.bb +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init.bb @@ -5,10 +5,10 @@ SECTION = "x11" PR = "r31" SRC_URI = "file://xserver-nodm \ - file://Xusername \ + file://Xserver \ file://gplv2-license.patch \ - file://xserver-nodm.service \ - file://xserver-nodm.conf \ + file://xserver-nodm.service.in \ + file://xserver-nodm.conf.in \ " S = "${WORKDIR}" @@ -16,35 +16,44 @@ S = "${WORKDIR}" # Since we refer to ROOTLESS_X which is normally enabled per-machine PACKAGE_ARCH = "${MACHINE_ARCH}" -inherit update-rc.d systemd +inherit update-rc.d systemd distro_features_check + +REQUIRED_DISTRO_FEATURES = "x11" + +PACKAGECONFIG ??= "blank" +# dpms and screen saver will be on only if 'blank' is in PACKAGECONFIG +PACKAGECONFIG[blank] = "" do_install() { - install -d ${D}${sysconfdir}/init.d - install xserver-nodm ${D}${sysconfdir}/init.d + install -d ${D}${sysconfdir}/default + install xserver-nodm.conf.in ${D}${sysconfdir}/default/xserver-nodm + install -d ${D}${sysconfdir}/xserver-nodm + install Xserver ${D}${sysconfdir}/xserver-nodm/Xserver + + BLANK_ARGS="${@bb.utils.contains('PACKAGECONFIG', 'blank', '', '-s 0 -dpms', d)}" + if [ "${ROOTLESS_X}" = "1" ] ; then + XUSER_HOME="/home/xuser" + XUSER="xuser" + else + XUSER_HOME=${ROOT_HOME} + XUSER="root" + fi + sed -i "s:@HOME@:${XUSER_HOME}:; s:@USER@:${XUSER}:; s:@BLANK_ARGS@:${BLANK_ARGS}:" \ + ${D}${sysconfdir}/default/xserver-nodm if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}${sysconfdir}/default - install xserver-nodm.conf ${D}${sysconfdir}/default/xserver-nodm install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/xserver-nodm.service ${D}${systemd_unitdir}/system - if [ "${ROOTLESS_X}" = "1" ] ; then - sed -i 's!^HOME=.*!HOME=/home/xuser!' ${D}${sysconfdir}/default/xserver-nodm - sed -i 's!^User=.*!User=xuser!' ${D}${systemd_unitdir}/system/xserver-nodm.service - else - sed -i 's!^HOME=.*!HOME=${ROOT_HOME}!' ${D}${sysconfdir}/default/xserver-nodm - sed -i '/^User=/d' ${D}${systemd_unitdir}/system/xserver-nodm.service - fi + install -m 0644 ${WORKDIR}/xserver-nodm.service.in ${D}${systemd_unitdir}/system/xserver-nodm.service + sed -i "s:@USER@:${XUSER}:" ${D}${systemd_unitdir}/system/xserver-nodm.service fi if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then - if [ "${ROOTLESS_X}" = "1" ] ; then - install -d ${D}${sysconfdir}/X11 - install Xusername ${D}${sysconfdir}/X11 - fi + install -d ${D}${sysconfdir}/init.d + install xserver-nodm ${D}${sysconfdir}/init.d fi } -RDEPENDS_${PN} = "${@base_conditional('ROOTLESS_X', '1', 'xuser-account', '', d)}" +RDEPENDS_${PN} = "xinit ${@base_conditional('ROOTLESS_X', '1', 'xuser-account', '', d)}" INITSCRIPT_NAME = "xserver-nodm" INITSCRIPT_PARAMS = "start 9 5 . stop 20 0 1 2 3 6 ." diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/Xserver b/meta/recipes-graphics/x11-common/xserver-nodm-init/Xserver new file mode 100644 index 0000000000..0edbfbfc20 --- /dev/null +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/Xserver @@ -0,0 +1,25 @@ +#!/bin/sh + +# This script is only needed to make sure /etc/X11/xserver-common +# can affect XSERVER, ARGS & DPI: otherwise systemd could just use +# /etc/default/xserver-nodm as EnvironmentFile and sysvinit could just +# source the same file + +. /etc/profile + +# load default values for XSERVER, ARGS, DISPLAY... +. /etc/default/xserver-nodm + +# Allow xserver-common to override ARGS, XSERVER, DPI +if [ -e /etc/X11/xserver-common ] ; then + . /etc/X11/xserver-common + if [ ! -e $XSERVER ] ; then + XSERVER=$(which $XSERVER) + fi +fi + +if [ -n "$DPI" ] ; then + ARGS="$ARGS -dpi $DPI" +fi + +exec xinit /etc/X11/Xsession -- $XSERVER $DISPLAY $ARGS $* diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/Xusername b/meta/recipes-graphics/x11-common/xserver-nodm-init/Xusername deleted file mode 100644 index 7060e5ec16..0000000000 --- a/meta/recipes-graphics/x11-common/xserver-nodm-init/Xusername +++ /dev/null @@ -1 +0,0 @@ -xuser diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm index bfa0a8d6cb..6c548551b8 100755 --- a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm @@ -26,10 +26,11 @@ done case "$1" in start) . /etc/profile - username=root + + #default for USER + . /etc/default/xserver-nodm echo "Starting Xserver" - if [ -f /etc/X11/Xusername ]; then - username=`cat /etc/X11/Xusername` + if [ "$USER" != "root" ]; then # setting for rootless X chmod o+w /var/log chmod g+r /dev/tty[0-3] @@ -38,8 +39,9 @@ case "$1" in chmod o+rw /dev/hidraw* fi fi + # Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211] - su -l -c '/etc/X11/Xserver&' $username + su -l -c '/etc/xserver-nodm/Xserver &' $USER # Wait for the desktop to say its finished loading # before loading the rest of the system # dbus-wait org.matchbox_project.desktop Loaded diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf deleted file mode 100644 index 3c0582a87e..0000000000 --- a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf +++ /dev/null @@ -1 +0,0 @@ -HOME=/home/root diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf.in b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf.in new file mode 100644 index 0000000000..757c23d95a --- /dev/null +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf.in @@ -0,0 +1,7 @@ +# common environment file for sysvinit and systemd + +XSERVER=/usr/bin/Xorg +DISPLAY=:0 +ARGS=" -br -pn @BLANK_ARGS@ " +HOME=@HOME@ +USER=@USER@ diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service.in index 62d979f1d6..324a26f549 100644 --- a/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service +++ b/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service.in @@ -2,9 +2,9 @@ Description=Xserver startup without a display manager [Service] -User=root EnvironmentFile=/etc/default/xserver-nodm -ExecStart=/etc/X11/Xserver +User=@USER@ +ExecStart=/etc/xserver-nodm/Xserver [Install] Alias=display-manager.service |