summaryrefslogtreecommitdiff
path: root/gui-libs/wlroots
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-10-03 19:15:13 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-10-03 19:15:13 +0100
commitab6ac5a7942816b5b14186dc53e1b17ea7df200a (patch)
tree2092ba8e0a0bc2d14e0a8230e15f8eaaa9783100 /gui-libs/wlroots
parentdd987f40168e0552ca0d36e2cedccceda4a34ecf (diff)
gentoo auto-resync : 03:10:2022 - 19:15:12
Diffstat (limited to 'gui-libs/wlroots')
-rw-r--r--gui-libs/wlroots/Manifest6
-rw-r--r--gui-libs/wlroots/files/wlroots-0.15.1-tinywl-dont-crash-upon-missing-keyboard.patch55
-rw-r--r--gui-libs/wlroots/metadata.xml1
-rw-r--r--gui-libs/wlroots/wlroots-0.15.1-r1.ebuild83
-rw-r--r--gui-libs/wlroots/wlroots-9999.ebuild14
5 files changed, 155 insertions, 4 deletions
diff --git a/gui-libs/wlroots/Manifest b/gui-libs/wlroots/Manifest
index cf269c4604c7..dbcaddcb7cae 100644
--- a/gui-libs/wlroots/Manifest
+++ b/gui-libs/wlroots/Manifest
@@ -1,4 +1,5 @@
AUX 0.15.0-59b9518f.patch 3473 BLAKE2B a90910cb8be97f3c030afb3fcab3613fcff29acdface938165b33801a5e72366b1bdd77210262ba0eb803a489f8947b36d5a875fbf8fe20c9e8dd100b4637f9d SHA512 252ff3eb1ae8ad6d06d52e69f3703dbd98abd3491f2871d2f00f72b05e48ada78ffe8bad84a0e3df5e708d2e5a41cd75b5fca2f99378bf57e5a12439519d6a88
+AUX wlroots-0.15.1-tinywl-dont-crash-upon-missing-keyboard.patch 2877 BLAKE2B ff492af5cf7b5c866e49ce1bf78286c57e54eb4d3a6c60d4b1087a796b081618b6fe87afc4efd79aec5b4b3ecdb749027cfc74f09500211a086550a5db9d70d6 SHA512 52a6cf0bd22a514adf427d9f02768f5ecc24d1c83cecd51eda89938bdd79dee50e11103ae9fa2ededfcacb5a485415453308026c68fe1e3ffdb447503696535d
DIST wlroots-0.14.0.tar.gz 505461 BLAKE2B d2fa28f64014ef9d840838cb5938af23f6f6b211b62dc352d0d5bb824ccaa7d7a85531e1eca14feeb06d31d59955ff9a913e40a73cad21ed1ebfe76ada39d558 SHA512 83f001133cb4b11a72bb9532b7321655428826662848f67de8e3220a33d9dff4d37c859602bdc319929949d387d014a257b0347039a6649944d7b084c76bb611
DIST wlroots-0.14.1.tar.gz 505840 BLAKE2B fca4d259cdde62da0c196344ce1d0f5dd679d012ff33e3ceb5385b9374667e16d91059a2ba6a318153e79ac2f0a6464e3066e614a13398f8c433f442560d84d2 SHA512 4f557c827f9673eccf208a3644954de80e7355b95cc374cc5e851a47087b227f196e0936c0913d21a6c776c29b74de2d028a100931264e41934c747568d8ebe0
DIST wlroots-0.15.0.tar.gz 565059 BLAKE2B d98529b4548e3b751a505a26af143be585ed42fb9617bc67b4a10747bb494f1359d7bdb75d1730a72396e7c550fe481e858a5ac88621d61671698439e3656920 SHA512 730b1e0cf003dabae23101664c6d1993636bd3a8ecbdb3c165eef415a92811c4d5228f48e0275f75361d8528f118dfb8a2298cfb05dbf6364539224ceedca447
@@ -7,6 +8,7 @@ EBUILD wlroots-0.14.0-r2.ebuild 1481 BLAKE2B f350d6bbaf05a349cb9ee5ac67cea0c29b1
EBUILD wlroots-0.14.1-r1.ebuild 1484 BLAKE2B 9de2dec4bbb573b4288a9c994047de1547ed6c7be66af4e8f7b5c3d459a4e2cccc97f3883bbb633942ade7f81ba2a883a14a40ac25f8033a57b24a6556d579b1 SHA512 c59c653561420f563e34584f48c646ea38a0622f65ed054d8895508f66fe4ef10e6b77d07b7bcb555fdf5c2077b7bd8f43df495a742b31075739630a666d4859
EBUILD wlroots-0.15.0-r1.ebuild 1654 BLAKE2B d9d9d7961c85582bfb3d90011cc4b39b7f7406c92d61b6e88ee9b7f579513399561c24509f453bbb5173e9d1ed764cd975d11c44fc1fafb681cbc994db919465 SHA512 672f2b89142a6b4e8c9b1bfdac4459de4f46a921fb247aff6de20ab700ade721f8f4e1ee9d5d353171ddcf46b157a899776ae2d38b8d416222f39608ee642317
EBUILD wlroots-0.15.0-r2.ebuild 1700 BLAKE2B db8a0270bde813a94a582e385a69ecfdac7cd104e07dc8dee9724ab5203be46f8a7eddd2ea9fbc43d6d4c359d0ad283cf1cb5f3783fa79bbae6173d1921a110e SHA512 083fcd99be113c06c6d4ced112d4591e407d5f90cf91ab7f55c6b719effd15027377b7e02ab550a47e5724e8a8e90be0197dd125f1b4cf404dc4aa19a733c927
+EBUILD wlroots-0.15.1-r1.ebuild 1903 BLAKE2B db14251e37bb2448556a7a8f98fadfea64c4c6047b3c8736932ca08ea586a8cc0db0c8d54335f0dad5d36a52c7a10f87f6d60425c35d5bf361334ab0e3ad0f5a SHA512 6bd49fad40df4267c4490e928fe750677fadf9dd1f08856fab8777000af8a3769f0710be0741ce98cfbbe2cb4cb1cfc6020937078211abf5aa5a224b702b4135
EBUILD wlroots-0.15.1.ebuild 1694 BLAKE2B 6612ccfa47cb13280a788b766b8c986c37f8ed256808e54068709e84e629e7618ecda9624faea2ac63878f232996c47a8f36a4ae760d7747cd7c918ed0667d90 SHA512 fbb4123948bc0d9f69bfd8d9c3990aa21e648b5e1a7018aa6c4bcc6bf6aa0982bf8ff5aea6df9ea460f29ba48646687747457ec3d146808a3f0ac2b8b667f374
-EBUILD wlroots-9999.ebuild 1697 BLAKE2B e9e9965d0e357dbf573ac2566bd3cbbddcc93f30bdbf13e41a8bbc67b5e478211648df0f7f2f2095c870b412f390a10f6ee2d0e9e3c2280f87fb6b16d3e2905c SHA512 f23d962842151b2de1bfdce1a4606ae6599e4c62e81fd782a76b1dfe9236238634e99dd59df2c65947116847487b6b476e1de22764bf663916f8f0699e5c06ef
-MISC metadata.xml 1539 BLAKE2B 036d9a95d9b40dfab5d481e3f3da131d6b085e2e754f9206daf94193c07df77872c81732c7502b8216b3daf33e7d55bc7ec42e76d32bf24ca1abe7a14ee883b9 SHA512 2ca1b1e8bb62a3878afe737f09a9de4bf8a108f8e551e11b8d7bd408c766695424559154d32fec26e2a7426836f46c0519d7343e85aa3ba81395a3ee9a85d823
+EBUILD wlroots-9999.ebuild 1903 BLAKE2B ff8d73720c446ec2206291a2d9eef0002649faed2d71e40764196defb610b4160baf29702ab7a5ea956f3518adb17e43eb61c858586806c5328ea50c9efd18b6 SHA512 1943c9cba6a3836315f2f7eef548d314eb9700526c410e049833cc0ec49d69156fe8c7a0fddfc56806d91ed640967eff431e1588772656eddb0faf8d62830172
+MISC metadata.xml 1611 BLAKE2B 53a14b74dcf06f1d4b9621bf768b8d5642201bebaa0d8721708fcfdf60f7e21b0c415279676cfcb0ee0375b9af599d947a2895ebbb6fa83a19340837d3743269 SHA512 c20b33d2a7f2b98f0ef33fce9439ffd5bd562175adb92f65d64d53d038519d17f2e6a23a1457b36ddb5fbc92ef2420d26759d4bb15d6a5dd04571c3db35825b3
diff --git a/gui-libs/wlroots/files/wlroots-0.15.1-tinywl-dont-crash-upon-missing-keyboard.patch b/gui-libs/wlroots/files/wlroots-0.15.1-tinywl-dont-crash-upon-missing-keyboard.patch
new file mode 100644
index 000000000000..cff1f72ca5ca
--- /dev/null
+++ b/gui-libs/wlroots/files/wlroots-0.15.1-tinywl-dont-crash-upon-missing-keyboard.patch
@@ -0,0 +1,55 @@
+From 7d950f3dac6cca62635d5e4ff2af33b35372f6db Mon Sep 17 00:00:00 2001
+From: Simon Ser <contact@emersion.fr>
+Date: Sat, 19 Mar 2022 14:00:43 +0100
+Subject: [PATCH] tinywl: don't crash when there is no keyboard
+
+Running with WLR_BACKENDS=headless, there is no keyboard device.
+Avoid crashes like so:
+
+ ../tinywl/tinywl.c:136:2: runtime error: member access within null pointer of type 'struct wlr_keyboard'
+ ../tinywl/tinywl.c:136:2: runtime error: member access within null pointer of type 'struct wlr_keyboard'
+ AddressSanitizer:DEADLYSIGNAL
+ =================================================================
+ ==331107==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000120 (pc 0x556ed03e4e99 bp 0x7ffce834bc10 sp 0x7ffce834bbb0 T0)
+ ==331107==The signal is caused by a READ memory access.
+ ==331107==Hint: address points to the zero page.
+ #0 0x556ed03e4e99 in focus_view ../tinywl/tinywl.c:136
+ #1 0x556ed03eb3be in xdg_toplevel_map ../tinywl/tinywl.c:603
+ #2 0x7f75d6f768db in wlr_signal_emit_safe ../util/signal.c:29
+ #3 0x7f75d6e9cac7 in xdg_surface_role_commit ../types/xdg_shell/wlr_xdg_surface.c:315
+ #4 0x7f75d6eb6944 in surface_commit_state ../types/wlr_compositor.c:466
+ #5 0x7f75d6eb7b02 in surface_handle_commit ../types/wlr_compositor.c:523
+ #6 0x7f75d5714d49 (/usr/lib/libffi.so.8+0x6d49)
+ #7 0x7f75d5714266 (/usr/lib/libffi.so.8+0x6266)
+ #8 0x7f75d68cb322 (/usr/lib/libwayland-server.so.0+0xd322)
+ #9 0x7f75d68c65cb (/usr/lib/libwayland-server.so.0+0x85cb)
+ #10 0x7f75d68c91c9 in wl_event_loop_dispatch (/usr/lib/libwayland-server.so.0+0xb1c9)
+ #11 0x7f75d68c6d36 in wl_display_run (/usr/lib/libwayland-server.so.0+0x8d36)
+ #12 0x556ed03eef55 in main ../tinywl/tinywl.c:905
+ #13 0x7f75d5d2330f in __libc_start_call_main (/usr/lib/libc.so.6+0x2d30f)
+ #14 0x7f75d5d233c0 in __libc_start_main@GLIBC_2.2.5 (/usr/lib/libc.so.6+0x2d3c0)
+ #15 0x556ed03e46e4 in _start (/home/simon/src/wlroots/build/tinywl/tinywl+0x136e4)
+---
+ tinywl/tinywl.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/tinywl/tinywl.c b/tinywl/tinywl.c
+index dd442aac..8796e9df 100644
+--- a/tinywl/tinywl.c
++++ b/tinywl/tinywl.c
+@@ -130,8 +130,10 @@ static void focus_view(struct tinywl_view *view, struct wlr_surface *surface) {
+ * track of this and automatically send key events to the appropriate
+ * clients without additional work on your part.
+ */
+- wlr_seat_keyboard_notify_enter(seat, view->xdg_surface->surface,
+- keyboard->keycodes, keyboard->num_keycodes, &keyboard->modifiers);
++ if (keyboard != NULL) {
++ wlr_seat_keyboard_notify_enter(seat, view->xdg_surface->surface,
++ keyboard->keycodes, keyboard->num_keycodes, &keyboard->modifiers);
++ }
+ }
+
+ static void keyboard_handle_modifiers(
+--
+2.36.1
+
diff --git a/gui-libs/wlroots/metadata.xml b/gui-libs/wlroots/metadata.xml
index 7263b2c8e131..7e969054cfe1 100644
--- a/gui-libs/wlroots/metadata.xml
+++ b/gui-libs/wlroots/metadata.xml
@@ -21,6 +21,7 @@
wlroots is developed under the direction of the <pkg>gui-wm/sway</pkg> project.
</longdescription>
<use>
+ <flag name="tinywl">Install the minimal wayland client, tinywl</flag>
<flag name="vulkan">Enable support for the vulkan backend renderer</flag>
<flag name="x11-backend">Enable support for handling input/output devices through <pkg>x11-libs/libxcb</pkg></flag>
<flag name="X">Enable support for X11 applications (XWayland)</flag>
diff --git a/gui-libs/wlroots/wlroots-0.15.1-r1.ebuild b/gui-libs/wlroots/wlroots-0.15.1-r1.ebuild
new file mode 100644
index 000000000000..bc416f2ee318
--- /dev/null
+++ b/gui-libs/wlroots/wlroots-0.15.1-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Pluggable, composable, unopinionated modules for building a Wayland compositor"
+HOMEPAGE="https://gitlab.freedesktop.org/wlroots/wlroots"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git"
+ inherit git-r3
+ SLOT="0/9999"
+else
+ SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ SLOT="0/$(ver_cut 2)"
+fi
+
+LICENSE="MIT"
+IUSE="tinywl vulkan x11-backend X"
+
+DEPEND="
+ >=dev-libs/libinput-1.14.0:0=
+ >=dev-libs/wayland-1.20.0
+ >=dev-libs/wayland-protocols-1.24
+ media-libs/mesa[egl(+),gles2,gbm(+)]
+ sys-auth/seatd:=
+ virtual/libudev
+ vulkan? (
+ dev-util/glslang:0=
+ dev-util/vulkan-headers:0=
+ media-libs/vulkan-loader:0=
+ )
+ >=x11-libs/libdrm-2.4.109:0=
+ x11-libs/libxkbcommon
+ x11-libs/pixman
+ x11-backend? ( x11-libs/libxcb:0= )
+ X? (
+ x11-base/xwayland
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-image
+ x11-libs/xcb-util-wm
+ )
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.24
+ >=dev-util/meson-0.60.0
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}"/wlroots-0.15.1-tinywl-dont-crash-upon-missing-keyboard.patch )
+
+src_configure() {
+ # xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
+ local emesonargs=(
+ "-Dxcb-errors=disabled"
+ $(meson_use tinywl examples)
+ -Drenderers=$(usex vulkan 'gles2,vulkan' gles2)
+ -Dxwayland=$(usex X enabled disabled)
+ -Dbackends=drm,libinput$(usex x11-backend ',x11' '')
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ if use tinywl; then
+ dobin "${BUILD_DIR}"/tinywl/tinywl
+ fi
+}
+
+pkg_postinst() {
+ elog "You must be in the input group to allow your compositor"
+ elog "to access input devices via libinput."
+}
diff --git a/gui-libs/wlroots/wlroots-9999.ebuild b/gui-libs/wlroots/wlroots-9999.ebuild
index 9d7ed9e818cb..75ec633f9e48 100644
--- a/gui-libs/wlroots/wlroots-9999.ebuild
+++ b/gui-libs/wlroots/wlroots-9999.ebuild
@@ -19,7 +19,7 @@ else
fi
LICENSE="MIT"
-IUSE="vulkan x11-backend X"
+IUSE="tinywl vulkan x11-backend X"
DEPEND="
>=dev-libs/libinput-1.14.0:0=
@@ -54,11 +54,13 @@ BDEPEND="
virtual/pkgconfig
"
+PATCHES=( "${FILESDIR}"/wlroots-0.15.1-tinywl-dont-crash-upon-missing-keyboard.patch )
+
src_configure() {
# xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
local emesonargs=(
"-Dxcb-errors=disabled"
- "-Dexamples=false"
+ $(meson_use tinywl examples)
-Drenderers=$(usex vulkan 'gles2,vulkan' gles2)
-Dxwayland=$(usex X enabled disabled)
-Dbackends=drm,libinput$(usex x11-backend ',x11' '')
@@ -67,6 +69,14 @@ src_configure() {
meson_src_configure
}
+src_install() {
+ meson_src_install
+
+ if use tinywl; then
+ dobin "${BUILD_DIR}"/tinywl/tinywl
+ fi
+}
+
pkg_postinst() {
elog "You must be in the input group to allow your compositor"
elog "to access input devices via libinput."