weston-init.bb 3.3 KB

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