blob: 024e400665eff141c41661f55ec112dafaa65c34 [file] [log] [blame]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001SUMMARY = "Startup script and systemd unit file for the Weston Wayland compositor"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002LICENSE = "MIT"
Brad Bishop6e60e8b2018-02-01 10:27:11 -05003LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
Patrick Williamsc124f4f2015-09-15 14:41:29 -05004
Brad Bishopa34c0302019-09-23 22:34:48 -04005PACKAGE_ARCH = "${MACHINE_ARCH}"
6
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05007SRC_URI = "file://init \
Andrew Geissler82c905d2020-04-13 13:39:40 -05008 file://weston.env \
Brad Bishopa34c0302019-09-23 22:34:48 -04009 file://weston.ini \
Andrew Geissler6ce62a22020-11-30 19:58:47 -060010 file://weston.service \
11 file://weston.socket \
Patrick Williams520786c2023-06-25 16:20:36 -050012 file://weston-socket.sh \
Andrew Geisslerc9f78652020-09-18 14:11:35 -050013 file://weston-autologin \
Patrick Williamsc0f7c042017-02-23 20:41:17 -060014 file://weston-start"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015
16S = "${WORKDIR}"
17
Patrick Williams520786c2023-06-25 16:20:36 -050018PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)}"
Andrew Geissler9aee5002022-03-30 16:27:02 +000019PACKAGECONFIG:append:qemuriscv64 = " use-pixman"
20PACKAGECONFIG:append:qemuppc64 = " use-pixman"
Andrew Geissler4c19ea12020-10-27 13:52:24 -050021
Patrick Williams520786c2023-06-25 16:20:36 -050022PACKAGECONFIG[xwayland] = ",,"
Andrew Geissler4c19ea12020-10-27 13:52:24 -050023PACKAGECONFIG[no-idle-timeout] = ",,"
Andrew Geissler9aee5002022-03-30 16:27:02 +000024PACKAGECONFIG[use-pixman] = ",,"
Andrew Geissler4c19ea12020-10-27 13:52:24 -050025
Andrew Geisslerc9f78652020-09-18 14:11:35 -050026DEFAULTBACKEND ??= ""
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000027DEFAULTBACKEND:qemuall ?= "drm"
Andrew Geisslerc9f78652020-09-18 14:11:35 -050028
Patrick Williamsc124f4f2015-09-15 14:41:29 -050029do_install() {
Patrick Williams520786c2023-06-25 16:20:36 -050030 # 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
Andrew Geissler6ce62a22020-11-30 19:58:47 -060035 install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
Andrew Geissler95ac1b82021-03-31 14:34:31 -050036 sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}/${sysconfdir}/init.d/weston
Patrick Williams520786c2023-06-25 16:20:36 -050037 fi
38
Andrew Geissler5082cc72023-09-11 08:41:39 -040039 # Install Weston systemd service
Patrick Williams520786c2023-06-25 16:20:36 -050040 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
Brad Bishopa34c0302019-09-23 22:34:48 -040054 install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini
Andrew Geissler82c905d2020-04-13 13:39:40 -050055 install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050056
Patrick Williams520786c2023-06-25 16:20:36 -050057 if [ -n "${DEFAULTBACKEND}" ]; then
Andrew Geisslerc9f78652020-09-18 14:11:35 -050058 sed -i -e "/^\[core\]/a backend=${DEFAULTBACKEND}-backend.so" ${D}${sysconfdir}/xdg/weston/weston.ini
59 fi
Andrew Geissler4c19ea12020-10-27 13:52:24 -050060
Patrick Williams520786c2023-06-25 16:20:36 -050061 if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then
Andrew Geissler615f2f12022-07-15 14:00:58 -050062 sed -i -e "/^\[core\]/a xwayland=true" ${D}${sysconfdir}/xdg/weston/weston.ini
63 fi
64
Andrew Geissler4c19ea12020-10-27 13:52:24 -050065 if [ "${@bb.utils.contains('PACKAGECONFIG', 'no-idle-timeout', 'yes', 'no', d)}" = "yes" ]; then
Andrew Geissler6ce62a22020-11-30 19:58:47 -060066 sed -i -e "/^\[core\]/a idle-time=0" ${D}${sysconfdir}/xdg/weston/weston.ini
Andrew Geissler4c19ea12020-10-27 13:52:24 -050067 fi
Andrew Geissler6ce62a22020-11-30 19:58:47 -060068
Andrew Geissler9aee5002022-03-30 16:27:02 +000069 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
Andrew Geissler6ce62a22020-11-30 19:58:47 -060073 install -dm 755 -o weston -g weston ${D}/home/weston
Andrew Geissler82c905d2020-04-13 13:39:40 -050074}
75
Andrew Geissler6ce62a22020-11-30 19:58:47 -060076INHIBIT_UPDATERCD_BBCLASS = "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', '1', '', d)}"
77
Andrew Geissler9aee5002022-03-30 16:27:02 +000078inherit update-rc.d systemd useradd
Andrew Geissler6ce62a22020-11-30 19:58:47 -060079
80USERADD_PACKAGES = "${PN}"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050081
82# rdepends on weston which depends on virtual/egl
Andrew Geissler9aee5002022-03-30 16:27:02 +000083#
84require ${THISDIR}/required-distro-features.inc
Patrick Williamsc124f4f2015-09-15 14:41:29 -050085
Patrick Williams213cb262021-08-07 19:21:33 -050086RDEPENDS:${PN} = "weston kbd"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050087
88INITSCRIPT_NAME = "weston"
89INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050090
Patrick Williams213cb262021-08-07 19:21:33 -050091FILES:${PN} += "\
Andrew Geissler6ce62a22020-11-30 19:58:47 -060092 ${sysconfdir}/xdg/weston/weston.ini \
Patrick Williams520786c2023-06-25 16:20:36 -050093 ${sysconfdir}/profile.d/weston-socket.sh \
Andrew Geissler6ce62a22020-11-30 19:58:47 -060094 ${systemd_system_unitdir}/weston.service \
95 ${systemd_system_unitdir}/weston.socket \
96 ${sysconfdir}/default/weston \
97 ${sysconfdir}/pam.d/ \
98 /home/weston \
99 "
Brad Bishopa34c0302019-09-23 22:34:48 -0400100
Patrick Williams213cb262021-08-07 19:21:33 -0500101CONFFILES:${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston"
Brad Bishopa34c0302019-09-23 22:34:48 -0400102
Patrick Williams213cb262021-08-07 19:21:33 -0500103SYSTEMD_SERVICE:${PN} = "weston.service weston.socket"
Patrick Williams520786c2023-06-25 16:20:36 -0500104USERADD_PARAM:${PN} = "--home /home/weston --shell /bin/sh --user-group -G video,input,render,wayland weston"
105GROUPADD_PARAM:${PN} = "-r wayland; -r render"
Brad Bishopa34c0302019-09-23 22:34:48 -0400106