[arch-commits] Commit in beagle/trunk (3 files)

Jan de Groot jgc at archlinux.org
Sat Jan 30 14:00:00 UTC 2010


    Date: Saturday, January 30, 2010 @ 09:00:00
  Author: jgc
Revision: 65502

upgpkg: beagle 0.3.9-2
    Rebuild for libpng/libjpeg
Add patch to build with gmime-sharp 2.4
Add patch to build with recent versions of mono

Added:
  beagle/trunk/beagle-0.3.9-gmime24.patch
  beagle/trunk/beagle-0.3.9-mono-data-sqlite-2.patch
Modified:
  beagle/trunk/PKGBUILD

---------------------------------------+
 PKGBUILD                              |   16 
 beagle-0.3.9-gmime24.patch            |  703 ++++++++++++++++++++++++++++++++
 beagle-0.3.9-mono-data-sqlite-2.patch |   81 +++
 3 files changed, 796 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2010-01-30 13:55:05 UTC (rev 65501)
+++ PKGBUILD	2010-01-30 14:00:00 UTC (rev 65502)
@@ -3,21 +3,25 @@
 # Contributor: Shadowhand <woody.gilk at gmail.com>
 pkgname=beagle
 pkgver=0.3.9
-pkgrel=1
+pkgrel=2
 pkgdesc="Search tool that ransacks your personal information space"
 arch=(i686 x86_64)
 url="http://www.gnome.org/projects/beagle/"
 license=('custom')
-depends=('gnome-sharp>=2.24.1' 'gmime>=2.2.21' 'evolution-sharp>=0.20.0' 'libexif' 'librsvg>=2.26.0' 'sqlite3>=3.6.13' 'libxss' 'wv>=1.2.4' 'chmlib' 'gsf-sharp>=0.8.1' 'libsm' 'xdg-utils' 'ndesk-dbus-glib' 'mono>=2.4' 'taglib-sharp')
+depends=('gnome-sharp>=2.24.1' 'gmime>=2.4.10' 'evolution-sharp>=0.20.0' 'libexif' 'librsvg>=2.26.0' 'sqlite3>=3.6.13' 'libxss' 'wv>=1.2.4' 'chmlib' 'gsf-sharp>=0.8.1' 'libsm' 'xdg-utils' 'ndesk-dbus-glib' 'mono>=2.4' 'taglib-sharp')
 makedepends=('intltool' 'zip' 'pkgconfig')
 options=('!libtool')
 backup=('etc/beagle/crawl-applications' 'etc/beagle/crawl-documentation'
         'etc/beagle/crawl-windows')
 install=beagle.install
 source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.3/${pkgname}-${pkgver}.tar.bz2
-	beagle-0.3.9-spew.patch)
+        beagle-0.3.9-spew.patch
+        beagle-0.3.9-gmime24.patch
+        beagle-0.3.9-mono-data-sqlite-2.patch)
 md5sums=('b73c12423d2d67133dbb05933f4c8fe1'
-	 '003ada7acc2724e94e0218e4a6705b4a')
+         '003ada7acc2724e94e0218e4a6705b4a'
+         '73b5a5ea03dc3a7ca71ed41772e4dd82'
+         'd99a93730485b7f9a5e2111a8b2bf440')
 
 build() {
   export "MONO_SHARED_DIR=${srcdir}/.wabi"
@@ -26,7 +30,11 @@
   cd "${srcdir}/${pkgname}-${pkgver}"
   sed -i -e 's/CRAWL_USER=beagleindex/CRAWL_USER=beaglidx/' tools/beagle-crawl-system.in || return 1
   sed -i -e 's/libchm.so.1/libchm.so.0/' Util/ChmFile.cs || return 1
+  sed -i -e 's/libgnome-desktop-2.so.2/libgnome-desktop-2.so.11/' search/Beagle.Search.exe.config || return 1
+
   patch -Np1 -i "${srcdir}/beagle-0.3.9-spew.patch" || return 1
+  patch -Np1 -i "${srcdir}/beagle-0.3.9-gmime24.patch" || return 1
+  patch -Np1 -i "${srcdir}/beagle-0.3.9-mono-data-sqlite-2.patch" || return 1
 
   ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
 	--enable-inotify \

Added: beagle-0.3.9-gmime24.patch
===================================================================
--- beagle-0.3.9-gmime24.patch	                        (rev 0)
+++ beagle-0.3.9-gmime24.patch	2010-01-30 14:00:00 UTC (rev 65502)
@@ -0,0 +1,703 @@
+diff -upNr beagle-0.3.9.orign/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs beagle-0.3.9/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs
+--- beagle-0.3.9.orign/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs	2008-04-25 20:17:04.000000000 +0200
++++ beagle-0.3.9/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs	2009-01-28 12:33:17.000000000 +0100
+@@ -333,28 +333,46 @@ namespace Beagle.Daemon.EvolutionMailQue
+                         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 @@ namespace Beagle.Daemon.EvolutionMailQue
+ 			}
+ 
+ 			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 ();
+ 
+diff -upNr beagle-0.3.9.orign/beagled/GoogleBackends/GMailSearchDriver.cs beagle-0.3.9/beagled/GoogleBackends/GMailSearchDriver.cs
+--- beagle-0.3.9.orign/beagled/GoogleBackends/GMailSearchDriver.cs	2008-04-25 21:26:19.000000000 +0200
++++ beagle-0.3.9/beagled/GoogleBackends/GMailSearchDriver.cs	2009-01-28 12:33:17.000000000 +0100
+@@ -322,38 +322,47 @@ namespace Beagle.Daemon.GoogleBackend {
+ 			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)
+diff -upNr beagle-0.3.9.orign/beagled/KMailQueryable/KMailIndexer.cs beagle-0.3.9/beagled/KMailQueryable/KMailIndexer.cs
+--- beagle-0.3.9.orign/beagled/KMailQueryable/KMailIndexer.cs	2008-02-10 21:24:19.000000000 +0100
++++ beagle-0.3.9/beagled/KMailQueryable/KMailIndexer.cs	2009-01-28 12:33:17.000000000 +0100
+@@ -407,28 +407,46 @@ namespace Beagle.Daemon.KMailQueryable {
+                         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));
+-			}
+-			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));
+-			}
+-			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 = 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 ();
+-
++			
++			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 ();
++			}
++			
++			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 ();
++			}
++			
+ 			if (folder_name == Queryable.SentMailFolderName)
+ 				indexable.AddProperty (Property.NewFlag ("fixme:isSent"));
+ 			else {
+diff -upNr beagle-0.3.9.orign/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs beagle-0.3.9/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs
+--- beagle-0.3.9.orign/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs	2008-07-18 16:27:59.000000000 +0200
++++ beagle-0.3.9/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs	2009-01-28 12:33:17.000000000 +0100
+@@ -367,9 +367,14 @@ namespace Beagle.Daemon.ThunderbirdQuery
+ 			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;
+ 		}
+ 		
+@@ -434,7 +439,7 @@ namespace Beagle.Daemon.ThunderbirdQuery
+ 			
+ 			// 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="
+@@ -462,7 +467,7 @@ namespace Beagle.Daemon.ThunderbirdQuery
+ 			// 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 ();
+@@ -491,7 +496,7 @@ namespace Beagle.Daemon.ThunderbirdQuery
+ 				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 ();
+diff -upNr beagle-0.3.9.orign/configure beagle-0.3.9/configure
+--- beagle-0.3.9.orign/configure	2008-07-19 13:20:36.000000000 +0200
++++ beagle-0.3.9/configure	2009-01-28 12:35:43.000000000 +0100
+@@ -2791,7 +2791,7 @@ MONODOC_REQUIRED=1.2.4
+ 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.4.0
+ EVOLUTION_SHARP_REQUIRED=0.13.3
+ GSF_SHARP_REQUIRED=0.6
+ GTK_REQUIRED=2.10.0
+@@ -25660,7 +25660,7 @@ if test -n "$PKG_CONFIG"; then
+ 	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
+ \"") >&5
+   ($PKG_CONFIG --exists --print-errors "
+ 	gtk-sharp-2.0 >= $GTK_SHARP_REQUIRED
+@@ -25668,7 +25668,7 @@ if test -n "$PKG_CONFIG"; then
+ 	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
+ ") 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+@@ -25679,7 +25679,7 @@ if test -n "$PKG_CONFIG"; then
+ 	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
+ " 2>/dev/null`
+ else
+   pkg_failed=yes
+@@ -25699,7 +25699,7 @@ if test -n "$PKG_CONFIG"; then
+ 	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
+ \"") >&5
+   ($PKG_CONFIG --exists --print-errors "
+ 	gtk-sharp-2.0 >= $GTK_SHARP_REQUIRED
+@@ -25707,7 +25707,7 @@ if test -n "$PKG_CONFIG"; then
+ 	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
+ ") 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+@@ -25718,7 +25718,7 @@ if test -n "$PKG_CONFIG"; then
+ 	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
+ " 2>/dev/null`
+ else
+   pkg_failed=yes
+@@ -25744,7 +25744,7 @@ fi
+ 	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
+ "`
+         else
+ 	        BEAGLE_UI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
+@@ -25753,7 +25753,7 @@ fi
+ 	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
+ "`
+         fi
+ 	# Put the nasty error message in config.log where it belongs
+@@ -25765,7 +25765,7 @@ fi
+ 	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
+ ) were not met:
+ 
+ $BEAGLE_UI_PKG_ERRORS
+@@ -25783,7 +25783,7 @@ echo "$as_me: error: Package requirement
+ 	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
+ ) were not met:
+ 
+ $BEAGLE_UI_PKG_ERRORS
+@@ -26167,18 +26167,18 @@ if test -n "$PKG_CONFIG"; then
+     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evolution-sharp >= \$EVOLUTION_SHARP_REQUIRED 	\\
+                   gconf-sharp-2.0 >= \$GTK_SHARP_REQUIRED	\\
+ 		  glib-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+-                  gmime-sharp >= \$GMIME_SHARP_REQUIRED\"") >&5
++                  gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED\"") >&5
+   ($PKG_CONFIG --exists --print-errors "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED 	\
+                   gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED	\
+ 		  glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+-                  gmime-sharp >= $GMIME_SHARP_REQUIRED") 2>&5
++                  gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED") 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   pkg_cv_EVO_CFLAGS=`$PKG_CONFIG --cflags "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED 	\
+                   gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED	\
+ 		  glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+-                  gmime-sharp >= $GMIME_SHARP_REQUIRED" 2>/dev/null`
++                  gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED" 2>/dev/null`
+ else
+   pkg_failed=yes
+ fi
+@@ -26194,18 +26194,18 @@ if test -n "$PKG_CONFIG"; then
+     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evolution-sharp >= \$EVOLUTION_SHARP_REQUIRED 	\\
+                   gconf-sharp-2.0 >= \$GTK_SHARP_REQUIRED	\\
+ 		  glib-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+-                  gmime-sharp >= \$GMIME_SHARP_REQUIRED\"") >&5
++                  gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED\"") >&5
+   ($PKG_CONFIG --exists --print-errors "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED 	\
+                   gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED	\
+ 		  glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+-                  gmime-sharp >= $GMIME_SHARP_REQUIRED") 2>&5
++                  gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED") 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   pkg_cv_EVO_LIBS=`$PKG_CONFIG --libs "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED 	\
+                   gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED	\
+ 		  glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+-                  gmime-sharp >= $GMIME_SHARP_REQUIRED" 2>/dev/null`
++                  gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED" 2>/dev/null`
+ else
+   pkg_failed=yes
+ fi
+@@ -26227,12 +26227,12 @@ fi
+ 	        EVO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "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"`
+         else
+ 	        EVO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "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"`
+         fi
+ 	# Put the nasty error message in config.log where it belongs
+ 	echo "$EVO_PKG_ERRORS" >&5
+@@ -26781,12 +26781,12 @@ if test -n "$PKG_CONFIG"; then
+         if test -n "$PKG_CONFIG" && \
+     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"
+ 	shared-mime-info
+-	gmime-sharp >= \$GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+ \"") >&5
+   ($PKG_CONFIG --exists --print-errors "
+ 	shared-mime-info
+-	gmime-sharp >= $GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ ") 2>&5
+   ac_status=$?
+@@ -26794,7 +26794,7 @@ if test -n "$PKG_CONFIG"; then
+   (exit $ac_status); }; then
+   pkg_cv_BEAGLED_CFLAGS=`$PKG_CONFIG --cflags "
+ 	shared-mime-info
+-	gmime-sharp >= $GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ " 2>/dev/null`
+ else
+@@ -26811,12 +26811,12 @@ if test -n "$PKG_CONFIG"; then
+         if test -n "$PKG_CONFIG" && \
+     { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"
+ 	shared-mime-info
+-	gmime-sharp >= \$GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+ \"") >&5
+   ($PKG_CONFIG --exists --print-errors "
+ 	shared-mime-info
+-	gmime-sharp >= $GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ ") 2>&5
+   ac_status=$?
+@@ -26824,7 +26824,7 @@ if test -n "$PKG_CONFIG"; then
+   (exit $ac_status); }; then
+   pkg_cv_BEAGLED_LIBS=`$PKG_CONFIG --libs "
+ 	shared-mime-info
+-	gmime-sharp >= $GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ " 2>/dev/null`
+ else
+@@ -26847,13 +26847,13 @@ fi
+         if test $_pkg_short_errors_supported = yes; then
+ 	        BEAGLED_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "
+ 	shared-mime-info
+-	gmime-sharp >= $GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ "`
+         else
+ 	        BEAGLED_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
+ 	shared-mime-info
+-	gmime-sharp >= $GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ "`
+         fi
+@@ -26862,7 +26862,7 @@ fi
+ 
+ 	{ { echo "$as_me:$LINENO: error: Package requirements (
+ 	shared-mime-info
+-	gmime-sharp >= $GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ ) were not met:
+ 
+@@ -26877,7 +26877,7 @@ See the pkg-config man page for more det
+ " >&5
+ echo "$as_me: error: Package requirements (
+ 	shared-mime-info
+-	gmime-sharp >= $GMIME_SHARP_REQUIRED
++	gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ 	glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ ) were not met:
+ 
+@@ -26924,7 +26924,7 @@ BEAGLED_LIBS="$BEAGLED_LIBS $GSF_SHARP_L
+ 
+ 
+ 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`
+ 
+ 
+ # Check whether --enable-epiphany-extension was given.
+diff -upNr beagle-0.3.9.orign/Filters/FilterMail.cs beagle-0.3.9/Filters/FilterMail.cs
+--- beagle-0.3.9.orign/Filters/FilterMail.cs	2008-06-12 02:20:07.000000000 +0200
++++ beagle-0.3.9/Filters/FilterMail.cs	2009-01-28 12:33:17.000000000 +0100
+@@ -126,7 +126,7 @@ namespace Beagle.Filters {
+ 
+ 			// 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 @@ namespace Beagle.Filters {
+ 			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 @@ namespace Beagle.Filters {
+ 				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 @@ namespace Beagle.Filters {
+ 					}
+ 				} else if (mime_part is GMime.Multipart) {
+ 					GMime.Multipart multipart = (GMime.Multipart) mime_part;
+-
+-					int num_parts = multipart.Number;
++					int num_parts = multipart.Count;
+ 
+ 					// 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 @@ namespace Beagle.Filters {
+ 					// 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 @@ namespace Beagle.Filters {
+ 						} 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 @@ namespace Beagle.Filters {
+ 							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);

Added: beagle-0.3.9-mono-data-sqlite-2.patch
===================================================================
--- beagle-0.3.9-mono-data-sqlite-2.patch	                        (rev 0)
+++ beagle-0.3.9-mono-data-sqlite-2.patch	2010-01-30 14:00:00 UTC (rev 65502)
@@ -0,0 +1,81 @@
+--- beagle-0.3.9/Util/FSpotTools.cs.orig	2010-01-30 14:45:38.000000000 +0100
++++ beagle-0.3.9/Util/FSpotTools.cs	2010-01-30 14:47:00.000000000 +0100
+@@ -85,8 +85,12 @@
+ 							while (reader == null) {
+ 								try {
+ 									reader = command.ExecuteReader ();
+-								} catch (SqliteBusyException) {
+-									Thread.Sleep (50);
++								} catch (SqliteException e) {
++                  if (e.ErrorCode == SQLiteErrorCode.Busy) {
++									  Thread.Sleep (50);
++                  } else {
++                    throw;
++                  }
+ 								}
+ 							}
+ 							reader.Close ();
+--- beagle-0.3.9/beagled/SqliteUtils.cs.orig	2010-01-30 14:47:14.000000000 +0100
++++ beagle-0.3.9/beagled/SqliteUtils.cs	2010-01-30 14:53:16.000000000 +0100
+@@ -55,8 +55,13 @@
+ 					try {
+ 						ret = command.ExecuteNonQuery ();
+ 						break;
+-					} catch (SqliteBusyException ex) {
+-						Thread.Sleep (50);
++					} catch (SqliteException ex) {
++            if (ex.ErrorCode == SQLiteErrorCode.Busy) {
++              Thread.Sleep (50);
++            } else {
++              Log.Error(ex, "SQL that caused the exception: {0}", command_text);
++              throw;
++            }
+ 					} catch (Exception e) {
+ 						Log.Error (e, "SQL that caused the exception: {0}", command_text);
+ 						throw;
+@@ -79,8 +84,13 @@
+ 				try {
+ 					ret = command.ExecuteNonQuery ();
+ 					break;
+-				} catch (SqliteBusyException ex) {
+-					Thread.Sleep (50);
++				} catch (SqliteException ex) {
++          if (ex.ErrorCode == SQLiteErrorCode.Busy) {
++            Thread.Sleep (50);
++          } else {
++            Log.Error(ex, "SQL that caused the exception: {0}", command.CommandText);
++            throw;
++          }
+ 				} catch (Exception e) {
+ 					Log.Error ( e, "SQL that caused the exception: {0}", command.CommandText);
+ 					throw;
+@@ -96,8 +106,12 @@
+ 			while (reader == null) {
+ 				try {
+ 					reader = command.ExecuteReader ();
+-				} catch (SqliteBusyException ex) {
+-					Thread.Sleep (50);
++				} catch (SqliteException ex) {
++          if (ex.ErrorCode == SQLiteErrorCode.Busy) {
++            Thread.Sleep (50);
++          } else {
++            throw;
++          }
+ 				}
+ 			}
+ 			return reader;
+@@ -108,8 +122,12 @@
+ 			while (true) {
+ 				try {
+ 					return reader.Read ();
+-				} catch (SqliteBusyException ex) {
+-					Thread.Sleep (50);
++				} catch (SqliteException ex) {
++          if (ex.ErrorCode == SQLiteErrorCode.Busy) {
++            Thread.Sleep (50);
++          } else {
++            throw;
++          }
+ 				}
+ 			}
+ 		}




More information about the arch-commits mailing list