Subject: Re: [bug#29580] [PATCH] gnu: gtk+-2: Fix failing test.
From: Marius Bakke <[email-masked]>
To: Gábor Boskovits <[email-masked]>, [email-masked], [email-masked]
Cc: Gábor Boskovits <[email-masked]>
Date: Thu, 07 Dec 2017 18:02:50 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Gábor Boskovits <[email-masked]> writes:

> * gnu/packages/gtk.scm (gtk+-2)[source]: Add patch.
> * gnu/packages/patches/gtk2-fix-failing-test.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Register it.
> ---
>  gnu/local.mk                                     |  1 +
>  gnu/packages/gtk.scm                             |  3 +-
>  gnu/packages/patches/gtk2-fix-failing-test.patch | 39 ++++++++++++++++++++++++
>  3 files changed, 42 insertions(+), 1 deletion(-)
>  create mode 100644 gnu/packages/patches/gtk2-fix-failing-test.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 5a701075f..b37d76ab3 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -713,6 +713,7 @@ dist_patch_DATA =						\
>    %D%/packages/patches/guile-present-coding.patch		\
>    %D%/packages/patches/guile-relocatable.patch			\
>    %D%/packages/patches/guile-rsvg-pkgconfig.patch		\
> +  %D%/packages/patches/gtk2-fix-failing-test.patch		\
>    %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			\
> diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
> index dfa7a59b1..3d9ffe8c8 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 000000000..721dc012c
> --- /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?= <[email-masked]>
> +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

Thanks for investigating.  The patch did not apply for me on
core-updates, so I had to do the gnu/local.mk change "manually".

> +
> +---
> + 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

Maybe we should rename this patch to more accurately reflect what's
going on?  Something like "gtk+2-abi-check-ignore-glib.patch".  WDYT?

Regardless I've pushed this as 92b61d3e1bb50f0c1d087bc8d57cc00c3ce360df.