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. (From OE-Core rev: e8ce3d2626e505924a75de96650abca166fd230a) Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
37f4b39d0e
commit
3b7cdffebd
|
@ -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 ."
|
||||
|
|
|
@ -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 $*
|
|
@ -1 +0,0 @@
|
|||
xuser
|
|
@ -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
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
HOME=/home/root
|
|
@ -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@
|
|
@ -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
|
Loading…
Reference in New Issue