- Update the patch to always pass FUSE POSIX URI's
This commit is contained in:
parent
dce999b265
commit
8bc1c968cc
@ -1,117 +0,0 @@
|
|||||||
diff -up glib-2.17.3/gio/gdesktopappinfo.c.only-pass-uri-to-gio-apps glib-2.17.3/gio/gdesktopappinfo.c
|
|
||||||
--- glib-2.17.3/gio/gdesktopappinfo.c.only-pass-uri-to-gio-apps 2008-07-02 17:13:13.000000000 -0400
|
|
||||||
+++ glib-2.17.3/gio/gdesktopappinfo.c 2008-07-03 13:21:42.000000000 -0400
|
|
||||||
@@ -1,3 +1,5 @@
|
|
||||||
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
+
|
|
||||||
/* GIO - GLib Input, Output and Streaming Library
|
|
||||||
*
|
|
||||||
* Copyright (C) 2006-2007 Red Hat, Inc.
|
|
||||||
@@ -89,6 +91,7 @@ struct _GDesktopAppInfo
|
|
||||||
char *exec;
|
|
||||||
char *binary;
|
|
||||||
char *path;
|
|
||||||
+ char *vfs_system;
|
|
||||||
|
|
||||||
guint nodisplay : 1;
|
|
||||||
guint hidden : 1;
|
|
||||||
@@ -151,6 +154,7 @@ g_desktop_app_info_finalize (GObject *ob
|
|
||||||
g_free (info->try_exec);
|
|
||||||
g_free (info->exec);
|
|
||||||
g_free (info->binary);
|
|
||||||
+ g_free (info->vfs_system);
|
|
||||||
g_free (info->path);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (g_desktop_app_info_parent_class)->finalize (object);
|
|
||||||
@@ -254,6 +258,7 @@ g_desktop_app_info_new_from_keyfile (GKe
|
|
||||||
info->terminal = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_TERMINAL, NULL) != FALSE;
|
|
||||||
info->startup_notify = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, NULL) != FALSE;
|
|
||||||
info->hidden = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_HIDDEN, NULL) != FALSE;
|
|
||||||
+ info->vfs_system = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "X-Gnome-Vfs-System", NULL);
|
|
||||||
|
|
||||||
info->icon = NULL;
|
|
||||||
if (info->icon_name)
|
|
||||||
@@ -392,6 +397,7 @@ g_desktop_app_info_dup (GAppInfo *appinf
|
|
||||||
new_info->exec = g_strdup (info->exec);
|
|
||||||
new_info->binary = g_strdup (info->binary);
|
|
||||||
new_info->path = g_strdup (info->path);
|
|
||||||
+ new_info->vfs_system = g_strdup (info->vfs_system);
|
|
||||||
new_info->hidden = info->hidden;
|
|
||||||
new_info->terminal = info->terminal;
|
|
||||||
new_info->startup_notify = info->startup_notify;
|
|
||||||
@@ -517,9 +523,35 @@ expand_macro (char macro,
|
|
||||||
{
|
|
||||||
GList *uris = *uri_list;
|
|
||||||
char *expanded;
|
|
||||||
-
|
|
||||||
+ gboolean force_file_uri;
|
|
||||||
+ char force_file_uri_macro;
|
|
||||||
+
|
|
||||||
g_return_if_fail (exec != NULL);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
+ /* On %u and %U, only pass gio URI's if the desktop file has the
|
|
||||||
+ * X-Gnome-Vfs-System key set to 'gio' or if FUSE is not available.
|
|
||||||
+ * Otherwise we pass in a POSIX file path pointing to the URI via
|
|
||||||
+ * the FUSE mount in ~/.gvfs.
|
|
||||||
+ */
|
|
||||||
+ force_file_uri = FALSE;
|
|
||||||
+ if (macro == 'u' || macro == 'U')
|
|
||||||
+ {
|
|
||||||
+ if (info->vfs_system == NULL || strcmp (info->vfs_system, "gio") != 0)
|
|
||||||
+ {
|
|
||||||
+ switch (macro)
|
|
||||||
+ {
|
|
||||||
+ case 'u':
|
|
||||||
+ force_file_uri_macro = 'f';
|
|
||||||
+ force_file_uri = TRUE;
|
|
||||||
+ break;
|
|
||||||
+ case 'U':
|
|
||||||
+ force_file_uri_macro = 'F';
|
|
||||||
+ force_file_uri = TRUE;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
switch (macro)
|
|
||||||
{
|
|
||||||
case 'u':
|
|
||||||
@@ -528,7 +560,17 @@ expand_macro (char macro,
|
|
||||||
case 'n':
|
|
||||||
if (uris)
|
|
||||||
{
|
|
||||||
- expanded = expand_macro_single (macro, uris->data);
|
|
||||||
+ if (!force_file_uri || g_str_has_prefix (uris->data, "http"))
|
|
||||||
+ {
|
|
||||||
+ expanded = expand_macro_single (macro, uris->data);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ expanded = expand_macro_single (force_file_uri_macro, uris->data);
|
|
||||||
+ if (expanded == NULL)
|
|
||||||
+ expanded = expand_macro_single (macro, uris->data);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (expanded)
|
|
||||||
{
|
|
||||||
g_string_append (exec, expanded);
|
|
||||||
@@ -545,7 +587,17 @@ expand_macro (char macro,
|
|
||||||
case 'N':
|
|
||||||
while (uris)
|
|
||||||
{
|
|
||||||
- expanded = expand_macro_single (macro, uris->data);
|
|
||||||
+ if (!force_file_uri || g_str_has_prefix (uris->data, "http"))
|
|
||||||
+ {
|
|
||||||
+ expanded = expand_macro_single (macro, uris->data);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ expanded = expand_macro_single (force_file_uri_macro, uris->data);
|
|
||||||
+ if (expanded == NULL)
|
|
||||||
+ expanded = expand_macro_single (macro, uris->data);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (expanded)
|
|
||||||
{
|
|
||||||
g_string_append (exec, expanded);
|
|
75
gio-2.18-always-pass-fuse-file-uri.patch
Normal file
75
gio-2.18-always-pass-fuse-file-uri.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
--- trunk/gio/gdesktopappinfo.c 2008/09/26 19:57:36 7554
|
||||||
|
+++ trunk/gio/gdesktopappinfo.c 2008/10/01 17:46:57 7566
|
||||||
|
@@ -530,9 +530,32 @@
|
||||||
|
{
|
||||||
|
GList *uris = *uri_list;
|
||||||
|
char *expanded;
|
||||||
|
-
|
||||||
|
+ gboolean force_file_uri;
|
||||||
|
+ char force_file_uri_macro;
|
||||||
|
+
|
||||||
|
g_return_if_fail (exec != NULL);
|
||||||
|
-
|
||||||
|
+
|
||||||
|
+ /* On %u and %U, pass POSIX file path pointing to the URI via
|
||||||
|
+ * the FUSE mount in ~/.gvfs. Note that if the FUSE daemon isn't
|
||||||
|
+ * running or the URI doesn't have a POSIX file path via FUSE
|
||||||
|
+ * we'll just pass the URI.
|
||||||
|
+ */
|
||||||
|
+ switch (macro)
|
||||||
|
+ {
|
||||||
|
+ case 'u':
|
||||||
|
+ force_file_uri_macro = 'f';
|
||||||
|
+ force_file_uri = TRUE;
|
||||||
|
+ break;
|
||||||
|
+ case 'U':
|
||||||
|
+ force_file_uri_macro = 'F';
|
||||||
|
+ force_file_uri = TRUE;
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ force_file_uri_macro = macro;
|
||||||
|
+ force_file_uri = FALSE;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
switch (macro)
|
||||||
|
{
|
||||||
|
case 'u':
|
||||||
|
@@ -541,7 +564,17 @@
|
||||||
|
case 'n':
|
||||||
|
if (uris)
|
||||||
|
{
|
||||||
|
- expanded = expand_macro_single (macro, uris->data);
|
||||||
|
+ if (!force_file_uri)
|
||||||
|
+ {
|
||||||
|
+ expanded = expand_macro_single (macro, uris->data);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ expanded = expand_macro_single (force_file_uri_macro, uris->data);
|
||||||
|
+ if (expanded == NULL)
|
||||||
|
+ expanded = expand_macro_single (macro, uris->data);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (expanded)
|
||||||
|
{
|
||||||
|
g_string_append (exec, expanded);
|
||||||
|
@@ -558,7 +591,17 @@
|
||||||
|
case 'N':
|
||||||
|
while (uris)
|
||||||
|
{
|
||||||
|
- expanded = expand_macro_single (macro, uris->data);
|
||||||
|
+ if (!force_file_uri)
|
||||||
|
+ {
|
||||||
|
+ expanded = expand_macro_single (macro, uris->data);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ expanded = expand_macro_single (force_file_uri_macro, uris->data);
|
||||||
|
+ if (expanded == NULL)
|
||||||
|
+ expanded = expand_macro_single (macro, uris->data);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (expanded)
|
||||||
|
{
|
||||||
|
g_string_append (exec, expanded);
|
10
glib2.spec
10
glib2.spec
@ -3,7 +3,7 @@
|
|||||||
Summary: A library of handy utility functions
|
Summary: A library of handy utility functions
|
||||||
Name: glib2
|
Name: glib2
|
||||||
Version: 2.18.1
|
Version: 2.18.1
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
URL: http://www.gtk.org
|
URL: http://www.gtk.org
|
||||||
@ -20,7 +20,8 @@ BuildRequires: libselinux-devel
|
|||||||
BuildRequires: glibc-devel
|
BuildRequires: glibc-devel
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=442835
|
# https://bugzilla.redhat.com/show_bug.cgi?id=442835
|
||||||
Patch2: gio-2.16-only-pass-uri-to-gio-apps.patch
|
# http://bugzilla.gnome.org/show_bug.cgi?id=528670
|
||||||
|
Patch2: gio-2.18-always-pass-fuse-file-uri.patch
|
||||||
|
|
||||||
# this patch requires autoreconf
|
# this patch requires autoreconf
|
||||||
BuildRequires: autoconf automake libtool gettext-devel gtk-doc
|
BuildRequires: autoconf automake libtool gettext-devel gtk-doc
|
||||||
@ -56,7 +57,7 @@ of version 2 of the GLib library.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n glib-%{version}
|
%setup -q -n glib-%{version}
|
||||||
%patch2 -p1 -b .only-pass-uri-to-gio-apps
|
%patch2 -p1 -b .always-pass-fuse-file-uri
|
||||||
|
|
||||||
autoreconf
|
autoreconf
|
||||||
|
|
||||||
@ -133,6 +134,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_libdir}/lib*.a
|
%{_libdir}/lib*.a
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 1 2008 David Zeuthen <davidz@redhat.com> - 2.18.1-2
|
||||||
|
- Update the patch to always pass FUSE POSIX URI's
|
||||||
|
|
||||||
* Wed Sep 17 2008 Matthias Clasen <mclasen@redhat.com> - 2.18.1-1
|
* Wed Sep 17 2008 Matthias Clasen <mclasen@redhat.com> - 2.18.1-1
|
||||||
- Update to 2.18.1
|
- Update to 2.18.1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user