From 618975b3c1cb81971452a2264f1b710f2d503cf8 Mon Sep 17 00:00:00 2001 From: Patrick McLean Date: Thu, 20 Jun 2013 16:45:51 -0700 Subject: add in the eds patch from upstream, un-bzipped (?!?!) --- net-im/pidgin/Manifest | 3 +- net-im/pidgin/files/pidgin-eds-3.6.patch | 330 +++++++++++++++++++++++++++++++ net-im/pidgin/pidgin-2.10.7-r2.ebuild | 2 +- 3 files changed, 333 insertions(+), 2 deletions(-) create mode 100644 net-im/pidgin/files/pidgin-eds-3.6.patch diff --git a/net-im/pidgin/Manifest b/net-im/pidgin/Manifest index 8b116b8..74ab887 100644 --- a/net-im/pidgin/Manifest +++ b/net-im/pidgin/Manifest @@ -3,6 +3,7 @@ AUX pidgin-2.10.0-networkmanager-0.9.patch 1994 SHA256 d91ce4a7236ea9b0bc730ec07 AUX pidgin-2.10.0-utf8-validation.patch 908 SHA256 288acd1f638fa1e21e216d48f308ef5f0397ddea2c1309e767391411ab02fbf4 SHA512 605f95955a7b813465607966dece36db7b8e91b27c8d73caeb29159f4b3de0b6906be718aab537dbab1f1f9fca8afc7b0ca7b5827122dd30503e19fae02e9bcd WHIRLPOOL 01b1985dd8b9985dd2331c316d74823eb7a0cf2bd7bdbac2a1da232bf96a363f89b2b6ccf0c20d6bd7eb67c9299ed5b27018b23e87154d90a33ebbd6c0ea9242 AUX pidgin-2.10.7-fix-cap.patch 692 SHA256 4dbf4e8123d7b7550f99fb5b8fb97e98b44551750436ca5327f8257438400dcd SHA512 0a1dc0ceaf78416ecd409a4bdcecef83a48cbdea50314d55a6cb1e1cad06775e1e8ac23f069ef4ed8ca8b4f3bb99f184804fddf7812adfcba8c8920a9c6efdbc WHIRLPOOL 8beca2bcb10380034ccd461559e7504922613de19649ca045e88c19de452bc4beb4b47c4b9976cf24854edf502ce11e74de00f5add86025c4bd066e17e85a962 AUX pidgin-2.10.7-link_sasl_in_irc_plugin.patch 642 SHA256 8f91df48549004c80d5989bfdcc11f7a7805f3770b6aa2a5676d86eb334cf5b8 SHA512 3bc39f994473e01ab532e804481a858b0e1ddc3252a27fc29cb32c550e207699ee39da0057b6e86f4a33870b29f44b701a1614e93ff223930208ef0e8061fed1 WHIRLPOOL 5d0ce684e06fbe8c507310947696fed1910f631f93b0e71fc44610e06c6b1d93b966af89d4def15d8fcaa1b11001ab7066e94c732f58423046bc9e645816a91e +AUX pidgin-eds-3.6.patch 9895 SHA256 f7dcb08b14cbb2320a01afb59a815f8e11890cf9c4134e59f5551d60950b0feb SHA512 a936ef9c92f90ae6f82b41637bfb5434aaec459b5ebaf679676e1a5035a84ff88edad9a55aa09e8939c47b8634018036a62457b5dee6db821c63aba104b938a0 WHIRLPOOL 89b915ca597a44af6775c40a99e0cdd169c3e2737e356d6ecaf1eefb82439062ba2c902650c8fa82efbbce1fb6d14086204bd52abdf6da29de8d11576f1b26dd AUX pidgin-gnome-keyring-2.patch 7680 SHA256 aae63e57a7dc50b1232a606f7824dc655f561ed5ff7ef36607e18a18c98aa221 SHA512 e6c93e4c5fc0ea283b8e5b9d660cfb5e8ab502ebda115a95d900f8d864d35098658b3b98b79e26e8aa26f60e63a89bc748778c5188d5c1013c861148b786d669 WHIRLPOOL 09104c9f2dde20e034272b940a92a9339a3fb5e253d265a489c68f27ccb6d9195835a97aefcb29db3f5f9553e3a230b9daf3c4dfa2be1cfb00787402b3406456 DIST pidgin-2.10.7.tar.bz2 10069279 SHA256 eba32994eca20d1cf24a4261b059b2de71a1ec2dd0926e904074b0db49f7f192 SHA512 0f0d421f91be3b1577527f3609bff164d7c57a94338e18dca5d8b7d911634a98b9c0e8860f3e62026eba09a6afb3112a8cd6770a90c89afdb9fb40f83dd6f3e4 WHIRLPOOL 025a392ab069817e2fea07d0e9e7efeee006eaf4ce2e6571c49b851735309f3346bfdbf34c874f55b440b71fbbba0ac55029da727b1f731175d72efb2e74f3b4 -EBUILD pidgin-2.10.7-r2.ebuild 7402 SHA256 0a6a7906df1d135e32224da6ba8dab510bf5f899b684a08cf9058d82fb8f8678 SHA512 f31d7e40d98da70a0f6984e8426a1c61732bfbe863b1fe3d54cb677920d0f197a98dd02794438b7d1d11b3c90e04bef9952d005222bb8b4009fbe7a90c37863c WHIRLPOOL 657edb183841f37081ee0516bf8bb1489bb8b2f09536fe2f9e56b2d3be242212d4d11d1cca18bd047685c08151c2dabf30216c40bd73a00743dc1e91357d5518 +EBUILD pidgin-2.10.7-r2.ebuild 7398 SHA256 293abf9d22387c476eb121b876aa7224b713b54c27a871c49928320f067f6ff9 SHA512 dc730b1b2fd3fbeed19a87a918dba1a48dec9c09693c01f4a5fe912a824fbe2886d77929eb16be0567921323a24a11b45348bea9c8460edea041e71bb9a8e657 WHIRLPOOL 222d863c0ac110bcaffac671204bfa66dd642d3f871bd2fbfef1d336d838311ede5fdfab130e44e3eb83b3711cf8b10972374dfe9ff7ac087048f678393e1de0 diff --git a/net-im/pidgin/files/pidgin-eds-3.6.patch b/net-im/pidgin/files/pidgin-eds-3.6.patch new file mode 100644 index 0000000..b217907 --- /dev/null +++ b/net-im/pidgin/files/pidgin-eds-3.6.patch @@ -0,0 +1,330 @@ +diff --git a/pidgin/plugins/gevolution/add_buddy_dialog.c b/pidgin/plugins/gevolution/add_buddy_dialog.c +index 0169847..216bce2 100644 +--- a/pidgin/plugins/gevolution/add_buddy_dialog.c ++++ b/pidgin/plugins/gevolution/add_buddy_dialog.c +@@ -227,7 +227,7 @@ add_ims(GevoAddBuddyDialog *dialog, EContact *contact, const char *name, + } + + static void +-populate_treeview(GevoAddBuddyDialog *dialog, const gchar *uri) ++populate_treeview(GevoAddBuddyDialog *dialog, const gchar *uid) + { + EBookQuery *query; + EBook *book; +@@ -250,7 +250,7 @@ populate_treeview(GevoAddBuddyDialog *dialog, const gchar *uri) + + gtk_list_store_clear(dialog->model); + +- if (!gevo_load_addressbook(uri, &book, &err)) ++ if (!gevo_load_addressbook(uid, &book, &err)) + { + purple_debug_error("evolution", + "Error retrieving default addressbook: %s\n", err->message); +@@ -333,16 +333,16 @@ static void + addrbook_change_cb(GtkComboBox *combo, GevoAddBuddyDialog *dialog) + { + GtkTreeIter iter; +- const char *esource_uri; ++ const char *esource_uid; + + if (!gtk_combo_box_get_active_iter(combo, &iter)) + return; + + gtk_tree_model_get(GTK_TREE_MODEL(dialog->addrbooks), &iter, +- ADDRBOOK_COLUMN_URI, &esource_uri, ++ ADDRBOOK_COLUMN_UID, &esource_uid, + -1); + +- populate_treeview(dialog, esource_uri); ++ populate_treeview(dialog, esource_uid); + } + + static void +diff --git a/pidgin/plugins/gevolution/assoc-buddy.c b/pidgin/plugins/gevolution/assoc-buddy.c +index cbe5f90..ae18feb 100644 +--- a/pidgin/plugins/gevolution/assoc-buddy.c ++++ b/pidgin/plugins/gevolution/assoc-buddy.c +@@ -130,7 +130,7 @@ add_columns(GevoAssociateBuddyDialog *dialog) + } + + static void +-populate_treeview(GevoAssociateBuddyDialog *dialog, const gchar *uri) ++populate_treeview(GevoAssociateBuddyDialog *dialog, const gchar *uid) + { + EBook *book; + EBookQuery *query; +@@ -154,7 +154,7 @@ populate_treeview(GevoAssociateBuddyDialog *dialog, const gchar *uri) + + gtk_list_store_clear(dialog->model); + +- if (!gevo_load_addressbook(uri, &book, &err)) ++ if (!gevo_load_addressbook(uid, &book, &err)) + { + purple_debug_error("evolution", + "Error retrieving addressbook: %s\n", err->message); +@@ -241,16 +241,16 @@ static void + addrbook_change_cb(GtkComboBox *combo, GevoAssociateBuddyDialog *dialog) + { + GtkTreeIter iter; +- const char *esource_uri; ++ const char *esource_uid; + + if (!gtk_combo_box_get_active_iter(combo, &iter)) + return; + + gtk_tree_model_get(GTK_TREE_MODEL(dialog->addrbooks), &iter, +- ADDRBOOK_COLUMN_URI, &esource_uri, ++ ADDRBOOK_COLUMN_UID, &esource_uid, + -1); + +- populate_treeview(dialog, esource_uri); ++ populate_treeview(dialog, esource_uid); + } + + static void +diff --git a/pidgin/plugins/gevolution/eds-utils.c b/pidgin/plugins/gevolution/eds-utils.c +index 0ecb286..dbd9b76 100644 +--- a/pidgin/plugins/gevolution/eds-utils.c ++++ b/pidgin/plugins/gevolution/eds-utils.c +@@ -52,9 +52,9 @@ gevo_addrbooks_model_unref(GtkTreeModel *model) + void + gevo_addrbooks_model_populate(GtkTreeModel *model) + { +- ESourceList *addressbooks; ++ ESourceRegistry *registry; + GError *err = NULL; +- GSList *groups, *g; ++ GList *sources, *s; + GtkTreeIter iter; + GtkListStore *list; + +@@ -63,7 +63,9 @@ gevo_addrbooks_model_populate(GtkTreeModel *model) + + list = GTK_LIST_STORE(model); + +- if (!e_book_get_addressbooks(&addressbooks, &err)) ++ registry = e_source_registry_new_sync(NULL, &err); ++ ++ if (!registry) + { + purple_debug_error("evolution", + "Unable to fetch list of address books.\n"); +@@ -71,57 +73,53 @@ gevo_addrbooks_model_populate(GtkTreeModel *model) + gtk_list_store_append(list, &iter); + gtk_list_store_set(list, &iter, + ADDRBOOK_COLUMN_NAME, _("None"), +- ADDRBOOK_COLUMN_URI, NULL, ++ ADDRBOOK_COLUMN_UID, NULL, + -1); + ++ g_clear_error(&err); + return; + } + +- groups = e_source_list_peek_groups(addressbooks); ++ sources = e_source_registry_list_sources(registry, E_SOURCE_EXTENSION_ADDRESS_BOOK); + +- if (groups == NULL) ++ if (sources == NULL) + { ++ g_object_unref(registry); + gtk_list_store_append(list, &iter); + gtk_list_store_set(list, &iter, + ADDRBOOK_COLUMN_NAME, _("None"), +- ADDRBOOK_COLUMN_URI, NULL, ++ ADDRBOOK_COLUMN_UID, NULL, + -1); + + return; + } + +- for (g = groups; g != NULL; g = g->next) ++ for (s = sources; s != NULL; s = s->next) + { +- GSList *sources, *s; +- +- sources = e_source_group_peek_sources(g->data); +- +- for (s = sources; s != NULL; s = s->next) +- { +- ESource *source = E_SOURCE(s->data); ++ ESource *source = E_SOURCE(s->data); + +- g_object_ref(source); ++ g_object_ref(source); + +- gtk_list_store_append(list, &iter); +- gtk_list_store_set(list, &iter, +- ADDRBOOK_COLUMN_NAME, e_source_peek_name(source), +- ADDRBOOK_COLUMN_URI, e_source_get_uri(source), +- -1); +- } ++ gtk_list_store_append(list, &iter); ++ gtk_list_store_set(list, &iter, ++ ADDRBOOK_COLUMN_NAME, e_source_get_display_name(source), ++ ADDRBOOK_COLUMN_UID, e_source_get_uid(source), ++ -1); + } + +- g_object_unref(addressbooks); ++ g_object_unref(registry); ++ g_list_free_full(sources, g_object_unref); + } + + static EContact * +-gevo_run_query_in_uri(const gchar *uri, EBookQuery *query) ++gevo_run_query_in_source(ESource *source, EBookQuery *query) + { + EBook *book; + gboolean status; + GList *cards; + GError *err = NULL; + +- if (!gevo_load_addressbook(uri, &book, &err)) ++ if (!gevo_load_addressbook_from_source(source, &book, &err)) + { + purple_debug_error("evolution", + "Error retrieving addressbook: %s\n", err->message); +@@ -172,10 +170,10 @@ gevo_run_query_in_uri(const gchar *uri, EBookQuery *query) + EContact * + gevo_search_buddy_in_contacts(PurpleBuddy *buddy, EBookQuery *query) + { +- ESourceList *addressbooks; ++ ESourceRegistry *registry; + GError *err = NULL; + EBookQuery *full_query; +- GSList *groups, *g; ++ GList *sources, *s; + EContact *result; + EContactField protocol_field = gevo_prpl_get_field(buddy->account, buddy); + +@@ -207,7 +205,9 @@ gevo_search_buddy_in_contacts(PurpleBuddy *buddy, EBookQuery *query) + } + } + +- if (!e_book_get_addressbooks(&addressbooks, &err)) ++ registry = e_source_registry_new_sync(NULL, &err); ++ ++ if (!registry) + { + purple_debug_error("evolution", + "Unable to fetch list of address books.\n"); +@@ -217,30 +217,21 @@ gevo_search_buddy_in_contacts(PurpleBuddy *buddy, EBookQuery *query) + return NULL; + } + +- groups = e_source_list_peek_groups(addressbooks); +- if (groups == NULL) +- { +- g_object_unref(addressbooks); +- e_book_query_unref(full_query); +- return NULL; +- } ++ sources = e_source_registry_list_sources(registry, E_SOURCE_EXTENSION_ADDRESS_BOOK); + +- for (g = groups; g != NULL; g = g->next) ++ for (s = sources; s != NULL; s = s->next) + { +- GSList *sources, *s; +- sources = e_source_group_peek_sources(g->data); +- for (s = sources; s != NULL; s = s->next) +- { +- result = gevo_run_query_in_uri(e_source_get_uri(E_SOURCE(s->data)), full_query); +- if (result != NULL) { +- g_object_unref(addressbooks); +- e_book_query_unref(full_query); +- return result; +- } ++ result = gevo_run_query_in_source(E_SOURCE(s->data), full_query); ++ if (result != NULL) { ++ g_object_unref(registry); ++ g_list_free_full(sources, g_object_unref); ++ e_book_query_unref(full_query); ++ return result; + } + } + +- g_object_unref(addressbooks); ++ g_object_unref(registry); ++ g_list_free_full(sources, g_object_unref); + e_book_query_unref(full_query); + return NULL; + } +diff --git a/pidgin/plugins/gevolution/gevo-util.c b/pidgin/plugins/gevolution/gevo-util.c +index 8f97a7d..23ac7ed 100644 +--- a/pidgin/plugins/gevolution/gevo-util.c ++++ b/pidgin/plugins/gevolution/gevo-util.c +@@ -124,16 +124,39 @@ gevo_prpl_is_supported(PurpleAccount *account, PurpleBuddy *buddy) + } + + gboolean +-gevo_load_addressbook(const gchar* uri, EBook **book, GError **error) ++gevo_load_addressbook(const gchar* uid, EBook **book, GError **error) + { + gboolean result = FALSE; ++ ESourceRegistry *registry; ++ ESource *source; + + g_return_val_if_fail(book != NULL, FALSE); + +- if (uri == NULL) +- *book = e_book_new_system_addressbook(error); ++ registry = e_source_registry_new_sync(NULL, error); ++ ++ if (!registry) ++ return FALSE; ++ ++ if (uid == NULL) ++ source = e_source_registry_ref_default_address_book(registry); + else +- *book = e_book_new_from_uri(uri, error); ++ source = e_source_registry_ref_source(registry, uid); ++ ++ g_object_unref(registry); ++ ++ result = gevo_load_addressbook_from_source(source, book, error); ++ ++ g_object_unref(source); ++ ++ return result; ++} ++ ++gboolean ++gevo_load_addressbook_from_source(ESource *source, EBook **book, GError **error) ++{ ++ gboolean result = FALSE; ++ ++ *book = e_book_new(source, error); + + if (*book == NULL) + return FALSE; +diff --git a/pidgin/plugins/gevolution/gevolution.h b/pidgin/plugins/gevolution/gevolution.h +index 1b92b2b..1bd5208 100644 +--- a/pidgin/plugins/gevolution/gevolution.h ++++ b/pidgin/plugins/gevolution/gevolution.h +@@ -25,12 +25,12 @@ + # include "config.h" + #endif + +-#include ++#include + + enum + { + ADDRBOOK_COLUMN_NAME, +- ADDRBOOK_COLUMN_URI, ++ ADDRBOOK_COLUMN_UID, + NUM_ADDRBOOK_COLUMNS + }; + +@@ -123,7 +123,9 @@ GList *gevo_get_groups(void); + + EContactField gevo_prpl_get_field(PurpleAccount *account, PurpleBuddy *buddy); + gboolean gevo_prpl_is_supported(PurpleAccount *account, PurpleBuddy *buddy); +-gboolean gevo_load_addressbook(const gchar *uri, EBook **book, GError **error); ++gboolean gevo_load_addressbook(const gchar *uid, EBook **book, GError **error); ++gboolean gevo_load_addressbook_from_source(ESource *source, EBook **book, ++ GError **error); + char *gevo_get_email_for_buddy(PurpleBuddy *buddy); + + GevoAssociateBuddyDialog *gevo_associate_buddy_dialog_new(PurpleBuddy *buddy); diff --git a/net-im/pidgin/pidgin-2.10.7-r2.ebuild b/net-im/pidgin/pidgin-2.10.7-r2.ebuild index 8ec0371..338cf44 100644 --- a/net-im/pidgin/pidgin-2.10.7-r2.ebuild +++ b/net-im/pidgin/pidgin-2.10.7-r2.ebuild @@ -141,7 +141,7 @@ src_prepare() { epatch "${FILESDIR}/${PN}-2.10.0-gold.patch" \ "${FILESDIR}/${P}-fix-cap.patch" \ "${FILESDIR}/${P}-link_sasl_in_irc_plugin.patch" \ - "${FILESDIR}/${PN}-eds-3.6.patch.bz2" + "${FILESDIR}/${PN}-eds-3.6.patch" epatch_user -- cgit v1.2.3-65-gdbad