summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Alfredsen <loki_val@gentoo.org>2008-11-22 22:50:32 +0000
committerPeter Alfredsen <loki_val@gentoo.org>2008-11-22 22:50:32 +0000
commit0a164905d8163987033b3f9e67ada58b5dcc997f (patch)
tree7ce7dbad0d61e69d3c8fbbbada9c1d1ae6a62cc9 /app-misc
parentGiving acovea back to benchmark herd (diff)
downloadgentoo-2-0a164905d8163987033b3f9e67ada58b5dcc997f.tar.gz
gentoo-2-0a164905d8163987033b3f9e67ada58b5dcc997f.tar.bz2
gentoo-2-0a164905d8163987033b3f9e67ada58b5dcc997f.zip
Fix beagle for gmime-2.4, patch from frugalware and adjust deps for gtk-sharp-2.12*
(Portage version: 2.2_rc14/cvs/Linux 2.6.28-rc4 x86_64)
Diffstat (limited to 'app-misc')
-rw-r--r--app-misc/beagle/ChangeLog10
-rw-r--r--app-misc/beagle/beagle-0.3.8-r1.ebuild182
-rw-r--r--app-misc/beagle/files/beagle-0.3.8-fix_gmime-2.4.patch503
-rw-r--r--app-misc/beagle/files/beagle-0.3.8-fix_gvfs.patch11
4 files changed, 705 insertions, 1 deletions
diff --git a/app-misc/beagle/ChangeLog b/app-misc/beagle/ChangeLog
index 999f25f15e73..35292cbecd40 100644
--- a/app-misc/beagle/ChangeLog
+++ b/app-misc/beagle/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for app-misc/beagle
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-misc/beagle/ChangeLog,v 1.85 2008/10/11 22:54:52 eva Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-misc/beagle/ChangeLog,v 1.86 2008/11/22 22:50:32 loki_val Exp $
+
+*beagle-0.3.8-r1 (22 Nov 2008)
+
+ 22 Nov 2008; Peter Alfredsen <loki_val@gentoo.org>
+ +files/beagle-0.3.8-fix_gmime-2.4.patch,
+ +files/beagle-0.3.8-fix_gvfs.patch, +beagle-0.3.8-r1.ebuild:
+ Fix beagle for gmime-2.4, patch from frugalware and adjust deps for
+ gtk-sharp-2.12*
11 Oct 2008; Gilles Dartiguelongue <eva@gentoo.org> beagle-0.2.18.ebuild,
beagle-0.2.18-r1.ebuild, beagle-0.3.6.ebuild, beagle-0.3.7-r1.ebuild,
diff --git a/app-misc/beagle/beagle-0.3.8-r1.ebuild b/app-misc/beagle/beagle-0.3.8-r1.ebuild
new file mode 100644
index 000000000000..bb6bbf26cf15
--- /dev/null
+++ b/app-misc/beagle/beagle-0.3.8-r1.ebuild
@@ -0,0 +1,182 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/beagle/beagle-0.3.8-r1.ebuild,v 1.1 2008/11/22 22:50:32 loki_val Exp $
+
+EAPI=2
+
+inherit gnome.org eutils autotools mono mozextension
+
+DESCRIPTION="Search tool that ransacks your personal information space to find whatever you're looking for"
+HOMEPAGE="http://www.beagle-project.org/"
+
+LICENSE="MIT Apache-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="chm debug doc epiphany eds firefox galago gtk pdf inotify ole thunderbird +xscreensaver"
+
+RDEPEND="
+ >=dev-lang/mono-1.2.4
+ app-shells/bash
+ app-arch/zip
+ sys-devel/gettext
+ x11-misc/shared-mime-info
+ =dev-libs/gmime-2.4*
+ >=dev-libs/libxml2-2.6.19
+ >=dev-db/sqlite-3.3.1
+ >=dev-dotnet/dbus-sharp-0.6.0
+ >=dev-dotnet/dbus-glib-sharp-0.4.1
+ >=dev-dotnet/taglib-sharp-2.0
+ >=dev-dotnet/gtk-sharp-2.8
+ gtk? ( >=gnome-base/libgnome-2.0
+ >=gnome-base/gnome-vfs-2.0
+ >=dev-dotnet/gtk-sharp-2.10
+ >=x11-libs/gtk+-2.10
+ >=dev-libs/atk-1.2.4
+ >=gnome-base/librsvg-2.0
+ >=dev-dotnet/gconf-sharp-2.4
+ || ( dev-dotnet/gtk-sharp[glade] >=dev-dotnet/glade-sharp-2.4 )
+ >=dev-dotnet/gnome-sharp-2.4
+ >=dev-dotnet/gnomevfs-sharp-2.4 )
+ eds? ( >=dev-dotnet/evolution-sharp-0.13.3
+ >=dev-dotnet/gconf-sharp-2.4 )
+ ole? ( >=app-text/wv-1.2.3
+ >=dev-dotnet/gsf-sharp-0.8
+ >=app-office/gnumeric-1.4.3-r3 )
+ chm? ( dev-libs/chmlib )
+ pdf? ( >=app-text/poppler-0.5.1 )
+ galago? ( >=dev-dotnet/galago-sharp-0.5.0 )
+ thunderbird? ( || ( >=mail-client/mozilla-thunderbird-1.5
+ >=mail-client/mozilla-thunderbird-bin-1.5 ) )
+ firefox? ( || ( >=www-client/mozilla-firefox-1.5
+ >=www-client/mozilla-firefox-bin-1.5 ) )
+ epiphany? ( >=www-client/epiphany-extensions-2.16 )
+ xscreensaver? ( x11-libs/libXScrnSaver )
+ dev-libs/libbeagle"
+ # Avahi code is currently experimental
+ #avahi? ( >=net-dns/avahi-0.6.10 )
+
+DEPEND="${RDEPEND}
+ doc? ( >=dev-util/monodoc-1.2.4 )
+ dev-util/pkgconfig
+ xscreensaver? ( x11-proto/scrnsaverproto )
+ >=dev-util/intltool-0.35"
+
+pkg_setup() {
+ local fail_gmime="Re-emerge dev-libs/gmime with USE mono."
+ local fail_libbeagle="Re-emerge dev-libs/libbeagle with USE=python."
+ local fail_epiphany="Re-emerge www-client/epiphany-extensions with USE=python."
+
+ if ! built_with_use dev-libs/gmime mono; then
+ eerror "${fail_gmime}"
+ die "${fail_gmime}"
+ fi
+
+ if use epiphany; then
+ if ! built_with_use dev-libs/libbeagle python; then
+ eerror "${fail_libbeagle}"
+ die "${fail_libbeagle}"
+ fi
+ if ! built_with_use www-client/epiphany-extensions python; then
+ eerror "${fail_epiphany}"
+ die "${fail_epiphany}"
+ fi
+ fi
+
+ enewgroup beagleindex
+ enewuser beagleindex -1 -1 /var/lib/cache/beagle beagleindex
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-fix_gvfs.patch"
+ epatch "${FILESDIR}/${P}-fix_gmime-2.4.patch"
+
+
+ # Multilib fix
+ sed -i -e 's:prefix mono`/lib:libdir mono`:' \
+ configure.in || die "sed failed"
+
+ eautoreconf
+ intltoolize --force || die "intltoolize failed"
+}
+
+src_configure() {
+ econf \
+ --enable-sqlite3 \
+ --disable-avahi \
+ --disable-internal-taglib \
+ $(use_enable debug xml-dump) \
+ $(use_enable doc docs) \
+ $(use_enable epiphany epiphany-extension) \
+ $(use_enable thunderbird) \
+ $(use_enable eds evolution) \
+ $(use_enable gtk gui) \
+ $(use_enable ole gsf-sharp wv1) \
+ $(use_enable xscreensaver xss) \
+ $(use_enable inotify)
+ # Avahi code is experimental, explicitly disabled above
+ #$(use_enable avahi) \
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed."
+
+ dodoc AUTHORS NEWS README
+
+ declare MOZILLA_FIVE_HOME
+ if use firefox; then
+ xpi_unpack "${S}"/firefox-extension/beagle.xpi \
+ || die "Unable to find Beagle Firefox Extension"
+ mv "${WORKDIR}"/beagle "${WORKDIR}"/firefox-beagle
+
+ if has_version '>=www-client/mozilla-firefox-1.5'; then
+ MOZILLA_FIVE_HOME="/usr/$(get_libdir)/mozilla-firefox"
+ xpi_install "${WORKDIR}"/firefox-beagle \
+ || die "xpi install for mozilla-firefox failed!"
+ fi
+ if has_version '>=www-client/mozilla-firefox-bin-1.5'; then
+ MOZILLA_FIVE_HOME="/opt/firefox"
+ xpi_install "${WORKDIR}"/firefox-beagle \
+ || die "xpi install for mozilla-firefox-bin failed!"
+ fi
+ fi
+
+ if use thunderbird; then
+ xpi_unpack "${S}"/thunderbird-extension/beagle.xpi \
+ || die "Unable to find Beagle Thunderbird Extension"
+ mv "${WORKDIR}"/beagle "${WORKDIR}"/thunderbird-beagle
+
+ if has_version '>=mail-client/mozilla-thunderbird-1.5'; then
+ MOZILLA_FIVE_HOME="/usr/$(get_libdir)/mozilla-thunderbird"
+ xpi_install "${WORKDIR}"/thunderbird-beagle \
+ || die "xpi install for mozilla-thunderbird failed!"
+ fi
+ if has_version '>=mail-client/mozilla-thunderbird-bin-1.5'; then
+ MOZILLA_FIVE_HOME="/opt/thunderbird"
+ xpi_install "${WORKDIR}"/thunderbird-beagle \
+ || die "xpi install for mozilla-thunderbird-bin failed!"
+ fi
+ fi
+
+ sed -i -e 's/CRAWL_ENABLED="yes"/CRAWL_ENABLED="no"/' \
+ "${D}"/etc/beagle/crawl-rules/crawl-*
+
+ insinto /etc/beagle/crawl-rules
+ doins "${FILESDIR}/crawl-portage"
+
+ keepdir "/usr/$(get_libdir)/beagle/Backends"
+ diropts -o beagleindex -g beagleindex
+ keepdir "/var/lib/cache/beagle/indexes"
+}
+
+pkg_postinst() {
+ elog "If available, Beagle greatly benefits from using certain operating"
+ elog "system features such as Extended Attributes and inotify."
+ elog
+ elog "If you want static queryables such as the portage tree and system"
+ elog "documentation you will need to edit the /etc/beagle/crawl-* files"
+ elog "and change CRAWL_ENABLE from 'no' to 'yes'."
+ elog
+ elog "For more info on how to create the optimal beagle environment, and"
+ elog "basic usage info, see the Gentoo page of the Beagle website:"
+ elog "http://www.beagle-project.org/Gentoo_Installation"
+}
diff --git a/app-misc/beagle/files/beagle-0.3.8-fix_gmime-2.4.patch b/app-misc/beagle/files/beagle-0.3.8-fix_gmime-2.4.patch
new file mode 100644
index 000000000000..5a6525174749
--- /dev/null
+++ b/app-misc/beagle/files/beagle-0.3.8-fix_gmime-2.4.patch
@@ -0,0 +1,503 @@
+Index: beagle/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs
+===================================================================
+--- beagle/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs (revision 4874)
++++ beagle/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs (working copy)
+@@ -333,28 +333,46 @@
+ indexable.AddProperty (Property.NewUnsearched ("fixme:folder", this.folder_name));
+
+ GMime.InternetAddressList addrs;
+-
+- addrs = message.GetRecipients (GMime.Message.RecipientType.To);
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (this.folder_name == "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", ia.Addr));
++
++ if (this.folder_name == "Sent") {
++ addrs = message.GetRecipients (GMime.RecipientType.To);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
+- addrs = message.GetRecipients (GMime.Message.RecipientType.Cc);
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (this.folder_name == "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", ia.Addr));
++
++ if (this.folder_name == "Sent") {
++ addrs = message.GetRecipients (GMime.RecipientType.Cc);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
+- addrs = GMime.InternetAddressList.ParseString (GMime.Utils.HeaderDecodePhrase (message.Sender));
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (this.folder_name != "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:gotFrom", ia.Addr));
++
++ if (this.folder_name != "Sent") {
++ addrs = GMime.InternetAddressList.Parse (message.Sender);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewUnsearched ("fixme:gotFrom", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
++
+ if (this.folder_name == "Sent")
+ indexable.AddProperty (Property.NewFlag ("fixme:isSent"));
+
+@@ -750,48 +768,54 @@
+ }
+
+ GMime.InternetAddressList addrs;
+- addrs = GMime.InternetAddressList.ParseString (messageInfo.to);
++ addrs = GMime.InternetAddressList.Parse (messageInfo.to);
+ foreach (GMime.InternetAddress ia in addrs) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
+ if (!have_content) {
+ indexable.AddProperty (Property.NewUnsearched ("fixme:to", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.New ("fixme:to_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.New ("fixme:to_address", mailbox.Address));
++
+ indexable.AddProperty (Property.New ("fixme:to_name", ia.Name));
+ }
+-
+- if (this.folder_name == "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", ia.Addr));
++
++ if (this.folder_name == "Sent" && ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", mailbox.Address));
+ }
+ addrs.Dispose ();
+
+- addrs = GMime.InternetAddressList.ParseString (messageInfo.cc);
++ addrs = GMime.InternetAddressList.Parse (messageInfo.cc);
+ foreach (GMime.InternetAddress ia in addrs) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
+ if (!have_content) {
+ indexable.AddProperty (Property.NewUnsearched ("fixme:cc", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.New ("fixme:cc_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.New ("fixme:cc_address", mailbox.Address));
++
+ indexable.AddProperty (Property.New ("fixme:cc_name", ia.Name));
+ }
+-
+- if (this.folder_name == "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", ia.Addr));
++
++ if (this.folder_name == "Sent" && ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", mailbox.Address));
+ }
+ addrs.Dispose ();
+
+- addrs = GMime.InternetAddressList.ParseString (messageInfo.from);
++ addrs = GMime.InternetAddressList.Parse (messageInfo.from);
+ foreach (GMime.InternetAddress ia in addrs) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
+ if (!have_content) {
+ indexable.AddProperty (Property.NewUnsearched ("fixme:from", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.New ("fixme:from_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.New ("fixme:from_address", mailbox.Address));
++
+ indexable.AddProperty (Property.New ("fixme:from_name", ia.Name));
+ }
+
+- if (this.folder_name != "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:gotFrom", ia.Addr));
++ if (this.folder_name != "Sent" && ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.NewUnsearched ("fixme:gotFrom", mailbox.Address));
+ }
+ addrs.Dispose ();
+
+Index: beagle/beagled/KMailQueryable/KMailIndexer.cs
+===================================================================
+--- beagle/beagled/KMailQueryable/KMailIndexer.cs (revision 4874)
++++ beagle/beagled/KMailQueryable/KMailIndexer.cs (working copy)
+@@ -407,28 +407,46 @@
+ indexable.AddProperty (Property.NewUnsearched ("fixme:folder", folder_name));
+
+ GMime.InternetAddressList addrs;
+-
+- addrs = message.GetRecipients (GMime.Message.RecipientType.To);
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (folder_name == Queryable.SentMailFolderName && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewKeyword ("fixme:sentTo", ia.Addr));
++
++ if (folder_name == Queryable.SentMailFolderName) {
++ addrs = message.GetRecipients (GMime.RecipientType.To);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewKeyword ("fixme:sentTo", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
+- addrs = message.GetRecipients (GMime.Message.RecipientType.Cc);
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (folder_name == Queryable.SentMailFolderName && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewKeyword ("fixme:sentTo", ia.Addr));
++
++ if (folder_name == Queryable.SentMailFolderName) {
++ addrs = message.GetRecipients (GMime.RecipientType.Cc);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewKeyword ("fixme:sentTo", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
+- addrs = GMime.InternetAddressList.ParseString (GMime.Utils.HeaderDecodePhrase (message.Sender));
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (folder_name != Queryable.SentMailFolderName && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewKeyword ("fixme:gotFrom", ia.Addr));
++
++ if (folder_name != Queryable.SentMailFolderName) {
++ addrs = GMime.InternetAddressList.Parse (message.Sender);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewKeyword ("fixme:gotFrom", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
++
+ if (folder_name == Queryable.SentMailFolderName)
+ indexable.AddProperty (Property.NewFlag ("fixme:isSent"));
+ else {
+Index: beagle/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs
+===================================================================
+--- beagle/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs (revision 4874)
++++ beagle/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs (working copy)
+@@ -363,9 +363,14 @@
+ message.Subject = Mime.HeaderDecodeText (GetText (document, "Subject"));
+ message.Sender = Mime.HeaderDecodePhrase (GetText (document, "Author"));
+ message.MessageId = GetText (document, "MessageId");
+- message.SetDate (DateTimeUtil.UnixToDateTimeUtc (Convert.ToInt64 (GetText (document, "Date"))), 0);
+- message.AddRecipientsFromString ("To", Mime.HeaderDecodePhrase (GetText (document, "Recipients")));
+-
++ message.Date = DateTimeUtil.UnixToDateTimeUtc (Convert.ToInt64 (GetText (document, "Date")));
++
++ string str = GetText (document, "Recipients");
++ GMime.InternetAddressList recipients = GMime.InternetAddressList.Parse (str);
++ foreach (GMime.InternetAddress ia in recipients)
++ message.To.Add (ia);
++ recipients.Dispose ();
++
+ return message;
+ }
+
+@@ -430,7 +435,7 @@
+
+ // We _know_ that the stream comes from a StreamReader, which uses UTF8 by
+ // default. So we use that here when parsing our string.
+- return (str != null ? Encoding.UTF8.GetString (str, 0, pos) : string.Empty);
++ return (str != null ? System.Text.Encoding.UTF8.GetString (str, 0, pos) : string.Empty);
+ }
+
+ // This spell "charset="
+@@ -458,7 +463,7 @@
+ // instead of UTF-8 in some cases and that will really mess things up.
+ byte[] buffer = null;
+ int c, header_length = 0, newlines = 0, charset_pos = 0;
+- Encoding enc = Encoding.UTF8;
++ System.Text.Encoding enc = System.Text.Encoding.UTF8;
+ try {
+ do {
+ c = stream.BaseStream.ReadByte ();
+@@ -487,7 +492,7 @@
+ stream.BaseStream.Read (buffer, 0, buffer.Length);
+
+ // We need to use correct encoding
+- enc = Encoding.GetEncoding (encoding_str);
++ enc = System.Text.Encoding.GetEncoding (encoding_str);
+ } catch {
+ } finally {
+ stream.Close ();
+Index: beagle/beagled/GoogleBackends/GMailSearchDriver.cs
+===================================================================
+--- beagle/beagled/GoogleBackends/GMailSearchDriver.cs (revision 4874)
++++ beagle/beagled/GoogleBackends/GMailSearchDriver.cs (working copy)
+@@ -322,38 +322,47 @@
+ hit.AddProperty (Property.NewDate ("fixme:date", message.Date.ToUniversalTime ()));
+
+ GMime.InternetAddressList addrs;
+- addrs = message.GetRecipients (GMime.Message.RecipientType.To);
++ addrs = message.GetRecipients (GMime.RecipientType.To);
+ foreach (GMime.InternetAddress ia in addrs) {
+ hit.AddProperty (Property.NewUnsearched ("fixme:to", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- hit.AddProperty (Property.New ("fixme:to_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ hit.AddProperty (Property.New ("fixme:to_address", mailbox.Address));
++ }
++
+ hit.AddProperty (Property.New ("fixme:to_name", ia.Name));
+ }
+ addrs.Dispose ();
+
+- addrs = message.GetRecipients (GMime.Message.RecipientType.Cc);
++ addrs = message.GetRecipients (GMime.RecipientType.Cc);
+ foreach (GMime.InternetAddress ia in addrs) {
+ hit.AddProperty (Property.NewUnsearched ("fixme:cc", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- hit.AddProperty (Property.New ("fixme:cc_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ hit.AddProperty (Property.New ("fixme:cc_address", mailbox.Address));
++ }
++
+ hit.AddProperty (Property.New ("fixme:cc_name", ia.Name));
+ }
+ addrs.Dispose ();
+
+- addrs = GMime.InternetAddressList.ParseString (GMime.Utils.HeaderDecodePhrase (message.Sender));
++ addrs = GMime.InternetAddressList.Parse (message.Sender);
+ foreach (GMime.InternetAddress ia in addrs) {
+ hit.AddProperty (Property.NewUnsearched ("fixme:from", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- hit.AddProperty (Property.New ("fixme:from_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ hit.AddProperty (Property.New ("fixme:from_address", mailbox.Address));
++ }
++
+ hit.AddProperty (Property.New ("fixme:from_name", ia.Name));
+ }
+ addrs.Dispose ();
+
+ foreach (GMime.References refs in message.References)
+- hit.AddProperty (Property.NewUnsearched ("fixme:reference", refs.Msgid));
++ hit.AddProperty (Property.NewUnsearched ("fixme:reference", refs.MessageId));
+
+ string list_id = message.GetHeader ("List-Id");
+ if (list_id != null)
+Index: beagle/configure.in
+===================================================================
+--- beagle/configure.in (revision 4874)
++++ beagle/configure.in (working copy)
+@@ -17,7 +17,7 @@
+ NDESK_DBUS_REQUIRED=0.5.2
+ NDESK_DBUS_GLIB_REQUIRED=0.3.0
+ GTK_SHARP_REQUIRED=2.10.0
+-GMIME_SHARP_REQUIRED=2.2.0
++GMIME_SHARP_REQUIRED=2.3.5
+ EVOLUTION_SHARP_REQUIRED=0.13.3
+ GSF_SHARP_REQUIRED=0.6
+ GTK_REQUIRED=2.10.0
+@@ -223,7 +223,7 @@
+ glade-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ ])
+ AC_SUBST(BEAGLE_UI_LIBS)
+
+@@ -270,7 +270,7 @@
+ evolution-sharp >= $EVOLUTION_SHARP_REQUIRED \
+ gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED \
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED,
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED,
+ have_evo_dependencies=yes, have_evo_dependencies=no)
+ AC_SUBST(EVO_LIBS)
+
+@@ -377,14 +377,14 @@
+ PKG_CHECK_MODULES(BEAGLED,
+ [
+ shared-mime-info
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ ])
+ BEAGLED_LIBS="$BEAGLED_LIBS $GSF_SHARP_LIBS"
+ AC_SUBST(BEAGLED_LIBS)
+
+ GSF_SHARP_PREFIX=`$PKG_CONFIG --variable=prefix gsf-sharp`
+-GMIME_SHARP_PREFIX=`$PKG_CONFIG --variable=prefix gmime-sharp`
++GMIME_SHARP_PREFIX=`$PKG_CONFIG --variable=prefix gmime-sharp-2.4`
+
+ dnl ----------------------------------------------
+ dnl Epiphany Extension
+Index: beagle/Filters/FilterMail.cs
+===================================================================
+--- beagle/Filters/FilterMail.cs (revision 4874)
++++ beagle/Filters/FilterMail.cs (working copy)
+@@ -126,7 +126,7 @@
+
+ // Messages that are multipart/alternative shouldn't be considered as having
+ // attachments. Unless of course they do.
+- if (mime_part is GMime.Multipart && mime_part.ContentType.Subtype.ToLower () != "alternative")
++ if (mime_part is GMime.Multipart && mime_part.ContentType.MediaSubtype.ToLower () != "alternative")
+ return true;
+
+ return false;
+@@ -140,34 +140,43 @@
+ AddProperty (Property.NewDate ("fixme:date", message.Date.ToUniversalTime ()));
+
+ GMime.InternetAddressList addrs;
+- addrs = this.message.GetRecipients (GMime.Message.RecipientType.To);
++ addrs = this.message.GetRecipients (GMime.RecipientType.To);
+ foreach (GMime.InternetAddress ia in addrs) {
+ AddProperty (Property.NewUnsearched ("fixme:to", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- AddProperty (Property.New ("fixme:to_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ AddProperty (Property.New ("fixme:to_address", mailbox.Address));
++ }
++
+ AddProperty (Property.New ("fixme:to_name", ia.Name));
+ AddEmailLink (ia);
+ }
+ addrs.Dispose ();
+
+- addrs = this.message.GetRecipients (GMime.Message.RecipientType.Cc);
++ addrs = this.message.GetRecipients (GMime.RecipientType.Cc);
+ foreach (GMime.InternetAddress ia in addrs) {
+ AddProperty (Property.NewUnsearched ("fixme:cc", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- AddProperty (Property.New ("fixme:cc_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ AddProperty (Property.New ("fixme:cc_address", mailbox.Address));
++ }
++
+ AddProperty (Property.New ("fixme:cc_name", ia.Name));
+ AddEmailLink (ia);
+ }
+ addrs.Dispose ();
+
+- addrs = GMime.InternetAddressList.ParseString (GMime.Utils.HeaderDecodePhrase (this.message.Sender));
++ addrs = GMime.InternetAddressList.Parse (this.message.Sender);
+ foreach (GMime.InternetAddress ia in addrs) {
+ AddProperty (Property.NewUnsearched ("fixme:from", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- AddProperty (Property.New ("fixme:from_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ AddProperty (Property.New ("fixme:from_address", mailbox.Address));
++ }
++
+ AddProperty (Property.New ("fixme:from_name", ia.Name));
+ AddEmailLink (ia);
+ }
+@@ -184,7 +193,7 @@
+ AddProperty (Property.NewUnsearched ("fixme:msgid", GMime.Utils.DecodeMessageId (msgid)));
+
+ foreach (GMime.References refs in this.message.References)
+- AddProperty (Property.NewUnsearched ("fixme:reference", refs.Msgid));
++ AddProperty (Property.NewUnsearched ("fixme:reference", refs.MessageId));
+
+ string list_id = this.message.GetHeader ("List-Id");
+ if (list_id != null)
+@@ -345,16 +354,15 @@
+ }
+ } else if (mime_part is GMime.Multipart) {
+ GMime.Multipart multipart = (GMime.Multipart) mime_part;
++ int num_parts = multipart.Count;
+
+- int num_parts = multipart.Number;
+-
+ // If the mimetype is multipart/alternative, we only want to index
+ // one part -- the richest one we can filter.
+- if (mime_part.ContentType.Subtype.ToLower () == "alternative") {
++ if (mime_part.ContentType.MediaSubtype.ToLower () == "alternative") {
+ // The richest formats are at the end, so work from there
+ // backward.
+ for (int i = num_parts - 1; i >= 0; i--) {
+- GMime.Object subpart = multipart.GetPart (i);
++ GMime.Object subpart = multipart[i];
+
+ if (IsMimeTypeHandled (subpart.ContentType.ToString ())) {
+ part = subpart;
+@@ -370,7 +378,7 @@
+ // the parts, treat them like a bunch of attachments.
+ if (part == null) {
+ for (int i = 0; i < num_parts; i++) {
+- using (GMime.Object subpart = multipart.GetPart (i))
++ using (GMime.Object subpart = multipart[i])
+ this.OnEachPart (subpart);
+ }
+ }
+@@ -400,7 +408,7 @@
+ } else if (mime_type == "text/html") {
+ no_child_needed = true;
+ html_part = true;
+- string enc = part.GetContentTypeParameter ("charset");
++ string enc = part.ContentType.GetParameter ("charset");
+ // DataWrapper.Stream is a very limited stream
+ // and does not allow Seek or Tell
+ // HtmlFilter requires Stream.Position=0.
+@@ -473,7 +481,7 @@
+ if (length != -1)
+ child.AddProperty (Property.NewUnsearched ("fixme:filesize", length));
+
+- if (part.ContentType.Type.ToLower () == "text")
++ if (part.ContentType.MediaType.ToLower () == "text")
+ child.SetTextReader (new StreamReader (stream));
+ else
+ child.SetBinaryStream (stream);
+
diff --git a/app-misc/beagle/files/beagle-0.3.8-fix_gvfs.patch b/app-misc/beagle/files/beagle-0.3.8-fix_gvfs.patch
new file mode 100644
index 000000000000..35c1fd3dcff0
--- /dev/null
+++ b/app-misc/beagle/files/beagle-0.3.8-fix_gvfs.patch
@@ -0,0 +1,11 @@
+--- beagle-0.3.8old/search/Beagle.Search.Tiles/Tile.cs 2008-06-12 07:41:19.000000000 +0200
++++ beagle-0.3.8/search/Beagle.Search.Tiles/Tile.cs 2008-10-18 20:25:23.000000000 +0200
+@@ -348,7 +348,7 @@
+ #else
+ MimeApplication app;
+ app = Mime.GetDefaultApplication (mimetype);
+- bool expect_uris = app.SupportUris ();
++ bool expect_uris = app.SupportsUris ();
+ path = hit.Path;
+
+ if (app == null) {