Accepting request 53894 from home:vuntz:branches:GNOME:Factory
Forwarding to openSUSE:Factory OBS-URL: https://build.opensuse.org/request/show/53894 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/glib2?expand=0&rev=116
This commit is contained in:
parent
19e97b534d
commit
6bc5f9849e
177
glib2-add-back-extension-point.patch
Normal file
177
glib2-add-back-extension-point.patch
Normal file
@ -0,0 +1,177 @@
|
||||
From fb94859e84c0b7859a0a5425d461b18e67ea9ac7 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Otte <otte@redhat.com>
|
||||
Date: Tue, 09 Nov 2010 12:19:19 +0000
|
||||
Subject: API: Reinstate "gio-desktop-app-info-lookup" extension point
|
||||
|
||||
Removing an extension point is an API and ABI break. In particular, it
|
||||
causes (older) gvfs versions to fail loading with a linkage error from
|
||||
ld which in turn makes the desktop unusable.
|
||||
So this reinstate the extension point and API provided by it, but
|
||||
deprecates and does not use it. So no functionality is changed.
|
||||
|
||||
This reverts parts of commit 9b262f1c5fe5a6fd879f17cd7b80d8c54e33d80c.
|
||||
|
||||
Complaints-Also-To: Ryan Lortie <desrt@desrt.ca>
|
||||
---
|
||||
diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
|
||||
index 8047d9c..99a6fb7 100644
|
||||
--- a/gio/gdesktopappinfo.c
|
||||
+++ b/gio/gdesktopappinfo.c
|
||||
@@ -32,6 +32,8 @@
|
||||
#include <crt_externs.h>
|
||||
#endif
|
||||
|
||||
+#undef G_DISABLE_DEPRECATED
|
||||
+
|
||||
#include "gcontenttypeprivate.h"
|
||||
#include "gdesktopappinfo.h"
|
||||
#include "gfile.h"
|
||||
@@ -2638,3 +2640,43 @@ get_all_desktop_entries_for_mime_type (const char *base_mime_type,
|
||||
return desktop_entries;
|
||||
}
|
||||
|
||||
+/* GDesktopAppInfoLookup interface: */
|
||||
+
|
||||
+typedef GDesktopAppInfoLookupIface GDesktopAppInfoLookupInterface;
|
||||
+G_DEFINE_INTERFACE (GDesktopAppInfoLookup, g_desktop_app_info_lookup, G_TYPE_OBJECT)
|
||||
+
|
||||
+static void
|
||||
+g_desktop_app_info_lookup_default_init (GDesktopAppInfoLookupInterface *iface)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * g_desktop_app_info_lookup_get_default_for_uri_scheme:
|
||||
+ * @lookup: a #GDesktopAppInfoLookup
|
||||
+ * @uri_scheme: a string containing a URI scheme.
|
||||
+ *
|
||||
+ * Gets the default application for launching applications
|
||||
+ * using this URI scheme for a particular GDesktopAppInfoLookup
|
||||
+ * implementation.
|
||||
+ *
|
||||
+ * The GDesktopAppInfoLookup interface and this function is used
|
||||
+ * to implement g_app_info_get_default_for_uri_scheme() backends
|
||||
+ * in a GIO module. There is no reason for applications to use it
|
||||
+ * directly. Applications should use g_app_info_get_default_for_uri_scheme().
|
||||
+ *
|
||||
+ * Returns: (transfer full): #GAppInfo for given @uri_scheme or %NULL on error.
|
||||
+ *
|
||||
+ * Deprecated: The #GDesktopAppInfoLookup interface is deprecated and unused by gio.
|
||||
+ */
|
||||
+GAppInfo *
|
||||
+g_desktop_app_info_lookup_get_default_for_uri_scheme (GDesktopAppInfoLookup *lookup,
|
||||
+ const char *uri_scheme)
|
||||
+{
|
||||
+ GDesktopAppInfoLookupIface *iface;
|
||||
+
|
||||
+ g_return_val_if_fail (G_IS_DESKTOP_APP_INFO_LOOKUP (lookup), NULL);
|
||||
+
|
||||
+ iface = G_DESKTOP_APP_INFO_LOOKUP_GET_IFACE (lookup);
|
||||
+
|
||||
+ return (* iface->get_default_for_uri_scheme) (lookup, uri_scheme);
|
||||
+}
|
||||
diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h
|
||||
index d7703f7..6be9369 100644
|
||||
--- a/gio/gdesktopappinfo.h
|
||||
+++ b/gio/gdesktopappinfo.h
|
||||
@@ -55,6 +55,46 @@ gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info);
|
||||
|
||||
void g_desktop_app_info_set_desktop_env (const char *desktop_env);
|
||||
|
||||
+
|
||||
+#ifndef G_DISABLE_DEPRECATED
|
||||
+
|
||||
+#define G_TYPE_DESKTOP_APP_INFO_LOOKUP (g_desktop_app_info_lookup_get_type ())
|
||||
+#define G_DESKTOP_APP_INFO_LOOKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookup))
|
||||
+#define G_IS_DESKTOP_APP_INFO_LOOKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP))
|
||||
+#define G_DESKTOP_APP_INFO_LOOKUP_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookupIface))
|
||||
+
|
||||
+/**
|
||||
+ * G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME:
|
||||
+ *
|
||||
+ * Extension point for default handler to URI association. See
|
||||
+ * <link linkend="extending-gio">Extending GIO</link>.
|
||||
+ */
|
||||
+#define G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME "gio-desktop-app-info-lookup"
|
||||
+
|
||||
+/**
|
||||
+ * GDesktopAppInfoLookup:
|
||||
+ *
|
||||
+ * Interface that is used by backends to associate default
|
||||
+ * handlers with URI schemes.
|
||||
+ */
|
||||
+typedef struct _GDesktopAppInfoLookup GDesktopAppInfoLookup;
|
||||
+typedef struct _GDesktopAppInfoLookupIface GDesktopAppInfoLookupIface;
|
||||
+
|
||||
+struct _GDesktopAppInfoLookupIface
|
||||
+{
|
||||
+ GTypeInterface g_iface;
|
||||
+
|
||||
+ GAppInfo * (* get_default_for_uri_scheme) (GDesktopAppInfoLookup *lookup,
|
||||
+ const char *uri_scheme);
|
||||
+};
|
||||
+
|
||||
+GType g_desktop_app_info_lookup_get_type (void) G_GNUC_CONST;
|
||||
+
|
||||
+GAppInfo *g_desktop_app_info_lookup_get_default_for_uri_scheme (GDesktopAppInfoLookup *lookup,
|
||||
+ const char *uri_scheme);
|
||||
+
|
||||
+#endif /* G_DISABLE_DEPRECATED */
|
||||
+
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __G_DESKTOP_APP_INFO_H__ */
|
||||
diff --git a/gio/gio.symbols b/gio/gio.symbols
|
||||
index eb79b70..90ea290 100644
|
||||
--- a/gio/gio.symbols
|
||||
+++ b/gio/gio.symbols
|
||||
@@ -131,6 +131,8 @@ g_desktop_app_info_get_filename
|
||||
g_desktop_app_info_get_type G_GNUC_CONST
|
||||
g_desktop_app_info_get_is_hidden
|
||||
g_desktop_app_info_set_desktop_env
|
||||
+g_desktop_app_info_lookup_get_type G_GNUC_CONST
|
||||
+g_desktop_app_info_lookup_get_default_for_uri_scheme
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
diff --git a/gio/giomodule.c b/gio/giomodule.c
|
||||
index 86bf25e..d131893 100644
|
||||
--- a/gio/giomodule.c
|
||||
+++ b/gio/giomodule.c
|
||||
@@ -36,14 +36,17 @@
|
||||
#include "gsocks4aproxy.h"
|
||||
#include "gsocks5proxy.h"
|
||||
#include "gvfs.h"
|
||||
-#ifdef G_OS_UNIX
|
||||
-#include "gdesktopappinfo.h"
|
||||
-#endif
|
||||
#ifdef G_OS_WIN32
|
||||
#include "gregistrysettingsbackend.h"
|
||||
#endif
|
||||
#include <glib/gstdio.h>
|
||||
|
||||
+#undef G_DISABLE_DEPRECATED
|
||||
+
|
||||
+#ifdef G_OS_UNIX
|
||||
+#include "gdesktopappinfo.h"
|
||||
+#endif
|
||||
+
|
||||
/**
|
||||
* SECTION:giomodule
|
||||
* @short_description: Loadable GIO Modules
|
||||
@@ -523,6 +526,13 @@ _g_io_modules_ensure_extension_points_registered (void)
|
||||
{
|
||||
registered_extensions = TRUE;
|
||||
|
||||
+#ifdef G_OS_UNIX
|
||||
+#if !GLIB_CHECK_VERSION (3, 0, 0)
|
||||
+ ep = g_io_extension_point_register (G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME);
|
||||
+ g_io_extension_point_set_required_type (ep, G_TYPE_DESKTOP_APP_INFO_LOOKUP);
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
ep = g_io_extension_point_register (G_LOCAL_DIRECTORY_MONITOR_EXTENSION_POINT_NAME);
|
||||
g_io_extension_point_set_required_type (ep, G_TYPE_LOCAL_DIRECTORY_MONITOR);
|
||||
|
||||
--
|
||||
cgit v0.8.3.1
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 24 18:50:14 CET 2010 - vuntz@opensuse.org
|
||||
|
||||
- Add glib2-add-back-extension-point.patch: this adds back the
|
||||
gio-desktop-app-info-lookup extension point. This fixes big
|
||||
issues when a GIO module using it is installed. Fix bnc#655561.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 17 14:25:40 CET 2010 - vuntz@opensuse.org
|
||||
|
||||
|
@ -40,6 +40,8 @@ Source5: macros.glib2
|
||||
# Please update this file from the latest gtk-doc package:
|
||||
Source6: gtk-doc.m4
|
||||
Source99: baselibs.conf
|
||||
# PATCH-FIX-UPSTREAM glib2-add-back-extension-point.patch bnc#655561 vuntz@opensuse.org -- Add back a gio extension point, to fix issues for modules using it. Taken from git.
|
||||
Patch0: glib2-add-back-extension-point.patch
|
||||
# PATCH-FIX-OPENSUSE glib2-bnc379332-desktop-su.patch bnc379332 vuntz@novell.com -- Use X-KDE-SubstituteUID
|
||||
Patch8: glib2-bnc379332-desktop-su.patch
|
||||
# PATCH-FEATURE-UPSTREAM glib2-bgo569829-gettext-gkeyfile.patch fate300461 bgo569829 vuntz@novell.com -- Look for translation of desktop entry strings via gettext, part that we share with Ubuntu and try to push upstream
|
||||
@ -239,6 +241,7 @@ The GObject library provides an object-oriented framework for C.
|
||||
%prep
|
||||
%setup -q -n %{_name}-%{version}
|
||||
translation-update-upstream
|
||||
%patch0 -p1
|
||||
%patch8
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user