1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 13:10:33 +02:00

gnu: gtk: Update to 4.22.1.

* gnu/packages/gtk.scm (gtk): Update to 4.22.1.
[patches]: Add gtk-needs-udmabuf.patch.
[#:phases] {pre-check}: Adjust arguments of Xvfb.
[native-inputs]: Add glibc-utf8-locales.
* gnu/packages/patches/gtk-needs-udmabuf.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: If9043cb55a60f4ec703515b61796b38fb4959f0b
This commit is contained in:
Maxim Cournoyer
2026-03-17 13:30:38 +09:00
parent 25eaa70d21
commit 98b6cd4fa7
4 changed files with 83 additions and 8 deletions

View File

@@ -1579,7 +1579,8 @@ dist_patch_DATA = \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
%D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \
%D%/packages/patches/gtk-doc-mkhtml-test-fix.patch \ %D%/packages/patches/gtk-doc-mkhtml-test-fix.patch \
%D%/packages/patches/gtk4-needs-udmabuf.patch \
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \

View File

@@ -1123,7 +1123,7 @@ application suites.")
(define-public gtk (define-public gtk
(package (package
(name "gtk") (name "gtk")
(version "4.20.3") (version "4.22.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@@ -1131,9 +1131,10 @@ application suites.")
(version-major+minor version) "/" (version-major+minor version) "/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 "0ly1gqc6ybxv5f2a9hvjp5k6l9mfzy2yv8iy2xqnr9l8628g4wr8")) (base32 "1z2mkmazc2d51jbg3qwwdycycqiwswm88nhw6bxscz8j86f5lyyd"))
(patches (patches
(search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")) (search-patches "gtk4-needs-udmabuf.patch"
"gtk4-respect-GUIX_GTK4_PATH.patch"))
(modules '((guix build utils))))) (modules '((guix build utils)))))
(build-system meson-build-system) (build-system meson-build-system)
(outputs '("out" "bin" "doc")) (outputs '("out" "bin" "doc"))
@@ -1257,8 +1258,10 @@ application suites.")
(setenv "XDG_CACHE_HOME" (getcwd)))) (setenv "XDG_CACHE_HOME" (getcwd))))
(add-before 'check 'pre-check (add-before 'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Tests require a running X server. ;; Tests require a running X server. The '-noreset' option is
(system "Xvfb :1 +extension GLX &") ;; necessary to avoid spurious "Failed to open display" test
;; errors.
(system "Xvfb :1 +extension GLX -screen 0 1024x768x24 -noreset &")
(setenv "DISPLAY" ":1") (setenv "DISPLAY" ":1")
;; Tests write to $HOME. ;; Tests write to $HOME.
(setenv "HOME" (getcwd)) (setenv "HOME" (getcwd))
@@ -1301,6 +1304,7 @@ application suites.")
docbook-xsl docbook-xsl
gettext-minimal gettext-minimal
`(,glib "bin") `(,glib "bin")
glibc-utf8-locales ;some tests require en_US.UTF-8
gobject-introspection ;for building introspection data gobject-introspection ;for building introspection data
graphene graphene
gtk-doc/stable ;for building documentation gtk-doc/stable ;for building documentation
@@ -1368,8 +1372,8 @@ application suites.")
(native-search-paths (native-search-paths
(list (list
(search-path-specification (search-path-specification
(variable "GUIX_GTK4_PATH") (variable "GUIX_GTK4_PATH")
(files '("lib/gtk-4.0"))))) (files '("lib/gtk-4.0")))))
(search-paths native-search-paths) (search-paths native-search-paths)
(home-page "https://www.gtk.org/") (home-page "https://www.gtk.org/")
(synopsis "Cross-platform widget toolkit") (synopsis "Cross-platform widget toolkit")

View File

@@ -0,0 +1,35 @@
Some udmapbuf relying tests were still selected despite using --no-suite=needs-udmabuf.
Upstream-status: Patch prepared by upstream, not yet committed.
diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build
index 0118304bf8..6bf4d4bb93 100644
--- a/testsuite/gsk/meson.build
+++ b/testsuite/gsk/meson.build
@@ -275,6 +275,16 @@ compare_render_tests = [
'zero-length-path-stroke',
]
+# These tests use dmabufs and fail in testrunners that have
+# dmabuf support but no access to /dev/udmabuf.
+# For that purpose we add them to the 'needs-udmabuf' suite
+# with this list
+needs_udmabuf = [
+ 'yuv-matrix-dmabuf-nv12',
+ 'yuv-matrix-dmabuf-rgba',
+ 'yuv-matrix-dmabuf-yuyv',
+]
+
# These tests are either slow or need lots of memory.
# So we don't run them in parallel with other such tests to not
# cause CI failures
@@ -386,6 +396,9 @@ foreach renderer : renderers
if test_xfails.contains(variant) or (renderer_name == 'cairo' and variant == 'clip')
extra_suites += ['failing']
endif
+ if needs_udmabuf.contains(testname)
+ extra_suites += ['needs-udmabuf']
+ endif
test('compare ' + renderer_name + ' ' + testname + ' ' + variant, compare_render,
protocol: 'tap',
args: [

View File

@@ -0,0 +1,35 @@
Some udmapbuf relying tests were still selected despite using --no-suite=needs-udmabuf.
Upstream-status: Patch prepared by upstream, not yet committed.
diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build
index 0118304bf8..6bf4d4bb93 100644
--- a/testsuite/gsk/meson.build
+++ b/testsuite/gsk/meson.build
@@ -275,6 +275,16 @@ compare_render_tests = [
'zero-length-path-stroke',
]
+# These tests use dmabufs and fail in testrunners that have
+# dmabuf support but no access to /dev/udmabuf.
+# For that purpose we add them to the 'needs-udmabuf' suite
+# with this list
+needs_udmabuf = [
+ 'yuv-matrix-dmabuf-nv12',
+ 'yuv-matrix-dmabuf-rgba',
+ 'yuv-matrix-dmabuf-yuyv',
+]
+
# These tests are either slow or need lots of memory.
# So we don't run them in parallel with other such tests to not
# cause CI failures
@@ -386,6 +396,9 @@ foreach renderer : renderers
if test_xfails.contains(variant) or (renderer_name == 'cairo' and variant == 'clip')
extra_suites += ['failing']
endif
+ if needs_udmabuf.contains(testname)
+ extra_suites += ['needs-udmabuf']
+ endif
test('compare ' + renderer_name + ' ' + testname + ' ' + variant, compare_render,
protocol: 'tap',
args: [