From 54bdf28e842d83b7076d81f4cfc8404a759f88a4 Mon Sep 17 00:00:00 2001 From: Mart Raudsepp Date: Mon, 5 Feb 2007 10:38:58 +0000 Subject: Add nautilus-2.16.3 with a patch that makes g_sequence_insert_sorted perform several times better --- gnome-base/nautilus/ChangeLog | 8 + gnome-base/nautilus/Manifest | 20 +++ gnome-base/nautilus/files/digest-nautilus-2.16.3 | 3 + .../files/nautilus-2.16.0-idl_include.patch | 12 ++ ...ilus-2.16.3-g_sequence_insert_sorted-perf.patch | 191 +++++++++++++++++++++ gnome-base/nautilus/nautilus-2.16.3.ebuild | 80 +++++++++ 6 files changed, 314 insertions(+) create mode 100644 gnome-base/nautilus/ChangeLog create mode 100644 gnome-base/nautilus/Manifest create mode 100644 gnome-base/nautilus/files/digest-nautilus-2.16.3 create mode 100644 gnome-base/nautilus/files/nautilus-2.16.0-idl_include.patch create mode 100644 gnome-base/nautilus/files/nautilus-2.16.3-g_sequence_insert_sorted-perf.patch create mode 100644 gnome-base/nautilus/nautilus-2.16.3.ebuild diff --git a/gnome-base/nautilus/ChangeLog b/gnome-base/nautilus/ChangeLog new file mode 100644 index 0000000..4f80819 --- /dev/null +++ b/gnome-base/nautilus/ChangeLog @@ -0,0 +1,8 @@ +# ChangeLog for gnome-base/nautilus +# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 +# $Header: $ + + 05 Feb 2007; Mart Raudsepp ChangeLog: + Pull in revision 12624 to make g_sequence_insert_sorted perform several + times better, Gnome bug 350579 + diff --git a/gnome-base/nautilus/Manifest b/gnome-base/nautilus/Manifest new file mode 100644 index 0000000..e06c1af --- /dev/null +++ b/gnome-base/nautilus/Manifest @@ -0,0 +1,20 @@ +AUX nautilus-2.16.0-idl_include.patch 575 RMD160 8ee41c84f597683e2d34eea5acdb43f5592d3262 SHA1 738a2e9bb13aab07ed256e37af3ddc10fa2dfe0e SHA256 07cd75e4cf1c34c5fcd3f4d2257ae1d9c578cb2c2f014e69280e511de28862f0 +MD5 c496549444ef2727f6c0555b590ef4fe files/nautilus-2.16.0-idl_include.patch 575 +RMD160 8ee41c84f597683e2d34eea5acdb43f5592d3262 files/nautilus-2.16.0-idl_include.patch 575 +SHA256 07cd75e4cf1c34c5fcd3f4d2257ae1d9c578cb2c2f014e69280e511de28862f0 files/nautilus-2.16.0-idl_include.patch 575 +AUX nautilus-2.16.3-g_sequence_insert_sorted-perf.patch 6024 RMD160 2098d43fa9cbeb0d81a8f0108440fe82c93a4df7 SHA1 0151b4ecab2ef7e89738ea5f196e8143c47cc2d0 SHA256 26d6a457c87fa97a52e9347e252b92cd382380f11b5c826fddca5841fdfddcad +MD5 d281d15e4a2d11f29e4c8aff8989286f files/nautilus-2.16.3-g_sequence_insert_sorted-perf.patch 6024 +RMD160 2098d43fa9cbeb0d81a8f0108440fe82c93a4df7 files/nautilus-2.16.3-g_sequence_insert_sorted-perf.patch 6024 +SHA256 26d6a457c87fa97a52e9347e252b92cd382380f11b5c826fddca5841fdfddcad files/nautilus-2.16.3-g_sequence_insert_sorted-perf.patch 6024 +DIST nautilus-2.16.3.tar.bz2 4268274 RMD160 a7723054cacb954f48376e68de66dd144b36d3c5 SHA1 329e11d4c5e77346350b69f34cf2eb749807b12e SHA256 af2ff5ad922e28cc831b4ac3d83f0f35eedcf7a3230d3df76aa9f91c3ffbc36c +EBUILD nautilus-2.16.3.ebuild 2375 RMD160 70d6322d37059691b3010961e69978f68e8aa08b SHA1 c7326e48cd5556f681562b7bc5499e0647a7bc4c SHA256 3b268322201ca4cdd840beabd4180ff058dd0872ad5e46fddbf20f926703eea1 +MD5 8364df7f3d444d3aec0c0db13bc142bb nautilus-2.16.3.ebuild 2375 +RMD160 70d6322d37059691b3010961e69978f68e8aa08b nautilus-2.16.3.ebuild 2375 +SHA256 3b268322201ca4cdd840beabd4180ff058dd0872ad5e46fddbf20f926703eea1 nautilus-2.16.3.ebuild 2375 +MISC ChangeLog 286 RMD160 1ce23540a17584053aefe1316870b912196ddad7 SHA1 6dfecfb4ff6713554d636c560c9e07e9bb761a0e SHA256 0145ddec0565f856ec414011591131261fc030afa69e02cf16c7a39cd21a1a1a +MD5 83f9e7211e5d1ec930c1895d1db46d04 ChangeLog 286 +RMD160 1ce23540a17584053aefe1316870b912196ddad7 ChangeLog 286 +SHA256 0145ddec0565f856ec414011591131261fc030afa69e02cf16c7a39cd21a1a1a ChangeLog 286 +MD5 a7b9bb53870e1c7064d989e245404811 files/digest-nautilus-2.16.3 253 +RMD160 cf7a09b61dae1e1c0e96b53004ab80b14d4dff56 files/digest-nautilus-2.16.3 253 +SHA256 ca8f76281e887de02c557f18a1ebd97066875a6331e0b460d959bb301f6def6c files/digest-nautilus-2.16.3 253 diff --git a/gnome-base/nautilus/files/digest-nautilus-2.16.3 b/gnome-base/nautilus/files/digest-nautilus-2.16.3 new file mode 100644 index 0000000..0d2dc91 --- /dev/null +++ b/gnome-base/nautilus/files/digest-nautilus-2.16.3 @@ -0,0 +1,3 @@ +MD5 05a0fe98d524ca5287da21845ab8490c nautilus-2.16.3.tar.bz2 4268274 +RMD160 a7723054cacb954f48376e68de66dd144b36d3c5 nautilus-2.16.3.tar.bz2 4268274 +SHA256 af2ff5ad922e28cc831b4ac3d83f0f35eedcf7a3230d3df76aa9f91c3ffbc36c nautilus-2.16.3.tar.bz2 4268274 diff --git a/gnome-base/nautilus/files/nautilus-2.16.0-idl_include.patch b/gnome-base/nautilus/files/nautilus-2.16.0-idl_include.patch new file mode 100644 index 0000000..27d7507 --- /dev/null +++ b/gnome-base/nautilus/files/nautilus-2.16.0-idl_include.patch @@ -0,0 +1,12 @@ +diff --exclude-from=/home/dang/.diffrc -u -ruN nautilus-2.16.0.orig/src/nautilus-shell-interface.idl nautilus-2.16.0/src/nautilus-shell-interface.idl +--- nautilus-2.16.0.orig/src/nautilus-shell-interface.idl 2006-07-21 13:18:59.000000000 -0400 ++++ nautilus-2.16.0/src/nautilus-shell-interface.idl 2006-09-07 14:08:49.000000000 -0400 +@@ -5,7 +5,7 @@ + + #include + /* For URI define */ +-#include <../libnautilus-private/nautilus-metafile-server.idl> ++#include + + module Nautilus { + typedef sequence URIList; diff --git a/gnome-base/nautilus/files/nautilus-2.16.3-g_sequence_insert_sorted-perf.patch b/gnome-base/nautilus/files/nautilus-2.16.3-g_sequence_insert_sorted-perf.patch new file mode 100644 index 0000000..9114d9c --- /dev/null +++ b/gnome-base/nautilus/files/nautilus-2.16.3-g_sequence_insert_sorted-perf.patch @@ -0,0 +1,191 @@ +http://svn.gnome.org/viewcvs/nautilus?rev=12624&view=rev +http://bugzilla.gnome.org/show_bug.cgi?id=350579 + +Index: cut-n-paste-code/gsequence/gsequence.c +=================================================================== +--- cut-n-paste-code/gsequence/gsequence.c (revision 12623) ++++ cut-n-paste-code/gsequence/gsequence.c (revision 12624) +@@ -51,6 +51,7 @@ + gint pos); + static GSequenceNode *node_find_closest (GSequenceNode *haystack, + GSequenceNode *needle, ++ GSequenceNode *end, + GSequenceIterCompareFunc cmp, + gpointer user_data); + static gint node_get_length (GSequenceNode *node); +@@ -64,6 +65,7 @@ + static void node_unlink (GSequenceNode *node); + static void node_insert_sorted (GSequenceNode *node, + GSequenceNode *new, ++ GSequenceNode *end, + GSequenceIterCompareFunc cmp_func, + gpointer cmp_data); + +@@ -411,6 +413,7 @@ + { + GCompareDataFunc cmp_func; + gpointer cmp_data; ++ GSequenceNode *end_node; + } SortInfo; + + /* This function compares two iters using a normal compare +@@ -424,10 +427,10 @@ + const SortInfo *info = data; + gint retval; + +- if (is_end (node1)) ++ if (node1 == info->end_node) + return 1; + +- if (is_end (node2)) ++ if (node2 == info->end_node) + return -1; + + retval = info->cmp_func (node1->data, node2->data, info->cmp_data); +@@ -452,7 +455,7 @@ + GCompareDataFunc cmp_func, + gpointer cmp_data) + { +- SortInfo info = { cmp_func, cmp_data }; ++ SortInfo info = { cmp_func, cmp_data, seq->end_node }; + + check_seq_access (seq); + +@@ -480,11 +483,12 @@ + GCompareDataFunc cmp_func, + gpointer cmp_data) + { +- SortInfo info = { cmp_func, cmp_data }; ++ SortInfo info = { cmp_func, cmp_data, NULL }; + + g_return_val_if_fail (seq != NULL, NULL); + g_return_val_if_fail (cmp_func != NULL, NULL); + ++ info.end_node = seq->end_node; + check_seq_access (seq); + + return g_sequence_insert_sorted_iter (seq, data, iter_compare, &info); +@@ -495,10 +499,11 @@ + GCompareDataFunc cmp_func, + gpointer cmp_data) + { +- SortInfo info = { cmp_func, cmp_data }; ++ SortInfo info = { cmp_func, cmp_data, NULL }; + + g_return_if_fail (!is_end (iter)); + ++ info.end_node = get_sequence (iter)->end_node; + check_iter_access (iter); + + g_sequence_sort_changed_iter (iter, iter_compare, &info); +@@ -533,7 +538,7 @@ + + node_unlink (node); + +- node_insert_sorted (seq->end_node, node, cmp_func, cmp_data); ++ node_insert_sorted (seq->end_node, node, seq->end_node, cmp_func, cmp_data); + } + + tmp->access_prohibited = FALSE; +@@ -558,7 +563,7 @@ + seq->access_prohibited = TRUE; + + node_unlink (iter); +- node_insert_sorted (seq->end_node, iter, iter_cmp, cmp_data); ++ node_insert_sorted (seq->end_node, iter, seq->end_node, iter_cmp, cmp_data); + + seq->access_prohibited = FALSE; + } +@@ -574,7 +579,7 @@ + check_seq_access (seq); + + new_node = node_new (data); +- node_insert_sorted (seq->end_node, new_node, iter_cmp, cmp_data); ++ node_insert_sorted (seq->end_node, new_node, seq->end_node, iter_cmp, cmp_data); + return new_node; + } + +@@ -595,7 +600,7 @@ + + dummy = node_new (data); + +- node = node_find_closest (seq->end_node, dummy, cmp_func, cmp_data); ++ node = node_find_closest (seq->end_node, dummy, seq->end_node, cmp_func, cmp_data); + + node_free (dummy, NULL); + +@@ -624,10 +629,11 @@ + GCompareDataFunc cmp_func, + gpointer cmp_data) + { +- SortInfo info = { cmp_func, cmp_data }; ++ SortInfo info = { cmp_func, cmp_data, NULL }; + + g_return_val_if_fail (seq != NULL, NULL); + ++ info.end_node = seq->end_node; + check_seq_access (seq); + + return g_sequence_search_iter (seq, data, iter_compare, &info); +@@ -1109,6 +1115,7 @@ + static GSequenceNode * + node_find_closest (GSequenceNode *haystack, + GSequenceNode *needle, ++ GSequenceNode *end, + GSequenceIterCompareFunc cmp_func, + gpointer cmp_data) + { +@@ -1123,7 +1130,7 @@ + { + best = haystack; + +- if (is_end (haystack)) ++ if (haystack == end) + c = 1; + else + c = cmp_func (haystack, needle, cmp_data); +@@ -1285,12 +1292,13 @@ + static void + node_insert_sorted (GSequenceNode *node, + GSequenceNode *new, ++ GSequenceNode *end, + GSequenceIterCompareFunc cmp_func, + gpointer cmp_data) + { + GSequenceNode *closest; + +- closest = node_find_closest (node, new, cmp_func, cmp_data); ++ closest = node_find_closest (node, new, end, cmp_func, cmp_data); + + node_insert_before (closest, new); + } +Index: cut-n-paste-code/gsequence/gsequence.h +=================================================================== +--- cut-n-paste-code/gsequence/gsequence.h (revision 12623) ++++ cut-n-paste-code/gsequence/gsequence.h (revision 12624) +@@ -26,6 +26,7 @@ + typedef struct _GSequenceNode GSequenceIter; + + ++ + typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a, + GSequenceIter *b, + gpointer data); +@@ -65,6 +66,8 @@ + gpointer data); + void g_sequence_move (GSequenceIter * src, + GSequenceIter * dest); ++void g_sequence_swap (GSequenceIter * a, ++ GSequenceIter * b); + GSequenceIter *g_sequence_insert_sorted (GSequence *seq, + gpointer data, + GCompareDataFunc cmp_func, +@@ -110,8 +113,6 @@ + GSequenceIter *g_sequence_iter_move (GSequenceIter * iter, + gint leap); + GSequence * g_sequence_iter_get_sequence (GSequenceIter * iter); +-void g_sequence_swap (GSequenceIter *a, +- GSequenceIter *b); + + + /* search */ diff --git a/gnome-base/nautilus/nautilus-2.16.3.ebuild b/gnome-base/nautilus/nautilus-2.16.3.ebuild new file mode 100644 index 0000000..3ce539c --- /dev/null +++ b/gnome-base/nautilus/nautilus-2.16.3.ebuild @@ -0,0 +1,80 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-base/nautilus/nautilus-2.16.3.ebuild,v 1.11 2007/02/05 01:30:29 leio Exp $ + +inherit virtualx eutils gnome2 + +DESCRIPTION="A file manager for the GNOME desktop" +HOMEPAGE="http://www.gnome.org/projects/nautilus/" + +LICENSE="GPL-2 LGPL-2 FDL-1.1" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sh sparc x86" +IUSE="beagle gnome" +# cups flac gstreamer mad ogg vorbis + +RDEPEND=">=media-libs/libart_lgpl-2.3.10 + >=gnome-base/libbonobo-2.1 + >=gnome-base/eel-2.15.92 + >=media-sound/esound-0.2.27 + >=dev-libs/glib-2.6 + >=gnome-base/gnome-desktop-2.9.91 + >=gnome-base/libgnome-2.14 + >=gnome-base/libgnomeui-2.6 + >=gnome-base/gnome-vfs-2.15 + >=gnome-base/orbit-2.4 + >=x11-libs/pango-1.1.2 + >=x11-libs/gtk+-2.10 + >=gnome-base/librsvg-2.0.1 + >=dev-libs/libxml2-2.4.7 + >=x11-libs/startup-notification-0.8 + >=media-libs/libexif-0.5.12 + >=gnome-base/gconf-2 + beagle? ( >=app-misc/beagle-0.0.12 ) + x11-libs/libICE + x11-libs/libSM + virtual/eject" +# !gstreamer? ( vorbis? ( media-sound/vorbis-tools ) ) +# gstreamer? ( +# >=media-libs/gstreamer-0.8 +# >=media-libs/gst-plugins-0.8 +# >=media-plugins/gst-plugins-gnomevfs-0.8 +# mad? ( >=media-plugins/gst-plugins-mad-0.8 ) +# ogg? ( >=media-plugins/gst-plugins-ogg-0.8 ) +# vorbis? ( >=media-plugins/gst-plugins-vorbis-0.8 ) +# flac? ( >=media-plugins/gst-plugins-flac-0.8 ) )" + +DEPEND="${RDEPEND} + sys-devel/gettext + >=dev-util/intltool-0.35 + >=dev-util/pkgconfig-0.9" + +PDEPEND="gnome? ( >=x11-themes/gnome-icon-theme-1.1.91 )" + +DOCS="AUTHORS ChangeLog* HACKING MAINTAINERS NEWS README THANKS TODO" + + +pkg_setup() { + G2CONF="--disable-update-mimedb $(use_enable beagle)" +} + +src_test() { + addwrite "/root/.gnome2_private" + Xmake check || die "Test phase failed" +} + +src_unpack() { + gnome2_src_unpack + + # fix relative include path breaking libIDL (#129366) + epatch "${FILESDIR}"/${PN}-2.16.0-idl_include.patch + + # Make g_sequence_insert_sorted several times faster, gnome bug #350579 + epatch "${FILESDIR}/${P}-g_sequence_insert_sorted-perf.patch" +} + +pkg_postinst() { + einfo "nautilus can use mpg123 (media-sound/mpg123 or media-sound/mpg321)" + einfo "to preview mp3 files, and ogg123 (media-sound/vorbis-tools) to" + einfo "preview ogg files. If you want such previews, emerge those packages" +} -- cgit v1.2.3-65-gdbad