diff --git a/.egl-wayland.metadata b/.egl-wayland.metadata index 9e2b4f4..2aef26e 100644 --- a/.egl-wayland.metadata +++ b/.egl-wayland.metadata @@ -1 +1 @@ -5008c8371114a48e02c2fb47aa6487b7b5fa6aaf SOURCES/egl-wayland-1.1.4.tar.gz +e835e93a9973545b16742efde5168aa0ba607e29 SOURCES/egl-wayland-1.1.5.tar.gz diff --git a/.gitignore b/.gitignore index 8526263..141ceb1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/egl-wayland-1.1.4.tar.gz +SOURCES/egl-wayland-1.1.5.tar.gz diff --git a/SOURCES/9558ec02d0f7bbf30dc1f9ee4c0b06c9b0c49afe.patch b/SOURCES/9558ec02d0f7bbf30dc1f9ee4c0b06c9b0c49afe.patch new file mode 100644 index 0000000..def0448 --- /dev/null +++ b/SOURCES/9558ec02d0f7bbf30dc1f9ee4c0b06c9b0c49afe.patch @@ -0,0 +1,36 @@ +From 9558ec02d0f7bbf30dc1f9ee4c0b06c9b0c49afe Mon Sep 17 00:00:00 2001 +From: Erik Kurzinger +Date: Fri, 14 Aug 2020 07:27:58 -0700 +Subject: [PATCH] suspend lock in eglBindWaylandDisplayWL + +When binding an external EGL display to a Wayland display, core EGL will +need to translate the external handle to an internal handle before +performing any API calls. This may occur, for example, when running a +nested Wayland compositor where the EGL display will be using +EGL_PLATFORM_WAYLAND as opposed to EGL_PLATFORM_DEVICE. Translating this +handle involves calling wlEglGetInternalHandleExport, which attempts to +acquire the external API lock. However, during eglBindWaylandDisplayWL this +lock is already held. As a result, when wl_eglstream_display_bind calls +eglQueryString to retrieve the extension string, this lock acquisition will +fail causing a crash. + +To fix this, wl_eglstream_display_bind should temporarily suspend the API +lock before calling eglQueryString. +--- + src/wayland-eglstream-server.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/wayland-eglstream-server.c b/src/wayland-eglstream-server.c +index c37f8e6..331ad32 100644 +--- a/src/wayland-eglstream-server.c ++++ b/src/wayland-eglstream-server.c +@@ -308,7 +308,9 @@ wl_eglstream_display_bind(WlEglPlatformData *data, + wlStreamDpy->eglDisplay = eglDisplay; + wlStreamDpy->caps_override = 0; + ++ wlExternalApiUnlock(); + exts = data->egl.queryString(eglDisplay, EGL_EXTENSIONS); ++ wlExternalApiLock(); + + #define CACHE_EXT(_PREFIX_, _NAME_) \ + wlStreamDpy->exts._NAME_ = \ diff --git a/SOURCES/9c9c4c684983f7b0821f516f8821118170a785ea.patch b/SOURCES/9c9c4c684983f7b0821f516f8821118170a785ea.patch new file mode 100644 index 0000000..194f2b4 --- /dev/null +++ b/SOURCES/9c9c4c684983f7b0821f516f8821118170a785ea.patch @@ -0,0 +1,24 @@ +From 9c9c4c684983f7b0821f516f8821118170a785ea Mon Sep 17 00:00:00 2001 +From: Erik Kurzinger +Date: Fri, 14 Aug 2020 14:17:25 -0700 +Subject: [PATCH] include wayland-thread.h from wayland-eglstream-server.c + +The previous commit referenced functions declared in wayland-thread.h +from wayland-eglstream-server.c, but neglected to add the required +include directive. +--- + src/wayland-eglstream-server.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/wayland-eglstream-server.c b/src/wayland-eglstream-server.c +index 331ad32..a62d7db 100644 +--- a/src/wayland-eglstream-server.c ++++ b/src/wayland-eglstream-server.c +@@ -40,6 +40,7 @@ + #include "wayland-eglstream.h" + #include "wayland-eglswap.h" + #include "wayland-eglutils.h" ++#include "wayland-thread.h" + + #define MASK(_VAL_) (1 << (_VAL_)) + diff --git a/SPECS/egl-wayland.spec b/SPECS/egl-wayland.spec index 54877a4..f959c1a 100644 --- a/SPECS/egl-wayland.spec +++ b/SPECS/egl-wayland.spec @@ -1,24 +1,30 @@ Name: egl-wayland -Version: 1.1.4 -Release: 1%{?dist} +Version: 1.1.5 +Release: 3%{?dist} Summary: Wayland EGL External Platform library License: MIT URL: https://github.com/NVIDIA/%{name} Source0: %url/archive/%{version}/%{name}-%{version}.tar.gz Source1: 10_nvidia_wayland.json +Patch0: %url/commit/9558ec02d0f7bbf30dc1f9ee4c0b06c9b0c49afe.patch +Patch1: %url/commit/9c9c4c684983f7b0821f516f8821118170a785ea.patch BuildRequires: meson BuildRequires: libtool BuildRequires: eglexternalplatform-devel +%if 0%{?fedora} > 31 +BuildRequires: libglvnd-devel +%else BuildRequires: mesa-libEGL-devel +%endif BuildRequires: wayland-devel # Required for directory ownership Requires: libglvnd-egl%{?_isa} %description -%summary +Wayland EGL External Platform library %package devel Summary: Wayland EGL External Platform library development package @@ -29,7 +35,9 @@ Wayland EGL External Platform library development package %prep %autosetup -p1 -sed -i 's/0.50/0.49/' meson.build +%if 0%{?rhel} >= 7 +sed -i -e 's@>= 0.50@>= 0.47@g' meson.build +%endif %build %meson @@ -59,8 +67,38 @@ find %{buildroot} -name '*.la' -exec rm -f {} ';' %{_datadir}/wayland-eglstream/ %changelog -* Tue Nov 19 2019 Adam Jackson - 1.1.4-1 -- egl-wayland 1.1.4 +* Fri Aug 14 2020 Leigh Scott - 1.1.5-3 +- Add upstream patch to address rhbz#1842473 + +* Mon Jul 27 2020 Fedora Release Engineering - 1.1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jun 01 2020 Leigh Scott - 1.1.5-1 +- Update to 1.1.5 + +* Mon Mar 30 2020 leigh123linux - 1.1.4-4 +- Use upstream commit to address missing mesa includes + +* Tue Jan 28 2020 Fedora Release Engineering - 1.1.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Dec 16 2019 Leigh Scott - 1.1.4-2 +- Add patch to add missing mesa includes + +* Sun Sep 15 2019 Leigh Scott - 1.1.4-1 +- Update to 1.1.4 + +* Wed Jul 24 2019 Fedora Release Engineering - 1.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jun 02 2019 Leigh Scott - 1.1.3-1 +- Update to 1.1.3 + +* Tue Apr 16 2019 Adam Williamson - 1.1.2-3 +- Rebuild with Meson fix for #1699099 + +* Sat Mar 30 2019 Leigh Scott - 1.1.2-2 +- Switch to upstream fix * Fri Feb 01 2019 Leigh Scott - 1.1.2-1 - Update to 1.1.2