unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Thiago Jung Bauermann <bauermann@kolabnow.com>
Cc: 50521-done@debbugs.gnu.org
Subject: bug#50521: [PATCH core-updates-frozen] gnu: gtk+-2: Fix ‘builder’ test
Date: Fri, 12 Nov 2021 00:54:06 -0500	[thread overview]
Message-ID: <87pmr5q5q9.fsf@gmail.com> (raw)
In-Reply-To: <20210911170732.137404-1-bauermann@kolabnow.com> (Thiago Jung Bauermann's message of "Sat, 11 Sep 2021 14:07:32 -0300")

Hello,

Thiago Jung Bauermann <bauermann@kolabnow.com> writes:

> The signal callbacks in the ‘builder’ testcase have wrong prototypes.
> This causes it to fail the “/Builder/Signal Autoconnect” test on
> powerpc64le-linux.
>
> Solve the problem by backporting the upstream fix that was applied to
> GTK+ 3.0.
>
> * gnu/packages/patches/gtk2-fix-builder-test.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it.
> * gnu/packages/gtk.scm (gtk+-2): Use it.
> ---
>
> Hello,
>
> This fixes the build of gtk+-2 on powerpc64le-linux.
>
> Thanks,
> Thiago
>
>  gnu/local.mk                                  |  1 +
>  gnu/packages/gtk.scm                          |  3 +-
>  .../patches/gtk2-fix-builder-test.patch       | 94 +++++++++++++++++++
>  3 files changed, 97 insertions(+), 1 deletion(-)
>  create mode 100644 gnu/packages/patches/gtk2-fix-builder-test.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 07e6787642e9..6d19a6332ba0 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -1205,6 +1205,7 @@ dist_patch_DATA =						\
>    %D%/packages/patches/guile-emacs-fix-configure.patch		\
>    %D%/packages/patches/guile-ssh-fix-test-suite.patch		\
>    %D%/packages/patches/guile-ssh-read-error.patch		\
> +  %D%/packages/patches/gtk2-fix-builder-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 24c24d56530f..c7a682b37548 100644
> --- a/gnu/packages/gtk.scm
> +++ b/gnu/packages/gtk.scm
> @@ -847,7 +847,8 @@ is part of the GNOME accessibility project.")
>                  "1nn6kks1zyvb5xikr9y2k7r9bwjy1g4b0m0s66532bclymbwfamc"))
>                (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-builder-test.patch"))))
>      (build-system gnu-build-system)
>      (outputs '("out" "bin" "doc"))
>      (propagated-inputs
> diff --git a/gnu/packages/patches/gtk2-fix-builder-test.patch b/gnu/packages/patches/gtk2-fix-builder-test.patch
> new file mode 100644
> index 000000000000..8c41e596fe95
> --- /dev/null
> +++ b/gnu/packages/patches/gtk2-fix-builder-test.patch
> @@ -0,0 +1,94 @@
> +From e45e11238036e06c8fe78bea1691b256ca41837b Mon Sep 17 00:00:00 2001
> +From: Steve Langasek <steve.langasek@ubuntu.com>
> +Date: Tue, 7 Jan 2014 13:55:28 +0100
> +Subject: [PATCH] fix prototypes of signal callbacks in the test suite
> +
> +The signal callbacks are defined to take pointers as their arguments, but the
> +callbacks found in testsuite/gtk/builder.c are passing a GParamSpec by value
> +as the second argument.  This confuses and angers the compiler on ppc64el,
> +resulting in segfaults after return from the function due to stack-smashing
> +by the (completely-unused) argument.
> +
> +https://bugzilla.gnome.org/show_bug.cgi?id=721700
> +---
> +
> +This is a backport to v2.24.33 of upstream commit:
> +
> +https://gitlab.gnome.org/GNOME/gtk/-/commit/256561db2f0b34e01047f8882b3e0cb8c6d9dbab
> +
> + gtk/tests/builder.c | 16 ++++++++--------
> + 1 file changed, 8 insertions(+), 8 deletions(-)
> +
> +diff --git a/gtk/tests/builder.c b/gtk/tests/builder.c
> +index 8529dacc2f6e..23d5096062fa 100644
> +--- a/gtk/tests/builder.c
> ++++ b/gtk/tests/builder.c
> +@@ -132,7 +132,7 @@ static int object = 0;
> + static int object_after = 0;
> + 
> + void /* exported for GtkBuilder */
> +-signal_normal (GtkWindow *window, GParamSpec spec)
> ++signal_normal (GtkWindow *window, GParamSpec *spec)
> + {
> +   g_assert (GTK_IS_WINDOW (window));
> +   g_assert (normal == 0);
> +@@ -142,7 +142,7 @@ signal_normal (GtkWindow *window, GParamSpec spec)
> + }
> + 
> + void /* exported for GtkBuilder */
> +-signal_after (GtkWindow *window, GParamSpec spec)
> ++signal_after (GtkWindow *window, GParamSpec *spec)
> + {
> +   g_assert (GTK_IS_WINDOW (window));
> +   g_assert (normal == 1);
> +@@ -152,7 +152,7 @@ signal_after (GtkWindow *window, GParamSpec spec)
> + }
> + 
> + void /* exported for GtkBuilder */
> +-signal_object (GtkButton *button, GParamSpec spec)
> ++signal_object (GtkButton *button, GParamSpec *spec)
> + {
> +   g_assert (GTK_IS_BUTTON (button));
> +   g_assert (object == 0);
> +@@ -162,7 +162,7 @@ signal_object (GtkButton *button, GParamSpec spec)
> + }
> + 
> + void /* exported for GtkBuilder */
> +-signal_object_after (GtkButton *button, GParamSpec spec)
> ++signal_object_after (GtkButton *button, GParamSpec *spec)
> + {
> +   g_assert (GTK_IS_BUTTON (button));
> +   g_assert (object == 1);
> +@@ -172,28 +172,28 @@ signal_object_after (GtkButton *button, GParamSpec spec)
> + }
> + 
> + void /* exported for GtkBuilder */
> +-signal_first (GtkButton *button, GParamSpec spec)
> ++signal_first (GtkButton *button, GParamSpec *spec)
> + {
> +   g_assert (normal == 0);
> +   normal = 10;
> + }
> + 
> + void /* exported for GtkBuilder */
> +-signal_second (GtkButton *button, GParamSpec spec)
> ++signal_second (GtkButton *button, GParamSpec *spec)
> + {
> +   g_assert (normal == 10);
> +   normal = 20;
> + }
> + 
> + void /* exported for GtkBuilder */
> +-signal_extra (GtkButton *button, GParamSpec spec)
> ++signal_extra (GtkButton *button, GParamSpec *spec)
> + {
> +   g_assert (normal == 20);
> +   normal = 30;
> + }
> + 
> + void /* exported for GtkBuilder */
> +-signal_extra2 (GtkButton *button, GParamSpec spec)
> ++signal_extra2 (GtkButton *button, GParamSpec *spec)
> + {
> +   g_assert (normal == 30);
> +   normal = 40;

Now in core-updates-frozen with commit
4b4e35a771cbcc7b72d28e9a4c6a0d6de2000175.

Thank you!

Closing.

Maxim




      parent reply	other threads:[~2021-11-12  5:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-11 17:07 [bug#50521] [PATCH core-updates-frozen] gnu: gtk+-2: Fix ‘builder’ test Thiago Jung Bauermann via Guix-patches via
2021-09-12  7:52 ` Guillaume Le Vaillant
2021-09-12 21:46   ` Thiago Jung Bauermann via Guix-patches via
2021-11-12  5:54 ` Maxim Cournoyer [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pmr5q5q9.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=50521-done@debbugs.gnu.org \
    --cc=bauermann@kolabnow.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).