mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 22:08:16 -05:00
gnu: gtk+-2: Fix ‘builder’ test.
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. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
parent
af8b03b4e2
commit
4b4e35a771
3 changed files with 97 additions and 1 deletions
|
@ -1233,6 +1233,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/guile-email-fix-tests.patch \
|
%D%/packages/patches/guile-email-fix-tests.patch \
|
||||||
%D%/packages/patches/guile-ssh-fix-test-suite.patch \
|
%D%/packages/patches/guile-ssh-fix-test-suite.patch \
|
||||||
%D%/packages/patches/guile-ssh-read-error.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_PATH.patch \
|
||||||
%D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
|
%D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
|
||||||
%D%/packages/patches/gtk2-theme-paths.patch \
|
%D%/packages/patches/gtk2-theme-paths.patch \
|
||||||
|
|
|
@ -916,7 +916,8 @@ (define-public gtk+-2
|
||||||
"1nn6kks1zyvb5xikr9y2k7r9bwjy1g4b0m0s66532bclymbwfamc"))
|
"1nn6kks1zyvb5xikr9y2k7r9bwjy1g4b0m0s66532bclymbwfamc"))
|
||||||
(patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
|
(patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
|
||||||
"gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.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)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out" "bin" "doc" "debug"))
|
(outputs '("out" "bin" "doc" "debug"))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
|
|
94
gnu/packages/patches/gtk2-fix-builder-test.patch
Normal file
94
gnu/packages/patches/gtk2-fix-builder-test.patch
Normal file
|
@ -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;
|
Loading…
Reference in a new issue