diff --git a/SuSEconfig.glib2 b/SuSEconfig.glib2 new file mode 100644 index 0000000..f6740ab --- /dev/null +++ b/SuSEconfig.glib2 @@ -0,0 +1,144 @@ +#! /bin/sh +# +# Copyright (c) 2006 SuSE +# Author: Stanislav Brabec +# +# Creates defaults.list from gnome_defaults.conf using only available +# applications and preferring GNOME and GTK applications. +# +# See /etc/gnome_defaults.conf for algorithm description. + +shopt -s nullglob + +unset DUMMY ${!MIME_*} ${!APP_*} ${!DEFAULT_*} ${!PREFDEFAULT_*} ${!DEFDESKTOP_*} + +# Ensure, that $XDG_DATA_DIRS is set properly. (#71978, #240603) +if test "$PROFILEREAD" != true ; then + . $r/etc/profile +fi + +# Read defaults.list and set applications as best candidates. +exec <$r/etc/gnome_defaults.conf +while read ; do + case "$REPLY" in + "[Default Applications]" | "#"* | "" ) + ;; + # Is is default application for particular MIME type? + *=* ) + # Strip optional priority record (and ignore it - no GNOME app uses it). + MIME=${REPLY%%=*} + # Replace special characters. + MIMES=${MIME//_/__} + MIMES=${MIMES//\//_S} + MIMES=${MIMES//-/_M} + MIMES=${MIMES//+/_P} + MIMES=${MIMES//./_D} + eval DEFAULT_${MIMES}\=${REPLY#*=} + ;; + # Is it preferred default application? + !* ) + DESKTOP=${REPLY#!} + DESKTOPS=${DESKTOP//_/__} + DESKTOPS=${DESKTOPS//-/_M} + DESKTOPS=${DESKTOPS//+/_P} + DESKTOPS=${DESKTOPS//./_D} + DESKTOPS=${DESKTOPS// /_S} + DESKTOPS=${DESKTOPS//:/_C} + eval DEFDESKTOP_$DESKTOPS\=PREFDEFAULT + ;; + # Is it default application? + * ) + DESKTOP=${REPLY} + DESKTOPS=${DESKTOP//_/__} + DESKTOPS=${DESKTOPS//-/_M} + DESKTOPS=${DESKTOPS//+/_P} + DESKTOPS=${DESKTOPS//./_D} + DESKTOPS=${DESKTOPS// /_S} + DESKTOPS=${DESKTOPS//:/_C} + eval DEFDESKTOP_$DESKTOPS\=DEFAULT + ;; + esac +done +exec <&- + +IFS="$IFS:;" +# Browse all desktop files +for DIR in ${XDG_DATA_DIRS:-/usr/local/share:/usr/share} ; do + for DESKTOP in $r$DIR/applications/*.desktop ; do + DESKTOPN=${DESKTOP##*/} + DESKTOPS=${DESKTOPN//_/__} + DESKTOPS=${DESKTOPS//-/_M} + DESKTOPS=${DESKTOPS//+/_P} + DESKTOPS=${DESKTOPS//./_D} + DESKTOPS=${DESKTOPS// /_S} + DESKTOPS=${DESKTOPS//:/_C} + IS_DEFAULT_DESKTOP=false + eval "if test \"\$DEFDESKTOP_$DESKTOPS\" ; then + IS_DEFAULT_DESKTOP=true + DEFTYPE=\$DEFDESKTOP_$DESKTOPS + fi" + exec <"$DESKTOP" + CATEGORIES= + MIMETYPE= + while read ; do + case "$REPLY" in + Categories=* ) + CATEGORIES="${REPLY#Categories=}" + ;; + MimeType=* ) + MIMETYPE="${REPLY#MimeType=}" + ;; + esac + done + exec <&- + # Is it a GNOME application? + APPTYPE=GENERIC + if test "$CATEGORIES" != "${CATEGORIES/GTK}" ; then + APPTYPE=GTK + fi + if test "$CATEGORIES" != "${CATEGORIES/GNOME}" ; then + APPTYPE=GNOME + fi + if $IS_DEFAULT_DESKTOP ; then + APPTYPE=$DEFTYPE + fi + for MIME in $MIMETYPE ; do + # Strip optional priority record (and ignore it - no GNOME app uses it). + MIME=${MIME%:*} + # Replace special characters. + MIMES=${MIME//_/__} + MIMES=${MIMES//\//_S} + MIMES=${MIMES//-/_M} + MIMES=${MIMES//+/_P} + MIMES=${MIMES//./_D} + eval MIME_$MIMES\=$MIME + IS_DEFAULT=false + eval "if test \"\$DEFAULT_$MIMES\" = \"\$DESKTOPN\" ; then + IS_DEFAULT=true + fi" + if $IS_DEFAULT ; then + eval APP_DEFAULT_$MIMES\=\"\$DESKTOPN\" + else + eval APP_${APPTYPE}_$MIMES\=\"\$DESKTOPN\" + fi + done + done +done + +exec >$r/var/cache/gio-2.0/defaults.list +echo "# generated by SuSEconfig --module glib2 from /etc/gnome_defaults.conf" +echo "[Default Applications]" + +# Browse all offered MIME types and write defaults.list. +for MIMES in ${!MIME_*} ; do + eval MIME\=\$$MIMES + MIMES=${MIMES#MIME_} + # Try GNOME applications first, then GTK, then generic. + for APPTYPE in PREFDEFAULT DEFAULT DEFDESKTOP GNOME GTK GENERIC ; do + eval "if test \"\$APP_${APPTYPE}_$MIMES\" ; then + echo \"$MIME=\$APP_${APPTYPE}_$MIMES\" ; + break ; + fi" + done +done +exec >&- diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..7e8eb9e --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,2 @@ +glib2 +arch ppc64 package glib2-devel diff --git a/glib2-bnc373149-bgo518160-gbookmark-optimizations.diff b/glib2-bnc373149-bgo518160-gbookmark-optimizations.diff new file mode 100644 index 0000000..8da4dcf --- /dev/null +++ b/glib2-bnc373149-bgo518160-gbookmark-optimizations.diff @@ -0,0 +1,52 @@ +https://bugzilla.novell.com/show_bug.cgi?id=373149 backport glib performance patches for GBookmark + + 2008-03-22 Emmanuele Bassi + + Bug 518160 - replace two g_strdup_printf calls in GBookmarkFile + + * glib/gbookmarkfile.c (is_element_full): Compare the fragments + instead of building two strings; this avoids two g_strdup_printf() + per namespaced element enountered. (#518160, Felix Riemann) + + git-svn-id: svn+ssh://svn.gnome.org/svn/glib/trunk@6751 5bbd4a9e-d125-0410-bf1d-f987e7eefc80 + +diff --git a/glib/gbookmarkfile.c b/glib/gbookmarkfile.c +index 048df0e..5cf320d 100644 +--- a/glib/gbookmarkfile.c ++++ b/glib/gbookmarkfile.c +@@ -998,7 +998,7 @@ is_element_full (ParseData *parse_data, + const gchar *element, + const gchar sep) + { +- gchar *ns_uri, *ns_name, *s, *resolved; ++ gchar *ns_uri, *ns_name; + const gchar *p, *element_name; + gboolean retval; + +@@ -1017,7 +1017,7 @@ is_element_full (ParseData *parse_data, + * namespace has been set, just do a plain comparison between @full_element + * and @element. + */ +- p = strchr (element_full, ':'); ++ p = g_utf8_strchr (element_full, -1, ':'); + if (p) + { + ns_name = g_strndup (element_full, p - element_full); +@@ -1037,14 +1037,11 @@ is_element_full (ParseData *parse_data, + + return (0 == strcmp (element_full, element)); + } +- +- resolved = g_strdup_printf ("%s%c%s", ns_uri, sep, element_name); +- s = g_strdup_printf ("%s%c%s", namespace, sep, element); +- retval = (0 == strcmp (resolved, s)); ++ ++ retval = (0 == strcmp (ns_uri, namespace) && ++ 0 == strcmp (element_name, element)); + + g_free (ns_name); +- g_free (resolved); +- g_free (s); + + return retval; + } diff --git a/glib2-bnc373149-bgo523877-gbookmark-optimizations.diff b/glib2-bnc373149-bgo523877-gbookmark-optimizations.diff new file mode 100644 index 0000000..f4e35be --- /dev/null +++ b/glib2-bnc373149-bgo523877-gbookmark-optimizations.diff @@ -0,0 +1,411 @@ +https://bugzilla.novell.com/show_bug.cgi?id=373149 backport glib performance patches for GBookmark + + 2008-03-22 Claudio Saavedra + + Bug 523877 – gbookmarkfile: avoid using g_string_append_printf() and + other optimizations + + * glib/gbookmarkfile.c: (bookmark_metadata_dump), + (bookmark_item_dump), (g_bookmark_file_dump), (expand_exec_line): + Replace all calls to g_string_append_printf with g_strconcat () or + g_string_append () where appropriate, to reduce the file creation time. + Also, use g_string_sized_new () with an appropriate buffer size instead + of g_string_new (NULL), to reduce time spent in memory reallocation. + (#523877, Claudio Saavedra, Emmanuele Bassi) + + + + git-svn-id: svn+ssh://svn.gnome.org/svn/glib/trunk@6752 5bbd4a9e-d125-0410-bf1d-f987e7eefc80 + +diff --git a/glib/gbookmarkfile.c b/glib/gbookmarkfile.c +index 5cf320d..70ce6ee 100644 +--- a/glib/gbookmarkfile.c ++++ b/glib/gbookmarkfile.c +@@ -339,56 +339,62 @@ static gchar * + bookmark_metadata_dump (BookmarkMetadata *metadata) + { + GString *retval; ++ gchar *buffer; + + if (!metadata->applications) + return NULL; + +- retval = g_string_new (NULL); ++ retval = g_string_sized_new (1024); + + /* metadata container */ +- g_string_append_printf (retval, +- " <%s %s=\"%s\">\n", +- XBEL_METADATA_ELEMENT, +- XBEL_OWNER_ATTRIBUTE, BOOKMARK_METADATA_OWNER); +- ++ g_string_append (retval, ++ " " ++ "<" XBEL_METADATA_ELEMENT ++ " " XBEL_OWNER_ATTRIBUTE "=\"" BOOKMARK_METADATA_OWNER ++ "\">\n"); ++ + /* mime type */ +- if (metadata->mime_type) +- g_string_append_printf (retval, +- " <%s:%s %s=\"%s\"/>\n", +- MIME_NAMESPACE_NAME, +- MIME_TYPE_ELEMENT, +- MIME_TYPE_ATTRIBUTE, metadata->mime_type); +- ++ if (metadata->mime_type) { ++ buffer = g_strconcat (" " ++ "<" MIME_NAMESPACE_NAME ":" MIME_TYPE_ELEMENT " " ++ MIME_TYPE_ATTRIBUTE "=\"", metadata->mime_type, "\"/>\n", ++ NULL); ++ g_string_append (retval, buffer); ++ g_free (buffer); ++ } ++ + if (metadata->groups) + { + GList *l; + + /* open groups container */ +- g_string_append_printf (retval, +- " <%s:%s>\n", +- BOOKMARK_NAMESPACE_NAME, +- BOOKMARK_GROUPS_ELEMENT); ++ g_string_append (retval, ++ " " ++ "<" BOOKMARK_NAMESPACE_NAME ++ ":" BOOKMARK_GROUPS_ELEMENT ">\n"); + + for (l = g_list_last (metadata->groups); l != NULL; l = l->prev) + { + gchar *group_name; + + group_name = g_markup_escape_text ((gchar *) l->data, -1); +- g_string_append_printf (retval, +- " <%s:%s>%s\n", +- BOOKMARK_NAMESPACE_NAME, +- BOOKMARK_GROUP_ELEMENT, +- group_name, +- BOOKMARK_NAMESPACE_NAME, +- BOOKMARK_GROUP_ELEMENT); ++ buffer = g_strconcat (" " ++ "<" BOOKMARK_NAMESPACE_NAME ++ ":" BOOKMARK_GROUP_ELEMENT ">", ++ group_name, ++ "\n", NULL); ++ g_string_append (retval, buffer); ++ ++ g_free (buffer); + g_free (group_name); + } + + /* close groups container */ +- g_string_append_printf (retval, +- " \n", +- BOOKMARK_NAMESPACE_NAME, +- BOOKMARK_GROUPS_ELEMENT); ++ g_string_append (retval, ++ " " ++ "\n"); + } + + if (metadata->applications) +@@ -396,10 +402,10 @@ bookmark_metadata_dump (BookmarkMetadata *metadata) + GList *l; + + /* open applications container */ +- g_string_append_printf (retval, +- " <%s:%s>\n", +- BOOKMARK_NAMESPACE_NAME, +- BOOKMARK_APPLICATIONS_ELEMENT); ++ g_string_append (retval, ++ " " ++ "<" BOOKMARK_NAMESPACE_NAME ++ ":" BOOKMARK_APPLICATIONS_ELEMENT ">\n"); + + for (l = g_list_last (metadata->applications); l != NULL; l = l->prev) + { +@@ -419,10 +425,10 @@ bookmark_metadata_dump (BookmarkMetadata *metadata) + } + + /* close applications container */ +- g_string_append_printf (retval, +- " \n", +- BOOKMARK_NAMESPACE_NAME, +- BOOKMARK_APPLICATIONS_ELEMENT); ++ g_string_append (retval, ++ " " ++ "\n"); + } + + /* icon */ +@@ -430,24 +436,28 @@ bookmark_metadata_dump (BookmarkMetadata *metadata) + { + if (!metadata->icon_mime) + metadata->icon_mime = g_strdup ("application/octet-stream"); +- +- g_string_append_printf (retval, +- " <%s:%s %s=\"%s\" %s=\"%s\"/>\n", +- BOOKMARK_NAMESPACE_NAME, +- BOOKMARK_ICON_ELEMENT, +- BOOKMARK_HREF_ATTRIBUTE, metadata->icon_href, +- BOOKMARK_TYPE_ATTRIBUTE, metadata->icon_mime); ++ ++ buffer = g_strconcat (" " ++ "<" BOOKMARK_NAMESPACE_NAME ++ ":" BOOKMARK_ICON_ELEMENT ++ " " BOOKMARK_HREF_ATTRIBUTE "=\"", metadata->icon_href, ++ "\" " BOOKMARK_TYPE_ATTRIBUTE "=\"", metadata->icon_mime, "\"/>\n", NULL); ++ g_string_append (retval, buffer); ++ ++ g_free (buffer); + } + + /* private hint */ + if (metadata->is_private) +- g_string_append_printf (retval, +- " <%s:%s/>\n", +- BOOKMARK_NAMESPACE_NAME, +- BOOKMARK_PRIVATE_ELEMENT); ++ g_string_append (retval, ++ " " ++ "<" BOOKMARK_NAMESPACE_NAME ++ ":" BOOKMARK_PRIVATE_ELEMENT "/>\n"); + + /* close metadata container */ +- g_string_append_printf (retval, " \n", XBEL_METADATA_ELEMENT); ++ g_string_append (retval, ++ " " ++ "\n"); + + return g_string_free (retval, FALSE); + } +@@ -501,6 +511,7 @@ bookmark_item_dump (BookmarkItem *item) + GString *retval; + gchar *added, *visited, *modified; + gchar *escaped_uri; ++ gchar *buffer; + + /* at this point, we must have at least a registered application; if we don't + * we don't screw up the bookmark file, and just skip this item +@@ -511,37 +522,45 @@ bookmark_item_dump (BookmarkItem *item) + return NULL; + } + +- retval = g_string_new (NULL); ++ retval = g_string_sized_new (4096); + + added = timestamp_to_iso8601 (item->added); + modified = timestamp_to_iso8601 (item->modified); + visited = timestamp_to_iso8601 (item->visited); + + escaped_uri = g_markup_escape_text (item->uri, -1); +- +- g_string_append_printf (retval, +- " <%s %s=\"%s\" %s=\"%s\" %s=\"%s\" %s=\"%s\">\n", +- XBEL_BOOKMARK_ELEMENT, +- XBEL_HREF_ATTRIBUTE, escaped_uri, +- XBEL_ADDED_ATTRIBUTE, added, +- XBEL_MODIFIED_ATTRIBUTE, modified, +- XBEL_VISITED_ATTRIBUTE, visited); ++ ++ buffer = g_strconcat (" <" ++ XBEL_BOOKMARK_ELEMENT ++ " " ++ XBEL_HREF_ATTRIBUTE "=\"", escaped_uri, "\" " ++ XBEL_ADDED_ATTRIBUTE "=\"", added, "\" " ++ XBEL_MODIFIED_ATTRIBUTE "=\"", modified, "\" " ++ XBEL_VISITED_ATTRIBUTE "=\"", visited, "\">\n", ++ NULL); ++ ++ g_string_append (retval, buffer); ++ + g_free (escaped_uri); + g_free (visited); + g_free (modified); + g_free (added); ++ g_free (buffer); + + if (item->title) + { + gchar *escaped_title; + + escaped_title = g_markup_escape_text (item->title, -1); +- g_string_append_printf (retval, +- " <%s>%s\n", +- XBEL_TITLE_ELEMENT, +- escaped_title, +- XBEL_TITLE_ELEMENT); ++ buffer = g_strconcat (" " ++ "<" XBEL_TITLE_ELEMENT ">", ++ escaped_title, ++ "\n", ++ NULL); ++ g_string_append (retval, buffer); ++ + g_free (escaped_title); ++ g_free (buffer); + } + + if (item->description) +@@ -549,34 +568,38 @@ bookmark_item_dump (BookmarkItem *item) + gchar *escaped_desc; + + escaped_desc = g_markup_escape_text (item->description, -1); +- g_string_append_printf (retval, +- " <%s>%s\n", +- XBEL_DESC_ELEMENT, +- escaped_desc, +- XBEL_DESC_ELEMENT); ++ buffer = g_strconcat (" " ++ "<" XBEL_DESC_ELEMENT ">", ++ escaped_desc, ++ "\n", ++ NULL); ++ g_string_append (retval, buffer); ++ + g_free (escaped_desc); ++ g_free (buffer); + } + + if (item->metadata) + { + gchar *metadata; + +- /* open info container */ +- g_string_append_printf (retval, " <%s>\n", XBEL_INFO_ELEMENT); +- + metadata = bookmark_metadata_dump (item->metadata); + if (metadata) + { +- retval = g_string_append (retval, metadata); ++ buffer = g_strconcat (" " ++ "<" XBEL_INFO_ELEMENT ">\n", ++ metadata, ++ " " ++ "\n", ++ NULL); ++ retval = g_string_append (retval, buffer); + ++ g_free (buffer); + g_free (metadata); + } +- +- /* close info container */ +- g_string_append_printf (retval, " \n", XBEL_INFO_ELEMENT); + } +- +- g_string_append_printf (retval, " \n", XBEL_BOOKMARK_ELEMENT); ++ ++ g_string_append (retval, " \n"); + + return g_string_free (retval, FALSE); + } +@@ -1435,56 +1458,53 @@ g_bookmark_file_dump (GBookmarkFile *bookmark, + GError **error) + { + GString *retval; ++ gchar *buffer; + GList *l; + +- retval = g_string_new (NULL); +- +- g_string_append_printf (retval, +- "\n" +-#if 0 +- /* XXX - do we really need the doctype? */ +- "\n" +-#endif +- "<%s %s=\"%s\"\n" +- " xmlns:%s=\"%s\"\n" +- " xmlns:%s=\"%s\"\n>", ++ retval = g_string_sized_new (4096); ++ ++ g_string_append (retval, ++ "\n" + #if 0 +- /* XXX - do we really need the doctype? */ +- XBEL_DTD_NICK, +- XBEL_DTD_SYSTEM, XBEL_DTD_URI, ++ /* XXX - do we really need the doctype? */ ++ "\n" + #endif +- XBEL_ROOT_ELEMENT, +- XBEL_VERSION_ATTRIBUTE, XBEL_VERSION, +- BOOKMARK_NAMESPACE_NAME, BOOKMARK_NAMESPACE_URI, +- MIME_NAMESPACE_NAME, MIME_NAMESPACE_URI); ++ "<" XBEL_ROOT_ELEMENT " " XBEL_VERSION_ATTRIBUTE "=\"" XBEL_VERSION "\"\n" ++ " xmlns:" BOOKMARK_NAMESPACE_NAME "=\"" BOOKMARK_NAMESPACE_URI "\"\n" ++ " xmlns:" MIME_NAMESPACE_NAME "=\"" MIME_NAMESPACE_URI "\"\n>"); + + if (bookmark->title) + { + gchar *escaped_title; +- ++ + escaped_title = g_markup_escape_text (bookmark->title, -1); ++ ++ buffer = g_strconcat (" " ++ "<" XBEL_TITLE_ELEMENT ">", ++ escaped_title, ++ "\n", NULL); + +- g_string_append_printf (retval, " <%s>%s\n", +- XBEL_TITLE_ELEMENT, +- escaped_title, +- XBEL_TITLE_ELEMENT); +- ++ g_string_append (retval, buffer); ++ ++ g_free (buffer); + g_free (escaped_title); + } + + if (bookmark->description) + { + gchar *escaped_desc; +- ++ + escaped_desc = g_markup_escape_text (bookmark->description, -1); +- +- g_string_append_printf (retval, " <%s>%s\n", +- XBEL_DESC_ELEMENT, +- escaped_desc, +- XBEL_DESC_ELEMENT); +- ++ ++ buffer = g_strconcat (" " ++ "<" XBEL_DESC_ELEMENT ">", ++ escaped_desc, ++ "\n", NULL); ++ g_string_append (retval, buffer); ++ ++ g_free (buffer); + g_free (escaped_desc); + } + +@@ -1510,7 +1530,7 @@ g_bookmark_file_dump (GBookmarkFile *bookmark, + } + + out: +- g_string_append_printf (retval, "", XBEL_ROOT_ELEMENT); ++ g_string_append (retval, ""); + + if (length) + *length = retval->len; +@@ -3271,7 +3291,7 @@ expand_exec_line (const gchar *exec_fmt, + GString *exec; + gchar ch; + +- exec = g_string_new (NULL); ++ exec = g_string_sized_new (512); + while ((ch = *exec_fmt++) != '\0') + { + if (ch != '%') diff --git a/glib2.changes b/glib2.changes index cf18559..eacf389 100644 --- a/glib2.changes +++ b/glib2.changes @@ -1,3 +1,21 @@ +------------------------------------------------------------------- +Tue Apr 1 18:40:52 CEST 2008 - coolo@suse.de + +- moved recommendation of gvfs to gtk2 + +------------------------------------------------------------------- +Tue Apr 1 16:35:22 CEST 2008 - sbrabec@suse.cz + +- SuSEconfig script moved from gnome-vfs2 (bnc#372783). + +------------------------------------------------------------------- +Tue Apr 1 03:05:35 CEST 2008 - federico@novell.com + +- Added glib2-bnc373149-bgo518160-gbookmark-optimizations.diff and + glib2-bnc373149-bgo523877-gbookmark-optimizations.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=373149 - backport + optimizations for GBookmarkFile. + ------------------------------------------------------------------- Mon Mar 17 19:21:53 CET 2008 - rodrigo@suse.de diff --git a/glib2.spec b/glib2.spec index 181cbd9..8a4eb7b 100644 --- a/glib2.spec +++ b/glib2.spec @@ -18,15 +18,17 @@ License: LGPL v2.1 or later Group: Development/Libraries/C and C++ AutoReqProv: on Version: 2.16.1 -Release: 3 +Release: 8 Summary: A Library with Convenient Functions Written in C Url: http://www.gtk.org/ Source: ftp://ftp.gnome.org/pub/GNOME/sources/%{_name}/2.14/%{_name}-%{version}.tar.bz2 Source1: glib2.sh Source2: glib2.csh +Source3: SuSEconfig.glib2 +Source4: gnome_defaults.conf # Not depending on gtk-doc shortens bootstrap compilation path. # Please update this file from the latest gtk-doc package: -Source3: gtk-doc.m4 +Source5: gtk-doc.m4 # PATCH-FIX-OPENSUSE glib2-mkinstalldirs.patch Patch0: glib2-mkinstalldirs.patch # PATCH-FIX-OPENSUSE glib2-aclocal.patch @@ -35,11 +37,16 @@ Patch1: glib2-aclocal.patch Patch2: glib2-cast.patch # PATCH-FIX-UPSTREAM glib2-allocsize.patch bgo523019 meissner@suse.de -- marks malloc-style functions to detect memory problems at compile time Patch3: glib2-allocsize.patch +# PATCH-FIX-UPSTREAM glib2-bnc373149-bgo518160-gbookmark-optimizations.diff bnc373149 bgo518160 federico@novell.com - backport GBookmark optimizations (1) +Patch4: glib2-bnc373149-bgo518160-gbookmark-optimizations.diff +# PATCH-FIX-UPSTREAM glib2-bnc373149-bgo523877-gbookmark-optimizations.diff bnc373149 bgo523877 federico@novell.com - backport GBookmark optimizations (2) +Patch5: glib2-bnc373149-bgo523877-gbookmark-optimizations.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: %{name}-lang = %{version} # For temporary %%pre script only. PreReq: coreutils -Recommends: gvfs +# Conflicts of gnome_defaults.conf from gnome-vfs2 in == 10.3 +Conflicts: gnome-vfs2 < 2.22.0 %description This library provides convenient functions, such as lists and hashes, @@ -65,6 +72,7 @@ Authors: Sebastian Wilhelmi %package devel +License: GPL v2 or later Requires: %{name} = %{version} pcre-devel pkg-config glibc-devel Summary: Include files and libraries mandatory for development Group: Development/Libraries/C and C++ @@ -98,6 +106,7 @@ Authors: Sebastian Wilhelmi %package doc +License: GPL v2 or later Summary: Documentation for the C Library with Convenience Functions Group: Development/Libraries/C and C++ AutoReqProv: on @@ -132,8 +141,11 @@ Authors: %patch1 ### %patch2 %patch3 +%patch4 -p1 +%patch5 -p1 +cp -a %{S:1} %{S:2} %{S:3} %{S:4} . if ! test -f %{_datadir}/aclocal/gtk-doc.m4 ; then - cp -a %{S:3} m4macros/ + cp -a %{S:5} m4macros/ fi %build @@ -148,13 +160,31 @@ make %{?jobs:-j%jobs} %install make install DESTDIR=$RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/etc/profile.d -cp -a %{S:1} $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.sh -cp -a %{S:2} $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.csh -chmod +x $RPM_BUILD_ROOT/%{_bindir}/gtester-report +install -D -m0755 glib2.sh $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.sh +install -D -m0755 glib2.csh $RPM_BUILD_ROOT/etc/profile.d/zzz-glib2.csh +install -D -m0755 SuSEconfig.glib2 $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.glib2 +install -D -m0644 gnome_defaults.conf $RPM_BUILD_ROOT%{_sysconfdir}/gnome_defaults.conf +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/gio-2.0 $RPM_BUILD_ROOT%{_datadir}/applications +touch $RPM_BUILD_ROOT%{_localstatedir}/cache/gio-2.0/defaults.list +ln -s %{_localstatedir}/cache/gio-2.0/defaults.list $RPM_BUILD_ROOT%{_datadir}/applications/defaults.list +#chmod +x $RPM_BUILD_ROOT/%{_bindir}/gtester-report %find_lang %{_name}20 %fdupes $RPM_BUILD_ROOT %post -p /sbin/ldconfig +%posttrans +# If it is an upgrade and gnome_defaults.conf were edited, +# move it from its old location. (Upgrade from <=10.2) +if test -f etc/opt/gnome/gnome_defaults.conf.rpmsave ; then + mv etc/gnome_defaults.conf etc/gnome_defaults.conf.rpmnew + sed "s:etc/opt/gnome:etc:g;s:opt/gnome:usr:g" etc/gnome_defaults.conf +fi +# If it is an upgrade and gnome_defaults.conf were edited, +# revive it from the RPM backup. (Upgrade from ==10.3) +if test -f etc/gnome_defaults.conf.rpmsave ; then + mv etc/gnome_defaults.conf etc/gnome_defaults.conf.rpmnew + mv etc/gnome_defaults.conf.rpmsave etc/gnome_defaults.conf +fi %postun -p /sbin/ldconfig @@ -164,15 +194,20 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) %doc AUTHORS COPYING README NEWS ChangeLog +%{_datadir}/applications/defaults.list %{_libdir}/lib*.so.* /etc/profile.d/zzz-glib2.* +/sbin/conf.d/SuSEconfig.glib2 +%dir %{_localstatedir}/cache/gio-2.0 +%ghost %{_localstatedir}/cache/gio-2.0/defaults.list +%config (noreplace) %{_sysconfdir}/gnome_defaults.conf %files lang -f %{_name}20.lang %files devel %defattr(-,root,root) %{_bindir}/* -%{_datadir}/aclocal/* +%{_datadir}/aclocal/*.m4 %{_datadir}/glib-2.0 %{_includedir}/glib-2.0 %{_includedir}/gio-unix-2.0 @@ -192,6 +227,15 @@ rm -rf $RPM_BUILD_ROOT %dir %{_datadir}/gtk-doc/html %changelog +* Tue Apr 01 2008 coolo@suse.de +- moved recommendation of gvfs to gtk2 +* Tue Apr 01 2008 sbrabec@suse.cz +- SuSEconfig script moved from gnome-vfs2 (bnc#372783). +* Tue Apr 01 2008 federico@novell.com +- Added glib2-bnc373149-bgo518160-gbookmark-optimizations.diff and + glib2-bnc373149-bgo523877-gbookmark-optimizations.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=373149 - backport + optimizations for GBookmarkFile. * Mon Mar 17 2008 rodrigo@suse.de - Upstream glib2-allocsize.patch that should have been upstreamed * Thu Mar 13 2008 rodrigo@suse.de @@ -575,7 +619,7 @@ rm -rf $RPM_BUILD_ROOT http://bugzilla.gnome.org/show_bug.cgi?id=316221 * Fri Nov 04 2005 schwab@suse.de - Fix use of atomic builtins. -* Tue Oct 11 2005 gekker@suse.de +* Wed Oct 12 2005 gekker@suse.de - Update to version 2.8.3 * Wed Sep 28 2005 gekker@suse.de - Update to version 2.8.2 @@ -630,7 +674,7 @@ rm -rf $RPM_BUILD_ROOT - Require gnome-filesystem (#47068). * Wed Sep 29 2004 sbrabec@suse.cz - Fixed glib2.csh for unset LANG (#46282). -* Wed Aug 25 2004 federico@ximian.com +* Thu Aug 26 2004 federico@ximian.com - Update to glib 2.4.5 - Removed glib-pattern.diff, as this bug is fixed in the tarball. * Wed Aug 25 2004 kukuk@suse.de @@ -660,7 +704,7 @@ rm -rf $RPM_BUILD_ROOT - FHS 2.3 fix (mandir, infodir, #35821). * Wed Mar 10 2004 sbrabec@suse.cz - Fixed %%doc attributes (#33163). -* Fri Jan 09 2004 schwab@suse.de +* Sat Jan 10 2004 schwab@suse.de - Fix quoting in autoconf macros. * Fri Oct 17 2003 adrian@suse.de - fix missing %%run_ldconfig diff --git a/gnome_defaults.conf b/gnome_defaults.conf new file mode 100644 index 0000000..fd14fa3 --- /dev/null +++ b/gnome_defaults.conf @@ -0,0 +1,58 @@ +# GNOME Default Applications Source +# /etc/gnome-defaults.conf +# +# After any change of this file run +# SuSEconfig --module gnome-vfs2 +# +# This list is a source for defaults.list. +# +# If application in this list is installed, it is used as default in GNOME. +# It works in following way: +# 1. Read this file. +# 2. Collect all available desktop files. +# 3. Go through all declared MIME types and search for default application +# for defaults.list in following order: +# 3.1 Installed application listed here for certain MIME type. +# 3.2 Installed application listed here as preferred default. +# 3.3 Installed application listed here as default. +# 3.4 Installed application with GNOME in Categories. +# 3.5 Installed application with GTK in Categories. +# 3.6 Installed application. +# If there are more applications in the same order, it uses pseudo-randomly +# one of them (last in aplhabetical order). +# +# Syntax: +# Use xxx as default for all MIME types it declares (see 3.3): +# xxx.desktop +# Use xxx as preferred default for all MIME types it declares (see 3.2): +# !xxx.desktop +# Use xxx as default for mime/type (see 3.1): +# mime/type=xxx.desktop + +# Prefer banshee for multimedia where possible +!banshee.desktop + +# Prefer contracted commercial applications +!acroread.desktop +realplay.desktop + +# Prefer Zen for handling packages +!zen-installer.desktop + +# Nice GNOME default applications +eog.desktop +evince.desktop +gedit.desktop +file-roller.desktop + +# Firefox +MozillaFirefox.desktop + +# OpenOffice +base.desktop +calc.desktop +draw.desktop +impress.desktop +math.desktop +web.desktop +writer.desktop