[oe-commits] [openembedded-core] 52/102: xserver-nodm-init: Deprecate /etc/X11/Xserver

git at git.openembedded.org git at git.openembedded.org
Tue Aug 30 22:58:22 UTC 2016


rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 566aa15a04f6a5e22e1c1ffa61367a11ea005937
Author: Jussi Kukkonen <jussi.kukkonen at intel.com>
AuthorDate: Tue Aug 30 11:32:08 2016 +0300

    xserver-nodm-init: Deprecate /etc/X11/Xserver
    
    This commit should provide the same functionality as before, but
    should make meta-oe xserver-nodm-init-2.0 obsolete as well as
    keep systemd and sysvinit startup better in sync.
    
    /etc/X11/Xserver is not called anymore: it is provided by both
    x11-common and xserver-common with no useful differences (but some
    annoying ones). Instead xserver-nodm-init provides
    /etc/xserver-nodm/Xserver as the startup script and
    /etc/default/xserver-nodm as the default settings file. These are
    used by both init systems.
    
    The Xserver script could be completely removed (with sysv and
    systemd calling xinit directly), but to keep compatibility with
    meta-oes xserver-nodm-init-2.0 the Xserver script sources
    /etc/X11/xserver-common if one exists -- and systemd EnvironmentFile
    cannot do that.
    
    x11-common used to have a packageconfig to easily control screen
    blanking. Move this to xserver-nodm-init.
    
    Signed-off-by: Jussi Kukkonen <jussi.kukkonen at intel.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 .../x11-common/xserver-nodm-init.bb                | 47 +++++++++++++---------
 .../x11-common/xserver-nodm-init/Xserver           | 25 ++++++++++++
 .../x11-common/xserver-nodm-init/Xusername         |  1 -
 .../x11-common/xserver-nodm-init/xserver-nodm      | 10 +++--
 .../x11-common/xserver-nodm-init/xserver-nodm.conf |  1 -
 .../xserver-nodm-init/xserver-nodm.conf.in         |  7 ++++
 ...server-nodm.service => xserver-nodm.service.in} |  4 +-
 7 files changed, 67 insertions(+), 28 deletions(-)

diff --git a/meta/recipes-graphics/x11-common/xserver-nodm-init.bb b/meta/recipes-graphics/x11-common/xserver-nodm-init.bb
index b68d40e..6057248 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}"
@@ -18,33 +18,40 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 inherit update-rc.d systemd
 
+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 0000000..0edbfbf
--- /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 7060e5e..0000000
--- 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 bfa0a8d..6c54855 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 3c0582a..0000000
--- 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 0000000..757c23d
--- /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
similarity index 76%
rename from meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service
rename to meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service.in
index 62d979f..324a26f 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

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list