Subject: Re: [bug#73301] [PATCH 3/4] gnu: gtk: Update to 4.16.1.

From: Maxim Cournoyer <[email-masked]>
Date: Sun, 22 Sep 2024 11:47:05 +0900

Hi Liliana,

Liliana Marie Prikler <[email-masked]> writes:

> * gnu/packages/gtk.scm (gtk): Update to 4.16.1.
> [arguments]<#:configure-flags>: Replace “-Dgtk_doc=…” with
> “-Ddocumentation=true”.
> <#:test-options>: Add “--no-suite=needs-udmabuf”.
> <#:phases>: Adjust patches for failing tests.
> [inputs]: Replace wayland-protocols with wayland-protocols-next.
> ---
>  gnu/packages/gtk.scm | 34 ++++++++--------------------------
>  1 file changed, 8 insertions(+), 26 deletions(-)
>
> diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
> index 8945fb98ae..5733749a72 100644
> --- a/gnu/packages/gtk.scm
> +++ b/gnu/packages/gtk.scm
> @@ -1141,7 +1141,7 @@ (define-public gtk+
>  (define-public gtk
>    (package
>      (name "gtk")
> -    (version "4.14.5")
> +    (version "4.16.1")
>      (source
>       (origin
>         (method url-fetch)
> @@ -1149,7 +1149,7 @@ (define-public gtk
>                             (version-major+minor version)  "/"
>                             name "-" version ".tar.xz"))
>         (sha256
> -        (base32 "0kg286za53qhl6ngw4rrvbpm3q04g30qf2q77sck7c86y2wz4ism"))
> +        (base32 "0p11k5afy3g9d6p402zrn9izkypwzlb51y9qanibzyc1sjmiwslj"))
>         (patches
>          (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch"))
>         (modules '((guix build utils)))))
> @@ -1166,11 +1166,7 @@ (define-public gtk
>           "-Dcloudproviders=enabled"     ;for cloud-providers support
>           "-Dtracker=enabled"            ;for filechooser search support
>           "-Dcolord=enabled"             ;for color printing support
> -         #$@(if (%current-target-system)
> -                ;; If true, gtkdoc-scangobj will try to execute a
> -                ;; cross-compiled binary.
> -                '("-Dgtk_doc=false")
> -                '("-Dgtk_doc=true"))
> +         "-Ddocumentation=true"
>           "-Dman-pages=true")
>        #:test-options #~(list "--setup=x11" ;defaults to wayland
>                               ;; Use the same test options as upstream uses for
> @@ -1180,6 +1176,7 @@ (define-public gtk
>                               "--no-suite=flaky"
>                               "--no-suite=headless" ; requires mutter…
>                               "--no-suite=gsk-compare-broadway"
> +                             "--no-suite=needs-udmabuf"
>                               ;; These seem to fail on aarch64, and Debian has
>                               ;; also disabled these, see:
>                               ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050075
> @@ -1219,29 +1216,14 @@ (define-public gtk
>                  (("[ \t]*'empty-text.node',") "")
>                  (("[ \t]*'testswitch.node',") "")
>                  (("[ \t]*'widgetfactory.node',") "")
> -                ;; The unaligned-offscreen test fails for unknown reasons, also
> -                ;; on different distributions (see:
> -                ;; https://gitlab.gnome.org/GNOME/gtk/-/issues/4889).
> -                (("  'unaligned-offscreen',") "")
>                  ;; This test, 'gtk:tools / validate', started failing for
>                  ;; unknown reasons after updating mesa to 23.3.1 and xorgproto
>                  ;; to 2023.2.
>                  ((" 'validate',") "")
> -                ;; XXX: These test failures come newly from 4.14.
> -                ;; Not all of them are reported upstream yet, but the text nodes
> -                ;; are mentioned in
> -                ;; <https://gitlab.gnome.org/GNOME/gtk/-/issues/6647>.
> -                (("'glyph-subpixel-position',") "")
> -                (("'subpixel-positioning',") "")
> -                (("'subpixel-positioning-hidpi-nogl-nocairo',") "")
> -                (("'text.*\\.node',") "")
> -                (("'text-mixed-color-colrv1',") ""))

LGTM so far.

> +                ;; XXX: Figure out why this fails and report upstream.
> +                ((".*'memorytexture',.*") ""))

Is the above comment just for 'memorytexture' test?  I've learnt to be
very explicit in my comments, as when new tests gets disabled, it's how
to track what is being commented about.

(also, I doubt someone will come back to the investigation later, so
this is technical debt on our side -- I'd favor a minimal investigation
with a report upstream if none exist so far).

>                (substitute* "testsuite/reftests/meson.build"
> -                (("[ \t]*'label-wrap-justify.ui',") "")
> -                ;; The inscription-markup.ui fails due to /etc/machine-id
> -                ;; related warnings (see:
> -                ;; https://gitlab.gnome.org/GNOME/gtk/-/issues/5169).
> -                (("[ \t]*'inscription-markup.ui',") ""))
> +                (("[ \t]*'label-wrap-justify.ui',") ""))

There's no more comment about why this new test fails.  Is it known
upstream?

>                ;; These tests fail on an Apple M1 (aarch64) with the following errors:
>                ;; - MESA: error: ZINK: failed to choose pdev
>                ;; - libEGL warning: egl: failed to create dri2 screen
> @@ -1391,7 +1373,7 @@ (define-public gtk
>             vulkan-headers
>             vulkan-loader                ;for vulkan graphics API support
>             wayland                      ;for wayland display-backend
> -           wayland-protocols))
> +           wayland-protocols-next))

Instead of using -next things, perhaps we should byte the bullet and
update them in this iteration too?

Using various variants of system means the system closure will be
higher, may cause problems down the line (if the same process attempts
to load two variants library in memory, that would cause issues).

-- 
Thanks,
Maxim