From 81def8e6e9211b11f2c9965afc7516f82af08f09 Mon Sep 17 00:00:00 2001 From: Mario Blättermann Date: Oct 18 2015 10:24:08 +0000 Subject: New upstream version --- diff --git a/.gitignore b/.gitignore index 99f900b..45bb07d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /modem-manager-gui-0.0.16.tar.gz /modem-manager-gui-0.0.17.1.tar.gz +/modem-manager-gui-0.0.18.tar.gz diff --git a/modem-manager-gui-0.0.17.1-fix-libebook-api-break-v2.patch b/modem-manager-gui-0.0.17.1-fix-libebook-api-break-v2.patch deleted file mode 100644 index 211807e..0000000 --- a/modem-manager-gui-0.0.17.1-fix-libebook-api-break-v2.patch +++ /dev/null @@ -1,964 +0,0 @@ ---- src/addressbooks.c 2014-08-28 15:04:24.000000000 +0400 -+++ src/addressbooks.c 2015-05-01 20:23:52.941628000 +0300 -@@ -36,6 +36,8 @@ - #include "vcard.h" - #include "addressbooks.h" - -+#define MMGUI_ADDRESSBOOKS_GNOME_CONNECT_TIMEOUT 15 -+ - #define MMGUI_ADDRESSBOOKS_AKONADI_LINK_PATH "%s/.local/share/akonadi/socket-localhost" - #define MMGUI_ADDRESSBOOKS_AKONADI_SOCKET_PATH "%s/akonadiserver.socket" - #define MMGUI_ADDRESSBOOKS_AKONADI_DBUS_INTERFACE "org.freedesktop.Akonadi.Control" -@@ -78,7 +80,6 @@ struct _mmgui_addressbooks_akonadi_colle - - typedef struct _mmgui_addressbooks_akonadi_collection *mmgui_addressbooks_akonadi_collection_t; - -- - //KDE (Akonadi) - static gboolean mmgui_addressbooks_session_service_activate(gchar *interface, guint *status); - static gint mmgui_addressbooks_open_kde_socket(void); -@@ -95,7 +96,7 @@ static guint mmgui_addressbooks_akonadi_ - static gboolean mmgui_addressbooks_get_kde_contacts(mmgui_addressbooks_t addressbooks); - //GNOME (Evolution data server) - static void mmgui_addressbooks_get_gnome_contacts_foreach(gpointer data, gpointer user_data); --static gboolean mmgui_addressbooks_get_gnome_contacts(mmgui_addressbooks_t addressbooks); -+static gboolean mmgui_addressbooks_get_gnome_contacts(mmgui_addressbooks_t addressbooks, mmgui_libpaths_cache_t libcache); - //Other - static void mmgui_addressbooks_free_contacts_list_foreach(gpointer data, gpointer user_data); - -@@ -787,7 +788,7 @@ static void mmgui_addressbooks_get_gnome - g_list_free(emails); - } - --static gboolean mmgui_addressbooks_get_gnome_contacts(mmgui_addressbooks_t addressbooks) -+static gboolean mmgui_addressbooks_get_gnome_contacts(mmgui_addressbooks_t addressbooks, mmgui_libpaths_cache_t libcache) - { - EBookQuery *queryelements[2]; - EBookQuery *query; -@@ -802,12 +803,17 @@ static gboolean mmgui_addressbooks_get_g - EBook *book; - GList *dcontacts; - -- if (addressbooks == NULL) return FALSE; -+ if ((addressbooks == NULL) || (libcache == NULL)) return FALSE; - if (!addressbooks->gnomesupported) return FALSE; - if (addressbooks->ebookmodule == NULL) return FALSE; - - error = NULL; - -+ if (!mmgui_libpaths_cache_check_library_version(libcache, "libebook-1.2", 12, 3, 0)) { -+ g_debug("GNOME contacts API isn't supported\n"); -+ return FALSE; -+ } -+ - queryelements[0] = (addressbooks->e_book_query_field_exists)(E_CONTACT_PHONE_HOME); - queryelements[1] = (addressbooks->e_book_query_field_exists)(E_CONTACT_PHONE_MOBILE); - -@@ -817,39 +823,63 @@ static gboolean mmgui_addressbooks_get_g - return FALSE; - } - -- if (addressbooks->e_book_new_system_addressbook != NULL) { -- g_debug("Using old GNOME contacts API\n"); -- book = (addressbooks->e_book_new_system_addressbook)(&error); -- if (book == NULL) { -+ if (mmgui_libpaths_cache_check_library_version(libcache, "libebook-1.2", 14, 3, 0)) { -+ g_debug("Using GNOME contacts API version 3.6 ... ?\n"); -+ registry = (addressbooks->e_source_registry_new_sync)(NULL, &error); -+ if (registry == NULL) { - (addressbooks->e_book_query_unref)(query); -- g_debug("Failed to load GNOME system addressbook: %s\n", error->message); -+ g_debug("Failed to get ESourceRegistry: %s\n", error->message); - g_error_free(error); - return FALSE; - } - -- if (!(addressbooks->e_book_open)(book, TRUE, &error)) { -+ source = (addressbooks->e_source_registry_ref_builtin_address_book)(registry); -+ if (source == NULL) { - (addressbooks->e_book_query_unref)(query); -- g_debug("Failed to load GNOME system addressbook: %s\n", error->message); -- g_error_free(error); -+ g_debug("Failed to get ESource\n"); - return FALSE; - } - -- source = (addressbooks->e_book_get_source)(book); -+ addressbooks->gnomesourcename = (addressbooks->e_source_get_display_name)(source); - -- if (addressbooks->e_source_get_display_name != NULL) { -- addressbooks->gnomesourcename = (addressbooks->e_source_get_display_name)(source); -+ if (mmgui_libpaths_cache_check_library_version(libcache, "libebook-1.2", 16, 3, 0)) { -+ /*Version 3.16 ... ?*/ -+ client = (EBookClient *)(addressbooks->e_book_client_connect_sync316)(source, MMGUI_ADDRESSBOOKS_GNOME_CONNECT_TIMEOUT, NULL, &error); -+ if (client == NULL) { -+ (addressbooks->e_book_query_unref)(query); -+ g_debug("Failed to get EBookClient: %s\n", error->message); -+ g_error_free(error); -+ return FALSE; -+ } - } else { -- addressbooks->gnomesourcename = ""; -+ /*Version 3.8 ... 3.16*/ -+ client = (EBookClient *)(addressbooks->e_book_client_connect_sync)(source, NULL, &error); -+ if (client == NULL) { -+ (addressbooks->e_book_query_unref)(query); -+ g_debug("Failed to get EBookClient: %s\n", error->message); -+ g_error_free(error); -+ return FALSE; -+ } - } - -- if (!(addressbooks->e_book_get_contacts)(book, query, &dcontacts, &error)) { -+ s = (addressbooks->e_book_query_to_string)(query); -+ if (s == NULL) { - (addressbooks->e_book_query_unref)(query); -- g_debug("Failed to get query GNOME addressbook results: %s\n", error->message); -+ g_debug("Failed to get GNOME addressbook request in string format\n"); -+ return FALSE; -+ } -+ -+ g_debug("GNOME addressbook request: %s\n", s); -+ -+ if (!(addressbooks->e_book_client_get_contacts_sync)(client, s, &scontacts, NULL, &error)) { -+ (addressbooks->e_book_query_unref)(query); -+ g_debug("Failed to get GNOME addressbook query results: %s\n", error->message); - g_error_free(error); - return FALSE; - } -- } else { -- g_debug("Using new GNOME contacts API\n"); -+ } else if (mmgui_libpaths_cache_check_library_version(libcache, "libebook-1.2", 13, 3, 0)) { -+ /*Versions 3.4 ... 3.8*/ -+ g_debug("Using GNOME contacts API version 3.4 .. 3.6\n"); - registry = (addressbooks->e_source_registry_new_sync)(NULL, &error); - if (registry == NULL) { - (addressbooks->e_book_query_unref)(query); -@@ -865,37 +895,21 @@ static gboolean mmgui_addressbooks_get_g - return FALSE; - } - -- if (addressbooks->e_source_get_display_name != NULL) { -- addressbooks->gnomesourcename = (addressbooks->e_source_get_display_name)(source); -- } else { -- addressbooks->gnomesourcename = ""; -+ addressbooks->gnomesourcename = (addressbooks->e_source_get_display_name)(source); -+ -+ client = (addressbooks->e_book_client_new)(source, &error); -+ if (client == NULL) { -+ (addressbooks->e_book_query_unref)(query); -+ g_debug("Failed to get EBookClient: %s\n", error->message); -+ g_error_free(error); -+ return FALSE; - } - -- if (addressbooks->e_book_client_connect_sync != NULL) { -- /*Version 3.8*/ -- client = (EBookClient *)(addressbooks->e_book_client_connect_sync)(source, NULL, &error); -- if (client == NULL) { -- (addressbooks->e_book_query_unref)(query); -- g_debug("Failed to get EBookClient: %s\n", error->message); -- g_error_free(error); -- return FALSE; -- } -- } else { -- /*Versions 3.2 ... 3.6*/ -- client = (addressbooks->e_book_client_new)(source, &error); -- if (client == NULL) { -- (addressbooks->e_book_query_unref)(query); -- g_debug("Failed to get EBookClient: %s\n", error->message); -- g_error_free(error); -- return FALSE; -- } -- -- if (!(addressbooks->e_client_open_sync)((EClient *)client, TRUE, NULL, &error)) { -- (addressbooks->e_book_query_unref)(query); -- g_debug("Failed to open EBookClient: %s\n", error->message); -- g_error_free(error); -- return FALSE; -- } -+ if (!(addressbooks->e_client_open_sync)((EClient *)client, TRUE, NULL, &error)) { -+ (addressbooks->e_book_query_unref)(query); -+ g_debug("Failed to open EBookClient: %s\n", error->message); -+ g_error_free(error); -+ return FALSE; - } - - s = (addressbooks->e_book_query_to_string)(query); -@@ -913,21 +927,49 @@ static gboolean mmgui_addressbooks_get_g - g_error_free(error); - return FALSE; - } -+ } else { -+ /*Versions 3.0 ... 3.4*/ -+ g_debug("Using GNOME contacts API version 3.0 .. 3.4\n"); -+ book = (addressbooks->e_book_new_system_addressbook)(&error); -+ if (book == NULL) { -+ (addressbooks->e_book_query_unref)(query); -+ g_debug("Failed to load GNOME system addressbook: %s\n", error->message); -+ g_error_free(error); -+ return FALSE; -+ } -+ -+ if (!(addressbooks->e_book_open)(book, TRUE, &error)) { -+ (addressbooks->e_book_query_unref)(query); -+ g_debug("Failed to load GNOME system addressbook: %s\n", error->message); -+ g_error_free(error); -+ return FALSE; -+ } -+ -+ source = (addressbooks->e_book_get_source)(book); -+ -+ addressbooks->gnomesourcename = (addressbooks->e_source_get_display_name)(source); -+ -+ if (!(addressbooks->e_book_get_contacts)(book, query, &dcontacts, &error)) { -+ (addressbooks->e_book_query_unref)(query); -+ g_debug("Failed to get query GNOME addressbook results: %s\n", error->message); -+ g_error_free(error); -+ return FALSE; -+ } - } - - (addressbooks->e_book_query_unref)(query); - -- if (addressbooks->e_book_new_system_addressbook != NULL) { -- if (dcontacts != NULL) { -+ if (mmgui_libpaths_cache_check_library_version(libcache, "libebook-1.2", 13, 3, 0)) { -+ if (scontacts != NULL) { - addressbooks->counter = 0; -- g_list_foreach(dcontacts, (GFunc)mmgui_addressbooks_get_gnome_contacts_foreach, addressbooks); -+ g_slist_foreach(scontacts, (GFunc)mmgui_addressbooks_get_gnome_contacts_foreach, addressbooks); - } else { - g_debug("No suitable contacts found\n"); - } - } else { -- if (scontacts != NULL) { -+ if (dcontacts != NULL) { - addressbooks->counter = 0; -- g_slist_foreach(scontacts, (GFunc)mmgui_addressbooks_get_gnome_contacts_foreach, addressbooks); -+ g_list_foreach(dcontacts, (GFunc)mmgui_addressbooks_get_gnome_contacts_foreach, addressbooks); - } else { - g_debug("No suitable contacts found\n"); - } -@@ -941,6 +983,7 @@ static gboolean mmgui_addressbooks_get_g - mmgui_addressbooks_t mmgui_addressbooks_new(mmgui_libpaths_cache_t libcache) - { - mmgui_addressbooks_t addressbooks; -+ gpointer *connectfunc; - gboolean libopened; - guint akonadistatus; - -@@ -951,79 +994,100 @@ mmgui_addressbooks_t mmgui_addressbooks_ - addressbooks->gnomesupported = FALSE; - addressbooks->gnomecontacts = NULL; - -- /*Open module*/ -- addressbooks->ebookmodule = g_module_open(mmgui_libpaths_cache_get_library_name(libcache, "libebook-1.2"), G_MODULE_BIND_LAZY); -- -- if (addressbooks->ebookmodule != NULL) { -- libopened = TRUE; -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_field_exists", (gpointer *)&(addressbooks->e_book_query_field_exists)); -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_or", (gpointer *)&(addressbooks->e_book_query_or)); -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_unref", (gpointer *)&(addressbooks->e_book_query_unref)); -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_contact_get_const", (gpointer *)&(addressbooks->e_contact_get_const)); -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_contact_get", (gpointer *)&(addressbooks->e_contact_get)); -- if (g_module_symbol(addressbooks->ebookmodule, "e_book_new_system_addressbook", (gpointer *)&(addressbooks->e_book_new_system_addressbook))) { -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_open", (gpointer *)&(addressbooks->e_book_open)); -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_get_contacts", (gpointer *)&(addressbooks->e_book_get_contacts)); -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_get_source", (gpointer *)&(addressbooks->e_book_get_source)); -- /*Unused functions*/ -- addressbooks->e_source_registry_new_sync = NULL; -- addressbooks->e_source_registry_ref_builtin_address_book = NULL; -- addressbooks->e_book_client_new = NULL; -- addressbooks->e_client_open_sync = NULL; -- addressbooks->e_book_client_connect_sync = NULL; -- addressbooks->e_book_query_to_string = NULL; -- addressbooks->e_book_client_get_contacts_sync = NULL; -- } else { -- if (!g_module_symbol(addressbooks->ebookmodule, "e_book_client_connect_sync", (gpointer *)&(addressbooks->e_book_client_connect_sync))) { -- /*Since version 3.2 used these functions, but in 3.8 they are deprecated*/ -+ if (mmgui_libpaths_cache_check_library_version(libcache, "libebook-1.2", 12, 3, 0)) { -+ /*Open module*/ -+ addressbooks->ebookmodule = g_module_open(mmgui_libpaths_cache_get_library_full_path(libcache, "libebook-1.2"), G_MODULE_BIND_LAZY); -+ if (addressbooks->ebookmodule != NULL) { -+ libopened = TRUE; -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_field_exists", (gpointer *)&(addressbooks->e_book_query_field_exists)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_or", (gpointer *)&(addressbooks->e_book_query_or)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_unref", (gpointer *)&(addressbooks->e_book_query_unref)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_contact_get_const", (gpointer *)&(addressbooks->e_contact_get_const)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_contact_get", (gpointer *)&(addressbooks->e_contact_get)); -+ if ((libopened) && (mmgui_libpaths_cache_check_library_version(libcache, "libebook-1.2", 16, 3, 0))) { -+ /*Version 3.16 ... ?*/ -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_client_connect_sync", (gpointer *)&(addressbooks->e_book_client_connect_sync316)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_registry_new_sync", (gpointer *)&(addressbooks->e_source_registry_new_sync)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_registry_ref_builtin_address_book", (gpointer *)&(addressbooks->e_source_registry_ref_builtin_address_book)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_to_string", (gpointer *)&(addressbooks->e_book_query_to_string)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_client_get_contacts_sync", (gpointer *)&(addressbooks->e_book_client_get_contacts_sync)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_get_display_name", (gpointer *)&(addressbooks->e_source_get_display_name)); -+ addressbooks->e_book_client_connect_sync = NULL; -+ addressbooks->e_book_new_system_addressbook = NULL; -+ addressbooks->e_book_open = NULL; -+ addressbooks->e_book_get_contacts = NULL; -+ addressbooks->e_book_get_source = NULL; -+ } else if ((libopened) && (mmgui_libpaths_cache_check_library_version(libcache, "libebook-1.2", 14, 3, 0))) { -+ /*Version 3.8 ... 3.16*/ -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_client_connect_sync", (gpointer *)&(addressbooks->e_book_client_connect_sync)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_registry_new_sync", (gpointer *)&(addressbooks->e_source_registry_new_sync)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_registry_ref_builtin_address_book", (gpointer *)&(addressbooks->e_source_registry_ref_builtin_address_book)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_to_string", (gpointer *)&(addressbooks->e_book_query_to_string)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_client_get_contacts_sync", (gpointer *)&(addressbooks->e_book_client_get_contacts_sync)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_get_display_name", (gpointer *)&(addressbooks->e_source_get_display_name)); -+ addressbooks->e_book_client_connect_sync316 = NULL; -+ addressbooks->e_book_new_system_addressbook = NULL; -+ addressbooks->e_book_open = NULL; -+ addressbooks->e_book_get_contacts = NULL; -+ addressbooks->e_book_get_source = NULL; -+ } else if ((libopened) && (mmgui_libpaths_cache_check_library_version(libcache, "libebook-1.2", 13, 3, 0))) { -+ /*Versions 3.4 ... 3.8*/ - libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_client_new", (gpointer *)&(addressbooks->e_book_client_new)); - libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_client_open_sync", (gpointer *)&(addressbooks->e_client_open_sync)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_registry_new_sync", (gpointer *)&(addressbooks->e_source_registry_new_sync)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_registry_ref_builtin_address_book", (gpointer *)&(addressbooks->e_source_registry_ref_builtin_address_book)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_to_string", (gpointer *)&(addressbooks->e_book_query_to_string)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_client_get_contacts_sync", (gpointer *)&(addressbooks->e_book_client_get_contacts_sync)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_peek_name", (gpointer *)&(addressbooks->e_source_get_display_name)); -+ addressbooks->e_book_client_connect_sync = NULL; -+ addressbooks->e_book_client_connect_sync316 = NULL; -+ addressbooks->e_book_new_system_addressbook = NULL; -+ addressbooks->e_book_open = NULL; -+ addressbooks->e_book_get_contacts = NULL; -+ addressbooks->e_book_get_source = NULL; -+ } else if (libopened) { -+ /*Versions 3.0 ... 3.4*/ -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_new_system_addressbook", (gpointer *)&(addressbooks->e_book_new_system_addressbook)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_open", (gpointer *)&(addressbooks->e_book_open)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_get_contacts", (gpointer *)&(addressbooks->e_book_get_contacts)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_get_source", (gpointer *)&(addressbooks->e_book_get_source)); -+ libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_peek_name", (gpointer *)&(addressbooks->e_source_get_display_name)); - addressbooks->e_book_client_connect_sync = NULL; -+ addressbooks->e_book_client_connect_sync316 = NULL; -+ addressbooks->e_source_registry_new_sync = NULL; -+ addressbooks->e_source_registry_ref_builtin_address_book = NULL; -+ addressbooks->e_book_client_new = NULL; -+ addressbooks->e_client_open_sync = NULL; -+ addressbooks->e_book_query_to_string = NULL; -+ addressbooks->e_book_client_get_contacts_sync = NULL; - } -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_registry_new_sync", (gpointer *)&(addressbooks->e_source_registry_new_sync)); -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_source_registry_ref_builtin_address_book", (gpointer *)&(addressbooks->e_source_registry_ref_builtin_address_book)); -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_query_to_string", (gpointer *)&(addressbooks->e_book_query_to_string)); -- libopened = libopened && g_module_symbol(addressbooks->ebookmodule, "e_book_client_get_contacts_sync", (gpointer *)&(addressbooks->e_book_client_get_contacts_sync)); -- -- /*Unused functions*/ -- addressbooks->e_book_get_contacts = NULL; -- addressbooks->e_book_open = NULL; -- addressbooks->e_book_get_source = NULL; -- } -- /*Available since 3.6 - not mandatory*/ -- if (!g_module_symbol(addressbooks->ebookmodule, "e_source_get_display_name", (gpointer *)&(addressbooks->e_source_get_display_name))) { -- /*Fallback function for older versions*/ -- if (!g_module_symbol(addressbooks->ebookmodule, "e_source_peek_name", (gpointer *)&(addressbooks->e_source_get_display_name))) { -+ /*If some functions not exported, close library*/ -+ if (!libopened) { -+ addressbooks->e_book_query_field_exists = NULL; -+ addressbooks->e_book_query_or = NULL; -+ addressbooks->e_source_registry_new_sync = NULL; -+ addressbooks->e_source_registry_ref_builtin_address_book = NULL; - addressbooks->e_source_get_display_name = NULL; -+ addressbooks->e_book_client_new = NULL; -+ addressbooks->e_client_open_sync = NULL; -+ addressbooks->e_book_query_to_string = NULL; -+ addressbooks->e_book_client_get_contacts_sync = NULL; -+ addressbooks->e_book_new_system_addressbook = NULL; -+ addressbooks->e_book_open = NULL; -+ addressbooks->e_book_get_contacts = NULL; -+ addressbooks->e_book_query_unref = NULL; -+ addressbooks->e_contact_get_const = NULL; -+ addressbooks->e_contact_get = NULL; -+ /*Close module*/ -+ g_module_close(addressbooks->ebookmodule); -+ addressbooks->ebookmodule = NULL; -+ addressbooks->gnomesupported = FALSE; -+ } else { -+ /*Get contacts*/ -+ addressbooks->gnomesupported = TRUE; -+ mmgui_addressbooks_get_gnome_contacts(addressbooks, libcache); - } - } -- -- /*If some functions not exported, close library*/ -- if (!libopened) { -- addressbooks->e_book_query_field_exists = NULL; -- addressbooks->e_book_query_or = NULL; -- addressbooks->e_source_registry_new_sync = NULL; -- addressbooks->e_source_registry_ref_builtin_address_book = NULL; -- addressbooks->e_source_get_display_name = NULL; -- addressbooks->e_book_client_new = NULL; -- addressbooks->e_client_open_sync = NULL; -- addressbooks->e_book_query_to_string = NULL; -- addressbooks->e_book_client_get_contacts_sync = NULL; -- addressbooks->e_book_new_system_addressbook = NULL; -- addressbooks->e_book_open = NULL; -- addressbooks->e_book_get_contacts = NULL; -- addressbooks->e_book_query_unref = NULL; -- addressbooks->e_contact_get_const = NULL; -- addressbooks->e_contact_get = NULL; -- /*Close module*/ -- g_module_close(addressbooks->ebookmodule); -- addressbooks->ebookmodule = NULL; -- addressbooks->gnomesupported = FALSE; -- } else { -- /*Get contacts*/ -- addressbooks->gnomesupported = TRUE; -- mmgui_addressbooks_get_gnome_contacts(addressbooks); -- } - } - - /*KDE addressbook*/ - ---- src/addressbooks.h 2014-08-28 00:24:41.000000000 +0400 -+++ src/addressbooks.h 2015-04-28 01:27:06.000000000 +0300 -@@ -247,6 +247,7 @@ typedef const gchar *(*e_source_get_disp - typedef EBookClient *(*e_book_client_new_func)(ESource *source, GError **error); - typedef gboolean (*e_client_open_sync_func)(EClient *client, gboolean only_if_exists, gpointer cancellable, GError **error); - typedef EClient *(*e_book_client_connect_sync_func)(ESource *source, gpointer cancellable, GError **error); -+typedef EClient *(*e_book_client_connect_sync316_func)(ESource *source, guint32 wait_for_connected_seconds, gpointer cancellable, GError **error); - typedef gchar *(*e_book_query_to_string_func)(EBookQuery *q); - typedef gboolean (*e_book_client_get_contacts_sync_func)(EBookClient *client, const gchar *sexp, GSList **out_contacts, gpointer cancellable, GError **error); - typedef EBook *(*e_book_new_system_addressbook_func)(GError **error); -@@ -269,6 +270,7 @@ struct _mmgui_addressbooks { - e_book_client_new_func e_book_client_new; - e_client_open_sync_func e_client_open_sync; - e_book_client_connect_sync_func e_book_client_connect_sync; -+ e_book_client_connect_sync316_func e_book_client_connect_sync316; - e_book_query_to_string_func e_book_query_to_string; - e_book_client_get_contacts_sync_func e_book_client_get_contacts_sync; - e_book_new_system_addressbook_func e_book_new_system_addressbook; - ---- src/ayatana.c 2014-01-05 18:23:44.000000000 +0400 -+++ src/ayatana.c 2015-04-27 20:36:34.000000000 +0300 -@@ -177,7 +177,7 @@ mmgui_ayatana_t mmgui_ayatana_new(mmgui_ - ayatana->userdata = userdata; - - /*Open module for libmessaging-menu*/ -- ayatana->module = g_module_open(mmgui_libpaths_cache_get_library_name(libcache, "libmessaging-menu"), G_MODULE_BIND_LAZY); -+ ayatana->module = g_module_open(mmgui_libpaths_cache_get_library_full_path(libcache, "libmessaging-menu"), G_MODULE_BIND_LAZY); - - /*Initialize local flag*/ - libopened = FALSE; -@@ -219,7 +219,7 @@ mmgui_ayatana_t mmgui_ayatana_new(mmgui_ - - if ((ayatana->library == MMGUI_AYATANA_LIB_NULL) && (ayatana->module == NULL)) { - /*Open module for libindicate*/ -- ayatana->module = g_module_open(mmgui_libpaths_cache_get_library_name(libcache, "libindicate"), G_MODULE_BIND_LAZY); -+ ayatana->module = g_module_open(mmgui_libpaths_cache_get_library_full_path(libcache, "libindicate"), G_MODULE_BIND_LAZY); - - if (ayatana->module != NULL) { - libopened = TRUE; - ---- src/libpaths.c 2014-01-05 18:23:44.000000000 +0400 -+++ src/libpaths.c 2015-05-02 01:04:04.240930000 +0300 -@@ -31,25 +31,33 @@ - #include "libpaths.h" - - #define MMGUI_LIBPATHS_CACHE_FILE "/etc/ld.so.cache" --#define MMGUI_LIBPATHS_CACHE_SOEXT ".so" --#define MMGUI_LIBPATHS_CACHE_LIB_TEMP "/usr/lib/%s.so" - #define MMGUI_LIBPATHS_CACHE_PATH_TEMP "/usr/lib/%s.so" -+#define MMGUI_LIBPATHS_LIB_PATH_TEMP_MMR "%s/%s.so.%i.%i.%i" -+#define MMGUI_LIBPATHS_LIB_PATH_TEMP_MM "%s/%s.so.%i.%i" -+#define MMGUI_LIBPATHS_LIB_PATH_TEMP_M "%s/%s.so.%i" -+#define MMGUI_LIBPATHS_LIB_PATH_TEMP "%s/%s.so" - /*Cache file*/ - #define MMGUI_LIBPATHS_LOCAL_CACHE_XDG ".cache" - #define MMGUI_LIBPATHS_LOCAL_CACHE_DIR "modem-manager-gui" - #define MMGUI_LIBPATHS_LOCAL_CACHE_FILE "libpaths.conf" - #define MMGUI_LIBPATHS_LOCAL_CACHE_PERM 0755 -+#define MMGUI_LIBPATHS_LOCAL_CACHE_VER 3 - /*Cache file sections*/ - #define MMGUI_LIBPATHS_FILE_ROOT_SECTION "cache" - #define MMGUI_LIBPATHS_FILE_TIMESTAMP "timestamp" --#define MMGUI_LIBPATHS_FILE_NAME "name" -+#define MMGUI_LIBPATHS_FILE_VERSION "version" - #define MMGUI_LIBPATHS_FILE_PATH "path" -+#define MMGUI_LIBPATHS_FILE_MAJOR_VER "majorver" -+#define MMGUI_LIBPATHS_FILE_MINOR_VER "minorver" -+#define MMGUI_LIBPATHS_FILE_RELEASE_VER "releasever" - - - struct _mmgui_libpaths_entry { - gchar *id; -- gchar *libname; - gchar *libpath; -+ gint majorver; -+ gint minorver; -+ gint releasever; - }; - - typedef struct _mmgui_libpaths_entry *mmgui_libpaths_entry_t; -@@ -60,6 +68,7 @@ static gboolean mmgui_libpaths_cache_ope - const gchar *homepath; - gchar *confpath; - guint64 localtimestamp; -+ gint filever; - GError *error; - - if (libcache == NULL) return FALSE; -@@ -95,11 +104,28 @@ static gboolean mmgui_libpaths_cache_ope - localtimestamp = g_key_file_get_uint64(libcache->localkeyfile, MMGUI_LIBPATHS_FILE_ROOT_SECTION, MMGUI_LIBPATHS_FILE_TIMESTAMP, &error); - if (error == NULL) { - if (localtimestamp == dbtimestamp) { -- libcache->updatelocal = FALSE; -+ /*Timestamp is up to date - check version*/ -+ filever = g_key_file_get_integer(libcache->localkeyfile, MMGUI_LIBPATHS_FILE_ROOT_SECTION, MMGUI_LIBPATHS_FILE_VERSION, &error); -+ if (error == NULL) { -+ if (filever >= MMGUI_LIBPATHS_LOCAL_CACHE_VER) { -+ /*Acceptable version of file*/ -+ libcache->updatelocal = FALSE; -+ } else { -+ /*Old version of file*/ -+ libcache->updatelocal = TRUE; -+ } -+ } else { -+ /*Unknown version of file*/ -+ libcache->updatelocal = TRUE; -+ g_debug("Local cache contain unreadable version identifier: %s", error->message); -+ g_error_free(error); -+ } - } else { -+ /*Wrong timestamp*/ - libcache->updatelocal = TRUE; - } - } else { -+ /*Unknown timestamp*/ - libcache->updatelocal = TRUE; - g_debug("Local cache contain unreadable timestamp: %s", error->message); - g_error_free(error); -@@ -126,6 +152,8 @@ static gboolean mmgui_libpaths_cache_clo - if (update) { - /*Save timestamp*/ - g_key_file_set_int64(libcache->localkeyfile, MMGUI_LIBPATHS_FILE_ROOT_SECTION, MMGUI_LIBPATHS_FILE_TIMESTAMP, (gint64)libcache->modtime); -+ /*Save version of file*/ -+ g_key_file_set_integer(libcache->localkeyfile, MMGUI_LIBPATHS_FILE_ROOT_SECTION, MMGUI_LIBPATHS_FILE_VERSION, MMGUI_LIBPATHS_LOCAL_CACHE_VER); - /*Write to file*/ - error = NULL; - filedata = g_key_file_to_data(libcache->localkeyfile, &datasize, &error); -@@ -150,14 +178,16 @@ static gboolean mmgui_libpaths_cache_add - - if ((libcache->updatelocal) && (libcache->localkeyfile != NULL)) { - if (cachedlib->id != NULL) { -- /*Library name*/ -- if (cachedlib->libname != NULL) { -- g_key_file_set_string(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_NAME, cachedlib->libname); -- } - /*Library path*/ - if (cachedlib->libpath != NULL) { - g_key_file_set_string(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_PATH, cachedlib->libpath); - } -+ /*Library major version*/ -+ g_key_file_set_integer(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_MAJOR_VER, cachedlib->majorver); -+ /*Library minor version*/ -+ g_key_file_set_integer(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_MINOR_VER, cachedlib->minorver); -+ /*Library release version*/ -+ g_key_file_set_integer(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_RELEASE_VER, cachedlib->releasever); - } - } - -@@ -172,33 +202,69 @@ static gboolean mmgui_libpaths_cache_get - - if ((!libcache->updatelocal) && (libcache->localkeyfile != NULL)) { - if (cachedlib->id != NULL) { -- /*Library name*/ -+ /*Library path*/ - error = NULL; -- if (g_key_file_has_key(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_NAME, &error)) { -+ if (g_key_file_has_key(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_PATH, &error)) { - error = NULL; -- cachedlib->libname = g_key_file_get_string(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_NAME, &error); -+ cachedlib->libpath = g_key_file_get_string(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_PATH, &error); - if (error != NULL) { -- g_debug("Local cache contain unreadable library name: %s", error->message); -+ g_debug("Local cache contain unreadable library path: %s", error->message); - g_error_free(error); - } - } else { -- cachedlib->libname = NULL; -- g_debug("Local cache does not contain library name: %s", error->message); -- g_error_free(error); -+ cachedlib->libpath = NULL; -+ if (error != NULL) { -+ g_debug("Local cache does not contain library path: %s", error->message); -+ g_error_free(error); -+ } - } -- /*Library path*/ -+ /*Library major version*/ - error = NULL; -- if (g_key_file_has_key(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_PATH, &error)) { -+ if (g_key_file_has_key(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_MAJOR_VER, &error)) { - error = NULL; -- cachedlib->libpath = g_key_file_get_string(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_PATH, &error); -+ cachedlib->majorver = g_key_file_get_integer(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_MAJOR_VER, &error); - if (error != NULL) { -- g_debug("Local cache contain unreadable library path: %s", error->message); -+ g_debug("Local cache contain unreadable library major version: %s", error->message); - g_error_free(error); - } - } else { -- cachedlib->libpath = NULL; -- g_debug("Local cache does not contain library path: %s", error->message); -- g_error_free(error); -+ cachedlib->majorver = -1; -+ if (error != NULL) { -+ g_debug("Local cache does not contain library major version: %s", error->message); -+ g_error_free(error); -+ } -+ } -+ /*Library minor version*/ -+ error = NULL; -+ if (g_key_file_has_key(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_MINOR_VER, &error)) { -+ error = NULL; -+ cachedlib->minorver = g_key_file_get_integer(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_MINOR_VER, &error); -+ if (error != NULL) { -+ g_debug("Local cache contain unreadable library minor version: %s", error->message); -+ g_error_free(error); -+ } -+ } else { -+ cachedlib->minorver = -1; -+ if (error != NULL) { -+ g_debug("Local cache does not contain library minor version: %s", error->message); -+ g_error_free(error); -+ } -+ } -+ /*Library release version*/ -+ error = NULL; -+ if (g_key_file_has_key(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_RELEASE_VER, &error)) { -+ error = NULL; -+ cachedlib->releasever = g_key_file_get_integer(libcache->localkeyfile, cachedlib->id, MMGUI_LIBPATHS_FILE_RELEASE_VER, &error); -+ if (error != NULL) { -+ g_debug("Local cache contain unreadable library major version: %s", error->message); -+ g_error_free(error); -+ } -+ } else { -+ cachedlib->releasever = -1; -+ if (error != NULL) { -+ g_debug("Local cache does not contain library major version: %s", error->message); -+ g_error_free(error); -+ } - } - } - } -@@ -217,76 +283,124 @@ static void mmgui_libpaths_cache_destroy - if (cachedlib->id != NULL) { - g_free(cachedlib->id); - } -- if (cachedlib->libname != NULL) { -- g_free(cachedlib->libname); -- } - if (cachedlib->libpath != NULL) { - g_free(cachedlib->libpath); - } -+ cachedlib->majorver = -1; -+ cachedlib->minorver = -1; -+ cachedlib->releasever = -1; - g_free(cachedlib); - } - --static gboolean mmgui_libpaths_cache_get_entry(mmgui_libpaths_cache_t libcache, gchar *libpath) -+static gboolean mmgui_libpaths_cache_get_entry(mmgui_libpaths_cache_t libcache, const gchar *libpath) - { - mmgui_libpaths_entry_t cachedlib; -- gchar *libext, *libid; -- guint pathlen, sym, lnsym, lilen, lnlen; -- gboolean res; -+ const gchar versep[2] = "."; -+ gchar *pathendptr; -+ gchar *path; -+ gchar *linktarget; -+ gchar *soextptr; -+ gchar *name; -+ gchar *verptr; -+ gchar *version; -+ gchar *token; -+ gint *verarray[3]; -+ gint i; -+ gboolean mustbecached; -+ - - if ((libcache == NULL) || (libpath == NULL)) return FALSE; - -- pathlen = strlen(libpath); -+ pathendptr = strrchr(libpath, '/'); -+ -+ if (pathendptr == NULL) { -+ return FALSE; -+ } -+ -+ path = g_malloc0(pathendptr - libpath + 1); -+ strncpy(path, libpath, pathendptr - libpath); -+ -+ linktarget = NULL; - -- if (pathlen == 0) return FALSE; -+ if (g_file_test(libpath, G_FILE_TEST_IS_SYMLINK)) { -+ linktarget = g_file_read_link(libpath, NULL); -+ } - -- libext = strstr(libpath, MMGUI_LIBPATHS_CACHE_SOEXT); -+ if (linktarget != NULL) { -+ soextptr = strstr(linktarget, ".so"); -+ } else { -+ soextptr = strstr(libpath, ".so"); -+ } -+ -+ if (soextptr == NULL) { -+ if (linktarget != NULL) { -+ g_free(linktarget); -+ } -+ g_free(path); -+ return FALSE; -+ } - -- if (libext == NULL) return FALSE; -+ if (linktarget != NULL) { -+ name = g_malloc0(soextptr - linktarget); -+ strncpy(name, linktarget, soextptr - linktarget); -+ } else { -+ name = g_malloc0(soextptr - pathendptr); -+ strncpy(name, pathendptr + 1, soextptr - pathendptr - 1); -+ } - -- lnsym = 0; -- lilen = 0; -- lnlen = 0; -+ cachedlib = (mmgui_libpaths_entry_t)g_hash_table_lookup(libcache->cache, name); - -- for (sym = libext-libpath; sym >= 0; sym--) { -- if (libpath[sym] == '/') { -- lnsym = sym + 1; -- lilen = libext - libpath - sym - 1; -- lnlen = pathlen - sym - 1; -- break; -+ if (cachedlib == NULL) { -+ if (linktarget != NULL) { -+ g_free(linktarget); - } -+ g_free(path); -+ g_free(name); -+ return FALSE; - } - -- if ((lilen == 0) || (lnlen == 0)) return FALSE; -+ g_free(name); - -- /*library identifier*/ -- libid = g_malloc0(lilen+1); -- strncpy(libid, libpath+lnsym, lilen); -- /*search in hash table*/ -- cachedlib = (mmgui_libpaths_entry_t)g_hash_table_lookup(libcache->cache, libid); -- res = FALSE; -+ mustbecached = FALSE; - -- if (cachedlib != NULL) { -- if (cachedlib->libname == NULL) { -- /*library name*/ -- cachedlib->libname = g_malloc0(lnlen+1); -- strncpy(cachedlib->libname, libpath+lnsym, lnlen); -- /*library name found*/ -- mmgui_libpaths_cache_add_to_local_cache_file(libcache, cachedlib); -- g_debug("Library name: %s (%s)\n", cachedlib->libname, libid); -- } -- if (cachedlib->libpath == NULL) { -- /*full library path*/ -- cachedlib->libpath = g_strdup(libpath); -- /*library path found*/ -- mmgui_libpaths_cache_add_to_local_cache_file(libcache, cachedlib); -- g_debug("Library path: %s (%s)\n", cachedlib->libpath, libid); -+ if (cachedlib->libpath == NULL) { -+ cachedlib->libpath = path; -+ mustbecached = TRUE; -+ } else { -+ g_free(path); -+ } -+ -+ verptr = strchr(soextptr + 1, '.'); -+ -+ if (verptr != NULL) { -+ version = g_strdup(verptr + 1); -+ -+ token = strtok(version, versep); -+ -+ verarray[0] = &cachedlib->majorver; -+ verarray[1] = &cachedlib->minorver; -+ verarray[2] = &cachedlib->releasever; -+ -+ i = 0; -+ while ((token != NULL) && (i < sizeof(verarray)/sizeof(int *))) { -+ *(verarray[i]) = atoi(token); -+ token = strtok(NULL, versep); -+ i++; - } -- res = TRUE; -+ g_free(version); -+ -+ mustbecached = TRUE; - } - -- g_free(libid); -+ if (linktarget != NULL) { -+ g_free(linktarget); -+ } - -- return res; -+ if (mustbecached) { -+ mmgui_libpaths_cache_add_to_local_cache_file(libcache, cachedlib); -+ } -+ -+ return TRUE; - } - - static guint mmgui_libpaths_cache_parse_db(mmgui_libpaths_cache_t libcache) -@@ -410,8 +524,10 @@ mmgui_libpaths_cache_t mmgui_libpaths_ca - /*Allocate structure*/ - cachedlib = (mmgui_libpaths_entry_t)g_new0(struct _mmgui_libpaths_entry, 1); - cachedlib->id = g_strdup(currentlib); -- cachedlib->libname = NULL; - cachedlib->libpath = NULL; -+ cachedlib->majorver = -1; -+ cachedlib->minorver = -1; -+ cachedlib->releasever = -1; - g_hash_table_insert(libcache->cache, cachedlib->id, cachedlib); - /*If available, get from local cache*/ - if (localcopy) { -@@ -451,7 +567,7 @@ void mmgui_libpaths_cache_close(mmgui_li - g_free(libcache); - } - --gchar *mmgui_libpaths_cache_get_library_name(mmgui_libpaths_cache_t libcache, gchar *libname) -+gchar *mmgui_libpaths_cache_get_library_full_path(mmgui_libpaths_cache_t libcache, gchar *libname) - { - mmgui_libpaths_entry_t cachedlib; - -@@ -460,53 +576,61 @@ gchar *mmgui_libpaths_cache_get_library_ - cachedlib = (mmgui_libpaths_entry_t)g_hash_table_lookup(libcache->cache, libname); - - if (cachedlib != NULL) { -- if (cachedlib->libname != NULL) { -- /*Cached library name*/ -- return cachedlib->libname; -+ if (cachedlib->libpath != NULL) { -+ /*Safe library path*/ -+ if (libcache->safename != NULL) { -+ g_free(libcache->safename); -+ } -+ /*Handle version variations*/ -+ if ((cachedlib->majorver != -1) && (cachedlib->minorver != -1) && (cachedlib->releasever != -1)) { -+ libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_LIB_PATH_TEMP_MMR, cachedlib->libpath, libname, cachedlib->majorver, cachedlib->minorver, cachedlib->releasever); -+ } else if ((cachedlib->majorver != -1) && (cachedlib->minorver != -1)) { -+ libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_LIB_PATH_TEMP_MM, cachedlib->libpath, libname, cachedlib->majorver, cachedlib->minorver); -+ } else if (cachedlib->majorver != -1) { -+ libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_LIB_PATH_TEMP_M, cachedlib->libpath, libname, cachedlib->majorver); -+ } else { -+ libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_LIB_PATH_TEMP, cachedlib->libpath, libname); -+ } -+ -+ return libcache->safename; - } else { -- /*Safe library name*/ -+ /*Safe library path*/ - if (libcache->safename != NULL) { - g_free(libcache->safename); - } -- libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_CACHE_LIB_TEMP, libname); -+ libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_CACHE_PATH_TEMP, libname); - return libcache->safename; - } - } else { -- /*Safe library name*/ -+ /*Safe library path*/ - if (libcache->safename != NULL) { - g_free(libcache->safename); - } -- libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_CACHE_LIB_TEMP, libname); -+ libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_CACHE_PATH_TEMP, libname); - return libcache->safename; - } - } - --gchar *mmgui_libpaths_cache_get_library_path(mmgui_libpaths_cache_t libcache, gchar *libname) -+gboolean mmgui_libpaths_cache_check_library_version(mmgui_libpaths_cache_t libcache, gchar *libname, gint major, gint minor, gint release) - { - mmgui_libpaths_entry_t cachedlib; -+ gboolean compatiblever; - -- if ((libcache == NULL) || (libname == NULL)) return NULL; -+ if ((libcache == NULL) || (libname == NULL) || (major == -1)) return FALSE; - - cachedlib = (mmgui_libpaths_entry_t)g_hash_table_lookup(libcache->cache, libname); - -- if (cachedlib != NULL) { -- if (cachedlib->libpath != NULL) { -- /*Cached library path*/ -- return cachedlib->libpath; -- } else { -- /*Safe library path*/ -- if (libcache->safename != NULL) { -- g_free(libcache->safename); -- } -- libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_CACHE_PATH_TEMP, libname); -- return libcache->safename; -- } -- } else { -- /*Safe library path*/ -- if (libcache->safename != NULL) { -- g_free(libcache->safename); -+ if (cachedlib == NULL) return FALSE; -+ if (cachedlib->majorver == -1) return FALSE; -+ -+ compatiblever = (cachedlib->majorver >= major); -+ -+ if ((cachedlib->majorver == major) && (minor != -1) && (cachedlib->minorver != -1)) { -+ compatiblever = compatiblever && (cachedlib->minorver >= minor); -+ if ((cachedlib->minorver == minor) && (release != -1) && (cachedlib->releasever != -1)) { -+ compatiblever = compatiblever && (cachedlib->releasever >= release); - } -- libcache->safename = g_strdup_printf(MMGUI_LIBPATHS_CACHE_PATH_TEMP, libname); -- return libcache->safename; - } -+ -+ return compatiblever; - } - ---- src/libpaths.h 2013-06-17 23:02:10.000000000 +0400 -+++ src/libpaths.h 2015-04-28 00:51:58.000000000 +0300 -@@ -39,7 +39,7 @@ typedef struct _mmgui_libpaths_cache *mm - - mmgui_libpaths_cache_t mmgui_libpaths_cache_new(gchar *libname, ...); - void mmgui_libpaths_cache_close(mmgui_libpaths_cache_t libcache); --gchar *mmgui_libpaths_cache_get_library_name(mmgui_libpaths_cache_t libcache, gchar *libname); --gchar *mmgui_libpaths_cache_get_library_path(mmgui_libpaths_cache_t libcache, gchar *libname); -+gchar *mmgui_libpaths_cache_get_library_full_path(mmgui_libpaths_cache_t libcache, gchar *libname); -+gboolean mmgui_libpaths_cache_check_library_version(mmgui_libpaths_cache_t libcache, gchar *libname, gint major, gint minor, gint release); - - #endif /* __LIBPATHS_H__ */ - ---- src/notifications.c 2014-08-27 21:28:22.000000000 +0400 -+++ src/notifications.c 2015-04-27 20:35:12.000000000 +0300 -@@ -42,7 +42,7 @@ mmgui_notifications_t mmgui_notification - notifications->notifymodule = NULL; - - //Open module -- notifications->notifymodule = g_module_open(mmgui_libpaths_cache_get_library_name(libcache, "libnotify"), G_MODULE_BIND_LAZY); -+ notifications->notifymodule = g_module_open(mmgui_libpaths_cache_get_library_full_path(libcache, "libnotify"), G_MODULE_BIND_LAZY); - - if (notifications->notifymodule != NULL) { - libopened = TRUE; -@@ -102,7 +102,7 @@ mmgui_notifications_t mmgui_notification - notifications->cacontext = NULL; - - //Open module -- notifications->canberramodule = g_module_open(mmgui_libpaths_cache_get_library_name(libcache, "libcanberra"), G_MODULE_BIND_LAZY); -+ notifications->canberramodule = g_module_open(mmgui_libpaths_cache_get_library_full_path(libcache, "libcanberra"), G_MODULE_BIND_LAZY); - - if (notifications->canberramodule != NULL) { - libopened = TRUE; diff --git a/modem-manager-gui-translations.diff b/modem-manager-gui-translations.diff deleted file mode 100644 index ccb37c2..0000000 --- a/modem-manager-gui-translations.diff +++ /dev/null @@ -1,1014 +0,0 @@ ---- /dev/null 2014-09-18 20:46:50.600898724 +0200 -+++ appdata/de.po 2014-09-18 22:17:31.498285300 +0200 -@@ -0,0 +1,85 @@ -+# -+# Translators: -+msgid "" -+msgstr "" -+"Project-Id-Version: Modem Manager GUI\n" -+"POT-Creation-Date: 2014-05-29 00:41+0400\n" -+"PO-Revision-Date: 2014-09-12 18:26+0000\n" -+"Last-Translator: Mario Blättermann \n" -+"Language-Team: German (http://www.transifex.com/projects/p/modem-manager-gui/language/de/)\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Language: de\n" -+"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+ -+#. (itstool) path: application/name -+#: modem-manager-gui.appdata.xml.in:7 -+msgid "Modem Manager GUI" -+msgstr "Modem Manager GUI" -+ -+#. (itstool) path: application/summary -+#: modem-manager-gui.appdata.xml.in:8 -+msgid "Control EDGE/3G/4G broadband modem specific functions" -+msgstr "Modemspezifische Funktionen eines EDGE/3G/4G-Breitbandmodems steuern" -+ -+#. (itstool) path: description/p -+#: modem-manager-gui.appdata.xml.in:10 -+msgid "" -+"Simple graphical interface compatible with Modem manager, Wader and oFono " -+"system services able to control EDGE/3G/4G broadband modem specific " -+"functions." -+msgstr "Einfache grafische Oberfläche, die zu den Systemdiensten Modemmanager, Wader und oFono kompatibel ist und modemspezifische Funktionen eines EDGE/3G/4G-Breitbandmodems steuern kann." -+ -+#. (itstool) path: description/p -+#: modem-manager-gui.appdata.xml.in:14 -+msgid "" -+"You can check balance of your SIM card, send or receive SMS messages, " -+"control mobile traffic consuption and more using Modem Manager GUI." -+msgstr "Sie können mit Modem Manager GUI das Guthaben Ihrer SIM-Karte überprüfen, SMS-Nachrichten senden oder empfangen, den Netzwerkverkehr überwachen und vieles mehr." -+ -+#. (itstool) path: description/p -+#: modem-manager-gui.appdata.xml.in:18 -+msgid "Current features:" -+msgstr "Derzeitige Funktionsmerkmale:" -+ -+#. (itstool) path: ul/li -+#: modem-manager-gui.appdata.xml.in:20 -+msgid "Create and control mobile broadband connections" -+msgstr "Mobile Breitbandverbindungen erstellen und steuern" -+ -+#. (itstool) path: ul/li -+#: modem-manager-gui.appdata.xml.in:21 -+msgid "Send and receive SMS messages and store messages in database" -+msgstr "SMS-Nachrichten senden und empfangen und die Nachrichten in einer Datenbank speichern" -+ -+#. (itstool) path: ul/li -+#: modem-manager-gui.appdata.xml.in:22 -+msgid "" -+"Initiate USSD requests and read answers (also using interactive sessions)" -+msgstr "USSD-Codes senden und Antworten empfangen (auch in interaktiven Sitzungen)" -+ -+#. (itstool) path: ul/li -+#: modem-manager-gui.appdata.xml.in:23 -+msgid "" -+"View device information: operator name, device mode, IMEI, IMSI, signal " -+"level" -+msgstr "Geräteinformationen anzeigen: Anbietername, Gerätemodus, IMEI, IMSI, Signalstärke" -+ -+#. (itstool) path: ul/li -+#: modem-manager-gui.appdata.xml.in:24 -+msgid "Scan available mobile networks" -+msgstr "Nach verfügbaren mobilen Netzwerken suchen" -+ -+#. (itstool) path: ul/li -+#: modem-manager-gui.appdata.xml.in:25 -+msgid "View mobile traffic statistics and set limits" -+msgstr "Statistiken für mobilen Netzwerkverkehr anzeigen und Begrenzungen festlegen" -+ -+#. (itstool) path: description/p -+#: modem-manager-gui.appdata.xml.in:27 -+msgid "" -+"Please note that some features may be not available due to limitations of " -+"different system services or even different versions of system service in " -+"use." -+msgstr "Bitte beachten Sie, dass einige Funktionsmerkmale aufgrund von Einschränkungen verschiedener Systemdienste oder selbst unterschiedlicher Versionen der laufenden Systemdienste nicht verfügbar sein könnten." - ---- po/de.po 2014-08-28 12:43:32.000000000 +0200 -+++ po/de.po 2014-09-18 22:15:45.148972309 +0200 -@@ -9,8 +9,8 @@ - "Project-Id-Version: Modem Manager GUI\n" - "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2014-08-23 03:22+0400\n" --"PO-Revision-Date: 2014-08-22 23:33+0000\n" --"Last-Translator: Alex \n" -+"PO-Revision-Date: 2014-09-12 18:15+0000\n" -+"Last-Translator: Mario Blättermann \n" - "Language-Team: German (http://www.transifex.com/projects/p/modem-manager-gui/language/de/)\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" -@@ -231,37 +231,37 @@ - - #: ../src/main.c:1228 - msgid "Error while displaying the help contents" --msgstr "" -+msgstr "Fehler beim Anzeigen der Hilfe" - - #: ../src/main.c:1477 - #, c-format - msgid "%3.0f minutes" --msgstr "" -+msgstr "%3.0f Minuten" - - #: ../src/main.c:1481 - #, c-format - msgid "%3.1f hours" --msgstr "" -+msgstr "%3.1f Stunden" - - #: ../src/main.c:1485 - #, c-format - msgid "%2.0f days" --msgstr "" -+msgstr "%2.0f Tage" - - #: ../src/main.c:1489 - #, c-format - msgid "%2.0f weeks" --msgstr "" -+msgstr "%2.0f Wochen" - - #: ../src/main.c:1504 - #, c-format - msgid "%2.0f sec" --msgstr "" -+msgstr "%2.0f s" - - #: ../src/main.c:1507 - #, c-format - msgid "%u min, %u sec" --msgstr "" -+msgstr "%u min, %u s" - - #: ../src/main.c:1592 - #, c-format -@@ -291,59 +291,59 @@ - - #: ../src/main.c:1884 - msgid "Undefined" --msgstr "" -+msgstr "Nicht definiert" - - #: ../src/main.c:2549 - msgid "_Devices" --msgstr "" -+msgstr "_Geräte" - - #: ../src/main.c:2551 - msgid "_SMS" --msgstr "" -+msgstr "_SMS" - - #: ../src/main.c:2553 - msgid "_USSD" --msgstr "" -+msgstr "_USSD" - - #: ../src/main.c:2555 - msgid "_Info" --msgstr "" -+msgstr "_Info" - - #: ../src/main.c:2557 - msgid "S_can" --msgstr "" -+msgstr "Su_chen" - - #: ../src/main.c:2559 - msgid "_Traffic" --msgstr "" -+msgstr "Ne_tzwerkverkehr" - - #: ../src/main.c:2561 - msgid "C_ontacts" --msgstr "" -+msgstr "K_ontakte" - - #: ../src/main.c:2565 - msgid "_Quit" --msgstr "" -+msgstr "_Beenden" - - #: ../src/main.c:2571 - msgid "_Actions" --msgstr "" -+msgstr "_Aktionen" - - #: ../src/main.c:2574 - msgid "_Preferences" --msgstr "" -+msgstr "_Einstellungen" - - #: ../src/main.c:2577 - msgid "_Edit" --msgstr "" -+msgstr "_Bearbeiten" - - #: ../src/main.c:2580 ../src/main.c:2584 - msgid "_Help" --msgstr "" -+msgstr "_Hilfe" - - #: ../src/main.c:2582 - msgid "_About" --msgstr "" -+msgstr "_Info" - - #: ../src/main.c:2591 ../resources/modem-manager-gui.ui:309 - #: ../resources/modem-manager-gui.ui:633 -@@ -388,7 +388,7 @@ - - #: ../src/main.c:2613 - msgid "Help" --msgstr "" -+msgstr "Hilfe" - - #: ../src/main.c:2615 ../resources/modem-manager-gui.ui:2034 - msgid "About" -@@ -408,11 +408,11 @@ - - #: ../src/main.c:2738 - msgid "Modem management modules:\n" --msgstr "" -+msgstr "Module zur Modemverwaltung:\n" - - #: ../src/main.c:2739 ../src/main.c:2743 - msgid "Module" --msgstr "" -+msgstr "Modul" - - #: ../src/main.c:2739 ../src/main.c:2743 ../src/ussd-page.c:498 - msgid "Description" -@@ -420,7 +420,7 @@ - - #: ../src/main.c:2742 - msgid "Connection management modules:\n" --msgstr "" -+msgstr "Module zur Verbindungsverwaltung:\n" - - #: ../src/main.c:2779 - #, c-format -@@ -437,15 +437,15 @@ - - #: ../src/main.c:2849 - msgid "Use specified modem management module" --msgstr "" -+msgstr "Angegebenes Modul zur Modemverwaltung verwenden" - - #: ../src/main.c:2850 - msgid "Use specified connection management module" --msgstr "" -+msgstr "Angegebenes Modul zur Verbindungsverwaltung verwenden" - - #: ../src/main.c:2851 - msgid "List all available modules and exit" --msgstr "" -+msgstr "Alle verfügbaren Module auflisten und beenden" - - #: ../src/main.c:2888 - msgid "- tool for EDGE/3G/4G modem specific functions control" -@@ -458,7 +458,7 @@ - - #: ../src/scan-page.c:46 - msgid "Error scanning network" --msgstr "" -+msgstr "Fehler beim Suchen des Netzwerks" - - #: ../src/scan-page.c:46 - msgid "Device error" -@@ -636,11 +636,11 @@ - - #: ../src/strformat.c:105 - msgid "%" --msgstr "" -+msgstr "%" - - #: ../src/strformat.c:107 - msgid "%" --msgstr "" -+msgstr "%" - - #: ../src/strformat.c:124 - #, c-format -@@ -694,7 +694,7 @@ - - #: ../src/strformat.c:186 - msgid "Today, %T" --msgstr "" -+msgstr "Heute, %T" - - #: ../src/strformat.c:187 ../src/strformat.c:191 ../src/strformat.c:195 - #: ../src/strformat.c:206 ../src/strformat.c:236 ../src/strformat.c:244 -@@ -706,11 +706,11 @@ - - #: ../src/strformat.c:190 - msgid "Yesterday, %T" --msgstr "" -+msgstr "Gestern, %T" - - #: ../src/strformat.c:194 - msgid "%d %B %Y, %T" --msgstr "" -+msgstr "%d. %B %Y, %T" - - #: ../src/strformat.c:246 - msgid "Available" -@@ -931,7 +931,7 @@ - - #: ../src/ussd-page.c:378 - msgid "USSD session terminated. You can send new request" --msgstr "USSD-Sitzung abgebrochen. Sie können einen neuen Code senden" -+msgstr "USSD-Sitzung abgebrochen. Sie können einen neuen Code senden." - - #: ../src/ussd-page.c:381 - msgid "Wrong USSD request" -@@ -949,31 +949,31 @@ - - #: ../resources/modem-manager-gui.ui:7 - msgid "Add new connection" --msgstr "" -+msgstr "Neue Verbindung hinzufügen" - - #: ../resources/modem-manager-gui.ui:135 - msgid "Start" --msgstr "" -+msgstr "Start" - - #: ../resources/modem-manager-gui.ui:180 - msgid "Welcome to Modem Manager GUI" --msgstr "" -+msgstr "Willkommen zu Modem Manager GUI" - - #: ../resources/modem-manager-gui.ui:194 - msgid "" - "Despite of it's name, Modem Manager GUI supports different backends. Please " - "select backends you plan to use. If not sure, just do not change anything." --msgstr "" -+msgstr "Ungeachtet seines Namens unterstützt Modem Manager GUI verschiedene Backends. Bitte wählen Sie die Backends aus, die Sie verwenden wollen. Falls Sie nicht sicher sind, lassen Sie alles unverändert." - - #: ../resources/modem-manager-gui.ui:209 - #: ../resources/modem-manager-gui.ui:3890 - msgid "Modem manager" --msgstr "" -+msgstr "Modemverwaltung" - - #: ../resources/modem-manager-gui.ui:222 - #: ../resources/modem-manager-gui.ui:3903 - msgid "Connection manager" --msgstr "" -+msgstr "Verbindungsverwaltung" - - #: ../resources/modem-manager-gui.ui:287 - msgid "Modem Manager GUI" -@@ -1013,15 +1013,15 @@ - - #: ../resources/modem-manager-gui.ui:543 - msgid "Connection" --msgstr "" -+msgstr "Verbindung" - - #: ../resources/modem-manager-gui.ui:567 - msgid "Edit" --msgstr "" -+msgstr "Bearbeiten" - - #: ../resources/modem-manager-gui.ui:584 - msgid "Activate" --msgstr "" -+msgstr "Aktivieren" - - #: ../resources/modem-manager-gui.ui:726 - msgid "Send new SMS message CTRL+N" -@@ -1102,7 +1102,7 @@ - msgid "" - "3GPP Location\n" - "MCC/MNC/LAC/RNC/CID" --msgstr "" -+msgstr "3GPP-Ortung\nMCC/MNC/LAC/RNC/CID" - - #: ../resources/modem-manager-gui.ui:1441 - msgid "" -@@ -1124,7 +1124,7 @@ - - #: ../resources/modem-manager-gui.ui:1656 - msgid "Create connection" --msgstr "" -+msgstr "Verbindung erstellen" - - #: ../resources/modem-manager-gui.ui:1704 - msgid "Set traffic amount or time limit for disconnect CTRL+L" -@@ -1182,7 +1182,7 @@ - - #: ../resources/modem-manager-gui.ui:2044 - msgid "Copyright 2012-2014 Alex" --msgstr "" -+msgstr "Copyright 2012-2014 Alex" - - #: ../resources/modem-manager-gui.ui:2045 - msgid "Tool for EDGE/3G/4G modem specific functions control" -@@ -1214,7 +1214,7 @@ - - #: ../resources/modem-manager-gui.ui:2257 - msgid "Add new broadband connection" --msgstr "" -+msgstr "Neue Breitbandverbindung hinzufügen" - - #: ../resources/modem-manager-gui.ui:2259 - #: ../resources/modem-manager-gui.ui:4819 -@@ -1223,75 +1223,75 @@ - - #: ../resources/modem-manager-gui.ui:2273 - msgid "Remove selected connection" --msgstr "" -+msgstr "Ausgewählte Verbindung entfernen" - - #: ../resources/modem-manager-gui.ui:2289 - msgid "Save changes" --msgstr "" -+msgstr "Änderungen speichern" - - #: ../resources/modem-manager-gui.ui:2291 - msgid "Save" --msgstr "" -+msgstr "Speichern" - - #: ../resources/modem-manager-gui.ui:2371 - msgid "Name" --msgstr "" -+msgstr "Name" - - #: ../resources/modem-manager-gui.ui:2385 - msgid "APN" --msgstr "" -+msgstr "APN" - - #: ../resources/modem-manager-gui.ui:2414 - msgid "Connection" --msgstr "" -+msgstr "Verbindung" - - #: ../resources/modem-manager-gui.ui:2446 - msgid "Network ID" --msgstr "" -+msgstr "Netzwerk-ID" - - #: ../resources/modem-manager-gui.ui:2470 - msgid "Home" --msgstr "" -+msgstr "Heimnetz" - - #: ../resources/modem-manager-gui.ui:2488 - msgid "Home and roaming" --msgstr "" -+msgstr "Heimnetz und Roaming" - - #: ../resources/modem-manager-gui.ui:2545 - msgid "Access number" --msgstr "" -+msgstr "Zugangsnummer" - - #: ../resources/modem-manager-gui.ui:2559 - msgid "User name" --msgstr "" -+msgstr "Benutzername" - - #: ../resources/modem-manager-gui.ui:2573 - msgid "Password" --msgstr "" -+msgstr "Passwort" - - #: ../resources/modem-manager-gui.ui:2629 - msgid "Authentication" --msgstr "" -+msgstr "Authentifizierung" - - #: ../resources/modem-manager-gui.ui:2658 - msgid "Dynamic" --msgstr "" -+msgstr "Dynamisch" - - #: ../resources/modem-manager-gui.ui:2676 - msgid "Static" --msgstr "" -+msgstr "Statisch" - - #: ../resources/modem-manager-gui.ui:2698 - msgid "DNS 1" --msgstr "" -+msgstr "DNS 1" - - #: ../resources/modem-manager-gui.ui:2712 - msgid "DNS 2" --msgstr "" -+msgstr "DNS 2" - - #: ../resources/modem-manager-gui.ui:2755 - msgid "DNS" --msgstr "" -+msgstr "DNS" - - #: ../resources/modem-manager-gui.ui:2810 - msgid "Error" -@@ -1339,7 +1339,7 @@ - - #: ../resources/modem-manager-gui.ui:3547 - msgid "Add program to autostart list" --msgstr "" -+msgstr "Programm zur Autostart-Liste hinzufügen" - - #: ../resources/modem-manager-gui.ui:3568 - msgid "Behaviour" -@@ -1347,7 +1347,7 @@ - - #: ../resources/modem-manager-gui.ui:3578 - msgid "Behaviour" --msgstr "" -+msgstr "Verhalten" - - #: ../resources/modem-manager-gui.ui:3607 - msgid "Concatenate messages" -@@ -1363,19 +1363,19 @@ - - #: ../resources/modem-manager-gui.ui:3658 - msgid "Presentation" --msgstr "" -+msgstr "Darstellung" - - #: ../resources/modem-manager-gui.ui:3688 - msgid "Validity period" --msgstr "" -+msgstr "Gültigkeitsdauer" - - #: ../resources/modem-manager-gui.ui:3699 - msgid "Send delivery report if possible" --msgstr "" -+msgstr "Zustellungsbestätigung senden, falls möglich" - - #: ../resources/modem-manager-gui.ui:3740 - msgid "Message parameters" --msgstr "" -+msgstr "Nachrichtenparameter" - - #: ../resources/modem-manager-gui.ui:3814 - msgid "RX Speed graph color" -@@ -1391,35 +1391,35 @@ - - #: ../resources/modem-manager-gui.ui:3859 - msgid "Graphs" --msgstr "" -+msgstr "Graphen" - - #: ../resources/modem-manager-gui.ui:3950 - msgid "Preferred backends" --msgstr "" -+msgstr "Bevorzugte Backends" - - #: ../resources/modem-manager-gui.ui:3980 - msgid "Enable device" --msgstr "" -+msgstr "Gerät aktivieren" - - #: ../resources/modem-manager-gui.ui:3993 - msgid "Send SMS message" --msgstr "" -+msgstr "SMS-Nachricht senden" - - #: ../resources/modem-manager-gui.ui:4006 - msgid "Send USSD request" --msgstr "" -+msgstr "USSD-Code senden" - - #: ../resources/modem-manager-gui.ui:4019 - msgid "Scan networks" --msgstr "" -+msgstr "Netzwerke suchen" - - #: ../resources/modem-manager-gui.ui:4108 - msgid "Opertions timeouts" --msgstr "" -+msgstr "Zeitüberschreitung für Vorgänge" - - #: ../resources/modem-manager-gui.ui:4128 - msgid "Modules" --msgstr "" -+msgstr "Module" - - #: ../resources/modem-manager-gui.ui:4152 - msgid "Progress" -@@ -1547,7 +1547,7 @@ - - #: ../resources/modem-manager-gui.ui:4761 - msgid "USSD commands" --msgstr "" -+msgstr "USSD-Befehle" - - #: ../resources/modem-manager-gui.ui:4817 - msgid "Add new USSD command CTRL+N" - - ---- help/de.po 2014-08-28 12:42:29.000000000 +0200 -+++ help/de.po 2014-09-18 22:16:48.995160211 +0200 -@@ -5,8 +5,8 @@ - msgstr "" - "Project-Id-Version: Modem Manager GUI\n" - "POT-Creation-Date: 2014-08-27 17:16+0400\n" --"PO-Revision-Date: 2014-08-27 17:14+0000\n" --"Last-Translator: Alex \n" -+"PO-Revision-Date: 2014-09-12 19:42+0000\n" -+"Last-Translator: Mario Blättermann \n" - "Language-Team: German (http://www.transifex.com/projects/p/modem-manager-gui/language/de/)\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" -@@ -54,7 +54,7 @@ - "about Modem Manager GUI, please visit the Modem Manager" - " GUI Web page." --msgstr "" -+msgstr "Modem Manager GUI wurde von Alex geschrieben. Weitere Informationen zu Modem Manager GUI finden Sie auf dessen Webseite." - - #: C/about.page29(page/p) - msgid "" -@@ -62,7 +62,7 @@ - "manual, follow the directions at the Modem Manager GUI bug tracker." --msgstr "" -+msgstr "Um einen Fehler zu melden oder einen Vorschlag zu dieser Anwendung oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen im Fehlererfassungssystem von Modem Manager GUI." - - #: C/about.page35(page/p) - msgid "" -@@ -71,11 +71,11 @@ - "this license can be found at this link, or in the file COPYING included with the source " - "code of this program." --msgstr "" -+msgstr "Dieses Programm wird unter den Bedingungen der GNU General Public License Version 3 verbreitet, so wie sie von der Free Software Foundation veröffentlicht wird. Eine Kopie dieser Lizenz finden Sie unter diesem Link oder in der Datei COPYING, die im Quellcode dieses Programms enthalten ist." - - #: C/contrib-code.page9(info/desc) - msgid "How you can help make Modem Manager GUI better." --msgstr "" -+msgstr "Wie Sie helfen können, Modem Manager GUI zu verbessern." - - #: C/contrib-code.page21(page/title) - msgid "Provide code" -@@ -85,22 +85,22 @@ - msgid "" - "Modem Manager GUI has a version control system at " - "SourceForge.net. You can clone the repository with the following command:" --msgstr "" -+msgstr "Modem Manager GUI hat eine Versionsverwaltung bei SourceForge.net. Sie können den Softwarebestand mit dem folgenden Befehl klonen:" - - #: C/contrib-code.page25(page/p) - msgid "" - "hg clone http://hg.code.sf.net/p/modem-manager-gui/code-0 modem-" - "manager-gui-code-0" --msgstr "" -+msgstr "hg clone http://hg.code.sf.net/p/modem-manager-gui/code-0 modem-manager-gui-code-0" - - #: C/contrib-code.page27(page/p) - msgid "" - "Note, this clone command doesn't give you write access to the repository." --msgstr "" -+msgstr "Beachten Sie, dass dieser Befehl zum Klonen keinen Schreibzugriff auf den Softwarebestand gewährt." - - #: C/contrib-translations.page9(info/desc) - msgid "Translate Modem Manager GUI into your native language." --msgstr "" -+msgstr "Modem Manager GUI in Ihre eigene Sprache übersetzen." - - #: C/contrib-translations.page21(page/title) - msgid "Translations" -@@ -111,20 +111,20 @@ - "The graphical user interface, the traditional man page and the Gnome-style " - "user manual of Modem Manager GUI can be translated into your " - "language." --msgstr "" -+msgstr "Die grafische Benutzeroberfläche, die traditionelle Unix-Handbuchseite und das Benutzerhandbuch im Gnome-Stil von Modem Manager GUI kann in Ihre Sprache übersetzt werden." - - #: C/contrib-translations.page25(page/p) - msgid "" - "There is a project page on Transifex where existing translations are " - "hosted and also new ones can be provided." --msgstr "" -+msgstr "Es gibt eine Projektseite bei Transifex, wo vorhandene Übersetzungen verfügbar sind und auch neue hinzugefügt werden können." - - #: C/contrib-translations.page31(page/p) - msgid "" - "For general help on how Transifex works, see the Transifex Help Desk." --msgstr "" -+msgstr "Allgemeine Hilfe zur Funktionsweise von Transifex finden Sie im Transifex Help Desk." - - #: C/contrib-translations.page35(note/p) - msgid "" -@@ -133,7 +133,7 @@ - ". Although Modem Manager GUI shouldn't be considered as " - "pure Gnome software, it will be often used in GTK based environments and " - "should match the conceptual world of such applications." --msgstr "" -+msgstr "Für Ihre Arbeit sollten Sie einen Blick auf die Regelwerke und Standardwörterbücher Ihres lokalen Gnome-Übersetzungsteams werfen. Obwohl Modem Manager GUI nicht unbedingt als reine Gnome-Software betrachtet werden sollte, wird es oft in GTK-basierten Umgebungen verwendet und sollte deshalb die Begriffswelt solcher Anwendungen widerspiegeln." - - #. This is a reference to an external file such as an image or video. When - #. the file changes, the md5 hash will change to let you know you need to -@@ -153,7 +153,7 @@ - msgid "" - "external ref='figures/modem-manager-gui-logo.png' " - "md5='a5ab22246356ef7c194bb09f1ec8e432'" --msgstr "" -+msgstr "external ref='figures/modem-manager-gui-logo.png' md5='a5ab22246356ef7c194bb09f1ec8e432'" - - #: C/index.page6(info/desc) - msgid "Help for Modem Manager GUI." -@@ -168,17 +168,17 @@ - msgid "" - "GNOME Hello" - " logoModem Manager GUI manual" --msgstr "" -+msgstr "GNOME Hello logoHandbuch zu Modem Manager GUI" - - #: C/index.page23(page/p) - msgid "" - "Modem Manager GUI is a graphical frontend for the ModemManager " - "daemon which is able to control specific modem functions." --msgstr "" -+msgstr "Modem Manager GUI ist eine grafische Benutzeroberfläche für den ModemManager-Systemdienst, der spezifische Modemfunktionen steuern kann." - - #: C/index.page27(page/p) - msgid "You can use Modem Manager GUI for the following tasks:" --msgstr "" -+msgstr "Sie können mit Modem Manager GUI folgende Aufgaben ausführen:" - - #: C/index.page32(item/p) - msgid "Send and receive SMS messages with messages concatenation" -@@ -186,13 +186,13 @@ - - #: C/index.page35(item/p) - msgid "Send USSD requests and receive answers in system encoding" --msgstr "" -+msgstr "USSD-Codes senden und Anworten in der Kodierung des Systems empfangen" - - #: C/index.page38(item/p) - msgid "" - "Get modem and SIM information (device info, operator name, mode, IMEI, " - "IMSI/ESN, Signal level)" --msgstr "" -+msgstr "Informationen zu Modem und SIM erhalten (Geräteinfo, Anbietername, Modus, IMEI, IMSI/ESN, Signalstärke)" - - #: C/index.page42(item/p) - msgid "Scan available mobile networks" -@@ -201,7 +201,7 @@ - #: C/index.page45(item/p) - msgid "" - "Control data transmission process and set session traffic and time limits" --msgstr "" -+msgstr "Die Vorgänge der Datenübertragung steuern und Begrenzungen für Datenmenge und Zeit festlegen" - - #: C/index.page50(section/title) - msgid "Usage" -@@ -280,7 +280,7 @@ - - #: C/report-bugs.page9(info/desc) - msgid "Report bugs and request new features." --msgstr "" -+msgstr "Fehler melden und neue Funktionen anfragen." - - #: C/report-bugs.page21(page/title) - msgid "Report bugs" -@@ -291,7 +291,7 @@ - "If you found a bug in Modem Manager GUI, you can use the Bug " - "Tracker." --msgstr "" -+msgstr "Wenn Sie einen Fehler in Modem Manager GUI finden, können Sie das Fehlererfassungssystem verwenden." - - #: C/report-bugs.page26(page/p) - msgid "" -@@ -299,7 +299,7 @@ - "href=\"http://linuxonly.ru/cms/e107_plugins/bug_tracker/bugs.php?0.view.3.0.0\">" - " the existing ones first. Maybe someone else has already encountered " - "the same problem? Then you might write your comments there." --msgstr "" -+msgstr "Bitte schauen Sie vor dem Melden eines Fehlers in den bestehenden Fehlermeldungen nach. Möglicherweise haben andere bereits das selbe Problem entdeckt? Dann können Sie dort Ihre Kommentare hinzufügen." - - #: C/report-bugs.page31(note/p) - msgid "You can also use the Bug Tracker for feature requests." -@@ -330,7 +330,7 @@ - msgid "" - "external ref='figures/network-info.png' " - "md5='9508df6dd96583049f837b018d8336cd'" --msgstr "" -+msgstr "external ref='figures/network-info.png' md5='9508df6dd96583049f837b018d8336cd'" - - #: C/usage-getinfo.page9(info/desc) - msgid "Get info about the mobile network." -@@ -357,7 +357,7 @@ - msgid "" - " " - "Network information window of Modem Manager GUI. " --msgstr "" -+msgstr " Netzwerk-Informationsfenster von Modem Manager GUI. " - - #: C/usage-getinfo.page35(page/p) - msgid "" -@@ -365,7 +365,7 @@ - "mobile phones or smartphones. Note, the GPS based location detection (in the" - " lower part of the window) won't work in most cases because mobile broadband" - " devices usually don't have a GPS sensor." --msgstr "" -+msgstr "Die meisten Informationen sind selbsterklärend und von traditionellen Mobiltelefonen oder Smartphones bekannt. Beachten Sie, dass die GPS-basierte Ortung (im unteren Teil des Fensters) in den meisten Fällen nicht funktioniert, da mobile Breitbandgeräte üblicherweise nicht über einen GPS-Sensor verfügen." - - #. This is a reference to an external file such as an image or video. When - #. the file changes, the md5 hash will change to let you know you need to -@@ -376,7 +376,7 @@ - msgid "" - "external ref='figures/startup-window.png' " - "md5='fd641b4e39058e6594e9b0bc0c2c629d'" --msgstr "" -+msgstr "external ref='figures/startup-window.png' md5='fd641b4e39058e6594e9b0bc0c2c629d'" - - #: C/usage-modem.page9(info/desc) - msgid "Activate your modem devices." -@@ -396,7 +396,7 @@ - msgid "" - " " - "The startup window of Modem Manager GUI. " --msgstr "" -+msgstr " Das Startfenster von Modem Manager GUI. " - - #: C/usage-modem.page30(page/p) - msgid "" -@@ -409,19 +409,19 @@ - "After clicking on a device, it might be needed to activate it first, if it " - "was not otherwise activated on your system. Modem Manager GUI " - "will ask you for confirmation in that case." --msgstr "" -+msgstr "Nach dem Anklicken eines Gerätes kann es notwendig sein, es zuerst zu aktivieren, sofern es noch nicht anderweitig auf Ihrem System aktiviert wurde. Modem Manager GUI bittet Sie in diesem Fall um Bestätigung." - - #: C/usage-modem.page37(page/p) - msgid "" - "Be patient after connecting a removable device such as an USB stick or " - "PCMCIA card. It may take a while until the system detects it." --msgstr "" -+msgstr "Haben Sie Geduld, wenn Sie ein externes Gerät wie beispielsweise einen USB-Stick oder eine PCMCIA-Karte eingesteckt haben. Es kann etwas dauern, bis das System es erkennt." - - #: C/usage-modem.page41(note/p) - msgid "" - "You cannot use multiple modems at the same time. If you click on another " - "entry in the device list, the previously activated one will be disabled." --msgstr "" -+msgstr "Sie können nicht mehrere Modems gleichzeitig verwenden. Wenn Sie auf einen anderen Eintrag in der Geräteliste klicken, wird das vorher aktivierte Gerät deaktiviert." - - #: C/usage-netsearch.page9(info/desc) - msgid "Search for available networks." -@@ -451,7 +451,7 @@ - msgid "" - "Use Modem Manager GUI for send USSD codes and receive the " - "answers." --msgstr "" -+msgstr "Modem Manager GUI zum Senden von USSD-Codes und Empfangen der Antworten verwenden." - - #: C/usage-ussd.page21(page/title) - msgid "USSD codes" -@@ -462,13 +462,13 @@ - "Modem Manager GUI is able to send USSD codes. These codes are " - "controlling some network functions, for example the visibility of your phone" - " number when sending a SMS." --msgstr "" -+msgstr "Modem Manager GUI bietet die Möglichkeit, USSD-Codes zu senden. Diese Codes steuern Netzwerkfunktionen, zum Beispiel die Sichtbarkeit Ihrer Telefonnummer beim Senden einer SMS-Nachricht." - - #: C/usage-ussd.page25(page/p) - msgid "" - "To use the USSD functions, click on the USSD " - "button in the toolbar." --msgstr "" -+msgstr "Um die USSD-Funktionen zu verwenden, klicken Sie auf den Knopf USSD in der Werkzeugleiste." - - #: C/usage-ussd.page28(page/p) - msgid "" -@@ -476,14 +476,14 @@ - " displayed. This code is the usual one for requesting the balance for a " - "prepaid card. If you like to send another code, click on the Edit button on the right" --msgstr "" -+msgstr "Im Textfeld im oberen Bereich des Fensters wird der Code *100# bereits angezeigt. Dieser Code dient üblicherweise dazu, das Guthaben auf einer Prepaidkarte anzuzeigen. Wenn Sie einen anderen Code senden wollen, klicken Sie auf den Knopf Bearbeiten an der rechten Seite." - - #: C/usage-ussd.page33(note/p) - msgid "" - "USSD codes are only available in networks which use the 3GPP" - " standards ." --msgstr "" -+msgstr "USSD-Codes sind nur in Netzwerken verfügbar, welche die 3GPP-Standards verwenden." - - #: C/usage-ussd.page38(page/p) - msgid "You can use such codes for many purposes." - - - --- man/de.po 2014-08-28 12:43:10.000000000 +0200 -+++ man/de.po 2014-09-18 22:16:23.669085675 +0200 -@@ -8,8 +8,8 @@ - msgstr "" - "Project-Id-Version: Modem Manager GUI\n" - "POT-Creation-Date: 2014-04-10 20:49+0400\n" --"PO-Revision-Date: 2014-08-27 17:18+0000\n" --"Last-Translator: Alex \n" -+"PO-Revision-Date: 2014-09-11 20:20+0000\n" -+"Last-Translator: Mario Blättermann \n" - "Language-Team: German (http://www.transifex.com/projects/p/modem-manager-gui/language/de/)\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" -@@ -27,13 +27,13 @@ - #: modem-manager-gui.1:1 - #, no-wrap - msgid "Apr 2014" --msgstr "" -+msgstr "April 2014" - - #. type: TH - #: modem-manager-gui.1:1 - #, no-wrap - msgid "Modem Manager GUI v0.0.17" --msgstr "" -+msgstr "Modem Manager GUI v0.0.17" - - #. type: TH - #: modem-manager-gui.1:1 -@@ -62,7 +62,7 @@ - #. type: Plain text - #: modem-manager-gui.1:7 - msgid "B [ -i ] [ -m module ] [ -c module ] [ -l ]..." --msgstr "" -+msgstr "B [ -i ] [ -m Modul ] [ -c Modul ] [ -l ] …" - - #. type: SH - #: modem-manager-gui.1:7 -@@ -75,7 +75,7 @@ - msgid "" - "This program is simple graphical interface for Modem Manager 0.6/0.7, Wader " - "and oFono daemons using dbus interface." --msgstr "" -+msgstr "Dieses Programm ist eine einfache grafische Benutzeroberfläche für Modem Manager 0.6/0.7, Wader- und oFono-Daemons, welche auf die DBus-Schnittstelle aufsetzt." - - #. type: TP - #: modem-manager-gui.1:11 -@@ -86,40 +86,40 @@ - #. type: Plain text - #: modem-manager-gui.1:14 - msgid "Do not show window on start" --msgstr "Beim Start kein Fenster öffnen" -+msgstr "öffnet beim Start kein Fenster." - - #. type: TP - #: modem-manager-gui.1:14 - #, no-wrap - msgid "B<-m, --mmmodule>" --msgstr "" -+msgstr "B<-m, --mmmodule>" - - #. type: Plain text - #: modem-manager-gui.1:17 - msgid "Use specified modem management module" --msgstr "" -+msgstr "verwendet das angegebene Module zur Modemverwaltung." - - #. type: TP - #: modem-manager-gui.1:17 - #, no-wrap - msgid "B<-c, --cmmodule>" --msgstr "" -+msgstr "B<-c, --cmmodule>" - - #. type: Plain text - #: modem-manager-gui.1:20 - msgid "Use specified connection management module" --msgstr "" -+msgstr "verwendet das angegebene Modul zur Verbindungsverwaltung." - - #. type: TP - #: modem-manager-gui.1:20 - #, no-wrap - msgid "B<-l, --listmodules>" --msgstr "" -+msgstr "B<-l, --listmodules>" - - #. type: Plain text - #: modem-manager-gui.1:23 - msgid "List all available modules and exit" --msgstr "" -+msgstr "listet alle verfügbaren Module auf und beendet das Programm." - - #. type: SH - #: modem-manager-gui.1:23 -@@ -154,7 +154,7 @@ - #. type: Plain text - #: modem-manager-gui.1:30 - msgid "Copyright \\(co 2012-2014 Alex" --msgstr "" -+msgstr "Copyright \\(co 2012-2014 Alex" - - #. type: Plain text - #: modem-manager-gui.1:33 diff --git a/modem-manager-gui.spec b/modem-manager-gui.spec index b5dd4c8..63237bd 100644 --- a/modem-manager-gui.spec +++ b/modem-manager-gui.spec @@ -2,14 +2,11 @@ Name: modem-manager-gui Summary: Graphical interface for ModemManager Summary(de): Grafische Oberfläche für ModemManager Summary(ru): Графический интерфейс для демона ModemManager -Version: 0.0.17.1 -Release: 5%{?dist} +Version: 0.0.18 +Release: 1%{?dist} License: GPLv3 URL: http://linuxonly.ru/cms/page.php?7 Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz -# Latest translations from Transifex -Patch0: %{name}-translations.diff -Patch1: http://download.tuxfamily.org/gsf/patch/%{name}-%{version}-fix-libebook-api-break-v2.patch BuildRequires: pkgconfig BuildRequires: gtk3-devel @@ -63,8 +60,6 @@ Funktionen: %prep %setup -q -%patch0 -%patch1 %build %configure @@ -92,6 +87,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop %{_mandir}/*/man1/%{name}.1.* %changelog +* Sun Oct 18 2015 Mario Blättermann - 0.0.18-1 +- New upstream version +- Patch1 is obsolete + * Wed Jun 17 2015 Fedora Release Engineering - 0.0.17.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index 1097031..6b145e4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6d07afae90bcdb1fb1e54489a3fa71aa modem-manager-gui-0.0.17.1.tar.gz +affc35ba997f8b54d5421307a3021a3d modem-manager-gui-0.0.18.tar.gz