Added glib RPM
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 9 Sep 2008 11:03:20 +0000 (07:03 -0400)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 9 Sep 2008 11:03:20 +0000 (07:03 -0400)
glib2/gio-2.16-only-pass-uri-to-gio-apps.patch [new file with mode: 0644]
glib2/mingw-glib2.spec [new file with mode: 0644]

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 (file)
index 0000000..8f3715b
--- /dev/null
@@ -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 (file)
index 0000000..fe3e83f
--- /dev/null
@@ -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 <berrange@redhat.com> - 2.18.0-1
+- Initial RPM release