summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/wayland/weston-init.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-graphics/wayland/weston-init.bb')
-rw-r--r--meta/recipes-graphics/wayland/weston-init.bb83
1 files changed, 49 insertions, 34 deletions
diff --git a/meta/recipes-graphics/wayland/weston-init.bb b/meta/recipes-graphics/wayland/weston-init.bb
index 65d7b81dc5..024e400665 100644
--- a/meta/recipes-graphics/wayland/weston-init.bb
+++ b/meta/recipes-graphics/wayland/weston-init.bb
@@ -9,73 +9,88 @@ SRC_URI = "file://init \
9 file://weston.ini \ 9 file://weston.ini \
10 file://weston.service \ 10 file://weston.service \
11 file://weston.socket \ 11 file://weston.socket \
12 file://weston-socket.sh \
12 file://weston-autologin \ 13 file://weston-autologin \
13 file://weston-start" 14 file://weston-start"
14 15
15S = "${WORKDIR}" 16S = "${WORKDIR}"
16 17
17PACKAGECONFIG ??= "" 18PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}"
19PACKAGECONFIG:append:qemuriscv64 = " use-pixman"
20PACKAGECONFIG:append:qemuppc64 = " use-pixman"
18 21
22PACKAGECONFIG[xwayland] = ",,"
19PACKAGECONFIG[no-idle-timeout] = ",," 23PACKAGECONFIG[no-idle-timeout] = ",,"
24PACKAGECONFIG[use-pixman] = ",,"
20 25
21DEFAULTBACKEND ??= "" 26DEFAULTBACKEND ??= ""
22DEFAULTBACKEND_qemuall ?= "fbdev" 27DEFAULTBACKEND:qemuall ?= "drm"
23DEFAULTBACKEND_qemuarm64 = "drm"
24DEFAULTBACKEND_qemux86 = "drm"
25DEFAULTBACKEND_qemux86-64 = "drm"
26# gallium swrast was found to crash weston on startup in x32 qemu
27DEFAULTBACKEND_qemux86-64_x86-x32 = "fbdev"
28DEFAULTBACKEND_x86-x32 = "fbdev"
29 28
30do_install() { 29do_install() {
31 if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then 30 # Install weston-start script
31 if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then
32 install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start
33 sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
34 sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
32 install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston 35 install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
33 fi 36 sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}/${sysconfdir}/init.d/weston
37 fi
38
39 # Install Weston systemd service
40 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
41 install -D -p -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service
42 install -D -p -m0644 ${WORKDIR}/weston.socket ${D}${systemd_system_unitdir}/weston.socket
43 install -D -p -m0644 ${WORKDIR}/weston-socket.sh ${D}${sysconfdir}/profile.d/weston-socket.sh
44 sed -i -e s:/etc:${sysconfdir}:g \
45 -e s:/usr/bin:${bindir}:g \
46 -e s:/var:${localstatedir}:g \
47 ${D}${systemd_system_unitdir}/weston.service
48 fi
49
50 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
51 install -D -p -m0644 ${WORKDIR}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin
52 fi
53
34 install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini 54 install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini
35 install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston 55 install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston
36 56
37 # Install Weston systemd service and accompanying udev rule 57 if [ -n "${DEFAULTBACKEND}" ]; then
38 install -D -p -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service
39 install -D -p -m0644 ${WORKDIR}/weston.socket ${D}${systemd_system_unitdir}/weston.socket
40 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
41 install -D -p -m0644 ${WORKDIR}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin
42 fi
43 sed -i -e s:/etc:${sysconfdir}:g \
44 -e s:/usr/bin:${bindir}:g \
45 -e s:/var:${localstatedir}:g \
46 ${D}${systemd_unitdir}/system/weston.service
47 # Install weston-start script
48 install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start
49 sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
50 sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
51 if [ -n "${DEFAULTBACKEND}" ]; then
52 sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini 58 sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini
53 fi 59 fi
54 60
61 if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then
62 sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini
63 fi
64
55 if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then 65 if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then
56 sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini 66 sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini
57 fi 67 fi
58 68
69 if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then
70 sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini
71 fi
72
59 install -dm 755 -o weston -g weston ${D}/home/weston 73 install -dm 755 -o weston -g weston ${D}/home/weston
60} 74}
61 75
62INHIBIT_UPDATERCD_BBCLASS = "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', d)}" 76INHIBIT_UPDATERCD_BBCLASS = "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', d)}"
63 77
64inherit update-rc.d features_check systemd useradd 78inherit update-rc.d systemd useradd
65 79
66USERADD_PACKAGES = "${PN}" 80USERADD_PACKAGES = "${PN}"
67 81
68# rdepends on weston which depends on virtual/egl 82# rdepends on weston which depends on virtual/egl
69# requires pam enabled if started via systemd 83#
70REQUIRED_DISTRO_FEATURES = "opengl ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}" 84require ${THISDIR}/required-distro-features.inc
71 85
72RDEPENDS_${PN} = "weston kbd" 86RDEPENDS:${PN} = "weston kbd"
73 87
74INITSCRIPT_NAME = "weston" 88INITSCRIPT_NAME = "weston"
75INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ." 89INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
76 90
77FILES_${PN} += "\ 91FILES:${PN} += "\
78 ${sysconfdir}/xdg/weston/weston.ini \ 92 ${sysconfdir}/xdg/weston/weston.ini \
93 ${sysconfdir}/profile.d/weston-socket.sh \
79 ${systemd_system_unitdir}/weston.service \ 94 ${systemd_system_unitdir}/weston.service \
80 ${systemd_system_unitdir}/weston.socket \ 95 ${systemd_system_unitdir}/weston.socket \
81 ${sysconfdir}/default/weston \ 96 ${sysconfdir}/default/weston \
@@ -83,9 +98,9 @@ FILES_${PN} += "\
83 /home/weston \ 98 /home/weston \
84 " 99 "
85 100
86CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston" 101CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston"
87 102
88SYSTEMD_SERVICE_${PN} = "weston.service weston.socket" 103SYSTEMD_SERVICE:${PN} = "weston.service weston.socket"
89USERADD_PARAM_${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input weston" 104USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,wayland weston"
90GROUPADD_PARAM_${PN} = "-r wayland" 105GROUPADD_PARAM:${PN} = "-r wayland; -r render"
91 106