X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=meta-agl-profile-graphical%2Frecipes-graphics%2Fwayland%2Fweston-init.bbappend;h=c71402fed4ae643d9c735c81a261671ac9b30a9e;hb=4bc95c3f87907f918eec3b83c475054a5bdef376;hp=910cf5a67200150eb714d0e1c53aa4550dc9c150;hpb=de382e0eba1c57f2cd9a23323566754190b3a953;p=AGL%2Fmeta-agl.git diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend index 910cf5a67..c71402fed 100644 --- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend +++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend @@ -2,80 +2,66 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" inherit agl-graphical - -WESTONSTART ??= "/usr/bin/weston ${WESTONARGS}" +WESTONSTART ??= "${@bb.utils.contains("DISTRO_FEATURES", "agl-compositor", "/usr/bin/agl-compositor", "/usr/bin/weston",d)} ${WESTONARGS}" WESTONSTART_append = " ${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", " --log=${DISPLAY_XDG_RUNTIME_DIR}/weston.log", "",d)}" -SRC_URI += " \ - file://weston_tmpfiles.conf \ - file://weston.service.add \ +WIFILES = " \ + file://weston.conf.in \ + file://tmpfiles.conf.in \ + file://zz-dri.rules.in \ + file://zz-input.rules.in \ + file://zz-tty.rules.in \ " -do_install_append() { - sed -i "/\[Unit\]/aConflicts=getty@tty${WESTONTTY}.service" \ - ${D}${systemd_system_unitdir}/weston.service - - sed -i "/\[Service\]/r ${S}/weston.service.add" \ - ${D}${systemd_system_unitdir}/weston.service - - if ! grep -q '^Group=' ${D}${systemd_system_unitdir}/weston.service; then - sed -i "/\[Service\]/aGroup=root" ${D}${systemd_system_unitdir}/weston.service - fi - if ! grep -q '^User=' ${D}${systemd_system_unitdir}/weston.service; then - sed -i "/\[Service\]/aUser=root" ${D}${systemd_system_unitdir}/weston.service - fi - - sed -e 's,User=root,User=${WESTONUSER},g' \ - -e 's,Group=root,Group=${WESTONGROUP},g' \ - -e 's,ExecStart=.*,ExecStart=${WESTONSTART},g' \ - -e 's,@WESTONTTY@,${WESTONTTY},g' \ - -e 's,@XDG_RUNTIME_DIR@,${DISPLAY_XDG_RUNTIME_DIR},g' \ - -e '/PAMName=/d' \ - -i ${D}${systemd_system_unitdir}/weston.service - - # Add a rule to ensure the 'display' user has permissions to - # open the graphics device - install -d ${D}${sysconfdir}/init.d - install -d ${D}${sysconfdir}/udev/rules.d - cat >${D}${sysconfdir}/udev/rules.d/zz-dri.rules <<'EOF' -SUBSYSTEM=="drm", MODE="0660", GROUP="${WESTONGROUP}", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service" -EOF - - # user 'display' must own /dev/tty${WESTONTTY} for weston to start correctly - cat >${D}${sysconfdir}/udev/rules.d/zz-tty.rules <<'EOF' -SUBSYSTEM=="tty", KERNEL=="tty${WESTONTTY}", OWNER="${WESTONUSER}", SECLABEL{smack}="^", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service" -EOF - - # user 'display' must also be able to access /dev/input/* - cat >${D}${sysconfdir}/udev/rules.d/zz-input.rules <<'EOF' -SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="^", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service" -EOF - - # user 'display' must also be able to access /dev/media*, etc. - cat >${D}${sysconfdir}/udev/rules.d/zz-remote-display.rules <<'EOF' -SUBSYSTEM=="media", MODE="0660", GROUP="display", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service" -SUBSYSTEM=="video4linux", MODE="0660", GROUP="display", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service" -KERNEL=="uvcs", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*" -KERNEL=="rgnmm", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*" -EOF - - install -d ${D}${sysconfdir}/tmpfiles.d - install -Dm755 ${WORKDIR}/weston_tmpfiles.conf ${D}/${libdir}/tmpfiles.d/weston.conf - - sed -e 's,@WESTONUSER@,${WESTONUSER},g' \ - -e 's,@WESTONGROUP@,${WESTONGROUP},g' \ - -i ${D}/${libdir}/tmpfiles.d/weston.conf -} +WIFILES_append_imx = " \ + file://zz-dri-imx.rules.in \ +" -do_install_append_imx() { +SRC_URI_append = " ${WIFILES}" +do_install_append() { + # Remove upstream weston.ini to avoid conflict with weston-ini-conf package + rm -f ${D}${sysconfdir}/xdg/weston/weston.ini + + # Remove upstream weston udev rules just to be safe + rm -f ${D}${sysconfdir}/udev/rules.d/71-weston-drm.rules + + # Process ".in" files + files=$(echo ${WIFILES} | sed s,file://,,g) + for f in ${files}; do + g=${f%.in} + if [ "${f}" != "${g}" ]; then + sed -e "s,@WESTONUSER@,${WESTONUSER},g" \ + -e "s,@WESTONGROUP@,${WESTONGROUP},g" \ + -e "s,@XDG_RUNTIME_DIR@,${DISPLAY_XDG_RUNTIME_DIR},g" \ + -e "s,@WESTONSTART@,${WESTONSTART},g" \ + ${WORKDIR}/${f} > ${WORKDIR}/${g} + fi + done + + # Install weston drop-in + install -d ${D}${systemd_system_unitdir}/weston@.service.d + install -m644 ${WORKDIR}/weston.conf ${D}/${systemd_system_unitdir}/weston@.service.d/weston-init.conf + + # Install tmpfiles drop-in + install -d ${D}${libdir}/tmpfiles.d + install -m644 ${WORKDIR}/tmpfiles.conf ${D}${libdir}/tmpfiles.d/weston-init.conf + + # Install udev rules install -d ${D}${sysconfdir}/udev/rules.d - cat >>${D}${sysconfdir}/udev/rules.d/zz-dri.rules <<'EOF' -SUBSYSTEM=="gpu_class", MODE="0660", GROUP="${WESTONGROUP}", SECLABEL{smack}="*" -EOF - + for f in ${files}; do + g=${f%.in} + h=${g%.rules} + if [ "${g}" != "${h}" ]; then + install -m644 ${WORKDIR}/${g} ${D}${sysconfdir}/udev/rules.d + fi + done } -FILES_${PN} += "${libdir}/tmpfiles.d/*.conf" +FILES_${PN} += " \ + ${libdir}/tmpfiles.d/ \ + ${systemd_system_unitdir}/weston@.service.d/ \ +" +SYSTEMD_AUTO_ENABLE = "enable"