summaryrefslogtreecommitdiff
path: root/user/gtk4
diff options
context:
space:
mode:
Diffstat (limited to 'user/gtk4')
-rw-r--r--user/gtk4/APKBUILD30
-rw-r--r--user/gtk4/vulkan-nullref.patch69
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
+