diff options
-rw-r--r-- | user/gtk4/APKBUILD | 30 | ||||
-rw-r--r-- | user/gtk4/vulkan-nullref.patch | 69 |
2 files changed, 85 insertions, 14 deletions
diff --git a/user/gtk4/APKBUILD b/user/gtk4/APKBUILD index e1eb0ee41..1795d2107 100644 --- a/user/gtk4/APKBUILD +++ b/user/gtk4/APKBUILD @@ -1,27 +1,29 @@ # Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> # Maintainer: Sile Ekaterin Liszka <sheila@vulpine.house> pkgname=gtk4 -pkgver=4.8.3 -pkgrel=1 +pkgver=4.18.5 +pkgrel=0 pkgdesc="Version 4 of the GNOME graphics toolkit" url="https://www.gtk.org" arch="all" -options="!check" # Requires X11 +options="!check" # Requires Wayland environment running license="LGPL-2.0+ AND LGPL-2.1+ AND LGPL-2.0-only AND Expat" depends="" makedepends="cairo-dev cmake cups-dev ffmpeg-dev ffmpeg-libs gdk-pixbuf-dev gi-docgen glib-dev gobject-introspection-dev graphene-dev gstreamer-dev gst-plugins-bad-dev iso-codes-dev libepoxy-dev libexecinfo-dev - libxcursor-dev libxdamage-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev - meson ninja pango-dev>=1.50.0 py3-docutils py3-jinja2 py3-markdown - py3-pygments py3-pygobject py3-toml py3-typogrify tiff-dev + librsvg-dev libxcursor-dev libxdamage-dev libxi-dev libxinerama-dev + libxkbcommon-dev libxrandr-dev meson pango-dev py3-docutils py3-jinja2 + py3-markdown py3-pygments py3-pygobject py3-toml py3-typogrify tiff-dev wayland-dev wayland-protocols" subpackages="$pkgname-dev $pkgname-doc" -source="https://download.gnome.org/sources/gtk/${pkgver%.*}/gtk-$pkgver.tar.xz" +source="https://download.gnome.org/sources/gtk/${pkgver%.*}/gtk-$pkgver.tar.xz + vulkan-nullref.patch + " builddir="$srcdir/gtk-$pkgver" build() { - meson \ + meson setup \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ @@ -29,21 +31,21 @@ build() { --buildtype=release \ --wrap-mode=nofallback \ -Dc_link_args='-lexecinfo' \ - -Dgtk_doc=true \ -Dman-pages=true \ - -Ddemos=false \ -Dbuild-examples=false \ + -Dvulkan=disabled \ build - ninja -C build + meson compile -C build } check() { - ninja -C build test + meson test -C build } package() { - DESTDIR="$pkgdir" ninja -C build install + DESTDIR="$pkgdir" meson install -C build } -sha512sums="56be0f5ce85a9cbbda4a5de53baeeb6b8cc527a5d34723ae5548759ec7c28f03d204b6b6758dffed02a9e226f3bfcd1f15971105c2f2f7be7cef22538be27754 gtk-4.8.3.tar.xz" +sha512sums="4a09188fdbeb532d8c2064199126eaf60d806118bb637d5182121f3d80d374acdf343568c3423effb9574c364279ded7d7cbd4e0331dc1fb647970f60c98bff0 gtk-4.18.5.tar.xz +1dca0747e2f572354c0d47e443270d64f5855d9fba592621d570be5eed49213ce8303e7d028bbe4d493cceebea9b3c90d6dc4f0671b1cae153a15384aa35d63e vulkan-nullref.patch" diff --git a/user/gtk4/vulkan-nullref.patch b/user/gtk4/vulkan-nullref.patch new file mode 100644 index 000000000..464415901 --- /dev/null +++ b/user/gtk4/vulkan-nullref.patch @@ -0,0 +1,69 @@ +From d4350c0fe535a759abd7898c7f251738242d1408 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte <otte@redhat.com> +Date: Thu, 24 Apr 2025 03:36:15 +0200 +Subject: [PATCH] vulkan: Handle not being compiled against Vulkan + +The Vulkan renderer should work and just fail to realize. +Currently it SEGVs with a NULL function call. + +Part-of: <https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8506> +--- + gsk/gpu/gskvulkanrenderer.c | 22 ++++++++++++++++++++-- + 1 file changed, 20 insertions(+), 2 deletions(-) + +diff --git a/gsk/gpu/gskvulkanrenderer.c b/gsk/gpu/gskvulkanrenderer.c +index a5f827df839..6282c0b51c1 100644 +--- a/gsk/gpu/gskvulkanrenderer.c ++++ b/gsk/gpu/gskvulkanrenderer.c +@@ -4,6 +4,8 @@ + + #include "gskgpurendererprivate.h" + ++#include <glib/gi18n-lib.h> ++ + #ifdef GDK_RENDERING_VULKAN + + #include "gskvulkandeviceprivate.h" +@@ -143,14 +145,28 @@ gsk_vulkan_renderer_unrealize (GskRenderer *renderer) + + GSK_RENDERER_CLASS (gsk_vulkan_renderer_parent_class)->unrealize (renderer); + } +-#endif ++ ++#else /* !GDK_RENDERING_VULKAN */ ++ ++static gboolean ++gsk_vulkan_renderer_realize (GskRenderer *renderer, ++ GdkDisplay *display, ++ GdkSurface *surface, ++ GError **error) ++{ ++ g_set_error_literal (error, GDK_VULKAN_ERROR, GDK_VULKAN_ERROR_NOT_AVAILABLE, ++ _("Vulkan support disabled during GTK build")); ++ ++ return FALSE; ++} ++#endif /* GDK_RENDERING_VULKAN */ + + static void + gsk_vulkan_renderer_class_init (GskVulkanRendererClass *klass) + { ++ GskRendererClass *renderer_class = GSK_RENDERER_CLASS (klass); + #ifdef GDK_RENDERING_VULKAN + GskGpuRendererClass *gpu_renderer_class = GSK_GPU_RENDERER_CLASS (klass); +- GskRendererClass *renderer_class = GSK_RENDERER_CLASS (klass); + + gpu_renderer_class->frame_type = GSK_TYPE_VULKAN_FRAME; + +@@ -162,6 +178,8 @@ gsk_vulkan_renderer_class_init (GskVulkanRendererClass *klass) + gpu_renderer_class->get_backbuffer = gsk_vulkan_renderer_get_backbuffer; + + renderer_class->unrealize = gsk_vulkan_renderer_unrealize; ++#else ++ renderer_class->realize = gsk_vulkan_renderer_realize; + #endif + } + +-- +GitLab + |