Message ID | 20210911170732.137404-1-bauermann@kolabnow.com |
---|---|
State | Accepted |
Headers | show |
Series | [bug#50521,core-updates-frozen] gnu: gtk+-2: Fix ‘builder’ test | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
This patch rebuilds over 2900 packages, so maybe it could be pushed at the same time as #50174 (static gawk), #50239 (diffutils) and #50358 (rust booststrap). WDYT?
Hello Guillaume, Em domingo, 12 de setembro de 2021, às 04:52:03 -03, Guillaume Le Vaillant escreveu: > This patch rebuilds over 2900 packages, so maybe it could be pushed at > the same time as #50174 (static gawk), #50239 (diffutils) and #50358 > (rust booststrap). > WDYT? Wow, that is true. I should have checked that, but it hadn’t occured to me that this end-of-life toolkit could have so many dependents. Thanks for noticing.
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
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;