Subject: [bug#50593] [PATCH core-updates-frozen] gnu: gtk+: Fix testsuite failure on non-x86_64 platforms

From: Thiago Jung Bauermann <[email-masked]>
Date: Tue, 14 Sep 2021 20:24:37 -0300

On non-x86_64 platforms, gtk+ is linked with a gdk-pixbuf version that
doesn’t support SVG.  This causes the ‘icontheme’ test to fail because it
tries to fetch SVG icons in some of the tests.

Therefore, we need to disable the test when SVG support isn’t available.

* gnu/packages/gtk.scm (gtk+)[propagated-inputs]: Use the ‘target-x86-64?’
convenience function.
[arguments]<#:phases>{disable-failing-tests}: Disable ‘icontheme’ test on
non-x86_64 platforms.
---

Hello,

This patch doesn’t change the gtk+ output derivations on x86_64-linux, so
it won’t cause any rebuilds there.

And together with the one in issue 50521, it allows gtk+ to build on
powerpc64le-linux. In fact, I can even build GTK+ apps such as Emacs and
Transmission! Unfortunately, GNOME apps need SVG support because of the
icon theme. And rust doesn’t build on powerpc64le-linux (mrustc errors out
with “Unknown target name ''”).

Thanks,
Thiago

 gnu/packages/gtk.scm | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 24c24d56530f..876071235ef4 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -958,8 +958,7 @@ application suites.")
        ("freetype" ,freetype)
        ;; SVG support is optional and requires librsvg, which pulls in rust.
        ;; Rust is not supported well on every architecture yet.
-       ("gdk-pixbuf" ,(if (string-prefix? "x86_64" (or (%current-target-system)
-                                                       (%current-system)))
+       ("gdk-pixbuf" ,(if (target-x86-64?)
                           gdk-pixbuf+svg
                           gdk-pixbuf))
        ("glib" ,glib)
@@ -1028,7 +1027,12 @@ application suites.")
                (("notify no-gtk-init object objects-finalize papersize rbtree")
                 "no-gtk-init papersize rbtree")
                (("stylecontext templates textbuffer textiter treemodel treepath")
-                "stylecontext textbuffer textiter treemodel treepath"))
+                "stylecontext textbuffer textiter treemodel treepath")
+               ;; The ‘icontheme’ test needs SVG support.
+               ,@(if (not (target-x86-64?))
+                     '((("floating focus gestures grid gtkmenu icontheme keyhash listbox")
+                        "floating focus gestures grid gtkmenu keyhash listbox"))
+                     '()))
              (substitute* "testsuite/a11y/Makefile.in"
                (("accessibility-dump tree-performance text children derive")
                 "tree-performance text children derive"))