add patches to fix build with glib 2.22
spice-gtk configure checks for glib >= 2.22, but a few uses of features from glibs newer than 2.22 have crept in. These patches fixes these. They have been integrated upstream and should be part of the next spice-gtk releaseremotes/origin/el6
parent
c96a1d03f6
commit
508da75d23
|
@ -0,0 +1,76 @@
|
|||
From 866b8c784e346f6b131e6b95a60b30a05fdfd8cb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
|
||||
Date: Mon, 23 May 2011 10:43:47 +0200
|
||||
Subject: [PATCH] display: fix build error GLib <2.26
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=37443
|
||||
---
|
||||
gtk/display/gnome-rr.c | 46 +++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 files changed, 45 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/gtk/display/gnome-rr.c b/gtk/display/gnome-rr.c
|
||||
index beaf96e..ced073f 100644
|
||||
--- a/gtk/display/gnome-rr.c
|
||||
+++ b/gtk/display/gnome-rr.c
|
||||
@@ -75,6 +75,50 @@ static void gnome_rr_screen_initable_iface_init (GInitableIface *iface);
|
||||
G_DEFINE_TYPE_WITH_CODE (GnomeRRScreen, gnome_rr_screen, G_TYPE_OBJECT,
|
||||
G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, gnome_rr_screen_initable_iface_init))
|
||||
|
||||
+#if !GLIB_CHECK_VERSION(2,26,0)
|
||||
+#define G_DEFINE_BOXED_TYPE(TypeName, type_name, copy_func, free_func) G_DEFINE_BOXED_TYPE_WITH_CODE (TypeName, type_name, copy_func, free_func, {})
|
||||
+#define G_DEFINE_BOXED_TYPE_WITH_CODE(TypeName, type_name, copy_func, free_func, _C_) _G_DEFINE_BOXED_TYPE_BEGIN (TypeName, type_name, copy_func, free_func) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
|
||||
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
|
||||
+#define _G_DEFINE_BOXED_TYPE_BEGIN(TypeName, type_name, copy_func, free_func) \
|
||||
+GType \
|
||||
+type_name##_get_type (void) \
|
||||
+{ \
|
||||
+ static volatile gsize g_define_type_id__volatile = 0; \
|
||||
+ if (g_once_init_enter (&g_define_type_id__volatile)) \
|
||||
+ { \
|
||||
+ GType (* _g_register_boxed) \
|
||||
+ (const gchar *, \
|
||||
+ union \
|
||||
+ { \
|
||||
+ TypeName * (*do_copy_type) (TypeName *); \
|
||||
+ TypeName * (*do_const_copy_type) (const TypeName *); \
|
||||
+ GBoxedCopyFunc do_copy_boxed; \
|
||||
+ } __attribute__((__transparent_union__)), \
|
||||
+ union \
|
||||
+ { \
|
||||
+ void (* do_free_type) (TypeName *); \
|
||||
+ GBoxedFreeFunc do_free_boxed; \
|
||||
+ } __attribute__((__transparent_union__)) \
|
||||
+ ) = g_boxed_type_register_static; \
|
||||
+ GType g_define_type_id = \
|
||||
+ _g_register_boxed (g_intern_static_string (#TypeName), copy_func, free_func); \
|
||||
+ { /* custom code follows */
|
||||
+#else
|
||||
+#define _G_DEFINE_BOXED_TYPE_BEGIN(TypeName, type_name, copy_func, free_func) \
|
||||
+GType \
|
||||
+type_name##_get_type (void) \
|
||||
+{ \
|
||||
+ static volatile gsize g_define_type_id__volatile = 0; \
|
||||
+ if (g_once_init_enter (&g_define_type_id__volatile)) \
|
||||
+ { \
|
||||
+ GType g_define_type_id = \
|
||||
+ g_boxed_type_register_static (g_intern_static_string (#TypeName), \
|
||||
+ (GBoxedCopyFunc) copy_func, \
|
||||
+ (GBoxedFreeFunc) free_func); \
|
||||
+ { /* custom code follows */
|
||||
+#endif /* __GNUC__ */
|
||||
+#endif /* glib 2.26 */
|
||||
+
|
||||
G_DEFINE_BOXED_TYPE (GnomeRRCrtc, gnome_rr_crtc, crtc_copy, crtc_free)
|
||||
G_DEFINE_BOXED_TYPE (GnomeRROutput, gnome_rr_output, output_copy, output_free)
|
||||
G_DEFINE_BOXED_TYPE (GnomeRRMode, gnome_rr_mode, mode_copy, mode_free)
|
||||
@@ -497,7 +541,7 @@ gnome_rr_screen_get_timestamps (GnomeRRScreen *screen,
|
||||
guint32 *change_timestamp_ret,
|
||||
guint32 *config_timestamp_ret)
|
||||
{
|
||||
- GnomeRRScreenPrivate *priv;
|
||||
+ GnomeRRScreenPrivate *priv G_GNUC_UNUSED;
|
||||
|
||||
g_return_if_fail (GNOME_IS_RR_SCREEN (screen));
|
||||
|
||||
--
|
||||
1.7.5.1
|
|
@ -0,0 +1,21 @@
|
|||
commit e99a572494c6c785703fa007eab80697e765edab
|
||||
Author: Christophe Fergeau <cfergeau@redhat.com>
|
||||
Date: Mon May 23 14:15:53 2011 +0200
|
||||
|
||||
use g_object_notify instead of g_object_notify_by_spec
|
||||
|
||||
The latter was added in glib 2.26, and we only require glib 2.22
|
||||
|
||||
diff --git a/gtk/display/gnome-rr.c b/gtk/display/gnome-rr.c
|
||||
index beaf96e..1f8ef37 100644
|
||||
--- a/gtk/display/gnome-rr.c
|
||||
+++ b/gtk/display/gnome-rr.c
|
||||
@@ -340,7 +340,7 @@ gnome_rr_screen_set_property (GObject *gobject, guint property_id, const GValue
|
||||
{
|
||||
case SCREEN_PROP_GDK_SCREEN:
|
||||
priv->gdk_screen = g_value_get_object (value);
|
||||
- g_object_notify_by_pspec (gobject, screen_properties[SCREEN_PROP_GDK_SCREEN]);
|
||||
+ g_object_notify (gobject, "gdk-screen");
|
||||
return;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, property);
|
|
@ -0,0 +1,54 @@
|
|||
diff --git a/configure b/configure
|
||||
index 285ff7b..1a8e24a 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -19495,12 +19495,12 @@ if test -n "$GLIB2_CFLAGS"; then
|
||||
pkg_cv_GLIB2_CFLAGS="$GLIB2_CFLAGS"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.22\""; } >&5
|
||||
- ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.22") 2>&5
|
||||
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 glib-2.0 >= 2.22\""; } >&5
|
||||
+ ($PKG_CONFIG --exists --print-errors "gthread-2.0 glib-2.0 >= 2.22") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
- pkg_cv_GLIB2_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.22" 2>/dev/null`
|
||||
+ pkg_cv_GLIB2_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 glib-2.0 >= 2.22" 2>/dev/null`
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
@@ -19511,12 +19511,12 @@ if test -n "$GLIB2_LIBS"; then
|
||||
pkg_cv_GLIB2_LIBS="$GLIB2_LIBS"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.22\""; } >&5
|
||||
- ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.22") 2>&5
|
||||
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 glib-2.0 >= 2.22\""; } >&5
|
||||
+ ($PKG_CONFIG --exists --print-errors "gthread-2.0 glib-2.0 >= 2.22") 2>&5
|
||||
ac_status=$?
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||
test $ac_status = 0; }; then
|
||||
- pkg_cv_GLIB2_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.22" 2>/dev/null`
|
||||
+ pkg_cv_GLIB2_LIBS=`$PKG_CONFIG --libs "gthread-2.0 glib-2.0 >= 2.22" 2>/dev/null`
|
||||
else
|
||||
pkg_failed=yes
|
||||
fi
|
||||
@@ -19536,14 +19536,14 @@ else
|
||||
_pkg_short_errors_supported=no
|
||||
fi
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
- GLIB2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.22" 2>&1`
|
||||
+ GLIB2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gthread-2.0 glib-2.0 >= 2.22" 2>&1`
|
||||
else
|
||||
- GLIB2_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.22" 2>&1`
|
||||
+ GLIB2_PKG_ERRORS=`$PKG_CONFIG --print-errors "gthread-2.0 glib-2.0 >= 2.22" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$GLIB2_PKG_ERRORS" >&5
|
||||
|
||||
- as_fn_error $? "Package requirements (glib-2.0 >= 2.22) were not met:
|
||||
+ as_fn_error $? "Package requirements (gthread-2.0 glib-2.0 >= 2.22) were not met:
|
||||
|
||||
$GLIB2_PKG_ERRORS
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
--- a/gtk/controller/controller-0.6.c 2011-05-20 13:17:58.163125353 +0200
|
||||
+++ a/gtk/controller/controller.c 2011-05-20 13:17:35.111706219 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* controller.c generated by valac 0.11.7, the Vala compiler
|
||||
+/* controller.c generated by valac 0.12.0, the Vala compiler
|
||||
* generated from controller.vala, do not modify */
|
||||
|
||||
/* Copyright (C) 2011 Red Hat, Inc.*/
|
||||
@@ -169,14 +169,13 @@
|
||||
GError* _tmp2_;
|
||||
GSocketListener* _tmp3_;
|
||||
GSocketListener* listener;
|
||||
- gint _tmp4_;
|
||||
+ GUnixSocketAddress* _tmp4_;
|
||||
GUnixSocketAddress* _tmp5_;
|
||||
- GUnixSocketAddress* _tmp6_;
|
||||
- gboolean _tmp7_;
|
||||
+ gboolean _tmp6_;
|
||||
+ GSocketConnection* _tmp7_;
|
||||
GSocketConnection* _tmp8_;
|
||||
- GSocketConnection* _tmp9_;
|
||||
GSocketConnection* c;
|
||||
- GSocketConnection* _tmp10_;
|
||||
+ GSocketConnection* _tmp9_;
|
||||
GError * e;
|
||||
GError * _inner_error_;
|
||||
};
|
||||
@@ -950,12 +949,11 @@
|
||||
data->_tmp3_ = NULL;
|
||||
data->_tmp3_ = g_socket_listener_new ();
|
||||
data->listener = data->_tmp3_;
|
||||
- data->_tmp4_ = strlen (data->addr);
|
||||
- data->_tmp5_ = NULL;
|
||||
- data->_tmp5_ = (GUnixSocketAddress*) g_unix_socket_address_new_with_type (data->addr, data->_tmp4_, G_UNIX_SOCKET_ADDRESS_PATH);
|
||||
- data->_tmp6_ = data->_tmp5_;
|
||||
- g_socket_listener_add_address (data->listener, (GSocketAddress*) data->_tmp6_, G_SOCKET_TYPE_STREAM, G_SOCKET_PROTOCOL_DEFAULT, NULL, NULL, &data->_inner_error_);
|
||||
- _g_object_unref0 (data->_tmp6_);
|
||||
+ data->_tmp4_ = NULL;
|
||||
+ data->_tmp4_ = (GUnixSocketAddress*) g_unix_socket_address_new (data->addr);
|
||||
+ data->_tmp5_ = data->_tmp4_;
|
||||
+ g_socket_listener_add_address (data->listener, (GSocketAddress*) data->_tmp5_, G_SOCKET_TYPE_STREAM, G_SOCKET_PROTOCOL_DEFAULT, NULL, NULL, &data->_inner_error_);
|
||||
+ _g_object_unref0 (data->_tmp5_);
|
||||
if (data->_inner_error_ != NULL) {
|
||||
g_simple_async_result_set_from_error (data->_async_result, data->_inner_error_);
|
||||
g_error_free (data->_inner_error_);
|
||||
@@ -969,19 +967,19 @@
|
||||
return FALSE;
|
||||
}
|
||||
{
|
||||
- data->_tmp7_ = TRUE;
|
||||
+ data->_tmp6_ = TRUE;
|
||||
while (TRUE) {
|
||||
- if (!data->_tmp7_) {
|
||||
+ if (!data->_tmp6_) {
|
||||
}
|
||||
- data->_tmp7_ = FALSE;
|
||||
+ data->_tmp6_ = FALSE;
|
||||
data->_state_ = 1;
|
||||
g_socket_listener_accept_async (data->listener, NULL, spice_controller_listen_ready, data);
|
||||
return FALSE;
|
||||
_state_1:
|
||||
- data->_tmp8_ = NULL;
|
||||
- data->_tmp8_ = g_socket_listener_accept_finish (data->listener, data->_res_, NULL, &data->_inner_error_);
|
||||
- data->_tmp9_ = _g_object_ref0 (data->_tmp8_);
|
||||
- data->c = data->_tmp9_;
|
||||
+ data->_tmp7_ = NULL;
|
||||
+ data->_tmp7_ = g_socket_listener_accept_finish (data->listener, data->_res_, NULL, &data->_inner_error_);
|
||||
+ data->_tmp8_ = _g_object_ref0 (data->_tmp7_);
|
||||
+ data->c = data->_tmp8_;
|
||||
if (data->_inner_error_ != NULL) {
|
||||
g_simple_async_result_set_from_error (data->_async_result, data->_inner_error_);
|
||||
g_error_free (data->_inner_error_);
|
||||
@@ -995,8 +993,8 @@
|
||||
return FALSE;
|
||||
}
|
||||
data->self->priv->nclients = data->self->priv->nclients + 1;
|
||||
- data->_tmp10_ = _g_object_ref0 (data->c);
|
||||
- data->self->priv->clients = g_list_append (data->self->priv->clients, data->_tmp10_);
|
||||
+ data->_tmp9_ = _g_object_ref0 (data->c);
|
||||
+ data->self->priv->clients = g_list_append (data->self->priv->clients, data->_tmp9_);
|
||||
data->_state_ = 2;
|
||||
spice_controller_handle_client (data->self, data->c, spice_controller_listen_ready, data);
|
||||
return FALSE;
|
|
@ -28,7 +28,13 @@ BuildRequires: libtool
|
|||
|
||||
ExclusiveArch: %{ix86} x86_64
|
||||
|
||||
# Patches to fix build issues with glib 2.22, they have all been merged upstream
|
||||
Patch0: spice-gtk-controller-includes.patch
|
||||
Patch1: spice-gtk-0.6-vala-glib-226.patch
|
||||
Patch2: spice-gtk-0.6-g_define_boxed.patch
|
||||
Patch3: spice-gtk-0.6-g_object_notify_param_spec.patch
|
||||
Patch4: spice-gtk-0.6-link-with-gthread.patch
|
||||
|
||||
|
||||
%description
|
||||
Client libraries for SPICE desktop servers.
|
||||
|
@ -87,6 +93,10 @@ snappy is a tool to capture screen-shots of a SPICE desktop.
|
|||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1 -b .controller-includes
|
||||
%patch1 -p1 -b .vala
|
||||
%patch2 -p1 -b .gdefineboxed
|
||||
%patch3 -p1 -b .gobjectnotify
|
||||
%patch4 -p1 -b .gthread
|
||||
|
||||
%build
|
||||
|
||||
|
|
Loading…
Reference in New Issue