[NetworkManager-openconnect] Fix glib API breakage
David Woodhouse
dwmw2 at fedoraproject.org
Fri Nov 11 00:27:49 UTC 2011
commit 934dd4184568aa758839d5b1209ad2d4030064c0
Author: David Woodhouse <David.Woodhouse at intel.com>
Date: Fri Nov 11 00:26:58 2011 +0000
Fix glib API breakage
NetworkManager-openconnect.spec | 7 ++-
fix-glib-fuckage.patch | 168 +++++++++++++++++++++++++++++++++++++++
2 files changed, 174 insertions(+), 1 deletions(-)
---
diff --git a/NetworkManager-openconnect.spec b/NetworkManager-openconnect.spec
index 670acaf..a8a5115 100644
--- a/NetworkManager-openconnect.spec
+++ b/NetworkManager-openconnect.spec
@@ -9,13 +9,14 @@
Summary: NetworkManager VPN integration for openconnect
Name: NetworkManager-openconnect
Version: 0.9.0
-Release: 4%{snapshot}%{?dist}
+Release: 5%{snapshot}%{?dist}
License: GPLv2+, LGPLv2.1
Group: System Environment/Base
URL: http://www.gnome.org/projects/NetworkManager/
Source: %{name}-%{realversion}%{snapshot}.tar.bz2
Patch0: 0001-Look-for-openconnect-binary-in-usr-sbin-too.patch
Patch1: 0001-Fix-build-failure-include-glib.h-not-glib-gtypes.h-d.patch
+Patch2: fix-glib-fuckage.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-root
@@ -49,6 +50,7 @@ with NetworkManager and the GNOME desktop
%setup -q -n NetworkManager-openconnect-%{realversion}
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%build
autoreconf
@@ -105,6 +107,9 @@ fi
%{_datadir}/gnome-vpn-properties/openconnect/nm-openconnect-dialog.ui
%changelog
+* Tue Nov 08 2011 David Woodhouse <David.Woodhouse at intel.com> - 0.9.0-5
+- Deal with stupid premature glib API breakage.
+
* Tue Nov 08 2011 David Woodhouse <David.Woodhouse at intel.com> - 0.9.0-4
- Fix build failure due to including <glib/gtypes.h> directly.
diff --git a/fix-glib-fuckage.patch b/fix-glib-fuckage.patch
new file mode 100644
index 0000000..89edc67
--- /dev/null
+++ b/fix-glib-fuckage.patch
@@ -0,0 +1,168 @@
+commit 50af1fcf4fdb34b45799bbaa07be68b8adc8007b
+Author: David Woodhouse <David.Woodhouse at intel.com>
+Date: Fri Nov 11 00:23:38 2011 +0000
+
+ Handle stupid premature GCond and GMutex API breakage
+
+ Gr.
+
+commit c6d92c3e64898ea62789def04b86752dec904326
+Author: David Woodhouse <David.Woodhouse at intel.com>
+Date: Thu Nov 10 23:53:58 2011 +0000
+
+ Drop g_thread_init()
+
+commit b2a5782abc44710345ad6f907b7d855d81061ee5
+Author: David Woodhouse <David.Woodhouse at intel.com>
+Date: Thu Nov 10 23:52:55 2011 +0000
+
+ Switch to gtk_box_new()
+
+diff --git a/auth-dialog/main.c b/auth-dialog/main.c
+index ecf7d77..0b5b5d1 100644
+--- a/auth-dialog/main.c
++++ b/auth-dialog/main.c
+@@ -109,6 +109,12 @@ typedef struct auth_ui_data {
+
+ GCond *cert_response_changed;
+ enum certificate_response cert_response;
++
++#if GLIB_CHECK_VERSION (2,31,0)
++ /* Ick. FFS, why does glib deprecate stuff so quickly? */
++ GCond _gconds[3];
++ GMutex _gmutex;
++#endif
+ } auth_ui_data;
+
+ enum {
+@@ -134,7 +140,11 @@ static void ssl_box_add_error(auth_ui_data *ui_data, const char *msg)
+ {
+ GtkWidget *hbox, *text, *image;
+
++#if GTK_CHECK_VERSION(3,1,6)
++ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
++#else
+ hbox = gtk_hbox_new(FALSE, 8);
++#endif
+ gtk_box_pack_start(GTK_BOX(ui_data->ssl_box), hbox, FALSE, FALSE, 0);
+
+ image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_ERROR,
+@@ -151,7 +161,11 @@ static void ssl_box_add_notice(auth_ui_data *ui_data, const char *msg)
+ {
+ GtkWidget *hbox, *text, *image;
+
++#if GTK_CHECK_VERSION(3,1,6)
++ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
++#else
+ hbox = gtk_hbox_new(FALSE, 8);
++#endif
+ gtk_box_pack_start(GTK_BOX(ui_data->ssl_box), hbox, FALSE, FALSE, 0);
+
+ image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_WARNING,
+@@ -291,7 +305,11 @@ static gboolean ui_write_prompt (ui_fragment_data *data)
+ visible = (data->opt->type == OC_FORM_OPT_TEXT);
+ }
+
++#if GTK_CHECK_VERSION(3,1,6)
++ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++#else
+ hbox = gtk_hbox_new(FALSE, 0);
++#endif
+ gtk_box_pack_start(GTK_BOX(data->ui_data->ssl_box), hbox, FALSE, FALSE, 0);
+
+ text = gtk_label_new(label);
+@@ -323,7 +341,11 @@ static gboolean ui_add_select (ui_fragment_data *data)
+ struct oc_form_opt_select *sopt = (void *)data->opt;
+ int i;
+
++#if GTK_CHECK_VERSION(3,1,6)
++ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
++#else
+ hbox = gtk_hbox_new(FALSE, 0);
++#endif
+ gtk_box_pack_start(GTK_BOX(data->ui_data->ssl_box), hbox, FALSE, FALSE, 0);
+
+ text = gtk_label_new(data->opt->label);
+@@ -1219,12 +1241,20 @@ static void build_main_dialog(auth_ui_data *ui_data)
+ G_CALLBACK(gtk_main_quit), NULL);
+ g_free(title);
+
++#if GTK_CHECK_VERSION(3,1,6)
++ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
++#else
+ vbox = gtk_vbox_new(FALSE, 8);
++#endif
+ gtk_box_pack_start(GTK_BOX (gtk_dialog_get_content_area(GTK_DIALOG (ui_data->dialog))), vbox, TRUE, TRUE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 8);
+ gtk_widget_show(vbox);
+
++#if GTK_CHECK_VERSION(3,1,6)
++ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);
++#else
+ hbox = gtk_hbox_new(FALSE, 4);
++#endif
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+ gtk_widget_show(hbox);
+
+@@ -1260,7 +1290,11 @@ static void build_main_dialog(auth_ui_data *ui_data)
+ gtk_widget_set_size_request(frame, -1, -1);
+ gtk_widget_show(frame);
+
++#if GTK_CHECK_VERSION(3,1,6)
++ frame_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4);
++#else
+ frame_box = gtk_vbox_new(FALSE, 4);
++#endif
+ gtk_container_set_border_width(GTK_CONTAINER(frame_box), 8);
+ gtk_container_add(GTK_CONTAINER(frame), frame_box);
+ gtk_widget_show(frame_box);
+@@ -1274,11 +1308,19 @@ static void build_main_dialog(auth_ui_data *ui_data)
+ gtk_widget_set_sensitive(ui_data->getting_form_label, FALSE);
+ gtk_box_pack_start(GTK_BOX(frame_box), ui_data->getting_form_label, FALSE, FALSE, 0);
+
++#if GTK_CHECK_VERSION(3,1,6)
++ ui_data->ssl_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4);
++#else
+ ui_data->ssl_box = gtk_vbox_new(FALSE, 4);
++#endif
+ gtk_box_pack_start(GTK_BOX(frame_box), ui_data->ssl_box, FALSE, FALSE, 0);
+ gtk_widget_show(ui_data->ssl_box);
+
++#if GTK_CHECK_VERSION(3,1,6)
++ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
++#else
+ hbox = gtk_hbox_new (FALSE, 6);
++#endif
+ gtk_box_pack_end(GTK_BOX(frame_box), hbox, FALSE, FALSE, 0);
+ gtk_widget_show(hbox);
+
+@@ -1329,10 +1371,21 @@ static auth_ui_data *init_ui_data (char *vpn_name, GHashTable *options, GHashTab
+ ui_data->retval = 1;
+
+ ui_data->form_entries = g_queue_new();
++#if GLIB_CHECK_VERSION(2,31,0)
++ ui_data->form_mutex = &ui_data->_gmutex;
++ ui_data->form_retval_changed = &ui_data->_gconds[0];
++ ui_data->form_shown_changed = &ui_data->_gconds[1];
++ ui_data->cert_response_changed = &ui_data->_gconds[2];
++ g_mutex_init(ui_data->form_mutex);
++ g_cond_init(ui_data->form_retval_changed);
++ g_cond_init(ui_data->form_shown_changed);
++ g_cond_init(ui_data->cert_response_changed);
++#else
+ ui_data->form_mutex = g_mutex_new();
+ ui_data->form_retval_changed = g_cond_new();
+ ui_data->form_shown_changed = g_cond_new();
+ ui_data->cert_response_changed = g_cond_new();
++#endif
+ ui_data->vpn_name = vpn_name;
+ ui_data->options = options;
+ ui_data->secrets = secrets;
+@@ -1424,7 +1477,6 @@ int main (int argc, char **argv)
+ return 1;
+ }
+
+- g_thread_init (NULL);
+ gtk_init(0, NULL);
+
+ _ui_data = init_ui_data(vpn_name, options, secrets);
More information about the scm-commits
mailing list