]> code.ossystems Code Review - openembedded-core.git/commitdiff
weston-init: Launch weston with WESTON_DISABLE_ATOMIC on musl/x86
authorKhem Raj <raj.khem@gmail.com>
Thu, 12 Mar 2020 23:02:38 +0000 (16:02 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 12 Mar 2020 23:09:03 +0000 (23:09 +0000)
Since we enabled drm/kms backend for qemux86, it does not work with musl
fdbdev worked ok, we see this error

[18:58:45.628] launching '/usr/libexec/weston-desktop-shell'
[18:58:45.737] atomic: couldn't commit new state: Invalid argument
[18:58:45.737] repaint-flush failed: Invalid argument

There seems to be some problem with atomics in libdrm, until that gets
diagnosed, simple solution is to not use it on musl when drm backend is used
thats why WESTON_DISABLE_ATOMIC=Y is set in environment file for such
cases

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-graphics/wayland/weston-init.bb
meta/recipes-graphics/wayland/weston-init/weston.env [new file with mode: 0644]

index e3e739e2b7df0d144d0fb58b0b13834f6cd874a2..40aa76295ffe927e5541917211de598d46973d3b 100644 (file)
@@ -5,6 +5,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 SRC_URI = "file://init \
+           file://weston.env \
            file://weston.ini \
            file://weston@.service \
            file://71-weston-drm.rules \
@@ -15,6 +16,7 @@ S = "${WORKDIR}"
 do_install() {
        install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
        install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini
+       install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston
 
        # Install Weston systemd service and accompanying udev rule
        install -D -p -m0644 ${WORKDIR}/weston@.service ${D}${systemd_system_unitdir}/weston@.service
@@ -30,6 +32,14 @@ do_install() {
        sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
 }
 
+do_install_append_libc-musl_qemux86() {
+        echo "WESTON_DISABLE_ATOMIC=Y" >> ${D}${sysconfdir}/default/weston
+}
+
+do_install_append_libc-musl_qemux86-64() {
+        echo "WESTON_DISABLE_ATOMIC=Y" >> ${D}${sysconfdir}/default/weston
+}
+
 inherit update-rc.d features_check systemd
 
 # rdepends on weston which depends on virtual/egl
@@ -40,9 +50,9 @@ RDEPENDS_${PN} = "weston kbd"
 INITSCRIPT_NAME = "weston"
 INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
 
-FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service"
+FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service ${sysconfdir}/default/weston"
 
-CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini"
+CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston"
 
 SYSTEMD_SERVICE_${PN} = "weston@%i.service"
 SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta/recipes-graphics/wayland/weston-init/weston.env b/meta/recipes-graphics/wayland/weston-init/weston.env
new file mode 100644 (file)
index 0000000..e69de29