Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libnvidia-egl-wayland for openSUSE:Factory checked in at 2024-11-07 16:25:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libnvidia-egl-wayland (Old) and /work/SRC/openSUSE:Factory/.libnvidia-egl-wayland.new.2020 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libnvidia-egl-wayland" Thu Nov 7 16:25:54 2024 rev:14 rq:1221803 version:1.1.16 Changes: -------- --- /work/SRC/openSUSE:Factory/libnvidia-egl-wayland/libnvidia-egl-wayland.changes 2024-10-08 17:22:57.785408694 +0200 +++ /work/SRC/openSUSE:Factory/.libnvidia-egl-wayland.new.2020/libnvidia-egl-wayland.changes 2024-11-07 16:25:55.854007847 +0100 @@ -1,0 +2,8 @@ +Wed Nov 6 15:53:40 UTC 2024 - Stefan Dirsch <sndir...@suse.com> + +- 0001-egl-wayland-enable-CI-with-github-actions.patch + 0002-egl-wayland-Fix-use-after-free-in-library-teardown.patch + 0003-egl-wayland-Handle-failure-to-acquire-image-in-wlEgl.patch + * apply latest fixes from git + +------------------------------------------------------------------- New: ---- 0001-egl-wayland-enable-CI-with-github-actions.patch 0002-egl-wayland-Fix-use-after-free-in-library-teardown.patch 0003-egl-wayland-Handle-failure-to-acquire-image-in-wlEgl.patch BETA DEBUG BEGIN: New: - 0001-egl-wayland-enable-CI-with-github-actions.patch 0002-egl-wayland-Fix-use-after-free-in-library-teardown.patch New:- 0001-egl-wayland-enable-CI-with-github-actions.patch 0002-egl-wayland-Fix-use-after-free-in-library-teardown.patch 0003-egl-wayland-Handle-failure-to-acquire-image-in-wlEgl.patch New: 0002-egl-wayland-Fix-use-after-free-in-library-teardown.patch 0003-egl-wayland-Handle-failure-to-acquire-image-in-wlEgl.patch * apply latest fixes from git BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libnvidia-egl-wayland.spec ++++++ --- /var/tmp/diff_new_pack.C6lv7h/_old 2024-11-07 16:25:56.454032813 +0100 +++ /var/tmp/diff_new_pack.C6lv7h/_new 2024-11-07 16:25:56.454032813 +0100 @@ -37,6 +37,9 @@ Patch7: 0007-egl-wayland-fix-device-name-case-where-only-wl_drm-e.patch Patch8: 0008-Add-ICD-json-file.patch Patch9: 0009-egl-wayland-Fix-roundtrip-eating-wl_drm-events-in-ge.patch +Patch11: 0001-egl-wayland-enable-CI-with-github-actions.patch +Patch12: 0002-egl-wayland-Fix-use-after-free-in-library-teardown.patch +Patch13: 0003-egl-wayland-Handle-failure-to-acquire-image-in-wlEgl.patch BuildRequires: gcc-c++ BuildRequires: meson >= 0.50 BuildRequires: ninja ++++++ 0001-egl-wayland-enable-CI-with-github-actions.patch ++++++ >From 40e835f197178e7e4387a042acc8f1dc42f810ee Mon Sep 17 00:00:00 2001 From: Austin Shafer <asha...@nvidia.com> Date: Wed, 9 Oct 2024 14:53:52 -0400 Subject: [PATCH 1/3] egl-wayland: enable CI with github actions This enables CI for github actions builds, aimed for helping verify new pull requests. This adds tests for the meson and autotools builds on ubuntu 24.04. Other distros are apparently not supported by default so we aren't able to expand testing this way. --- .github/workflows/arch-build.yml | 16 ++++++++++++++++ .github/workflows/autoconf-build.yml | 14 ++++++++++++++ .github/workflows/meson-build.yml | 14 ++++++++++++++ .github/workflows/meson-llvm-build.yml | 17 +++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 .github/workflows/arch-build.yml create mode 100644 .github/workflows/autoconf-build.yml create mode 100644 .github/workflows/meson-build.yml create mode 100644 .github/workflows/meson-llvm-build.yml diff --git a/.github/workflows/arch-build.yml b/.github/workflows/arch-build.yml new file mode 100644 index 0000000..3f56616 --- /dev/null +++ b/.github/workflows/arch-build.yml @@ -0,0 +1,16 @@ +name: Arch Build +on: [push, pull_request] +jobs: + Meson-Build: + runs-on: ubuntu-24.04 + container: + image: archlinux:latest + steps: + - uses: actions/checkout@v4 + - run: pacman --noconfirm -Syy + - run: pacman --noconfirm -S wayland-protocols libdrm libglvnd pkgconf + - run: pacman --noconfirm -S wayland eglexternalplatform + - run: pacman --noconfirm -S meson ninja gcc + - run: meson build + - run: ninja -C build + - run: ninja -C build install diff --git a/.github/workflows/autoconf-build.yml b/.github/workflows/autoconf-build.yml new file mode 100644 index 0000000..c52ed92 --- /dev/null +++ b/.github/workflows/autoconf-build.yml @@ -0,0 +1,14 @@ +name: Autotools GCC Build +on: [push, pull_request] +jobs: + Meson-Build: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - run: sudo apt update + - run: sudo apt install -y wayland-protocols libdrm-dev libegl-dev + - run: sudo apt install -y libwayland-dev libwayland-egl-backend-dev eglexternalplatform-dev + - run: sudo apt install -y meson ninja-build gcc + - run: ./autogen.sh + - run: make + - run: sudo make install diff --git a/.github/workflows/meson-build.yml b/.github/workflows/meson-build.yml new file mode 100644 index 0000000..ca070d6 --- /dev/null +++ b/.github/workflows/meson-build.yml @@ -0,0 +1,14 @@ +name: Meson GCC Build +on: [push, pull_request] +jobs: + Meson-Build: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - run: sudo apt update + - run: sudo apt install -y wayland-protocols libdrm-dev libegl-dev + - run: sudo apt install -y libwayland-dev libwayland-egl-backend-dev eglexternalplatform-dev + - run: sudo apt install -y meson ninja-build gcc + - run: meson build + - run: ninja -C build + - run: sudo ninja -C build install diff --git a/.github/workflows/meson-llvm-build.yml b/.github/workflows/meson-llvm-build.yml new file mode 100644 index 0000000..83a8dbe --- /dev/null +++ b/.github/workflows/meson-llvm-build.yml @@ -0,0 +1,17 @@ +name: Meson LLVM Build +on: [push, pull_request] +jobs: + Meson-Build: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - run: sudo apt update + - run: sudo apt install -y wayland-protocols libdrm-dev libegl-dev + - run: sudo apt install -y libwayland-dev libwayland-egl-backend-dev eglexternalplatform-dev + - run: sudo apt install -y meson ninja-build clang + - name: meson build + run: meson build + env: + CC: clang + - run: ninja -C build + - run: sudo ninja -C build install -- 2.43.0 ++++++ 0002-egl-wayland-Fix-use-after-free-in-library-teardown.patch ++++++ >From 0cd471dcfd46e6cb8b71eceddb20cc02eadabf61 Mon Sep 17 00:00:00 2001 From: Robin Ebert <ebertrobin2...@gmail.com> Date: Tue, 15 Oct 2024 16:26:05 +0200 Subject: [PATCH 2/3] egl-wayland: Fix use after free in library teardown --- src/wayland-egldisplay.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/wayland-egldisplay.c b/src/wayland-egldisplay.c index 7089271..edd79c4 100644 --- a/src/wayland-egldisplay.c +++ b/src/wayland-egldisplay.c @@ -729,10 +729,10 @@ static EGLBoolean terminateDisplay(WlEglDisplay *display, EGLBoolean globalTeard * destroy the display connection itself */ wlEglDestroyAllSurfaces(display); - wlEglDestroyFormatSet(&display->formatSet); - wlEglDestroyFeedback(&display->defaultFeedback); - if (!globalTeardown || display->ownNativeDpy) { + wlEglDestroyFormatSet(&display->formatSet); + wlEglDestroyFeedback(&display->defaultFeedback); + if (display->wlRegistry) { wl_registry_destroy(display->wlRegistry); display->wlRegistry = NULL; -- 2.43.0 ++++++ 0003-egl-wayland-Handle-failure-to-acquire-image-in-wlEgl.patch ++++++ >From 218f67846472c9310355210ee9a7e1fabed95062 Mon Sep 17 00:00:00 2001 From: shiningdracon <shiningdra...@gmail.com> Date: Sun, 8 Sep 2024 19:34:26 -0700 Subject: [PATCH 3/3] egl-wayland: Handle failure to acquire image in wlEglSendDamageEvent The image parameter of send_explicit_sync_points is assumed not to be null, however this is a case the rest of the code handles. This causes sporadic problems on KDE when running overnight as the image will not be valid at some point, causing us to crash. Fixes #143 --- src/wayland-eglsurface.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/wayland-eglsurface.c b/src/wayland-eglsurface.c index 4e4dcff..ae6cafc 100644 --- a/src/wayland-eglsurface.c +++ b/src/wayland-eglsurface.c @@ -265,11 +265,13 @@ wlEglSendDamageEvent(WlEglSurface *surface, } image = pop_acquired_image(surface); - if (image) { - surface->ctx.currentBuffer = image->buffer; - image->attached = EGL_TRUE; + if (!image) { + return EGL_FALSE; } + surface->ctx.currentBuffer = image->buffer; + image->attached = EGL_TRUE; + /* * Send our explicit sync acquire and release points. This needs to be done * as part of the surface attach as it is a protocol error to specify these -- 2.43.0