public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: gui-libs/wlroots/files/, gui-libs/wlroots/
@ 2020-04-17 17:23 Sergei Trofimovich
  0 siblings, 0 replies; 3+ messages in thread
From: Sergei Trofimovich @ 2020-04-17 17:23 UTC (permalink / raw
  To: gentoo-commits

commit:     27c3abb277ae958c4b0ae984c5409bc8e1d50342
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 17 17:23:18 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Fri Apr 17 17:23:31 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27c3abb2

gui-libs/wlroots: tweak for gcc-10. bug #707496

Pull upstream f2943bdf61afe "Declare wlr_seat globals as extern".

Reported-by: Toralf Förster
Closes: https://bugs.gentoo.org/707496
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 gui-libs/wlroots/files/wlroots-0.10.0-gcc-10.patch | 26 ++++++++++++++++++++++
 gui-libs/wlroots/wlroots-0.10.0.ebuild             |  2 ++
 2 files changed, 28 insertions(+)

diff --git a/gui-libs/wlroots/files/wlroots-0.10.0-gcc-10.patch b/gui-libs/wlroots/files/wlroots-0.10.0-gcc-10.patch
new file mode 100644
index 00000000000..44e1cb7d89b
--- /dev/null
+++ b/gui-libs/wlroots/files/wlroots-0.10.0-gcc-10.patch
@@ -0,0 +1,26 @@
+https://bugs.gentoo.org/707496
+
+From f2943bdf61afe0a3ad2227d72fcbcac8b3088b1a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Stan=C4=9Bk?= <jstanek@redhat.com>
+Date: Tue, 28 Jan 2020 15:27:24 +0100
+Subject: [PATCH] Declare wlr_seat globals as extern
+
+---
+ include/types/wlr_seat.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/include/types/wlr_seat.h
++++ b/include/types/wlr_seat.h
+@@ -4,9 +4,9 @@
+ #include <wayland-server-core.h>
+ #include <wlr/types/wlr_seat.h>
+ 
+-const struct wlr_pointer_grab_interface default_pointer_grab_impl;
+-const struct wlr_keyboard_grab_interface default_keyboard_grab_impl;
+-const struct wlr_touch_grab_interface default_touch_grab_impl;
++extern const struct wlr_pointer_grab_interface default_pointer_grab_impl;
++extern const struct wlr_keyboard_grab_interface default_keyboard_grab_impl;
++extern const struct wlr_touch_grab_interface default_touch_grab_impl;
+ 
+ void seat_client_create_pointer(struct wlr_seat_client *seat_client,
+ 	uint32_t version, uint32_t id);

diff --git a/gui-libs/wlroots/wlroots-0.10.0.ebuild b/gui-libs/wlroots/wlroots-0.10.0.ebuild
index f408a513a4d..f1735761b73 100644
--- a/gui-libs/wlroots/wlroots-0.10.0.ebuild
+++ b/gui-libs/wlroots/wlroots-0.10.0.ebuild
@@ -47,6 +47,8 @@ BDEPEND="
 	virtual/pkgconfig
 "
 
+PATCHES=("${FILESDIR}"/${P}-gcc-10.patch)
+
 src_configure() {
 	# xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
 	local emesonargs=(


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: gui-libs/wlroots/files/, gui-libs/wlroots/
@ 2022-02-03  0:22 Matthew Thode
  0 siblings, 0 replies; 3+ messages in thread
From: Matthew Thode @ 2022-02-03  0:22 UTC (permalink / raw
  To: gentoo-commits

commit:     b990b01d70bfb34745d7fb1e477377445f6c13cd
Author:     Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
AuthorDate: Thu Feb  3 00:22:32 2022 +0000
Commit:     Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
CommitDate: Thu Feb  3 00:22:39 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b990b01d

gui-libs/wlroots: fix gles on nvidia

upstream https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/59b9518f

Closes: https://bugs.gentoo.org/832005
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Matthew Thode <prometheanfire <AT> gentoo.org>

 gui-libs/wlroots/files/0.15.0-59b9518f.patch | 88 ++++++++++++++++++++++++++++
 gui-libs/wlroots/wlroots-0.15.0-r2.ebuild    | 75 ++++++++++++++++++++++++
 2 files changed, 163 insertions(+)

diff --git a/gui-libs/wlroots/files/0.15.0-59b9518f.patch b/gui-libs/wlroots/files/0.15.0-59b9518f.patch
new file mode 100644
index 000000000000..95ca0becd618
--- /dev/null
+++ b/gui-libs/wlroots/files/0.15.0-59b9518f.patch
@@ -0,0 +1,88 @@
+From 59b9518f072527ac59593e51df7f5d5331a34f0e Mon Sep 17 00:00:00 2001
+From: Thomas Hebb <tommyhebb@gmail.com>
+Date: Wed, 5 Jan 2022 00:16:59 -0800
+Subject: [PATCH] render/gles2: don't constrain shm formats to ones that
+ support reading
+
+commit 44e8451cd93e ("render/gles2: hide shm formats without GL
+support") added the is_gles2_pixel_format_supported() function to
+render/gles2/pixel_format.c, whose stated purpose is to "check whether
+the renderer has the needed GL extensions to read a given pixel format."
+It then used that function to filter the pixel formats returned by
+get_gles2_shm_formats().
+
+The result of this change is that RGB formats are no longer reported for
+GL drivers that don't implement EXT_read_format_bgra, even when those
+formats are supported for rendering (which they have to be for
+wlr_gles2_renderer_create() to succeed). This is a pretty clear
+regression, since wlr_renderer_init_wl_shm() fails when either of
+WL_SHM_FORMAT_ARGB8888 or WL_SHM_FORMAT_XRGB8888 are missing.
+
+To fix the regression, change is_gles2_pixel_format_supported() to
+accept all pixel formats that support rendering, regardless of whether
+we can read them or not, and move the check for EXT_read_format_bgra
+back into gles2_read_pixels(). (There's already a check for this
+extension in gles2_preferred_read_format(), so we're not breaking any
+abstraction that wasn't already broken.)
+
+Tested on the NVIDIA 495.46 proprietary driver, which doesn't support
+EXT_read_format_bgra.
+
+Fixes: 44e8451cd93e ("render/gles2: hide shm formats without GL support")
+---
+ render/gles2/pixel_format.c | 14 ++++++++++----
+ render/gles2/renderer.c     |  6 ++++++
+ 2 files changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/render/gles2/pixel_format.c b/render/gles2/pixel_format.c
+index 31bb3908..b155bbbe 100644
+--- a/render/gles2/pixel_format.c
++++ b/render/gles2/pixel_format.c
+@@ -98,6 +98,10 @@ static const struct wlr_gles2_pixel_format formats[] = {
+ 
+ // TODO: more pixel formats
+ 
++/*
++ * Return true if supported for texturing, even if other operations like
++ * reading aren't supported.
++ */
+ bool is_gles2_pixel_format_supported(const struct wlr_gles2_renderer *renderer,
+ 		const struct wlr_gles2_pixel_format *format) {
+ 	if (format->gl_type == GL_UNSIGNED_INT_2_10_10_10_REV_EXT
+@@ -108,10 +112,12 @@ bool is_gles2_pixel_format_supported(const struct wlr_gles2_renderer *renderer,
+ 			&& !renderer->exts.OES_texture_half_float_linear) {
+ 		return false;
+ 	}
+-	if (format->gl_format == GL_BGRA_EXT
+-			&& !renderer->exts.EXT_read_format_bgra) {
+-		return false;
+-	}
++	/*
++	 * Note that we don't need to check for GL_EXT_texture_format_BGRA8888
++	 * here, since we've already checked if we have it at renderer creation
++	 * time and bailed out if not. We do the check there because Wayland
++	 * requires all compositors to support SHM buffers in that format.
++	 */
+ 	return true;
+ }
+ 
+diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c
+index 527d85bf..67b8ead4 100644
+--- a/render/gles2/renderer.c
++++ b/render/gles2/renderer.c
+@@ -441,6 +441,12 @@ static bool gles2_read_pixels(struct wlr_renderer *wlr_renderer,
+ 		return false;
+ 	}
+ 
++	if (fmt->gl_format == GL_BGRA_EXT && !renderer->exts.EXT_read_format_bgra) {
++		wlr_log(WLR_ERROR,
++			"Cannot read pixels: missing GL_EXT_read_format_bgra extension");
++		return false;
++	}
++
+ 	const struct wlr_pixel_format_info *drm_fmt =
+ 		drm_get_pixel_format_info(fmt->drm_format);
+ 	assert(drm_fmt);
+-- 
+GitLab
+

diff --git a/gui-libs/wlroots/wlroots-0.15.0-r2.ebuild b/gui-libs/wlroots/wlroots-0.15.0-r2.ebuild
new file mode 100644
index 000000000000..75badbe1a0bc
--- /dev/null
+++ b/gui-libs/wlroots/wlroots-0.15.0-r2.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+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 ~ppc64 ~riscv ~x86"
+	SLOT="0/15"
+fi
+
+LICENSE="MIT"
+IUSE="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
+	virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}/0.15.0-59b9518f.patch" )
+
+src_configure() {
+	# xcb-util-errors is not on Gentoo Repository (and upstream seems inactive?)
+	local emesonargs=(
+		"-Dxcb-errors=disabled"
+		"-Dexamples=false"
+		"-Dwerror=false"
+		-Drenderers=$(usex vulkan 'gles2,vulkan' gles2)
+		-Dxwayland=$(usex X enabled disabled)
+		-Dbackends=drm,libinput$(usex x11-backend ',x11' '')
+	)
+
+	meson_src_configure
+}
+
+pkg_postinst() {
+	elog "You must be in the input group to allow your compositor"
+	elog "to access input devices via libinput."
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: gui-libs/wlroots/files/, gui-libs/wlroots/
@ 2022-10-03 13:27 Joonas Niilola
  0 siblings, 0 replies; 3+ messages in thread
From: Joonas Niilola @ 2022-10-03 13:27 UTC (permalink / raw
  To: gentoo-commits

commit:     143bc2658aed55269b6723096bc843dc07aa1ca3
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 28 15:40:34 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Mon Oct  3 13:27:11 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=143bc265

gui-libs/wlroots: add 'tinywl' use flag to install tinywl binary

Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 ...1-tinywl-dont-crash-upon-missing-keyboard.patch | 55 ++++++++++++++
 gui-libs/wlroots/metadata.xml                      |  1 +
 gui-libs/wlroots/wlroots-0.15.1-r1.ebuild          | 83 ++++++++++++++++++++++
 3 files changed, 139 insertions(+)

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."
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-10-03 13:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-03 13:27 [gentoo-commits] repo/gentoo:master commit in: gui-libs/wlroots/files/, gui-libs/wlroots/ Joonas Niilola
  -- strict thread matches above, loose matches on Subject: below --
2022-02-03  0:22 Matthew Thode
2020-04-17 17:23 Sergei Trofimovich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox