From 58d5554d7c4ccd58a9db37cbd22a5c44d6987a87 Mon Sep 17 00:00:00 2001 From: Raboneko <119771935+raboneko@users.noreply.github.com> Date: Tue, 9 Dec 2025 08:37:15 -0800 Subject: [PATCH] chore: Deprecate egl-wayland and egl-x11 (#8184) (#8226) (cherry picked from commit 4d61ac6abe74dc609e35804de6245f6eb925b452) Co-authored-by: Gilver --- anda/lib/nvidia/egl-wayland/anda.hcl | 10 - .../egl-wayland-linux-drm-syncobj.patch | 293 ------------------ anda/lib/nvidia/egl-wayland/egl-wayland.spec | 85 ----- anda/lib/nvidia/egl-x11/anda.hcl | 10 - .../nvidia/egl-x11/egl-x11-meson-0.58.patch | 12 - anda/lib/nvidia/egl-x11/egl-x11.spec | 70 ----- 6 files changed, 480 deletions(-) delete mode 100644 anda/lib/nvidia/egl-wayland/anda.hcl delete mode 100644 anda/lib/nvidia/egl-wayland/egl-wayland-linux-drm-syncobj.patch delete mode 100644 anda/lib/nvidia/egl-wayland/egl-wayland.spec delete mode 100644 anda/lib/nvidia/egl-x11/anda.hcl delete mode 100644 anda/lib/nvidia/egl-x11/egl-x11-meson-0.58.patch delete mode 100644 anda/lib/nvidia/egl-x11/egl-x11.spec diff --git a/anda/lib/nvidia/egl-wayland/anda.hcl b/anda/lib/nvidia/egl-wayland/anda.hcl deleted file mode 100644 index 0835a48e32..0000000000 --- a/anda/lib/nvidia/egl-wayland/anda.hcl +++ /dev/null @@ -1,10 +0,0 @@ -project pkg { - arches = ["x86_64", "aarch64", "i386"] - rpm { - spec = "egl-wayland.spec" - } - labels { - subrepo = "nvidia" - mock = 1 - } -} diff --git a/anda/lib/nvidia/egl-wayland/egl-wayland-linux-drm-syncobj.patch b/anda/lib/nvidia/egl-wayland/egl-wayland-linux-drm-syncobj.patch deleted file mode 100644 index 67b7d5837b..0000000000 --- a/anda/lib/nvidia/egl-wayland/egl-wayland-linux-drm-syncobj.patch +++ /dev/null @@ -1,293 +0,0 @@ -diff -Naur egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13.old/Makefile.am egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13/Makefile.am ---- egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13.old/Makefile.am 2025-04-03 09:19:13.939642717 +0200 -+++ egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13/Makefile.am 2025-04-03 09:26:17.650860088 +0200 -@@ -138,10 +138,10 @@ - $(libnvidia_egl_wayland_la_dmabuf_built_client_headers):%-client-protocol.h : $(WAYLAND_PROTOCOLS_DATADIR)/unstable/linux-dmabuf/%.xml - $(AM_V_GEN)$(WAYLAND_SCANNER) client-header < $< > $@ - --$(libnvidia_egl_wayland_la_drm_syncobj_built_private_protocols):%-protocol.c : $(WAYLAND_PROTOCOLS_DATADIR)/staging/linux-drm-syncobj/%.xml -+$(libnvidia_egl_wayland_la_drm_syncobj_built_private_protocols):%-protocol.c : src/%.xml - $(AM_V_GEN)$(WAYLAND_SCANNER) $(WAYLAND_PRIVATE_CODEGEN) < $< > $@ - --$(libnvidia_egl_wayland_la_drm_syncobj_built_client_headers):%-client-protocol.h : $(WAYLAND_PROTOCOLS_DATADIR)/staging/linux-drm-syncobj/%.xml -+$(libnvidia_egl_wayland_la_drm_syncobj_built_client_headers):%-client-protocol.h : src/%.xml - $(AM_V_GEN)$(WAYLAND_SCANNER) client-header < $< > $@ - - $(libnvidia_egl_wayland_la_presentation_time_private_protocols):%-protocol.c : $(WAYLAND_PROTOCOLS_DATADIR)/stable/presentation-time/%.xml -diff -Naur egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13.old/src/meson.build egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13/src/meson.build ---- egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13.old/src/meson.build 2025-04-03 09:19:13.940399943 +0200 -+++ egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13/src/meson.build 2025-04-03 09:26:01.489288838 +0200 -@@ -20,7 +20,7 @@ - wl_protos_dir = wl_protos.get_pkgconfig_variable('pkgdatadir') - wl_dmabuf_xml = join_paths(wl_protos_dir, 'unstable', 'linux-dmabuf', 'linux-dmabuf-unstable-v1.xml') - wp_presentation_time_xml = join_paths(wl_protos_dir, 'stable', 'presentation-time', 'presentation-time.xml') --wl_drm_syncobj_xml = join_paths(wl_protos_dir, 'staging', 'linux-drm-syncobj', 'linux-drm-syncobj-v1.xml') -+wl_drm_syncobj_xml = 'linux-drm-syncobj-v1.xml' - - client_header = generator(prog_scanner, - output : '@BASENAME@-client-protocol.h', -diff -Naur egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13.old/src/linux-drm-syncobj-v1.xml egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13/src/linux-drm-syncobj-v1.xml ---- egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13.old/src/linux-drm-syncobj-v1.xml 1970-01-01 01:00:00.000000000 +0100 -+++ egl-wayland-f1fd51456710b567717a970dd4e1b2347792ac13/src/linux-drm-syncobj-v1.xml 2025-04-03 17:40:08.215837759 +0200 -@@ -0,0 +1,261 @@ -+ -+ -+ -+ Copyright 2016 The Chromium Authors. -+ Copyright 2017 Intel Corporation -+ Copyright 2018 Collabora, Ltd -+ Copyright 2021 Simon Ser -+ -+ Permission is hereby granted, free of charge, to any person obtaining a -+ copy of this software and associated documentation files (the "Software"), -+ to deal in the Software without restriction, including without limitation -+ the rights to use, copy, modify, merge, publish, distribute, sublicense, -+ and/or sell copies of the Software, and to permit persons to whom the -+ Software is furnished to do so, subject to the following conditions: -+ -+ The above copyright notice and this permission notice (including the next -+ paragraph) shall be included in all copies or substantial portions of the -+ Software. -+ -+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -+ DEALINGS IN THE SOFTWARE. -+ -+ -+ -+ This protocol allows clients to request explicit synchronization for -+ buffers. It is tied to the Linux DRM synchronization object framework. -+ -+ Synchronization refers to co-ordination of pipelined operations performed -+ on buffers. Most GPU clients will schedule an asynchronous operation to -+ render to the buffer, then immediately send the buffer to the compositor -+ to be attached to a surface. -+ -+ With implicit synchronization, ensuring that the rendering operation is -+ complete before the compositor displays the buffer is an implementation -+ detail handled by either the kernel or userspace graphics driver. -+ -+ By contrast, with explicit synchronization, DRM synchronization object -+ timeline points mark when the asynchronous operations are complete. When -+ submitting a buffer, the client provides a timeline point which will be -+ waited on before the compositor accesses the buffer, and another timeline -+ point that the compositor will signal when it no longer needs to access the -+ buffer contents for the purposes of the surface commit. -+ -+ Linux DRM synchronization objects are documented at: -+ https://dri.freedesktop.org/docs/drm/gpu/drm-mm.html#drm-sync-objects -+ -+ Warning! The protocol described in this file is currently in the testing -+ phase. Backward compatible changes may be added together with the -+ corresponding interface version bump. Backward incompatible changes can -+ only be done by creating a new major version of the extension. -+ -+ -+ -+ -+ This global is a factory interface, allowing clients to request -+ explicit synchronization for buffers on a per-surface basis. -+ -+ See wp_linux_drm_syncobj_surface_v1 for more information. -+ -+ -+ -+ -+ Destroy this explicit synchronization factory object. Other objects -+ shall not be affected by this request. -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ Instantiate an interface extension for the given wl_surface to provide -+ explicit synchronization. -+ -+ If the given wl_surface already has an explicit synchronization object -+ associated, the surface_exists protocol error is raised. -+ -+ Graphics APIs, like EGL or Vulkan, that manage the buffer queue and -+ commits of a wl_surface themselves, are likely to be using this -+ extension internally. If a client is using such an API for a -+ wl_surface, it should not directly use this extension on that surface, -+ to avoid raising a surface_exists protocol error. -+ -+ -+ -+ -+ -+ -+ -+ Import a DRM synchronization object timeline. -+ -+ If the FD cannot be imported, the invalid_timeline error is raised. -+ -+ -+ -+ -+ -+ -+ -+ -+ This object represents an explicit synchronization object timeline -+ imported by the client to the compositor. -+ -+ -+ -+ -+ Destroy the synchronization object timeline. Other objects are not -+ affected by this request, in particular timeline points set by -+ set_acquire_point and set_release_point are not unset. -+ -+ -+ -+ -+ -+ -+ This object is an add-on interface for wl_surface to enable explicit -+ synchronization. -+ -+ Each surface can be associated with only one object of this interface at -+ any time. -+ -+ Explicit synchronization is guaranteed to be supported for buffers -+ created with any version of the linux-dmabuf protocol. Compositors are -+ free to support explicit synchronization for additional buffer types. -+ If at surface commit time the attached buffer does not support explicit -+ synchronization, an unsupported_buffer error is raised. -+ -+ As long as the wp_linux_drm_syncobj_surface_v1 object is alive, the -+ compositor may ignore implicit synchronization for buffers attached and -+ committed to the wl_surface. The delivery of wl_buffer.release events -+ for buffers attached to the surface becomes undefined. -+ -+ Clients must set both acquire and release points if and only if a -+ non-null buffer is attached in the same surface commit. See the -+ no_buffer, no_acquire_point and no_release_point protocol errors. -+ -+ If at surface commit time the acquire and release DRM syncobj timelines -+ are identical, the acquire point value must be strictly less than the -+ release point value, or else the conflicting_points protocol error is -+ raised. -+ -+ -+ -+ -+ Destroy this surface synchronization object. -+ -+ Any timeline point set by this object with set_acquire_point or -+ set_release_point since the last commit may be discarded by the -+ compositor. Any timeline point set by this object before the last -+ commit will not be affected. -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ Set the timeline point that must be signalled before the compositor may -+ sample from the buffer attached with wl_surface.attach. -+ -+ The 64-bit unsigned value combined from point_hi and point_lo is the -+ point value. -+ -+ The acquire point is double-buffered state, and will be applied on the -+ next wl_surface.commit request for the associated surface. Thus, it -+ applies only to the buffer that is attached to the surface at commit -+ time. -+ -+ If an acquire point has already been attached during the same commit -+ cycle, the new point replaces the old one. -+ -+ If the associated wl_surface was destroyed, a no_surface error is -+ raised. -+ -+ If at surface commit time there is a pending acquire timeline point set -+ but no pending buffer attached, a no_buffer error is raised. If at -+ surface commit time there is a pending buffer attached but no pending -+ acquire timeline point set, the no_acquire_point protocol error is -+ raised. -+ -+ -+ -+ -+ -+ -+ -+ -+ Set the timeline point that must be signalled by the compositor when it -+ has finished its usage of the buffer attached with wl_surface.attach -+ for the relevant commit. -+ -+ Once the timeline point is signaled, and assuming the associated buffer -+ is not pending release from other wl_surface.commit requests, no -+ additional explicit or implicit synchronization with the compositor is -+ required to safely re-use the buffer. -+ -+ Note that clients cannot rely on the release point being always -+ signaled after the acquire point: compositors may release buffers -+ without ever reading from them. In addition, the compositor may use -+ different presentation paths for different commits, which may have -+ different release behavior. As a result, the compositor may signal the -+ release points in a different order than the client committed them. -+ -+ Because signaling a timeline point also signals every previous point, -+ it is generally not safe to use the same timeline object for the -+ release points of multiple buffers. The out-of-order signaling -+ described above may lead to a release point being signaled before the -+ compositor has finished reading. To avoid this, it is strongly -+ recommended that each buffer should use a separate timeline for its -+ release points. -+ -+ The 64-bit unsigned value combined from point_hi and point_lo is the -+ point value. -+ -+ The release point is double-buffered state, and will be applied on the -+ next wl_surface.commit request for the associated surface. Thus, it -+ applies only to the buffer that is attached to the surface at commit -+ time. -+ -+ If a release point has already been attached during the same commit -+ cycle, the new point replaces the old one. -+ -+ If the associated wl_surface was destroyed, a no_surface error is -+ raised. -+ -+ If at surface commit time there is a pending release timeline point set -+ but no pending buffer attached, a no_buffer error is raised. If at -+ surface commit time there is a pending buffer attached but no pending -+ release timeline point set, the no_release_point protocol error is -+ raised. -+ -+ -+ -+ -+ -+ -+ diff --git a/anda/lib/nvidia/egl-wayland/egl-wayland.spec b/anda/lib/nvidia/egl-wayland/egl-wayland.spec deleted file mode 100644 index 9f4985a34d..0000000000 --- a/anda/lib/nvidia/egl-wayland/egl-wayland.spec +++ /dev/null @@ -1,85 +0,0 @@ -%global commit f1fd51456710b567717a970dd4e1b2347792ac13 -%global date 20250313 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global tag %{version} - -Name: egl-wayland -Version: 1.1.19 -Release: 2%?dist -Summary: EGLStream-based Wayland external platform -License: MIT -URL: https://github.com/NVIDIA/%{name} - -%if 0%{?tag:1} -Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz -%else -Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz -%endif -# Explicit synchronization is in since 1.34: -Patch0: %{name}-linux-drm-syncobj.patch - -BuildRequires: cmake -BuildRequires: meson -BuildRequires: libtool -BuildRequires: pkgconfig(egl) >= 1.5 -BuildRequires: pkgconfig(eglexternalplatform) >= 1.1 -BuildRequires: pkgconfig(libdrm) -BuildRequires: pkgconfig(wayland-client) -BuildRequires: pkgconfig(wayland-egl-backend) >= 3 -BuildRequires: pkgconfig(wayland-protocols) -BuildRequires: pkgconfig(wayland-scanner) -BuildRequires: pkgconfig(wayland-server) - -# Required for directory ownership -Requires: libglvnd-egl%{?_isa} - -%description -EGL External Platform library to add client-side Wayland support to EGL on top -of EGLDevice and EGLStream families of extensions. - -This library implements an EGL External Platform interface to work along with -EGL drivers that support the external platform mechanism. - -%package devel -Summary: EGLStream-based Wayland external platform development files -Requires: %{name}%{?_isa} = %{version}-%{release} - -%description devel -EGL External Platform library to add client-side Wayland support to EGL on top -of EGLDevice and EGLStream families of extensions. - -This library implements an EGL External Platform interface to work along with -EGL drivers that support the external platform mechanism. - -This package contains development files. - -%prep -%if 0%{?tag:1} -%autosetup -p1 -%else -%autosetup -p1 -n %{name}-%{commit} -%endif - -%build -%meson -%meson_build - -%install -%meson_install -find %{buildroot} -name '*.la' -delete - -%files -%doc README.md -%license COPYING -%{_libdir}/libnvidia-egl-wayland.so.1 -%{_libdir}/libnvidia-egl-wayland.so.1.1.19 -%{_datadir}/egl/egl_external_platform.d/10_nvidia_wayland.json - -%files devel -%{_datadir}/pkgconfig/wayland-eglstream-protocols.pc -%{_datadir}/wayland-eglstream/ -%{_libdir}/libnvidia-egl-wayland.so -%{_libdir}/pkgconfig/wayland-eglstream.pc - -%changelog -%autochangelog diff --git a/anda/lib/nvidia/egl-x11/anda.hcl b/anda/lib/nvidia/egl-x11/anda.hcl deleted file mode 100644 index 7ffbac854e..0000000000 --- a/anda/lib/nvidia/egl-x11/anda.hcl +++ /dev/null @@ -1,10 +0,0 @@ -project pkg { - arches = ["x86_64", "aarch64", "i386"] - rpm { - spec = "egl-x11.spec" - } - labels { - subrepo = "nvidia" - mock = 1 - } -} diff --git a/anda/lib/nvidia/egl-x11/egl-x11-meson-0.58.patch b/anda/lib/nvidia/egl-x11/egl-x11-meson-0.58.patch deleted file mode 100644 index ef41794c63..0000000000 --- a/anda/lib/nvidia/egl-x11/egl-x11-meson-0.58.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur egl-x11-2be2296e1439b2e4a7f73d976d63982383ae2938.old/src/x11/meson.build egl-x11-2be2296e1439b2e4a7f73d976d63982383ae2938/src/x11/meson.build ---- egl-x11-2be2296e1439b2e4a7f73d976d63982383ae2938.old/src/x11/meson.build 2024-09-04 09:15:04.539451788 +0200 -+++ egl-x11-2be2296e1439b2e4a7f73d976d63982383ae2938/src/x11/meson.build 2024-09-04 09:19:07.641999858 +0200 -@@ -21,7 +21,7 @@ - dep_xcb_dri3 = dependency('xcb-dri3') - dep_dl = meson.get_compiler('c').find_library('dl', required : false) - --enable_xlib = (get_option('xlib').allowed() and dep_x11.found() and dep_x11_xcb.found()) -+enable_xlib = (get_option('xlib').enabled() and dep_x11.found() and dep_x11_xcb.found()) - - x11_deps = [ - dep_libdrm, diff --git a/anda/lib/nvidia/egl-x11/egl-x11.spec b/anda/lib/nvidia/egl-x11/egl-x11.spec deleted file mode 100644 index b3f6471905..0000000000 --- a/anda/lib/nvidia/egl-x11/egl-x11.spec +++ /dev/null @@ -1,70 +0,0 @@ -%global commit 0558d54cdbc563706d44671ba7d846fc12b96485 -%global date 20250324 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global tag %{version} - -Name: egl-x11 -Version: 1.0.1 -Release: 6%?dist -Summary: NVIDIA XLib and XCB EGL Platform Library -License: Apache-2.0 -URL: https://github.com/NVIDIA/egl-x11 - -%if 0%{?tag:1} -Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz -%else -Source0: %{url}/archive/%{commit}.tar.gz#/%{name}-%{shortcommit}.tar.gz -%endif -# Allow building with an older meson: -Patch0: egl-x11-meson-0.58.patch - -BuildRequires: gcc -BuildRequires: meson -BuildRequires: pkgconfig(eglexternalplatform) >= 1.2 -BuildRequires: pkgconfig(egl) -BuildRequires: pkgconfig(gbm) >= 21.2.0 -BuildRequires: pkgconfig(libdrm) >= 2.4.99 -BuildRequires: pkgconfig(x11) -BuildRequires: pkgconfig(x11-xcb) -# Minimum version 1.17.0 for explicit sync support (Fedora 40+): -BuildRequires: pkgconfig(xcb) -BuildRequires: pkgconfig(xcb-dri3) -BuildRequires: pkgconfig(xcb-present) - -# Required for directory ownership -Requires: libglvnd-egl%{?_isa} - -%description -This is an EGL platform library for the NVIDIA driver to support XWayland via -xlib (using EGL_KHR_platform_x11) or xcb (using EGL_EXT_platform_xcb). - -%prep -%if 0%{?tag:1} -%autosetup -p1 -%else -%autosetup -p1 -n %{name}-%{commit} -%endif - -%build -%meson \ - -D xcb=true \ - -D xlib=enabled -%meson_build - -%install -%meson_install - -rm -fv %{buildroot}%{_libdir}/*.so - -%files -%license LICENSE -%doc README.md -%{_libdir}/libnvidia-egl-xcb.so.1 -%{_libdir}/libnvidia-egl-xcb.so.1.0.1 -%{_libdir}/libnvidia-egl-xlib.so.1 -%{_libdir}/libnvidia-egl-xlib.so.1.0.1 -%{_datadir}/egl/egl_external_platform.d/20_nvidia_xcb.json -%{_datadir}/egl/egl_external_platform.d/20_nvidia_xlib.json - -%changelog -%autochangelog