summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2020-11-09 09:31:29 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-11-11 10:08:12 +0000
commita839c9ba881ea3fae06a3a4d85e27832a9b2762d (patch)
treecae106dc91cbdd8f9ec10417b9521a4ed207d64e /meta
parent65993a90a6c3b780cf724f6409683b4b8e6c1845 (diff)
downloadpoky-a839c9ba881ea3fae06a3a4d85e27832a9b2762d.tar.gz
weston-init: correctly start under systemd
Several issues are addressed: 1. weston requires pam when starting under systemd 2. systemd was attempting to launch weston twice (from sysvinit script and from systemd unit file) which caused confusion and errors. 3. runtime test should stop/start weston via systemd only if systemd actually controls system startup, not merely when systemd is present. (From OE-Core rev: 72dd74c5d384dbe641cc7c02ecf766ff8d5f555f) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/lib/oeqa/runtime/cases/weston.py4
-rw-r--r--meta/recipes-graphics/wayland/weston-init.bb9
2 files changed, 9 insertions, 4 deletions
diff --git a/meta/lib/oeqa/runtime/cases/weston.py b/meta/lib/oeqa/runtime/cases/weston.py
index 36b4f9e375..d3fbf8ba92 100644
--- a/meta/lib/oeqa/runtime/cases/weston.py
+++ b/meta/lib/oeqa/runtime/cases/weston.py
@@ -34,7 +34,7 @@ class WestonTest(OERuntimeTestCase):
34 return 'export XDG_RUNTIME_DIR=/run/user/0; export WAYLAND_DISPLAY=wayland-0; %s' % cmd 34 return 'export XDG_RUNTIME_DIR=/run/user/0; export WAYLAND_DISPLAY=wayland-0; %s' % cmd
35 35
36 def run_weston_init(self): 36 def run_weston_init(self):
37 if 'systemd' in self.tc.td['DISTRO_FEATURES']: 37 if 'systemd' in self.tc.td['VIRTUAL-RUNTIME_init_manager']:
38 self.target.run('systemd-run --collect --unit=weston-ptest.service --uid=0 -p PAMName=login -p TTYPath=/dev/tty6 -E XDG_RUNTIME_DIR=/tmp -E WAYLAND_DISPLAY=wayland-0 /usr/bin/weston --socket=wayland-1 --log=%s' % self.weston_log_file) 38 self.target.run('systemd-run --collect --unit=weston-ptest.service --uid=0 -p PAMName=login -p TTYPath=/dev/tty6 -E XDG_RUNTIME_DIR=/tmp -E WAYLAND_DISPLAY=wayland-0 /usr/bin/weston --socket=wayland-1 --log=%s' % self.weston_log_file)
39 else: 39 else:
40 self.target.run(self.get_weston_command('openvt -- weston --socket=wayland-1 --log=%s' % self.weston_log_file)) 40 self.target.run(self.get_weston_command('openvt -- weston --socket=wayland-1 --log=%s' % self.weston_log_file))
@@ -66,7 +66,7 @@ class WestonTest(OERuntimeTestCase):
66 new_wl_processes, try_cnt = self.get_new_wayland_processes(existing_wl_processes) 66 new_wl_processes, try_cnt = self.get_new_wayland_processes(existing_wl_processes)
67 existing_and_new_weston_processes = self.get_processes_of('weston', 'existing and new') 67 existing_and_new_weston_processes = self.get_processes_of('weston', 'existing and new')
68 new_weston_processes = [x for x in existing_and_new_weston_processes if x not in existing_weston_processes] 68 new_weston_processes = [x for x in existing_and_new_weston_processes if x not in existing_weston_processes]
69 if 'systemd' in self.tc.td['DISTRO_FEATURES']: 69 if 'systemd' in self.tc.td['VIRTUAL-RUNTIME_init_manager']:
70 self.target.run('systemctl stop weston-ptest.service') 70 self.target.run('systemctl stop weston-ptest.service')
71 else: 71 else:
72 for w in new_weston_processes: 72 for w in new_weston_processes:
diff --git a/meta/recipes-graphics/wayland/weston-init.bb b/meta/recipes-graphics/wayland/weston-init.bb
index b7a99be646..4b2a6ca983 100644
--- a/meta/recipes-graphics/wayland/weston-init.bb
+++ b/meta/recipes-graphics/wayland/weston-init.bb
@@ -26,7 +26,9 @@ DEFAULTBACKEND_qemux86 = "drm"
26DEFAULTBACKEND_qemux86-64 = "drm" 26DEFAULTBACKEND_qemux86-64 = "drm"
27 27
28do_install() { 28do_install() {
29 install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston 29 if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then
30 install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
31 fi
30 install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini 32 install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini
31 install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston 33 install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston
32 34
@@ -55,10 +57,13 @@ do_install() {
55 fi 57 fi
56} 58}
57 59
60INHIBIT_UPDATERCD_BBCLASS = "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', d)}"
61
58inherit update-rc.d features_check systemd 62inherit update-rc.d features_check systemd
59 63
60# rdepends on weston which depends on virtual/egl 64# rdepends on weston which depends on virtual/egl
61REQUIRED_DISTRO_FEATURES = "opengl" 65# requires pam enabled if started via systemd
66REQUIRED_DISTRO_FEATURES = "opengl ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}"
62 67
63RDEPENDS_${PN} = "weston kbd" 68RDEPENDS_${PN} = "weston kbd"
64 69