diff --git a/SOURCES/10_nvidia_wayland.json b/SOURCES/10_nvidia_wayland.json new file mode 100644 index 0000000..c08a641 --- /dev/null +++ b/SOURCES/10_nvidia_wayland.json @@ -0,0 +1,6 @@ +{ + "file_format_version" : "1.0.0", + "ICD" : { + "library_path" : "libnvidia-egl-wayland.so.1" + } +} 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 new file mode 100644 index 0000000..f959c1a --- /dev/null +++ b/SPECS/egl-wayland.spec @@ -0,0 +1,180 @@ +Name: egl-wayland +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 +Wayland EGL External Platform library + +%package devel +Summary: Wayland EGL External Platform library development package +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Wayland EGL External Platform library development package + +%prep +%autosetup -p1 +%if 0%{?rhel} >= 7 +sed -i -e 's@>= 0.50@>= 0.47@g' meson.build +%endif + +%build +%meson +%meson_build + + +%install +%meson_install +install -m 0755 -d %{buildroot}%{_datadir}/egl/egl_external_platform.d/ +install -pm 0644 %{SOURCE1} %{buildroot}%{_datadir}/egl/egl_external_platform.d/ +find %{buildroot} -name '*.la' -exec rm -f {} ';' + + +%ldconfig_scriptlets + + +%files +%doc README.md +%license COPYING +%{_libdir}/*.so.* +%{_datadir}/egl/egl_external_platform.d/10_nvidia_wayland.json + +%files devel +%{_libdir}/libnvidia-egl-wayland.so +%{_datadir}/pkgconfig/wayland-eglstream.pc +%{_datadir}/pkgconfig/wayland-eglstream-protocols.pc +%{_datadir}/wayland-eglstream/ + +%changelog +* 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 + +* Thu Jan 31 2019 Fedora Release Engineering - 1.1.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Dec 06 2018 Leigh Scott - 1.1.1-3 +- Fix the same crappy warning f28 generates + +* Thu Dec 06 2018 Leigh Scott - 1.1.1-2 +- Fix the crappy warning epel7 generates + +* Thu Dec 06 2018 Leigh Scott - 1.1.1-1 +- Update to 1.1.1 + +* Mon Nov 26 2018 Leigh Scott - 1.1.0-0.2.20181015git0eb29d4 +- Update to latest git snapshot (rhbz#1653118) + +* Mon Aug 20 2018 Leigh Scott - 1.1.0-0.1.20180916git1676d1d +- Update to 1.1.0 snapshot + +* Thu Jul 12 2018 Fedora Release Engineering - 1.0.5-0.2.20180626git395ce9f +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sat Jun 30 2018 Leigh Scott - 1.0.5-0.1.20180626git395ce9f +- Update to 1.0.5 snapshot + +* Sat Jun 16 2018 Leigh Scott - 1.0.4-0.1.20180602git4ab0873 +- Update to 1.0.4 snapshot + +* Tue Feb 06 2018 Leigh Scott - 1.0.3-2.20180201git6f5f7d0 +- Update to latest git snapshot +- Switch to meson +- Install .so file to -devel as it's listed in wayland-eglstream.pc +- Fix directory ownership + +* Wed Jan 31 2018 Jonas Ã…dahl - 1.0.3-1.20180111gitb283689 +- Update to 1.0.3 +- Add -devel package + +* Thu Aug 03 2017 Leigh Scott - 1.0.2-0.4.20170802git1f4b1fd +- Update to latest git snapshot + +* Wed Aug 02 2017 Fedora Release Engineering - 1.0.2-0.3.20170628git818b613 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.0.2-0.2.20170628git818b613 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jun 28 2017 Leigh Scott - 1.0.2-0.1.20170628git818b613 +- Update to 1.0.2 git + +* Wed Mar 08 2017 Leigh Scott - 1.0.1-0.1.20170308git582fbf3 +- Update to 1.0.1 git + +* Tue Feb 07 2017 Leigh Scott - 1.0.0-0.7.20170207git05eb000 +- Add license file + +* Thu Feb 02 2017 Leigh Scott - 1.0.0-0.6.20170120git743d702 +- Add requires libglvnd-egl +- Make review changes + +* Wed Feb 01 2017 Leigh Scott - 1.0.0-0.5.20170120git743d702 +- Drop devel sub-package + +* Wed Feb 01 2017 Leigh Scott - 1.0.0-0.4.20170120git743d702 +- Add 10_nvidia_wayland.json to libs sub-package + +* Wed Feb 01 2017 Leigh Scott - 1.0.0-0.3.20170120git743d702 +- Add loader directory to common sub-package +- Move libs to sub-package + +* Fri Jan 20 2017 Leigh Scott - 1.0.0-0.2.20170120git743d702 +- Add date to release + +* Fri Jan 20 2017 Leigh Scott - 1.0.0-0.1.git743d702 +- First build +