Hello community, here is the log from the commit of package beagle checked in at Mon Apr 24 21:59:19 CEST 2006. -------- --- GNOME/beagle/beagle.changes 2006-04-20 00:19:13.000000000 +0200 +++ STABLE/beagle/beagle.changes 2006-04-24 21:21:50.000000000 +0200 @@ -1,0 +2,10 @@ +Mon Apr 24 21:20:32 CEST 2006 - joeshaw@suse.de + +- Add patch to include calendar items in the beagle-search GUI, + and make double-clicking on a contact open it in evolution. +- Add patch to fix launching of shell scripts with the new + process stuff. +- Add patch to fix infinite looping in filters that set an + error. + +------------------------------------------------------------------- New: ---- beagle-calendar-contact-tiles.patch beagle-filter-stop-pulling-on-error.patch beagle-safe-process-redirect.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ beagle.spec ++++++ --- /var/tmp/diff_new_pack.qSAPsd/_old 2006-04-24 21:58:48.000000000 +0200 +++ /var/tmp/diff_new_pack.qSAPsd/_new 2006-04-24 21:58:48.000000000 +0200 @@ -18,7 +18,7 @@ Group: Productivity/Other Autoreqprov: on Version: 0.2.3 -Release: 23 +Release: 26 Summary: Desktop Search Application URL: http://www.gnome.org/projects/beagle/ Source: %{name}-%{version}.tar.gz @@ -42,6 +42,9 @@ Patch15: beagle-hu.patch Patch16: beagle-thread-static-lucene.patch Patch17: beagle-filesystem-races.patch +Patch18: beagle-calendar-contact-tiles.patch +Patch19: beagle-safe-process-redirect.patch +Patch20: beagle-filter-stop-pulling-on-error.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Prereq: /usr/sbin/groupadd /usr/sbin/useradd Requires: mono-core >= 1.1.13.5 @@ -297,6 +300,9 @@ %patch15 %patch16 %patch17 +%patch18 +%patch19 +%patch20 %build rm po/no.* @@ -453,6 +459,13 @@ %{prefix}/%_lib/pkgconfig/*.pc %changelog -n beagle +* Mon Apr 24 2006 - joeshaw@suse.de +- Add patch to include calendar items in the beagle-search GUI, + and make double-clicking on a contact open it in evolution. +- Add patch to fix launching of shell scripts with the new + process stuff. +- Add patch to fix infinite looping in filters that set an + error. * Wed Apr 19 2006 - joeshaw@suse.de - Add a patch to check for various places where our filesystem could race and we would throw harmless but annoying exceptions. ++++++ beagle-calendar-contact-tiles.patch ++++++ Index: search/GroupView.cs =================================================================== RCS file: /cvs/gnome/beagle/search/GroupView.cs,v retrieving revision 1.6 diff -u -p -u -r1.6 GroupView.cs --- search/GroupView.cs 3 Mar 2006 20:04:40 -0000 1.6 +++ search/GroupView.cs 24 Apr 2006 18:13:13 -0000 @@ -142,6 +142,9 @@ namespace Search { case ScopeType.Applications: return group == TileGroup.Application; + case ScopeType.Calendar: + return group == TileGroup.Calendar; + case ScopeType.Contacts: return group == TileGroup.Contact; Index: search/Makefile.am =================================================================== RCS file: /cvs/gnome/beagle/search/Makefile.am,v retrieving revision 1.15 diff -u -p -u -r1.15 Makefile.am --- search/Makefile.am 24 Mar 2006 21:55:23 -0000 1.15 +++ search/Makefile.am 24 Apr 2006 18:13:13 -0000 @@ -31,6 +31,7 @@ TILES = \ $(srcdir)/Tiles/Application.cs \ $(srcdir)/Tiles/Audio.cs \ $(srcdir)/Tiles/CApplet.cs \ + $(srcdir)/Tiles/Calendar.cs \ $(srcdir)/Tiles/Contact.cs \ $(srcdir)/Tiles/DetailsPane.cs \ $(srcdir)/Tiles/File.cs \ Index: search/UIManager.cs =================================================================== RCS file: /cvs/gnome/beagle/search/UIManager.cs,v retrieving revision 1.9 diff -u -p -u -r1.9 UIManager.cs --- search/UIManager.cs 10 Apr 2006 14:16:35 -0000 1.9 +++ search/UIManager.cs 24 Apr 2006 18:13:13 -0000 @@ -8,6 +8,7 @@ namespace Search { public enum ScopeType { Everywhere, Applications, + Calendar, Contacts, Documents, Conversations, @@ -89,6 +90,11 @@ namespace Search { null, Catalog.GetString ("Search contacts"), (int)ScopeType.Contacts), + new RadioActionEntry ("Calendar", null, + Catalog.GetString ("Ca_lendar events"), + null, + Catalog.GetString ("Search calendar events"), + (int)ScopeType.Contacts), new RadioActionEntry ("Documents", null, Catalog.GetString ("_Documents"), null, @@ -100,12 +106,12 @@ namespace Search { Catalog.GetString ("Search E-Mail and Instant Messaging logs"), (int)ScopeType.Conversations), new RadioActionEntry ("Images", null, - Catalog.GetString ("Images"), + Catalog.GetString ("_Images"), null, Catalog.GetString ("Search images"), (int)ScopeType.Images), new RadioActionEntry ("Media", null, - Catalog.GetString ("Media"), + Catalog.GetString ("_Media"), null, Catalog.GetString ("Search sound and video files"), (int)ScopeType.Media), @@ -162,6 +168,7 @@ namespace Search { " <menuitem action='Everywhere'/>" + " <menuitem action='Applications'/>" + " <menuitem action='Contacts'/>" + + " <menuitem action='Calendar'/>" + " <menuitem action='Documents'/>" + " <menuitem action='Conversations'/>" + " <menuitem action='Images'/>" + Index: search/Tiles/Contact.cs =================================================================== RCS file: /cvs/gnome/beagle/search/Tiles/Contact.cs,v retrieving revision 1.4 diff -u -p -u -r1.4 Contact.cs --- search/Tiles/Contact.cs 23 Feb 2006 19:13:24 -0000 1.4 +++ search/Tiles/Contact.cs 24 Apr 2006 18:13:13 -0000 @@ -25,6 +25,9 @@ namespace Search.Tiles { Title = hit.GetFirstProperty ("fixme:Name"); Description = hit.GetFirstProperty ("fixme:Email"); + + if (Hit.GetFirstProperty ("fixme:Email") != null) + AddAction (new TileAction (Catalog.GetString ("Send Mail"), SendMail)); } private Gdk.Pixbuf GetIcon (int size) @@ -67,6 +70,23 @@ namespace Search.Tiles { } return details; + } + + public override void Open () + { + SafeProcess p = new SafeProcess (); + p.Arguments = new string [] { "evolution", Hit.UriAsString }; + + try { + p.Start (); + } catch (SafeProcessException e) { + Console.WriteLine (e.Message); + } + } + + private void SendMail () + { + OpenFromUri ("mailto:" + Hit.GetFirstProperty ("fixme:Email")); } } } Index: search/Tiles/TileGroup.cs =================================================================== RCS file: /cvs/gnome/beagle/search/Tiles/TileGroup.cs,v retrieving revision 1.1 diff -u -p -u -r1.1 TileGroup.cs --- search/Tiles/TileGroup.cs 13 Jan 2006 19:53:03 -0000 1.1 +++ search/Tiles/TileGroup.cs 24 Apr 2006 18:13:13 -0000 @@ -4,6 +4,7 @@ namespace Search.Tiles { public enum TileGroup { Application, + Calendar, Contact, Folder, Image, Index: search/Tiles/Utils.cs =================================================================== RCS file: /cvs/gnome/beagle/search/Tiles/Utils.cs,v retrieving revision 1.4 diff -u -p -u -r1.4 Utils.cs --- search/Tiles/Utils.cs 31 Mar 2006 16:50:21 -0000 1.4 +++ search/Tiles/Utils.cs 24 Apr 2006 18:13:13 -0000 @@ -24,6 +24,8 @@ namespace Search.Tiles { Catalog.GetString ("Application"), 1), new TileGroupInfo (TileGroup.Contact, Catalog.GetString ("Contact"), 2), + new TileGroupInfo (TileGroup.Calendar, + Catalog.GetString ("Calendar Events"), 2), new TileGroupInfo (TileGroup.Folder, Catalog.GetString ("Folder"), 2), new TileGroupInfo (TileGroup.Image, --- /dev/null 2006-04-07 15:25:18.000000000 -0400 +++ search/Tiles/Calendar.cs 2006-04-24 14:01:57.000000000 -0400 @@ -0,0 +1,65 @@ +using System; +using Mono.Unix; +using Beagle.Util; + +namespace Search.Tiles { + + public class CalendarActivator : TileActivator { + + public CalendarActivator () : base () + { + AddSupportedFlavor (new HitFlavor (null, "Calendar", null)); + } + + public override Tile BuildTile (Beagle.Hit hit, Beagle.Query query) + { + return new Calendar (hit, query); + } + } + + public class Calendar : TileTemplate { + + public Calendar (Beagle.Hit hit, Beagle.Query query) : base (hit, query) + { + Group = TileGroup.Calendar; + + string summary = hit.GetFirstProperty ("fixme:summary"); + string time = Utils.NiceShortDate (hit.GetFirstProperty ("fixme:starttime")); + + Title = (time == "") ? summary : time + ": " + summary; + Description = hit.GetFirstProperty ("fixme:description"); + } + + protected override void LoadIcon (Gtk.Image image, int size) + { + image.Pixbuf = WidgetFu.LoadThemeIcon ("stock_calendar", size); + } + + protected override DetailsPane GetDetails () + { + DetailsPane details = new DetailsPane (); + + details.AddLabelPair (Catalog.GetString ("Title:"), + Title, + 0, 1); + details.AddLabelPair (Catalog.GetString ("Description:"), + Description, + 1, 1); + details.AddSnippet (2, 1); + + return details; + } + + public override void Open () + { + SafeProcess p = new SafeProcess (); + p.Arguments = new string [] { "evolution", Hit.UriAsString }; + + try { + p.Start (); + } catch (SafeProcessException e) { + Console.WriteLine (e.Message); + } + } + } +} ++++++ beagle-filter-stop-pulling-on-error.patch ++++++ Index: beagled/Filter.cs =================================================================== RCS file: /cvs/gnome/beagle/beagled/Filter.cs,v retrieving revision 1.44 retrieving revision 1.45 diff -u -p -r1.44 -r1.45 --- beagled/Filter.cs 2 Apr 2006 19:55:54 -0000 1.44 +++ beagled/Filter.cs 3 Apr 2006 16:51:03 -0000 1.45 @@ -579,13 +579,16 @@ namespace Beagle.Daemon { private bool Pull () { - if (IsFinished) { + if (IsFinished || HasError) { Close (); return false; } DoPull (); + if (HasError) + return false; + return true; } @@ -628,6 +631,10 @@ namespace Beagle.Daemon { private bool PullFromArray (ArrayList array, StringBuilder sb) { while (array.Count == 0 && Pull ()) { } + + // FIXME: Do we want to try to extract as much data as + // possible from the filter if we get an error, or + // should we just give up afterward entirely? if (array.Count > 0) { foreach (string str in array) ++++++ beagle-safe-process-redirect.patch ++++++ Index: Util/SafeProcess.cs =================================================================== RCS file: /cvs/gnome/beagle/Util/SafeProcess.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -p -r1.1 -r1.2 --- Util/SafeProcess.cs 13 Apr 2006 18:31:00 -0000 1.1 +++ Util/SafeProcess.cs 21 Apr 2006 21:08:27 -0000 1.2 @@ -79,9 +79,9 @@ namespace Beagle.Util { IntPtr child_setup, IntPtr child_data, IntPtr pid, - ref int standard_input, - ref int standard_output, - ref int standard_error, + [In,Out] IntPtr standard_input, + [In,Out] IntPtr standard_output, + [In,Out] IntPtr standard_error, out IntPtr error); public void Start () @@ -98,28 +98,51 @@ namespace Beagle.Util { args = tmp_args; } - g_spawn_async_with_pipes (null, args, null, - 1 << 2, // G_SPAWN_SEARCH_PATH - IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, - ref stdin, ref stdout, ref stderr, out error); - - if (error != IntPtr.Zero) - throw new SafeProcessException (new GException (error)); - - if (! RedirectStandardInput) - Mono.Unix.Native.Syscall.close (stdin); - else - stdin_stream = new UnixStream (stdin); - - if (! RedirectStandardOutput) - Mono.Unix.Native.Syscall.close (stdout); - else - stdout_stream = new UnixStream (stdout); - - if (! RedirectStandardError) - Mono.Unix.Native.Syscall.close (stderr); - else - stderr_stream = new UnixStream (stderr); + IntPtr in_ptr = IntPtr.Zero, out_ptr = IntPtr.Zero, err_ptr = IntPtr.Zero; + + try { + if (RedirectStandardInput) + in_ptr = Marshal.AllocHGlobal (IntPtr.Size); + + if (RedirectStandardOutput) + out_ptr = Marshal.AllocHGlobal (IntPtr.Size); + + if (RedirectStandardError) + err_ptr = Marshal.AllocHGlobal (IntPtr.Size); + + g_spawn_async_with_pipes (null, args, null, + 1 << 2, // G_SPAWN_SEARCH_PATH + IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, + in_ptr, out_ptr, err_ptr, out error); + + if (error != IntPtr.Zero) + throw new SafeProcessException (new GException (error)); + + if (in_ptr != IntPtr.Zero) { + IntPtr v = Marshal.ReadIntPtr (in_ptr); + stdin_stream = new UnixStream ((int) v); + } + + if (out_ptr != IntPtr.Zero) { + IntPtr v = Marshal.ReadIntPtr (out_ptr); + stdout_stream = new UnixStream ((int) v); + } + + if (err_ptr != IntPtr.Zero) { + IntPtr v = Marshal.ReadIntPtr (err_ptr); + stderr_stream = new UnixStream ((int) v); + } + + } finally { + if (in_ptr != IntPtr.Zero) + Marshal.FreeHGlobal (in_ptr); + + if (out_ptr != IntPtr.Zero) + Marshal.FreeHGlobal (out_ptr); + + if (err_ptr != IntPtr.Zero) + Marshal.FreeHGlobal (err_ptr); + } } public void Close () ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun...