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" | |||
5 | PR = "r31" | 5 | PR = "r31" |
6 | 6 | ||
7 | SRC_URI = "file://xserver-nodm \ | 7 | SRC_URI = "file://xserver-nodm \ |
8 | file://Xusername \ | 8 | file://Xserver \ |
9 | file://gplv2-license.patch \ | 9 | file://gplv2-license.patch \ |
10 | file://xserver-nodm.service \ | 10 | file://xserver-nodm.service.in \ |
11 | file://xserver-nodm.conf \ | 11 | file://xserver-nodm.conf.in \ |
12 | " | 12 | " |
13 | 13 | ||
14 | S = "${WORKDIR}" | 14 | S = "${WORKDIR}" |
@@ -16,35 +16,44 @@ S = "${WORKDIR}" | |||
16 | # Since we refer to ROOTLESS_X which is normally enabled per-machine | 16 | # Since we refer to ROOTLESS_X which is normally enabled per-machine |
17 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 17 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
18 | 18 | ||
19 | inherit update-rc.d systemd | 19 | inherit update-rc.d systemd distro_features_check |
20 | |||
21 | REQUIRED_DISTRO_FEATURES = "x11" | ||
22 | |||
23 | PACKAGECONFIG ??= "blank" | ||
24 | # dpms and screen saver will be on only if 'blank' is in PACKAGECONFIG | ||
25 | PACKAGECONFIG[blank] = "" | ||
20 | 26 | ||
21 | do_install() { | 27 | do_install() { |
22 | install -d ${D}${sysconfdir}/init.d | 28 | install -d ${D}${sysconfdir}/default |
23 | install xserver-nodm ${D}${sysconfdir}/init.d | 29 | install xserver-nodm.conf.in ${D}${sysconfdir}/default/xserver-nodm |
30 | install -d ${D}${sysconfdir}/xserver-nodm | ||
31 | install Xserver ${D}${sysconfdir}/xserver-nodm/Xserver | ||
32 | |||
33 | BLANK_ARGS="${@bb.utils.contains('PACKAGECONFIG', 'blank', '', '-s 0 -dpms', d)}" | ||
34 | if [ "${ROOTLESS_X}" = "1" ] ; then | ||
35 | XUSER_HOME="/home/xuser" | ||
36 | XUSER="xuser" | ||
37 | else | ||
38 | XUSER_HOME=${ROOT_HOME} | ||
39 | XUSER="root" | ||
40 | fi | ||
41 | sed -i "s:@HOME@:${XUSER_HOME}:; s:@USER@:${XUSER}:; s:@BLANK_ARGS@:${BLANK_ARGS}:" \ | ||
42 | ${D}${sysconfdir}/default/xserver-nodm | ||
24 | 43 | ||
25 | if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then | 44 | if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then |
26 | install -d ${D}${sysconfdir}/default | ||
27 | install xserver-nodm.conf ${D}${sysconfdir}/default/xserver-nodm | ||
28 | install -d ${D}${systemd_unitdir}/system | 45 | install -d ${D}${systemd_unitdir}/system |
29 | install -m 0644 ${WORKDIR}/xserver-nodm.service ${D}${systemd_unitdir}/system | 46 | install -m 0644 ${WORKDIR}/xserver-nodm.service.in ${D}${systemd_unitdir}/system/xserver-nodm.service |
30 | if [ "${ROOTLESS_X}" = "1" ] ; then | 47 | sed -i "s:@USER@:${XUSER}:" ${D}${systemd_unitdir}/system/xserver-nodm.service |
31 | sed -i 's!^HOME=.*!HOME=/home/xuser!' ${D}${sysconfdir}/default/xserver-nodm | ||
32 | sed -i 's!^User=.*!User=xuser!' ${D}${systemd_unitdir}/system/xserver-nodm.service | ||
33 | else | ||
34 | sed -i 's!^HOME=.*!HOME=${ROOT_HOME}!' ${D}${sysconfdir}/default/xserver-nodm | ||
35 | sed -i '/^User=/d' ${D}${systemd_unitdir}/system/xserver-nodm.service | ||
36 | fi | ||
37 | fi | 48 | fi |
38 | 49 | ||
39 | if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then | 50 | if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then |
40 | if [ "${ROOTLESS_X}" = "1" ] ; then | 51 | install -d ${D}${sysconfdir}/init.d |
41 | install -d ${D}${sysconfdir}/X11 | 52 | install xserver-nodm ${D}${sysconfdir}/init.d |
42 | install Xusername ${D}${sysconfdir}/X11 | ||
43 | fi | ||
44 | fi | 53 | fi |
45 | } | 54 | } |
46 | 55 | ||
47 | RDEPENDS_${PN} = "${@base_conditional('ROOTLESS_X', '1', 'xuser-account', '', d)}" | 56 | RDEPENDS_${PN} = "xinit ${@base_conditional('ROOTLESS_X', '1', 'xuser-account', '', d)}" |
48 | 57 | ||
49 | INITSCRIPT_NAME = "xserver-nodm" | 58 | INITSCRIPT_NAME = "xserver-nodm" |
50 | INITSCRIPT_PARAMS = "start 9 5 . stop 20 0 1 2 3 6 ." | 59 | 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 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # This script is only needed to make sure /etc/X11/xserver-common | ||
4 | # can affect XSERVER, ARGS & DPI: otherwise systemd could just use | ||
5 | # /etc/default/xserver-nodm as EnvironmentFile and sysvinit could just | ||
6 | # source the same file | ||
7 | |||
8 | . /etc/profile | ||
9 | |||
10 | # load default values for XSERVER, ARGS, DISPLAY... | ||
11 | . /etc/default/xserver-nodm | ||
12 | |||
13 | # Allow xserver-common to override ARGS, XSERVER, DPI | ||
14 | if [ -e /etc/X11/xserver-common ] ; then | ||
15 | . /etc/X11/xserver-common | ||
16 | if [ ! -e $XSERVER ] ; then | ||
17 | XSERVER=$(which $XSERVER) | ||
18 | fi | ||
19 | fi | ||
20 | |||
21 | if [ -n "$DPI" ] ; then | ||
22 | ARGS="$ARGS -dpi $DPI" | ||
23 | fi | ||
24 | |||
25 | 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 @@ | |||
1 | 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 | |||
26 | case "$1" in | 26 | case "$1" in |
27 | start) | 27 | start) |
28 | . /etc/profile | 28 | . /etc/profile |
29 | username=root | 29 | |
30 | #default for USER | ||
31 | . /etc/default/xserver-nodm | ||
30 | echo "Starting Xserver" | 32 | echo "Starting Xserver" |
31 | if [ -f /etc/X11/Xusername ]; then | 33 | if [ "$USER" != "root" ]; then |
32 | username=`cat /etc/X11/Xusername` | ||
33 | # setting for rootless X | 34 | # setting for rootless X |
34 | chmod o+w /var/log | 35 | chmod o+w /var/log |
35 | chmod g+r /dev/tty[0-3] | 36 | chmod g+r /dev/tty[0-3] |
@@ -38,8 +39,9 @@ case "$1" in | |||
38 | chmod o+rw /dev/hidraw* | 39 | chmod o+rw /dev/hidraw* |
39 | fi | 40 | fi |
40 | fi | 41 | fi |
42 | |||
41 | # Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211] | 43 | # Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211] |
42 | su -l -c '/etc/X11/Xserver&' $username | 44 | su -l -c '/etc/xserver-nodm/Xserver &' $USER |
43 | # Wait for the desktop to say its finished loading | 45 | # Wait for the desktop to say its finished loading |
44 | # before loading the rest of the system | 46 | # before loading the rest of the system |
45 | # dbus-wait org.matchbox_project.desktop Loaded | 47 | # 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 @@ | |||
1 | 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 @@ | |||
1 | # common environment file for sysvinit and systemd | ||
2 | |||
3 | XSERVER=/usr/bin/Xorg | ||
4 | DISPLAY=:0 | ||
5 | ARGS=" -br -pn @BLANK_ARGS@ " | ||
6 | HOME=@HOME@ | ||
7 | 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 @@ | |||
2 | Description=Xserver startup without a display manager | 2 | Description=Xserver startup without a display manager |
3 | 3 | ||
4 | [Service] | 4 | [Service] |
5 | User=root | ||
6 | EnvironmentFile=/etc/default/xserver-nodm | 5 | EnvironmentFile=/etc/default/xserver-nodm |
7 | ExecStart=/etc/X11/Xserver | 6 | User=@USER@ |
7 | ExecStart=/etc/xserver-nodm/Xserver | ||
8 | 8 | ||
9 | [Install] | 9 | [Install] |
10 | Alias=display-manager.service | 10 | Alias=display-manager.service |