1SUMMARY = "Startup script and systemd unit file for the Weston Wayland compositor"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
4
5PACKAGE_ARCH = "${MACHINE_ARCH}"
6
7SRC_URI = "file://init \
8           file://weston.env \
9           file://weston.ini \
10           file://weston.service \
11           file://weston.socket \
12           file://weston-autologin \
13           file://weston-start"
14
15S = "${WORKDIR}"
16
17PACKAGECONFIG ??= ""
18PACKAGECONFIG:append:qemuriscv64 = " use-pixman"
19PACKAGECONFIG:append:qemuppc64 = " use-pixman"
20
21PACKAGECONFIG[no-idle-timeout] = ",,"
22PACKAGECONFIG[use-pixman] = ",,"
23
24DEFAULTBACKEND ??= ""
25DEFAULTBACKEND:qemuall ?= "drm"
26
27do_install() {
28        if [ "${VIRTUAL-RUNTIME_init_manager}" != "systemd" ]; then
29		install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
30		sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}/${sysconfdir}/init.d/weston
31        fi
32	install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini
33	install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston
34
35	# Install Weston systemd service and accompanying udev rule
36	install -D -p -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service
37	install -D -p -m0644 ${WORKDIR}/weston.socket ${D}${systemd_system_unitdir}/weston.socket
38        if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
39		install -D -p -m0644 ${WORKDIR}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin
40        fi
41	sed -i -e s:/etc:${sysconfdir}:g \
42		-e s:/usr/bin:${bindir}:g \
43		-e s:/var:${localstatedir}:g \
44		${D}${systemd_system_unitdir}/weston.service
45	# Install weston-start script
46	install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start
47	sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
48	sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
49        if [ -n "${DEFAULTBACKEND}" ]; then
50		sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini
51	fi
52
53	if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then
54		sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini
55	fi
56
57	if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-pixman', 'yes', 'no', d)}" = "yes" ]; then
58		sed -i -e "/^\[core\]/a use-pixman=true" ${D}${sysconfdir}/xdg/weston/weston.ini
59	fi
60
61	install -dm 755 -o weston -g weston ${D}/home/weston
62}
63
64INHIBIT_UPDATERCD_BBCLASS = "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', d)}"
65
66inherit update-rc.d systemd useradd
67
68USERADD_PACKAGES = "${PN}"
69
70# rdepends on weston which depends on virtual/egl
71#
72require ${THISDIR}/required-distro-features.inc
73
74RDEPENDS:${PN} = "weston kbd"
75
76INITSCRIPT_NAME = "weston"
77INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
78
79FILES:${PN} += "\
80    ${sysconfdir}/xdg/weston/weston.ini \
81    ${systemd_system_unitdir}/weston.service \
82    ${systemd_system_unitdir}/weston.socket \
83    ${sysconfdir}/default/weston \
84    ${sysconfdir}/pam.d/ \
85    /home/weston \
86    "
87
88CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston"
89
90SYSTEMD_SERVICE:${PN} = "weston.service weston.socket"
91USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input weston"
92GROUPADD_PARAM:${PN} = "-r wayland"
93
94