diff options
Diffstat (limited to 'user/gtk4')
-rw-r--r-- | user/gtk4/APKBUILD | 51 | ||||
-rw-r--r-- | user/gtk4/vulkan-nullref.patch | 69 |
2 files changed, 120 insertions, 0 deletions
diff --git a/user/gtk4/APKBUILD b/user/gtk4/APKBUILD new file mode 100644 index 000000000..1795d2107 --- /dev/null +++ b/user/gtk4/APKBUILD @@ -0,0 +1,51 @@ +# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house> +# Maintainer: Sile Ekaterin Liszka <sheila@vulpine.house> +pkgname=gtk4 +pkgver=4.18.5 +pkgrel=0 +pkgdesc="Version 4 of the GNOME graphics toolkit" +url="https://www.gtk.org" +arch="all" +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 + 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 + vulkan-nullref.patch + " +builddir="$srcdir/gtk-$pkgver" + +build() { + meson setup \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --buildtype=release \ + --wrap-mode=nofallback \ + -Dc_link_args='-lexecinfo' \ + -Dman-pages=true \ + -Dbuild-examples=false \ + -Dvulkan=disabled \ + build + meson compile -C build +} + +check() { + meson test -C build +} + +package() { + DESTDIR="$pkgdir" meson install -C build +} + + +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 + |