From 422897c2c78e1a7690cb95c6e65130c53b2e6c42 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Thu, 1 Jan 1970 00:00:00 +0000 Subject: [PATCH] Added glib RPM --- glib2/gio-2.16-only-pass-uri-to-gio-apps.patch | 117 +++++++++++++++++++++++++ glib2/mingw-glib2.spec | 106 ++++++++++++++++++++++ 2 files changed, 223 insertions(+) create mode 100644 glib2/gio-2.16-only-pass-uri-to-gio-apps.patch create mode 100644 glib2/mingw-glib2.spec diff --git a/glib2/gio-2.16-only-pass-uri-to-gio-apps.patch b/glib2/gio-2.16-only-pass-uri-to-gio-apps.patch new file mode 100644 index 0000000..8f3715b --- /dev/null +++ b/glib2/gio-2.16-only-pass-uri-to-gio-apps.patch @@ -0,0 +1,117 @@ +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); diff --git a/glib2/mingw-glib2.spec b/glib2/mingw-glib2.spec new file mode 100644 index 0000000..fe3e83f --- /dev/null +++ b/glib2/mingw-glib2.spec @@ -0,0 +1,106 @@ +%include /usr/lib/rpm/mingw-defs + +Name: mingw-glib2 +Version: 2.18.0 +Release: 1%{?dist} +Summary: MinGW Windows GLib2 library + +License: LGPLv2+ +Group: Development/Libraries +URL: http://www.gtk.org +Source0: http://download.gnome.org/sources/glib/2.18/glib-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildArch: noarch + +Patch2: gio-2.16-only-pass-uri-to-gio-apps.patch + +BuildRequires: mingw-filesystem >= 19 +BuildRequires: mingw-gcc +BuildRequires: mingw-binutils +BuildRequires: mingw-iconv +BuildRequires: mingw-gettext + + +%description +MinGW Windows Glib2 library. + + +%prep +%setup -q -n glib-%{version} +%patch2 -p1 + + +%build +%{_mingw_configure} +make + + +%install +rm -rf $RPM_BUILD_ROOT + +make DESTDIR=$RPM_BUILD_ROOT install + +rm -f $RPM_BUILD_ROOT/%{_mingw_libdir}/charset.alias + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root) +%{_mingw_bindir}/glib-genmarshal.exe +%{_mingw_bindir}/glib-gettextize +%{_mingw_bindir}/glib-mkenums +%{_mingw_bindir}/gobject-query.exe +%{_mingw_bindir}/gspawn-win32-helper-console.exe +%{_mingw_bindir}/gspawn-win32-helper.exe +%{_mingw_bindir}/libgio-2.0-0.dll +%{_mingw_bindir}/libglib-2.0-0.dll +%{_mingw_bindir}/libgmodule-2.0-0.dll +%{_mingw_bindir}/libgobject-2.0-0.dll +%{_mingw_bindir}/libgthread-2.0-0.dll +%{_mingw_includedir}/glib-2.0/ +%{_mingw_libdir}/gio-2.0.def +%{_mingw_libdir}/glib-2.0.def +%{_mingw_libdir}/glib-2.0/ +%{_mingw_libdir}/gmodule-2.0.def +%{_mingw_libdir}/gobject-2.0.def +%{_mingw_libdir}/gthread-2.0.def +%{_mingw_libdir}/libgio-2.0.dll.a +%{_mingw_libdir}/libgio-2.0.la +%{_mingw_libdir}/libglib-2.0.dll.a +%{_mingw_libdir}/libglib-2.0.la +%{_mingw_libdir}/libgmodule-2.0.dll.a +%{_mingw_libdir}/libgmodule-2.0.la +%{_mingw_libdir}/libgobject-2.0.dll.a +%{_mingw_libdir}/libgobject-2.0.la +%{_mingw_libdir}/libgthread-2.0.dll.a +%{_mingw_libdir}/libgthread-2.0.la +%{_mingw_libdir}/pkgconfig/gio-2.0.pc +%{_mingw_libdir}/pkgconfig/gio-unix-2.0.pc +%{_mingw_libdir}/pkgconfig/glib-2.0.pc +%{_mingw_libdir}/pkgconfig/gmodule-2.0.pc +%{_mingw_libdir}/pkgconfig/gmodule-export-2.0.pc +%{_mingw_libdir}/pkgconfig/gmodule-no-export-2.0.pc +%{_mingw_libdir}/pkgconfig/gobject-2.0.pc +%{_mingw_libdir}/pkgconfig/gthread-2.0.pc +%{_mingw_datadir}/aclocal/glib-2.0.m4 +%{_mingw_datadir}/aclocal/glib-gettext.m4 +%{_mingw_datadir}/glib-2.0/ +%{_mingw_datadir}/gtk-doc/html/gio/ +%{_mingw_datadir}/gtk-doc/html/glib/ +%{_mingw_datadir}/gtk-doc/html/gobject/ +%{_mingw_datadir}/locale/*/LC_MESSAGES/glib20.mo +%{_mingw_mandir}/man1/glib-genmarshal.1* +%{_mingw_mandir}/man1/glib-gettextize.1* +%{_mingw_mandir}/man1/glib-mkenums.1* +%{_mingw_mandir}/man1/gobject-query.1* +%{_mingw_mandir}/man1/gtester-report.1* +%{_mingw_mandir}/man1/gtester.1* + + + +%changelog +* Tue Sep 9 2008 Daniel P. Berrange - 2.18.0-1 +- Initial RPM release -- 1.8.3.1