summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gtk.scm3
-rw-r--r--gnu/packages/patches/gtk2-fix-failing-test.patch39
3 files changed, 42 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 6c1a10b66c..5b38ce83d0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -725,6 +725,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch	\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
   %D%/packages/patches/gtk2-theme-paths.patch			\
+  %D%/packages/patches/gtk2-fix-failing-test.patch		\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch	\
   %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
   %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index b274601c4f..0e77caf08c 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -600,7 +600,8 @@ is part of the GNOME accessibility project.")
               "0n26jm09n03nqbd00d2ij63xrby3vik56sk5yj6w1vy768kr5hb8"))
             (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
                                      "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
-                                     "gtk2-theme-paths.patch"))))
+                                     "gtk2-theme-paths.patch"
+                                     "gtk2-fix-failing-test.patch"))))
    (build-system gnu-build-system)
    (outputs '("out" "doc"))
    (propagated-inputs
diff --git a/gnu/packages/patches/gtk2-fix-failing-test.patch b/gnu/packages/patches/gtk2-fix-failing-test.patch
new file mode 100644
index 0000000000..721dc012c7
--- /dev/null
+++ b/gnu/packages/patches/gtk2-fix-failing-test.patch
@@ -0,0 +1,39 @@
+From 12d8b4e8f2f9c9a7707d1d3fccba382732212e3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
+Date: Tue, 5 Dec 2017 20:06:36 +0100
+Subject: [PATCH] Fix test failing on new GLib versions.
+
+This test fails on newer GLib version, because GLib exports a new public marshaller.
+The additional symbol making the test fail is:
+g_cclosure_marshal_BOOLEAN__BOXED_BOXED
+
+The fix makes the test ignore non-gtk related abi.
+This ensures if future marshallers are added to glib those will not pose a problem.
+
+The fix also ensures that the test still checks the gtk abi for identity, and
+that the library provides a superset of the required abi.
+
+Upstream reponse to this problem was:
+
+GLib added a new marshaller in its public API
+And the `abicheck.sh`in GTK+ 2.24 hasn't been updated because GTK+ 2.24 is in deep
+maintenance mode and very few people test it against newer versions of GLib
+
+---
+ gtk/abicheck.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gtk/abicheck.sh b/gtk/abicheck.sh
+index 0d033fb..53b7bfe 100755
+--- a/gtk/abicheck.sh
++++ b/gtk/abicheck.sh
+@@ -1,5 +1,5 @@
+ #! /bin/sh
+ 
+ cpp -DINCLUDE_VARIABLES -P -DG_OS_UNIX -DGTK_WINDOWING_X11 -DALL_FILES ${srcdir:-.}/gtk.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE//' | sort > expected-abi
+-nm -D -g --defined-only .libs/libgtk-x11-2.0.so | cut -d ' ' -f 3 | egrep -v '^(__bss_start|_edata|_end)' | sort > actual-abi
++nm -D -g --defined-only .libs/libgtk-x11-2.0.so | cut -d ' ' -f 3 | egrep -v '^(__bss_start|_edata|_end)' | egrep '^gtk_' | sort > actual-abi
+ diff -u expected-abi actual-abi && rm -f expected-abi actual-abi
+-- 
+2.15.0
+