summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-im/pidgin/files/pidgin-gnome-keyring.patch')
-rw-r--r--net-im/pidgin/files/pidgin-gnome-keyring.patch175
1 files changed, 0 insertions, 175 deletions
diff --git a/net-im/pidgin/files/pidgin-gnome-keyring.patch b/net-im/pidgin/files/pidgin-gnome-keyring.patch
deleted file mode 100644
index 8fe92ef..0000000
--- a/net-im/pidgin/files/pidgin-gnome-keyring.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-Index: pidgin-2.6.3/configure.ac
-===================================================================
---- pidgin-2.6.3.orig/configure.ac
-+++ pidgin-2.6.3/configure.ac
-@@ -1799,6 +1799,20 @@ if test "x$enable_nss" != "xno"; then
- [AC_HELP_STRING([--with-nss-libs=PREFIX], [specify location of Mozilla nss3 libs.])],
- [with_nss_libs="$withval"])
-
-+dnl #######################################################################
-+dnl # Check for gnome-keyring
-+dnl #--enable-gnome-keyring=(yes|no)
-+dnl #######################################################################
-+AC_ARG_ENABLE(gnome-keyring,
-+ AC_HELP_STRING([--enable-gnome-keyring],
-+ [use gnome keyring for storing password [default=no]]),,
-+ enable_gnome_keyring=no)
-+if test "x$enable_gnome_keyring" = "xyes"; then
-+ PKG_CHECK_MODULES(PURPLE_KEYRING,
-+ gnome-keyring-1,
-+ AC_DEFINE(PURPLE_ENABLE_KEYRING, [], [Set if we should use gnome-keyring]))
-+fi
-+
-
- if test -n "$with_nspr_includes" || test -n "$with_nspr_libs" || \
- test -n "$with_nss_includes" || test -n "$with_nss_libs" ||
-Index: pidgin-2.6.3/libpurple/Makefile.am
-===================================================================
---- pidgin-2.6.3.orig/libpurple/Makefile.am
-+++ pidgin-2.6.3/libpurple/Makefile.am
-@@ -291,6 +291,7 @@ libpurple_la_LIBADD = \
- $(GLIB_LIBS) \
- $(LIBXML_LIBS) \
- $(NETWORKMANAGER_LIBS) \
-+ $(PURPLE_KEYRING_LIBS) \
- $(INTLLIBS) \
- $(FARSIGHT_LIBS) \
- $(GSTREAMER_LIBS) \
-@@ -306,6 +307,7 @@ AM_CPPFLAGS = \
- $(GLIB_CFLAGS) \
- $(DEBUG_CFLAGS) \
- $(DBUS_CFLAGS) \
-+ $(PURPLE_KEYRING_CFLAGS) \
- $(LIBXML_CFLAGS) \
- $(FARSIGHT_CFLAGS) \
- $(GSTREAMER_CFLAGS) \
-Index: pidgin-2.6.3/libpurple/account.c
-===================================================================
---- pidgin-2.6.3.orig/libpurple/account.c
-+++ pidgin-2.6.3/libpurple/account.c
-@@ -49,6 +49,13 @@ typedef struct
- #define PURPLE_ACCOUNT_GET_PRIVATE(account) \
- ((PurpleAccountPrivate *) (account->priv))
-
-+#ifdef PURPLE_ENABLE_KEYRING
-+#include <gnome-keyring.h>
-+
-+static char * purple_account_get_password_from_keyring (const char *_prpl, const char *_user);
-+static gboolean purple_account_set_password_in_keyring (const char *_prpl, const char *_user, const char *password);
-+#endif
-+
- /* TODO: Should use PurpleValue instead of this? What about "ui"? */
- typedef struct
- {
-@@ -378,8 +385,13 @@ account_to_xmlnode(PurpleAccount *accoun
- if (purple_account_get_remember_password(account) &&
- ((tmp = purple_account_get_password(account)) != NULL))
- {
-+#ifdef PURPLE_ENABLE_KEYRING
-+ purple_account_set_password_in_keyring( purple_account_get_protocol_id(account),
-+ purple_account_get_username(account), tmp);
-+#else
- child = xmlnode_new_child(node, "password");
- xmlnode_insert_data(child, tmp, -1);
-+#endif
- }
-
- if ((tmp = purple_account_get_alias(account)) != NULL)
-@@ -828,17 +840,30 @@ parse_account(xmlnode *node)
- }
-
- ret = purple_account_new(name, _purple_oscar_convert(name, protocol_id)); /* XXX: */
-- g_free(name);
-- g_free(protocol_id);
--
-- /* Read the password */
-- child = xmlnode_get_child(node, "password");
-- if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL))
-+ gboolean got_pwd = FALSE;
-+#ifdef PURPLE_ENABLE_KEYRING
-+ data = purple_account_get_password_from_keyring(protocol_id, name);
-+ if (data)
- {
-+ got_pwd = TRUE;
- purple_account_set_remember_password(ret, TRUE);
- purple_account_set_password(ret, data);
- g_free(data);
- }
-+#endif
-+ if (!got_pwd)
-+ {
-+ /* Read the password */
-+ child = xmlnode_get_child(node, "password");
-+ if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL))
-+ {
-+ purple_account_set_remember_password(ret, TRUE);
-+ purple_account_set_password(ret, data);
-+ g_free(data);
-+ }
-+ }
-+ g_free(name);
-+ g_free(protocol_id);
-
- /* Read the alias */
- child = xmlnode_get_child(node, "alias");
-@@ -2873,3 +2898,60 @@ purple_accounts_uninit(void)
- purple_signals_disconnect_by_handle(handle);
- purple_signals_unregister_by_instance(handle);
- }
-+
-+#ifdef PURPLE_ENABLE_KEYRING
-+static char *
-+purple_account_get_password_from_keyring(const char *_prpl, const char *_user)
-+{
-+ GnomeKeyringNetworkPasswordData *found_item;
-+ GnomeKeyringResult result;
-+ GList *matches;
-+ char *password;
-+
-+ matches = NULL;
-+
-+ result = gnome_keyring_find_network_password_sync (
-+ _user, /* user */
-+ NULL, /* domain */
-+ "gaim.local", /* server */
-+ NULL, /* object */
-+ _prpl, /* protocol */
-+ NULL, /* authtype */
-+ 1863, /* port */
-+ &matches);
-+
-+ if (result != GNOME_KEYRING_RESULT_OK)
-+ return NULL;
-+
-+ g_assert (matches != NULL && matches->data != NULL);
-+
-+ found_item = (GnomeKeyringNetworkPasswordData *) matches->data;
-+
-+ password = g_strdup (found_item->password);
-+
-+ gnome_keyring_network_password_list_free (matches);
-+
-+ return password;
-+}
-+
-+static gboolean
-+purple_account_set_password_in_keyring (const char *_prpl, const char *_user, const char *_password)
-+{
-+ GnomeKeyringResult result;
-+ guint32 item_id;
-+
-+ result = gnome_keyring_set_network_password_sync (
-+ NULL, /* default keyring */
-+ _user, /* user */
-+ NULL, /* domain */
-+ "gaim.local", /* server */
-+ NULL, /* object */
-+ _prpl, /* protocol */
-+ NULL, /* authtype */
-+ 1863, /* port */
-+ _password, /* password */
-+ &item_id);
-+
-+ return result == GNOME_KEYRING_RESULT_OK;
-+}
-+#endif