[Pkg-cli-libs-commits] [SCM] zeitgeist-sharp branch, master, updated. debian/0.1.1.0-2-7-geb533b3

Manish Sinha manishsinha at ubuntu.com
Tue Jun 14 14:04:48 UTC 2011


The following commit has been merged in the master branch:
commit 995c1aeef1b1453446dc855e44830e8d6feae391
Author: Manish Sinha <manishsinha at ubuntu.com>
Date:   Tue Jun 14 18:14:53 2011 +0530

    Imported Upstream version 0.8.0.0

diff --git a/Makefile.am b/Makefile.am
index 6e47939..784c60f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,3 @@
 EXTRA_DIST =  expansions.m4
 SUBDIRS = Zeitgeist
-EXTRA_DIST = LICENSE MAINTAINERS
+EXTRA_DIST = LICENSE MAINTAINERS NEWS
diff --git a/Makefile.in b/Makefile.in
index 44da7c5..dcaa75a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -33,7 +33,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 subdir = .
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/configure install-sh \
+	$(srcdir)/Makefile.in $(top_srcdir)/configure NEWS install-sh \
 	missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/expansions.m4 \
@@ -106,6 +106,10 @@ AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 CYGPATH_W = @CYGPATH_W@
+DBUS_SHARP_10_CFLAGS = @DBUS_SHARP_10_CFLAGS@
+DBUS_SHARP_10_LIBS = @DBUS_SHARP_10_LIBS@
+DBUS_SHARP_GLIB_10_CFLAGS = @DBUS_SHARP_GLIB_10_CFLAGS@
+DBUS_SHARP_GLIB_10_LIBS = @DBUS_SHARP_GLIB_10_LIBS@
 DEFS = @DEFS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -128,10 +132,6 @@ MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MONO_CFLAGS = @MONO_CFLAGS@
 MONO_LIBS = @MONO_LIBS@
-NDESK_DBUS_10_CFLAGS = @NDESK_DBUS_10_CFLAGS@
-NDESK_DBUS_10_LIBS = @NDESK_DBUS_10_LIBS@
-NDESK_DBUS_GLIB_10_CFLAGS = @NDESK_DBUS_GLIB_10_CFLAGS@
-NDESK_DBUS_GLIB_10_LIBS = @NDESK_DBUS_GLIB_10_LIBS@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
@@ -148,6 +148,8 @@ SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
 XBUILD = @XBUILD@
+ZEITGEIST_DAEMON_CFLAGS = @ZEITGEIST_DAEMON_CFLAGS@
+ZEITGEIST_DAEMON_LIBS = @ZEITGEIST_DAEMON_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
@@ -190,7 +192,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-EXTRA_DIST = LICENSE MAINTAINERS
+EXTRA_DIST = LICENSE MAINTAINERS NEWS
 SUBDIRS = Zeitgeist
 all: all-recursive
 
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..d56c62a
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,23 @@
+0.8.0 - All I need is some pepper
+-------------------------------------
+
+* Broken ABI since 0.1.x
+* Backward incompatible API
+ - New Blacklist interface
+ - Added a property "extensions" to LogClient
+* Updated ontology
+* Monitors are reinstalled upon startup (LP Bug #673008)
+* Clients are reconnected after SessionBus restarts
+* Dependency on ndesk-dbus removed and ported to dbus-sharp
+
+Thanks:
+Travis Glenn Hansen
+
+0.1.0.1 
+---------
+Fixing of autobuild script
+
+
+0.1.0 - Stark
+---------------
+First release
diff --git a/Zeitgeist/AssemblyInfo.cs b/Zeitgeist/AssemblyInfo.cs
index 7cad7b5..16c9506 100644
--- a/Zeitgeist/AssemblyInfo.cs
+++ b/Zeitgeist/AssemblyInfo.cs
@@ -17,7 +17,7 @@ using System.Runtime.CompilerServices;
 // The form "{Major}.{Minor}.*" will automatically update the build and revision,
 // and "{Major}.{Minor}.{Build}.*" will update just the revision.
 
-[assembly: AssemblyVersion("0.1.0.1")]
+[assembly: AssemblyVersion("0.8.0.0")]
 
 // The following attributes are used to specify the signing key for the assembly, 
 // if desired. See the Mono documentation for more information about signing.
diff --git a/Zeitgeist/BlacklistClient.cs b/Zeitgeist/BlacklistClient.cs
index ffab5d2..4aaf8ae 100644
--- a/Zeitgeist/BlacklistClient.cs
+++ b/Zeitgeist/BlacklistClient.cs
@@ -25,7 +25,7 @@ using System;
 using System.Collections.Generic;
 using Zeitgeist.Datamodel;
 using Zeitgeist.Client;
-using NDesk.DBus;
+using DBus;
 
 namespace Zeitgeist
 {
@@ -47,39 +47,106 @@ namespace Zeitgeist
 		public BlacklistClient()
 		{
 			srcInterface = ZsUtils.GetDBusObject<IBlacklist>(objectPath);
+			
+			// Connect the Template Added event
+			srcInterface.TemplateAdded += delegate(string blacklistId, RawEvent addedTemplate) {
+				Console.Out.WriteLine("Blacklist added for: "+blacklistId);
+				if(this.TemplateAdded != null)
+					this.TemplateAdded(blacklistId, RawEvent.FromRaw(addedTemplate));
+			};
+			
+			// Connect the Template Removed event
+			srcInterface.TemplateRemoved += delegate(string blacklistId, RawEvent removedTemplate) {
+				Console.Out.WriteLine("Blacklist removed for: "+blacklistId);
+				if(this.TemplateRemoved != null)
+					this.TemplateRemoved(blacklistId, RawEvent.FromRaw(removedTemplate));
+			};
 		}
 		
 		/// <summary>
 		/// Get the current blacklist templates.
 		/// </summary>
 		/// <returns>
-		/// A list of <see cref="T:System.Collection.Generic.List{Zeitgeist.Datamodel.Event>"/> Blacklist Event templates 
+		/// A dictionary of string as key and <see cref="T:System.Collection.Generic.List{Zeitgeist.Datamodel.Event>"/> as the Blacklist template
 		/// </returns>
-		public List<Event> GetBlacklist()
+		public Dictionary<string, Event> GetTemplates()
 		{
-			RawEvent[] rawBlackLists = srcInterface.GetBlacklist();
-			return ZsUtils.FromRawEventList(rawBlackLists);
+			Dictionary<string, RawEvent> rawBlackLists = srcInterface.GetTemplates();
+			Dictionary<string, Event> eventList = new Dictionary<string, Event>();
+			
+			foreach(KeyValuePair<string, RawEvent> pair in rawBlackLists)
+			{
+				eventList.Add(pair.Key, RawEvent.FromRaw(pair.Value));
+			}
+			
+			return eventList;
 		}
 		
 		/// <summary>
-		/// Set the blacklist to event_templates. 
+		/// Add a blacklist template to the engine to stop the matching events to be inserted.
+		/// If the event was inserted successfully then TemplateAdded event is raised
 		/// </summary>
-		/// Events matching any these templates will be blocked from insertion into the log. 
-		/// It is still possible to find and look up events matching the blacklist which was inserted before the blacklist banned them.
+		/// <param name="blacklistId">
+		/// The id of the blacklist template of the type <see cref="System.String"/>
+		/// </param>
+		/// <param name="eventTemplate">
+		/// The actual event template of type <see cref="Event"/>
+		/// </param>
 		/// <remarks>
+		/// The event template provided is used to match the event to be inserted. The Properties 
+		/// not set are treated as wildcards. Timestamp is not taken under consideration
 		/// </remarks>
-		/// <param name="eventTemplates">
-		/// A List of <see cref="T:System.Collection.Generic.List{Zeitgeist.Datamodel.Event>"/> Event templates 
+		public void AddTemplate(string blacklistId, Event eventTemplate)
+		{
+			srcInterface.AddTemplate(blacklistId, RawEvent.FromEvent(eventTemplate));
+		}
+		
+		/// <summary>
+		/// Removes the blacklist from the engine if found.
+		/// If the blacklist template was found and is removed then TemplateRemoved event is raised
+		/// </summary>
+		/// <param name="blacklistId">
+		/// The blacklist template id for the template <see cref="System.String"/>
 		/// </param>
-		public void SetBlacklist(List<Event> eventTemplates)
+		/// <remarks>
+		/// If the blacklist does not exist. No event is raised
+		/// </remarks>
+		public void RemoveTemplate(string blacklistId)
 		{
-			List<RawEvent> events = ZsUtils.ToRawEventList(eventTemplates);
-			srcInterface.SetBlacklist(events.ToArray());
+			srcInterface.RemoveTemplate(blacklistId);
 		}
 		
+		/// <summary>
+		/// Raised when a blacklist template is added
+		/// </summary>
+		/// <summary>
+		/// When a new blacklist template is added to the engine, then this event is raised. 
+		/// The delegate <see cref="Zeitgeist.BlacklistTemplateAddedHandler"/> is used for handle the events.
+		/// This handler has two argument: 
+		/// 'blacklistId' of type <see cref="string"/> and 
+		/// 'addedTemplate' of type <see cref="Zeitgeist.Datamodel.Event"/>
+		/// </summary>
+		public event BlacklistTemplateAddedHandler TemplateAdded;
+		
+		/// <summary>
+		/// Raised when a blacklist template is removed
+		/// </summary>
+		/// <summary>
+		/// When a new blacklist template is removed to the engine, then this event is raised. 
+		/// The delegate <see cref="Zeitgeist.BlacklistTemplateRemovedHandler"/> is used for handle the events.
+		/// This handler has two argument: 
+		/// 'blacklistId' of type <see cref="string"/> and 
+		/// 'removedTemplate' of type <see cref="Zeitgeist.Datamodel.Event"/>
+		/// </summary>
+		public event BlacklistTemplateRemovedHandler TemplateRemoved;
+		
+		#region Private Fields
+		
 		private IBlacklist srcInterface;
 		
 		private static string objectPath = "/org/gnome/zeitgeist/blacklist";
+		
+		#endregion
 	}
 }
 
diff --git a/Zeitgeist/Client/IBlacklist.cs b/Zeitgeist/Client/IBlacklist.cs
index 6c8c3cf..d8f6541 100644
--- a/Zeitgeist/Client/IBlacklist.cs
+++ b/Zeitgeist/Client/IBlacklist.cs
@@ -24,6 +24,7 @@
 using System;
 using Zeitgeist.Datamodel;
 using Zeitgeist;
+using System.Collections.Generic;
 
 namespace Zeitgeist.Client
 {
@@ -32,16 +33,17 @@ namespace Zeitgeist.Client
 	/// When inserting events via LogClient.InsertEvents they will be checked against the blacklist templates 
 	/// and if they match they will not be inserted in the log, and any matching monitors will not be signalled.
 	/// </summary>
-	[NDesk.DBus.Interface ("org.gnome.zeitgeist.Blacklist")]
+	[DBus.Interface ("org.gnome.zeitgeist.Blacklist")]
 	internal interface IBlacklist
 	{
 		/// <summary>
 		/// Get the current blacklist templates.
 		/// </summary>
 		/// <returns>
-		/// A list of Blacklist RawEvent <see cref="T:System.Collection.Generic.List{Zeitgeist.Datamodel.RawEvent>"/> templates 
+		/// A dictionary of Blacklist Id as <see cref="string"/> and 
+		/// Blacklist RawEvent <see cref="T:System.Collection.Generic.List{Zeitgeist.Datamodel.RawEvent>"/> templates 
 		/// </returns>
-		RawEvent[] GetBlacklist();
+		Dictionary<string, RawEvent> GetTemplates();
 		
 		/// <summary>
 		/// Set the blacklist to event_templates. 
@@ -50,10 +52,40 @@ namespace Zeitgeist.Client
 		/// Events matching any these templates will be blocked from insertion into the log. 
 		/// It is still possible to find and look up events matching the blacklist which was inserted before the blacklist banned them.
 		/// </remarks>
-		/// <param name="event_templates">
-		/// A List of RawEvent <see cref="T:System.Collection.Generic.List{Zeitgeist.Datamodel.RawEvent>"/> templates 
+		/// <param name="event_template">
+		/// The <see cref="Zeitgeist.Datamodel.RawEvent"/> representing the template
 		/// </param>
-		void SetBlacklist(RawEvent[] event_templates);
+		void AddTemplate(string blacklist_id, RawEvent event_template);
+		
+		/// <summary>
+		/// Remove a blacklist
+		/// </summary>
+		/// <param name="blacklist_id">
+		/// A <see cref="System.String"/> which represents the blacklist id of the blacklist template
+		/// </param>
+		void RemoveTemplate(string blacklist_id);
+		
+		/// <summary>
+		/// Raised when a blacklist template is added
+		/// </summary>
+		/// <summary>
+		/// When a new blacklist template is added to the engine, then this event is raised. 
+		/// The delegate <see cref="Zeitgeist.Client.RawBlacklistTemplateAddedHandler"/> is used for handle the events.
+		/// </summary>
+		event RawBlacklistTemplateAddedHandler TemplateAdded;
+		
+		/// <summary>
+		/// Raised when a blacklist template is removed
+		/// </summary>
+		/// <summary>
+		/// When a new blacklist template is removed to the engine, then this event is raised. 
+		/// The delegate <see cref="Zeitgeist.Client.RawBlacklistTemplateRemovedHandler"/> is used for handle the events.
+		/// </summary>
+		event RawBlacklistTemplateRemovedHandler TemplateRemoved;
 	}
+	
+	internal delegate void RawBlacklistTemplateAddedHandler(string blacklistId, RawEvent addedTemplate);
+	
+	internal delegate void RawBlacklistTemplateRemovedHandler(string blacklistId, RawEvent removedTemplate);
 }
 
diff --git a/Zeitgeist/Datamodel/NameUri.cs b/Zeitgeist/Client/IDBus.cs
similarity index 65%
copy from Zeitgeist/Datamodel/NameUri.cs
copy to Zeitgeist/Client/IDBus.cs
index db38911..3fc2f52 100644
--- a/Zeitgeist/Datamodel/NameUri.cs
+++ b/Zeitgeist/Client/IDBus.cs
@@ -1,6 +1,6 @@
 /******************************************************************************
  * The MIT/X11/Expat License
- * Copyright (c) 2010 Manish Sinha<mail at manishsinha.net>
+ * Copyright (c) 2010 Manish Sinha <manishsinha at ubuntu.com>
 
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -22,38 +22,16 @@
 ********************************************************************************/
 
 using System;
-using org.freedesktop;
-using org.freedesktop.DBus;
-using System.Collections.Generic;
+using Zeitgeist.Datamodel;
+using Zeitgeist;
+using DBus;
 
-namespace Zeitgeist.Datamodel
+namespace Zeitgeist
 {
-	/// <summary>
-	/// The type which holds a pair of values. The pair is Name and Uri
-	/// </summary>
-	public class NameUri
+	[DBus.Interface ("org.freedesktop.DBus.Properties")]
+	internal interface IDBus
 	{
-		public NameUri()
-		{
-			Name = string.Empty;
-			Uri = string.Empty;
-		}
-			
-		public NameUri(string name, string uri)
-		{
-			Name = name;
-			Uri = uri;
-		}
-		
-		/// <summary>
-		/// The name associated with this container type
-		/// </summary>
-		public string Name { get; set;}
-		
-		/// <summary>
-		/// The Uri associated with this container type
-		/// </summary>
-		public string Uri { get; set;}
+		object Get(string interfaceName, string propertyName);
 	}
 }
 
diff --git a/Zeitgeist/Client/IDataSource.cs b/Zeitgeist/Client/IDataSource.cs
index ea734df..1f313ba 100644
--- a/Zeitgeist/Client/IDataSource.cs
+++ b/Zeitgeist/Client/IDataSource.cs
@@ -31,7 +31,7 @@ namespace Zeitgeist.Client
 	/// The Zeitgeist engine maintains a publicly available list of recognized data-sources 
 	/// (components inserting information into Zeitgeist). An option to disable such data-providers is also provided.
 	/// </summary>
-	[NDesk.DBus.Interface ("org.gnome.zeitgeist.DataSourceRegistry")]
+	[DBus.Interface ("org.gnome.zeitgeist.DataSourceRegistry")]
 	internal interface IDataSource
 	{
 		/// <summary>
diff --git a/Zeitgeist/Client/ILog.cs b/Zeitgeist/Client/ILog.cs
index 5457aad..49b1c9a 100644
--- a/Zeitgeist/Client/ILog.cs
+++ b/Zeitgeist/Client/ILog.cs
@@ -24,7 +24,7 @@
 using System;
 using Zeitgeist.Datamodel;
 using Zeitgeist;
-using NDesk.DBus;
+using DBus;
 
 namespace Zeitgeist.Client
 {
@@ -34,7 +34,7 @@ namespace Zeitgeist.Client
 	/// It also provides means to listen for events matching certain criteria. 
 	/// All querying is heavily based around an “event template”-concept.
 	/// </summary>
-	[NDesk.DBus.Interface ("org.gnome.zeitgeist.Log")]
+	[DBus.Interface ("org.gnome.zeitgeist.Log")]
 	internal interface ILog
 	{
 		/// <summary>
@@ -159,7 +159,7 @@ namespace Zeitgeist.Client
 		/// Register a client side monitor object to receive callbacks when events matching time_range and event_templates are inserted or deleted.
 		/// </summary>
 		/// <param name="monitorPath">
-		/// The path to be monitored <see cref="NDesk.DBus.ObjectPath"/>
+		/// The path to be monitored <see cref="DBus.ObjectPath"/>
 		/// </param>
 		/// <param name="range">
 		/// The time range under which Monitored events must fall within <see cref="TimeRange"/>
@@ -173,7 +173,7 @@ namespace Zeitgeist.Client
 		/// Remove a monitor installed with InstallMonitor()
 		/// </summary>
 		/// <param name="monitorPath">
-		/// The path of the monitor to be removed <see cref="NDesk.DBus.ObjectPath"/>
+		/// The path of the monitor to be removed <see cref="DBus.ObjectPath"/>
 		/// </param>
 		void RemoveMonitor(ObjectPath monitorPath);
 		
diff --git a/Zeitgeist/DataSourceClient.cs b/Zeitgeist/DataSourceClient.cs
index 04d274d..403f41a 100644
--- a/Zeitgeist/DataSourceClient.cs
+++ b/Zeitgeist/DataSourceClient.cs
@@ -24,7 +24,7 @@
 using System;
 using System.Collections.Generic;
 using Zeitgeist.Client;
-using NDesk.DBus;
+using DBus;
 using Zeitgeist.Datamodel;
 
 namespace Zeitgeist
diff --git a/Zeitgeist/Datamodel/DataSource.cs b/Zeitgeist/Datamodel/DataSource.cs
index 3c4ba3f..b077ced 100644
--- a/Zeitgeist/Datamodel/DataSource.cs
+++ b/Zeitgeist/Datamodel/DataSource.cs
@@ -1,6 +1,7 @@
 /******************************************************************************
  * The MIT/X11/Expat License
- * Copyright (c) 2010 Manish Sinha<mail at manishsinha.net>
+ * Copyright (c) 2010 Manish Sinha <manishsinha at ubuntu.com>
+ * Copyright (c) 2011 Travis Glenn Hansen <travisghansen at yahoo.com>
 
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -95,7 +96,7 @@ namespace Zeitgeist.Datamodel
 	/// <summary>
 	/// A raw DBus  based representation of Event
 	/// </summary>
-	internal struct RawDataSource 
+	internal struct RawDataSource
 	{
 		/// <summary>
 		/// The Id of the RawDataSource
@@ -227,7 +228,7 @@ namespace Zeitgeist.Datamodel
 		/// <param name="enabled">
 		/// Is the RawDataSource enabled <see cref="System.Boolean"/>
 		/// </param>
-		public RawDataSource(string uid, string name, string desc, RawEvent[] events, bool running, UInt64 Lastseen, bool enabled)
+		public RawDataSource(string uid, string name, string desc, RawEvent[] events, bool running, UInt64 Lastseen, bool enabled) : this()
 		{
 			this.UniqueId = uid;
 			this.Name = name;
diff --git a/Zeitgeist/Datamodel/Event.cs b/Zeitgeist/Datamodel/Event.cs
index 8812236..3e8ea44 100644
--- a/Zeitgeist/Datamodel/Event.cs
+++ b/Zeitgeist/Datamodel/Event.cs
@@ -47,6 +47,7 @@ namespace Zeitgeist.Datamodel
 			Subjects = new List<Subject>();
 			Payload =new byte[]{};
 			Actor = string.Empty;
+			Origin = string.Empty;
 			Timestamp = ZsUtils.Epoch;
 			Interpretation = new NameUri();
 			Manifestation = new NameUri();
@@ -80,6 +81,14 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
+		/// Origin of the Event
+		/// </summary>
+		public string Origin
+		{
+			get;set;
+		}
+		
+		/// <summary>
 		/// The Interpretation of the event
 		/// </summary>
 		public NameUri Interpretation
@@ -187,7 +196,7 @@ namespace Zeitgeist.Datamodel
 		/// <param name="payload">
 		/// The payload associated with the RawEvent <see cref="T:System.Byte[]"/>
 		/// </param>
-		public RawEvent(string[] metadata, string[][] subjects, byte[] payload)
+		public RawEvent(string[] metadata, string[][] subjects, byte[] payload) : this()
 		{
 			this.metadata = metadata;
 			this.subjects = subjects;
@@ -219,6 +228,7 @@ namespace Zeitgeist.Datamodel
 			metaDataList[(int)EventMetadataPosition.Timestamp] = (ev.Id == 0)? string.Empty: ZsUtils.ToTimestamp(ev.Timestamp).ToString();
 			
 			metaDataList[(int)EventMetadataPosition.Actor] = ev.Actor;
+			metaDataList[(int)EventMetadataPosition.Origin] = ev.Origin;
 			metaDataList[(int)EventMetadataPosition.Interpretation] = ev.Interpretation.Uri;
 			metaDataList[(int)EventMetadataPosition.Manifestation] = ev.Manifestation.Uri;
 			
@@ -240,6 +250,7 @@ namespace Zeitgeist.Datamodel
 					subCont.Add(null);
 				
 				subCont[(int)EventSubjectPosition.Uri] = sub.Uri;
+				subCont[(int)EventSubjectPosition.CurrentUri] = sub.CurrentUri;
 				subCont[(int)EventSubjectPosition.Origin] = sub.Origin;
 				subCont[(int)EventSubjectPosition.Mimetype] = sub.MimeType;
 				subCont[(int)EventSubjectPosition.Text] = sub.Text;
@@ -292,6 +303,7 @@ namespace Zeitgeist.Datamodel
 			e.Timestamp = ZsUtils.ToDateTime(timestamp);
 			
 			e.Actor = raw.metadata[(int)EventMetadataPosition.Actor];
+			e.Origin = raw.metadata[(int)EventMetadataPosition.Origin];
 			
 			string _interpretation = raw.metadata[(int)EventMetadataPosition.Interpretation];
 			string _manifestation = raw.metadata[(int)EventMetadataPosition.Manifestation];
@@ -314,6 +326,7 @@ namespace Zeitgeist.Datamodel
 				sub.MimeType = subjArr[(int)EventSubjectPosition.Mimetype];
 				sub.Text = subjArr[(int)EventSubjectPosition.Text];
 				sub.Storage = subjArr[(int)EventSubjectPosition.Storage];
+				sub.CurrentUri = subjArr[(int)EventSubjectPosition.CurrentUri];
 				
 				string sub_interpretation = subjArr[(int)EventSubjectPosition.Interpretation];
 				string sub_manifestation = subjArr[(int)EventSubjectPosition.Manifestation];
@@ -349,7 +362,8 @@ namespace Zeitgeist.Datamodel
 		Timestamp = 1,
 		Interpretation = 2,
 		Manifestation = 3,
-		Actor = 4
+		Actor = 4,
+		Origin = 5
 	}
 	
 	enum EventSubjectPosition
@@ -360,7 +374,8 @@ namespace Zeitgeist.Datamodel
 		Origin = 3, 
 		Mimetype = 4,
 		Text = 5,
-		Storage = 6
+		Storage = 6,
+		CurrentUri = 7
 	}
 		                            
 }
diff --git a/Zeitgeist/Datamodel/Interpretation.cs b/Zeitgeist/Datamodel/Interpretation.cs
index 53e0222..a4d27be 100644
--- a/Zeitgeist/Datamodel/Interpretation.cs
+++ b/Zeitgeist/Datamodel/Interpretation.cs
@@ -27,13 +27,23 @@ using System.Collections.Generic;
 namespace Zeitgeist.Datamodel
 {
 	/// <summary>
-	/// In general terms the interpretation of an event or subject is an abstract description of “what happened” or “what is this”.
-	/// Each interpretation type is uniquely identified by a URI. This class provides a list of hard coded URI constants for programming convenience. In addition; each interpretation instance in this class has a display_name property, which is an internationalized string meant for end user display.
+	/// In general terms the interpretation of an event or subject is 
+	/// an abstract description of “what happened” or “what is this”.
+	/// Each interpretation type is uniquely identified by a URI. 
+	/// This class provides a list of hard coded URI constants for programming convenience. 
+	/// In addition; each interpretation instance in this class has a display_name property, 
+	/// which is an internationalized string meant for end user display.
 	/// </summary>
 	/// <remarks>
-	/// The interpretation types listed here are all subclasses of str and may be used anywhere a string would be used.
-	/// Interpretations form a hierarchical type tree. So that fx. Audio, Video, and Image all are sub types of Media. These types again have their own sub types, like fx. Image has children Icon, Photo, and VectorImage (among others).
-	/// Templates match on all sub types, so that a query on subjects with interpretation Media also match subjects with interpretations Audio, Photo, and all other sub types of Media. . (Display name: '')
+	/// The interpretation types listed here are all subclasses of str 
+	/// and may be used anywhere a string would be used.
+	/// Interpretations form a hierarchical type tree. So that fx. 
+	/// Audio, Video, and Image all are sub types of Media. These types 
+	/// again have their own sub types, like fx. Image has children Icon, 
+	/// Photo, and VectorImage (among others).
+	/// Templates match on all sub types, so that a query on subjects with 
+	/// interpretation Media also match subjects with interpretations Audio, Photo, 
+	/// and all other sub types of Media. . (Display name: '')
 	/// </remarks>
 	public class Interpretation
 	{
@@ -52,7 +62,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Provide a grouping of component properties that define an alarm. (Display name: 'Alarm')
+		/// Provide a grouping of component properties that define an alarm. 
+		/// (Display name: 'Alarm')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Alarm
@@ -66,7 +77,10 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A bookmark of a webbrowser. Use nie:title for the name/label, nie:contentCreated to represent the date when the user added the bookmark, and nie:contentLastModified for modifications. nfo:bookmarks to store the link. (Display name: 'Bookmark')
+		/// A bookmark of a webbrowser. Use nie:title for the name/label, 
+		/// nie:contentCreated to represent the date when the user added the 
+		/// bookmark, and nie:contentLastModified for modifications. nfo:bookmarks 
+		/// to store the link. (Display name: 'Bookmark')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Bookmark
@@ -80,7 +94,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A folder with bookmarks of a webbrowser. Use nfo:containsBookmark to relate Bookmarks. Folders can contain subfolders, use containsBookmarkFolder to relate them. (Display name: 'Bookmark Folder')
+		/// A folder with bookmarks of a webbrowser. Use nfo:containsBookmark 
+		/// to relate Bookmarks. Folders can contain subfolders, use 
+		/// containsBookmarkFolder to relate them. (Display name: 'Bookmark Folder')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#BookmarkFolder
@@ -94,7 +110,10 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A calendar. Inspirations for this class can be traced to the VCALENDAR component defined in RFC 2445 sec. 4.4, but it may just as well be used to represent any kind of Calendar. (Display name: 'Calendar')
+		/// A calendar. Inspirations for this class can be traced to the 
+		/// VCALENDAR component defined in RFC 2445 sec. 4.4, but it may 
+		/// just as well be used to represent any kind of Calendar. 
+		/// (Display name: 'Calendar')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Calendar
@@ -108,7 +127,10 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A superclass for all entities, whose primary purpose is to serve as containers for other data object. They usually don’t have any “meaning” by themselves. Examples include folders, archives and optical disc images. (Display name: 'DataContainer')
+		/// A superclass for all entities, whose primary purpose is to 
+		/// serve as containers for other data object. They usually don’t 
+		/// have any “meaning” by themselves. Examples include folders, 
+		/// archives and optical disc images. (Display name: 'DataContainer')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer
@@ -122,7 +144,8 @@ namespace Zeitgeist.Datamodel
 		}
 			
 		/// <summary>
-		/// A generic document. A common superclass for all documents on the desktop. (Display name: 'Document')
+		/// A generic document. A common superclass for all 
+		/// documents on the desktop. (Display name: 'Document')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document
@@ -136,7 +159,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Provide a grouping of component properties that describe an event. (Display name: 'Event')
+		/// Provide a grouping of component properties that describe 
+		/// an event. (Display name: 'Event')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Event
@@ -192,7 +216,10 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Provide a grouping of component properties that describe either a request for free/busy time, describe a response to a request for free/busy time or describe a published set of busy time. (Display name: 'Freebusy')
+		/// Provide a grouping of component properties that describe either 
+		/// a request for free/busy time, describe a response to a request 
+		/// for free/busy time or describe a published set of busy time. 
+		/// (Display name: 'Freebusy')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Freebusy
@@ -206,7 +233,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Provide a grouping of component properties that describe a journal entry. (Display name: 'Journal')
+		/// Provide a grouping of component properties that 
+		/// describe a journal entry. (Display name: 'Journal')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Journal
@@ -220,7 +248,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A mailbox - container for MailboxDataObjects. (Display name: 'Mailbox')
+		/// A mailbox - container for MailboxDataObjects. 
+		/// (Display name: 'Mailbox')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Mailbox
@@ -234,7 +263,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A piece of media content. This class may be used to express complex media containers with many streams of various media content (both aural and visual). (Display name: 'Media')
+		/// A piece of media content. This class may be used to express complex 
+		/// media containers with many streams of various media content 
+		/// (both aural and visual). (Display name: 'Media')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Media
@@ -248,7 +279,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A file containing a list of media files.e.g. a playlist. (Display name: 'MediaList')
+		/// A file containing a list of media files.e.g. a playlist. 
+		/// (Display name: 'MediaList')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MediaList
@@ -262,7 +294,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A message. Could be an email, instant messanging message, SMS message etc. (Display name: 'Message')
+		/// A message. Could be an email, instant messanging message, 
+		/// SMS message etc. (Display name: 'Message')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Message
@@ -276,7 +309,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A MIME entity, as defined in RFC2045, Section 2.4. (Display name: 'MimeEntity')
+		/// A MIME entity, as defined in RFC2045, Section 2.4. 
+		/// (Display name: 'MimeEntity')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#MimeEntity
@@ -290,7 +324,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A piece of software. Examples may include applications and the operating system. This interpretation most commonly applies to SoftwareItems. (Display name: 'Software')
+		/// A piece of software. Examples may include applications 
+		/// and the operating system. This interpretation most commonly applies 
+		/// to SoftwareItems. (Display name: 'Software')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Software
@@ -304,7 +340,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Provide a grouping of component properties that defines a time zone. (Display name: 'Timezone')
+		/// Provide a grouping of component properties that defines a time zone. 
+		/// (Display name: 'Timezone')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Timezone
@@ -318,7 +355,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Provide a grouping of calendar properties that describe a to-do. (Display name: 'Todo')
+		/// Provide a grouping of calendar properties that 
+		/// describe a to-do. (Display name: 'Todo')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#Todo
@@ -332,7 +370,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A TV Series has multiple seasons and episodes. (Display name: 'tv series')
+		/// A TV Series has multiple seasons and episodes. 
+		/// (Display name: 'tv series')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2009/02/19/nmm#TVSeries
@@ -346,7 +385,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A website, usually a container for remote resources, that may be interpreted as HTMLDocuments, images or other types of content. (Display name: 'Website')
+		/// A website, usually a container for remote resources, 
+		/// that may be interpreted as HTMLDocuments, images or other 
+		/// types of content. (Display name: 'Website')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Website
@@ -360,7 +401,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Search for an interpretation KeyValuePair provided the interpretation string
+		/// Search for an interpretation KeyValuePair provided the 
+		/// interpretation string
 		/// </summary>
 		/// <param name="interpretation">
 		/// The Interpretation of type <see cref="System.String"/>
@@ -502,7 +544,11 @@ namespace Zeitgeist.Datamodel
 	public class DataContainerType
 	{
 		/// <summary>
-		/// A superclass for all entities, whose primary purpose is to serve as containers for other data object. They usually don’t have any “meaning” by themselves. Examples include folders, archives and optical disc images. (Display name: 'DataContainer')
+		/// A superclass for all entities, whose primary purpose 
+		/// is to serve as containers for other data object. They 
+		/// usually don’t have any “meaning” by themselves. 
+		/// Examples include folders, archives and optical disc images. 
+		/// (Display name: 'DataContainer')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#DataContainer
@@ -516,7 +562,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A compressed file. May contain other files or folder inside. (Display name: 'Archive')
+		/// A compressed file. May contain other files or folder 
+		/// inside. (Display name: 'Archive')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Archive
@@ -530,7 +577,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A filesystem. Examples of filesystems include hard disk partitions, removable media, but also images thereof stored in files. (Display name: 'Filesystem')
+		/// A filesystem. Examples of filesystems include hard disk 
+		/// partitions, removable media, but also images thereof 
+		/// stored in files. (Display name: 'Filesystem')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Filesystem
@@ -544,7 +593,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A folder/directory. Examples of folders include folders on a filesystem and message folders in a mailbox. (Display name: 'Folder')
+		/// A folder/directory. Examples of folders include folders 
+		/// on a filesystem and message folders in a mailbox. 
+		/// (Display name: 'Folder')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder
@@ -558,7 +609,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Represents a container for deleted files, a feature common in modern operating systems. (Display name: 'Trash')
+		/// Represents a container for deleted files, a feature common 
+		/// in modern operating systems. (Display name: 'Trash')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Trash
@@ -610,7 +662,9 @@ namespace Zeitgeist.Datamodel
 	public class FileSystemType
 	{
 		/// <summary>
-		/// A filesystem. Examples of filesystems include hard disk partitions, removable media, but also images thereof stored in files. (Display name: 'Filesystem')
+		/// A filesystem. Examples of filesystems include hard disk partitions, 
+		/// removable media, but also images thereof stored in files. 
+		/// (Display name: 'Filesystem')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Filesystem
@@ -624,7 +678,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Represents a container for deleted files, a feature common in modern operating systems. (Display name: 'Trash')
+		/// Represents a container for deleted files, a feature common 
+		/// in modern operating systems. (Display name: 'Trash')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Trash
@@ -664,7 +719,8 @@ namespace Zeitgeist.Datamodel
 	public class DocumentType
 	{
 		/// <summary>
-		/// A generic document. A common superclass for all documents on the desktop. (Display name: 'Document')
+		/// A generic document. A common superclass for all documents 
+		/// on the desktop. (Display name: 'Document')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document
@@ -678,7 +734,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A MindMap, created by a mind-mapping utility. Examples might include FreeMind or mind mapper. (Display name: 'MindMap')
+		/// A MindMap, created by a mind-mapping utility. 
+		/// Examples might include FreeMind or mind mapper. 
+		/// (Display name: 'MindMap')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#MindMap
@@ -692,7 +750,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A Presentation made by some presentation software (Corel Presentations, OpenOffice Impress, MS Powerpoint etc.). (Display name: 'Presentation')
+		/// A Presentation made by some presentation software 
+		/// (Corel Presentations, OpenOffice Impress, MS Powerpoint etc.). 
+		/// (Display name: 'Presentation')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Presentation
@@ -706,7 +766,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A spreadsheet, created by a spreadsheet application. Examples might include Gnumeric, OpenOffice Calc or MS Excel. (Display name: 'Spreadsheet')
+		/// A spreadsheet, created by a spreadsheet application. 
+		/// Examples might include Gnumeric, OpenOffice Calc or MS Excel. 
+		/// (Display name: 'Spreadsheet')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Spreadsheet
@@ -786,7 +848,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A file containing a text document, that is unambiguously divided into pages. Examples might include PDF, DOC, PS, DVI etc. (Display name: 'PaginatedTextDocument')
+		/// A file containing a text document, that is unambiguously divided into pages. 
+		/// Examples might include PDF, DOC, PS, DVI etc. (Display name: 'PaginatedTextDocument')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PaginatedTextDocument
@@ -801,7 +864,8 @@ namespace Zeitgeist.Datamodel
 		
 		
 		/// <summary>
-		/// A file containing a text document, that is unambiguously divided into pages. Examples might include PDF, DOC, PS, DVI etc. (Display name: 'PaginatedTextDocument')
+		/// A file containing a text document, that is unambiguously divided into pages. 
+		/// Examples might include PDF, DOC, PS, DVI etc. (Display name: 'PaginatedTextDocument')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PaginatedTextDocument
@@ -840,7 +904,9 @@ namespace Zeitgeist.Datamodel
 	public class PlainTextDocumentType
 	{
 		/// <summary>
-		/// A file containing plain text (ASCII, Unicode or other encodings). Examples may include TXT, HTML, XML, program source code etc. (Display name: 'PlainTextDocument')
+		/// A file containing plain text (ASCII, Unicode or other encodings). 
+		/// Examples may include TXT, HTML, XML, program source code etc. 
+		/// (Display name: 'PlainTextDocument')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#PlainTextDocument
@@ -854,7 +920,8 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// A HTML document, may contain links to other files. (Display name: 'HtmlDocument')
+		/// A HTML document, may contain links to other files. 
+		/// (Display name: 'HtmlDocument')
 		/// </summary>
 		/// <remarks>
 		/// http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#HtmlDocument
@@ -910,10 +977,16 @@ namespace Zeitgeist.Datamodel
 	
 	#region EventInterpretation Classes
 	
+	/// <summary>
+	/// The type which contains the heirarchy of EventInterpretation
+	/// </summary>
 	public class EventInterpretationType
 	{
 		/// <summary>
-		/// Base class for event interpretations. Please do no instantiate directly, but use one of the sub classes. The interpretation of an event describes ‘what happened’ - fx. ‘something was created’ or ‘something was accessed’. (Display name: 'EVENT_INTERPRETATION')
+		/// Base class for event interpretations. Please do no instantiate 
+		/// directly, but use one of the sub classes. The interpretation of 
+		/// an event describes ‘what happened’ - fx. ‘something was created’ 
+		/// or ‘something was accessed’. (Display name: 'EVENT_INTERPRETATION')
 		/// </summary>
 		/// <remarks>
 		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#EventInterpretation
@@ -927,7 +1000,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Event triggered by opening, accessing, or starting a resource. Most zg:AccessEvents will have an accompanying zg:LeaveEvent, but this need not always be the case. (Display name: 'ACCESS_EVENT')
+		/// Event triggered by opening, accessing, or starting a resource. 
+		/// Most zg:AccessEvents will have an accompanying zg:LeaveEvent, 
+		/// but this need not always be the case. (Display name: 'ACCESS_EVENT')
 		/// </summary>
 		/// <remarks>
 		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AccessEvent
@@ -955,7 +1030,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Event triggered because a resource has been deleted or otherwise made permanently unavailable. Fx. when deleting a file. FIXME: How about when moving to trash?. (Display name: 'DELETE_EVE
+		/// Event triggered because a resource has been deleted or otherwise 
+		/// made permanently unavailable. Fx. when deleting a file. 
+		/// FIXME: How about when moving to trash?. (Display name: 'DELETE_EVENT')
 		/// </summary>
 		/// <remarks>
 		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DeleteEvent
@@ -969,7 +1046,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Event triggered by closing, leaving, or stopping a resource. Most zg:LeaveEvents will be following a zg:Access event, but this need not always be the case. (Display name: 'LEAVE_EVENT')
+		/// Event triggered by closing, leaving, or stopping a resource. 
+		/// Most zg:LeaveEvents will be following a zg:Access event, but this 
+		/// need not always be the case. (Display name: 'LEAVE_EVENT')
 		/// </summary>
 		/// <remarks>
 		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#LeaveEvent 
@@ -983,7 +1062,9 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Event triggered by modifying an existing resources. Fx. when editing and saving a file on disk or correcting a typo in the name of a contact. (Display name: 'MODIFY_EVENT')
+		/// Event triggered by modifying an existing resources. Fx. when editing 
+		/// and saving a file on disk or correcting a typo in the name of a 
+		/// contact. (Display name: 'MODIFY_EVENT')
 		/// </summary>
 		/// <remarks>
 		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ModifyEvent
@@ -997,7 +1078,11 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Event triggered when something is received from an external party. The event manifestation must be set according to the world view of the receiving party. Most often the item that is being received will be some sort of message - an email, instant message, or broadcasted media such as micro blogging. (Display name: 'RECEIVE_EVENT')
+		/// Event triggered when something is received from an external party. 
+		/// The event manifestation must be set according to the world view of the 
+		/// receiving party. Most often the item that is being received will be some 
+		/// sort of message - an email, instant message, or broadcasted media such 
+		/// as micro blogging. (Display name: 'RECEIVE_EVENT')
 		/// </summary>
 		/// <remarks>
 		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ReceiveEvent
@@ -1011,7 +1096,25 @@ namespace Zeitgeist.Datamodel
 		}
 		
 		/// <summary>
-		/// Event triggered when something is send to an external party. The event manifestation must be set according to the world view of the sending party. Most often the item that is being send will be some sort of message - an email, instant message, or broadcasted media such as micro blogging. (Display name: 'SEND_EVENT')
+		/// Event triggered when a resource has been moved from a location to another. 
+		/// Fx. moving a file from a folder to another.
+		/// </summary>
+		/// <remarks>
+		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#MoveEvent
+		/// </remarks>
+		public NameUri MoveEvent
+		{
+			get
+			{
+				return _move_event;
+			}
+		}
+		
+		/// <summary>
+		/// Event triggered when something is send to an external party. 
+		/// The event manifestation must be set according to the world view of the sending party. 
+		/// Most often the item that is being send will be some sort of message - an email, 
+		/// instant message, or broadcasted media such as micro blogging. (Display name: 'SEND_EVENT')
 		/// </summary>
 		/// <remarks>
 		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SendEvent
@@ -1024,6 +1127,54 @@ namespace Zeitgeist.Datamodel
 			}
 		}
 		
+		/// <summary>
+		/// Event triggered when the user accepts a request of some sort. Examples could be 
+		/// answering a phone call, accepting a file transfer, or accepting a friendship request 
+		/// over an IM protocol. See also DenyEvent for when the user denies a similar request
+		/// </summary>
+		/// <remarks>
+		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AcceptEvent
+		/// </remarks>
+		public NameUri AcceptEvent
+		{
+			get
+			{
+				return _accept_event;
+			}
+		}
+		
+		/// <summary>
+		/// Event triggered when the user accepts a request of some sort. Examples could be 
+		/// answering a phone call, accepting a file transfer, or accepting a friendship request 
+		/// over an IM protocol. See also DenyEvent for when the user denies a similar request
+		/// </summary>
+		/// <remarks>
+		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DenyEvent
+		/// </remarks>
+		public NameUri DenyEvent
+		{
+			get
+			{
+				return _deny_event;
+			}
+		}
+		
+		/// <summary>
+		/// Event triggered when something expires or times out. These types of events are 
+		/// normally not triggered by the user, but by the operating system or some external party. 
+		/// Examples are a recurring calendar item or task deadline that expires or a when the user fails
+		/// </summary>
+		/// <remarks>
+		/// http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ExpireEvent
+		/// </remarks>
+		public NameUri ExpireEvent
+		{
+			get
+			{
+				return _expire_event;
+			}
+		}
+		
 		public NameUri Search(string interpretation)
 		{
 			if(string.Equals(_event_interpretation.Uri, interpretation))
@@ -1047,9 +1198,21 @@ namespace Zeitgeist.Datamodel
 			if(string.Equals(_receive_event.Uri, interpretation))
 			   return _receive_event;
 			
+			if(string.Equals(_move_event.Uri, interpretation))
+			   return _move_event;
+			
 			if(string.Equals(_send_event.Uri, interpretation))
 			   return _send_event;
 			
+			if(string.Equals(_accept_event.Uri, interpretation))
+			   return _accept_event;
+			
+			if(string.Equals(_deny_event.Uri, interpretation))
+			   return _deny_event;
+			
+			if(string.Equals(_expire_event.Uri, interpretation))
+			   return _expire_event;
+			
 			
 			return null;
 		}
@@ -1070,8 +1233,16 @@ namespace Zeitgeist.Datamodel
 		
 		private NameUri _receive_event = new NameUri("ReceiveEvent", "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ReceiveEvent");
 		
+		private NameUri _move_event = new NameUri("MoveEvent", "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#MoveEvent");
+		
 		private NameUri _send_event = new NameUri("SendEvent", "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#SendEvent");
 		
+		private NameUri _accept_event = new NameUri("AcceptEvent", "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AcceptEvent");
+		
+		private NameUri _deny_event = new NameUri("DenyEvent", "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#DenyEvent");
+		
+		private NameUri _expire_event = new NameUri("ExpireEvent", "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#ExpireEvent");
+		
 		#endregion
 	}
 	
diff --git a/Zeitgeist/Datamodel/Monitor.cs b/Zeitgeist/Datamodel/Monitor.cs
index 107603a..9204717 100644
--- a/Zeitgeist/Datamodel/Monitor.cs
+++ b/Zeitgeist/Datamodel/Monitor.cs
@@ -23,7 +23,7 @@
 
 using System;
 using System.Collections.Generic;
-using NDesk.DBus;
+using DBus;
 using GLib;
 using System.Threading;
 using System.ComponentModel;
@@ -80,6 +80,24 @@ namespace Zeitgeist.Datamodel
 		private MainLoop loop;
 	}
 	
+	internal class MonitorData
+	{
+		public ObjectPath Path
+		{
+			get;set;
+		}
+		
+		public RawTimeRange Range
+		{
+			get;set;
+		}
+		
+		public List<RawEvent> Events
+		{
+			get;set;
+		}
+	}
+	
 	/// <summary>
 	/// DBus interface for monitoring the Zeitgeist log for certain types of events.
 	/// When using the Python bindings monitors are normally instantiated indirectly by calling ZeitgeistClient.install_monitor
diff --git a/Zeitgeist/Datamodel/Subject.cs b/Zeitgeist/Datamodel/Subject.cs
index 7b318a0..d76cbaa 100644
--- a/Zeitgeist/Datamodel/Subject.cs
+++ b/Zeitgeist/Datamodel/Subject.cs
@@ -34,6 +34,7 @@ namespace Zeitgeist.Datamodel
 		public Subject()
 		{
 			Uri = string.Empty;
+			CurrentUri = string.Empty;
 			Origin = string.Empty;
 			MimeType = string.Empty;
 			Text = string.Empty;
@@ -99,6 +100,14 @@ namespace Zeitgeist.Datamodel
 		{
 			get; set;
 		}
+		
+		/// <summary>
+		/// The current URI of the event
+		/// </summary>
+		public string CurrentUri
+		{
+			get;set;
+		}
 	}
 }
 
diff --git a/Zeitgeist/Datamodel/Version.cs b/Zeitgeist/Datamodel/Version.cs
new file mode 100644
index 0000000..6ecb223
--- /dev/null
+++ b/Zeitgeist/Datamodel/Version.cs
@@ -0,0 +1,167 @@
+/******************************************************************************
+ * The MIT/X11/Expat License
+ * Copyright (c) 2011 Manish Sinha<manishsinha at ubuntu.com>
+
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE. 
+********************************************************************************/
+
+using System;
+namespace Zeitgeist.Datamodel
+{
+	/// <summary>
+	/// Represents a version number of format X.Y.Z (Major-Minor-Revision)
+	/// </summary>
+	/// <remarks>
+	/// The fourth number(Patch) is ommitted
+	/// </remarks>
+	public class Version
+	{
+		public Version ()
+		{
+		}
+		
+		/// <summary>
+		/// The major version section of a Version
+		/// </summary>
+		/// <remarks>
+		/// X is the major version part of X.Y.Z
+		/// </remarks>
+		public string MajorVersion
+		{
+			get
+			{
+				return _majorVersion;
+			}
+			set
+			{
+				_majorVersion = value;
+			}
+		}
+		
+		/// <summary>
+		/// The minor version section of a Version
+		/// </summary>
+		/// <remarks>
+		/// Y is the minor version part of X.Y.Z
+		/// </remarks>
+		public string MinorVersion
+		{
+			get
+			{
+				return _minorVersion;
+			}
+			set
+			{
+				_minorVersion = value;
+			}
+		}
+		
+		/// <summary>
+		/// The Revision section of a Version
+		/// </summary>
+		/// <remarks>
+		/// Z is the Revision part of X.Y.Z
+		/// </remarks>
+		public string Revision
+		{
+			get
+			{
+				return _revision;
+			}
+			set
+			{
+				_revision = value;
+			}
+		}
+		
+		#region Private Members
+		
+		private string _majorVersion;
+		
+		private string _minorVersion;
+		
+		private string _revision;
+		
+		#endregion
+	}
+	
+	internal struct RawVersion
+	{
+		public RawVersion(Version ver) : this()
+		{
+			this.MajorVersion = ver.MajorVersion;
+			this.MinorVersion = ver.MinorVersion;
+			this.Revision = ver.Revision;
+		}
+		
+		public Version FromRaw()
+		{
+			Version ver = new Version();
+			
+			ver.MajorVersion = this.MajorVersion;
+			ver.MinorVersion = this.MinorVersion;
+			ver.Revision = this.Revision;
+			
+			return ver;
+		}
+		
+		public string MajorVersion
+		{
+			get
+			{
+				return _majorVersion;
+			}
+			set
+			{
+				_majorVersion = value;
+			}
+		}
+		
+		public string MinorVersion
+		{
+			get
+			{
+				return _minorVersion;
+			}
+			set
+			{
+				_minorVersion = value;
+			}
+		}
+		
+		public string Revision
+		{
+			get
+			{
+				return _revision;
+			}
+			set
+			{
+				_revision = value;
+			}
+		}
+		
+		private string _majorVersion;
+		
+		private string _minorVersion;
+		
+		private string _revision;
+	}
+}
+
diff --git a/Zeitgeist/Delegates.cs b/Zeitgeist/Delegates.cs
index ba83c91..b13bc30 100644
--- a/Zeitgeist/Delegates.cs
+++ b/Zeitgeist/Delegates.cs
@@ -52,5 +52,27 @@ namespace Zeitgeist
 	/// The registered data-source of type <see cref="Zeitgeist.Datamodel.DataSource"/>
 	/// </param>
 	public delegate void DataSourceRegisteredHandler(DataSource datasource);
+	
+	/// <summary>
+	/// This delegate handler for the event related to Blacklist Template addition
+	/// </summary>
+	/// <param name="blacklistId">
+	/// The blacklist ID of type <see cref="string"/>
+	/// </param>
+	/// <param name="addedTemplate">
+	/// The blacklist template added
+	/// </param>
+	public delegate void BlacklistTemplateAddedHandler(string blacklistId, Event addedTemplate);
+	
+	/// <summary>
+	/// This delegate handler for the event related to Blacklist Template deletion
+	/// </summary>
+	/// <param name="blacklistId">
+	/// The blacklist ID of type <see cref="string"/>
+	/// </param>
+	/// <param name="removedTemplate">
+	/// The blacklist template removed
+	/// </param>
+	public delegate void BlacklistTemplateRemovedHandler(string blacklistId, Event removedTemplate);
 }
 
diff --git a/Zeitgeist/LogClient.cs b/Zeitgeist/LogClient.cs
index 2ea3c42..a572f93 100644
--- a/Zeitgeist/LogClient.cs
+++ b/Zeitgeist/LogClient.cs
@@ -25,8 +25,9 @@ using System;
 using System.Collections.Generic;
 using Zeitgeist.Datamodel;
 using Zeitgeist.Client;
-using NDesk.DBus;
+using DBus;
 using System.Linq;
+using org.freedesktop.DBus;
 
 namespace Zeitgeist
 {
@@ -48,7 +49,32 @@ namespace Zeitgeist
 		/// </remarks>
 		public LogClient()
 		{
+			this.setUpClient();
+			
+			listOfMonitors = new List<MonitorData>();
+			
+			// When bus name changes
+			ZsUtils.SignalBus.NameOwnerChanged += NameOwnerChanged;
+		}
+		
+		private void NameOwnerChanged(string name, string old_owner, string new_owner)
+		{
+			// If Engine is restarted, re-connect in case it does not get re-connected
+			if(string.Equals(name, "org.gnome.zeitgeist.Engine", StringComparison.OrdinalIgnoreCase))
+			   setUpClient();
+			
+			// Install the monitors which were lost after the Daemon was restarted
+			foreach(MonitorData monData in listOfMonitors)
+			{
+				Console.Out.WriteLine("Restoring monitor for: "+ monData.Path.ToString());
+				srcInterface.InstallMonitor(monData.Path, monData.Range, monData.Events.ToArray());
+			}
+		}
+		
+		private void setUpClient()
+		{
 			srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath);
+			dbusInterface = ZsUtils.GetDBusObject<IDBus>(objectPath);
 		}
 		
 		#region Fetch, Insert and Delete Events
@@ -266,14 +292,15 @@ namespace Zeitgeist
 		/// </param>
 		public void InstallMonitor(string monitorPath, TimeRange range, List<Event> eventTemplates)
 		{
-			srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath);
-			
 			RawTimeRange rawRange = new RawTimeRange();
 			rawRange.Begin = (long)ZsUtils.ToTimestamp(range.Begin);
 			rawRange.End = (long)ZsUtils.ToTimestamp(range.End);
-			
 			ObjectPath path = new ObjectPath(monitorPath);
 			List<RawEvent> rawEvents = ZsUtils.ToRawEventList(eventTemplates);
+			
+			// Store all the monitors
+			listOfMonitors.Add(new MonitorData(){Path=path, Range=rawRange, Events=rawEvents});
+			
 			srcInterface.InstallMonitor(path, rawRange, rawEvents.ToArray());
 		}
 		
@@ -287,6 +314,10 @@ namespace Zeitgeist
 		{
 			ObjectPath path = new ObjectPath(monitorPath);
 			srcInterface.RemoveMonitor(path);
+			
+			// Find and remove the deleted Monitor
+			MonitorData removedMonitor = listOfMonitors.Find(monitor => ObjectPath.Equals(monitor.Path,path));
+			listOfMonitors.Remove(removedMonitor);
 		}
 		
 		#endregion
@@ -315,9 +346,37 @@ namespace Zeitgeist
 			srcInterface.Quit();
 		}
 		
+		#region Properties
+		
+		/// <summary>
+		/// The list of zeitgeist daemon extension loaded by the engine
+		/// </summary>
+		/// <remarks>
+		/// Examples are Blacklist, DataSourceRegistry, Full-Text-Search, StorageMonitor etc
+		/// </remarks>
+		public List<string> Extensions
+		{
+			get
+			{
+				object exten = dbusInterface.Get("org.gnome.zeitgeist.Log", "extensions");
+				if(exten != null && exten.GetType() == typeof(System.String[]))
+				{
+					return new List<string>((string[])exten);
+				}
+				else
+					return new List<string>();
+			}
+		}
+		
+		#endregion
+		
 		private ILog srcInterface;
 		
+		private IDBus dbusInterface;
+		
 		private static string objectPath = "/org/gnome/zeitgeist/log/activity";
+		
+		private List<MonitorData> listOfMonitors;
 	}
 }
 
diff --git a/Zeitgeist/Makefile.in b/Zeitgeist/Makefile.in
index 7ccd49a..e0cc970 100644
--- a/Zeitgeist/Makefile.in
+++ b/Zeitgeist/Makefile.in
@@ -77,6 +77,10 @@ AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
 CYGPATH_W = @CYGPATH_W@
+DBUS_SHARP_10_CFLAGS = @DBUS_SHARP_10_CFLAGS@
+DBUS_SHARP_10_LIBS = @DBUS_SHARP_10_LIBS@
+DBUS_SHARP_GLIB_10_CFLAGS = @DBUS_SHARP_GLIB_10_CFLAGS@
+DBUS_SHARP_GLIB_10_LIBS = @DBUS_SHARP_GLIB_10_LIBS@
 DEFS = @DEFS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -99,10 +103,6 @@ MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
 MONO_CFLAGS = @MONO_CFLAGS@
 MONO_LIBS = @MONO_LIBS@
-NDESK_DBUS_10_CFLAGS = @NDESK_DBUS_10_CFLAGS@
-NDESK_DBUS_10_LIBS = @NDESK_DBUS_10_LIBS@
-NDESK_DBUS_GLIB_10_CFLAGS = @NDESK_DBUS_GLIB_10_CFLAGS@
-NDESK_DBUS_GLIB_10_LIBS = @NDESK_DBUS_GLIB_10_LIBS@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
@@ -119,6 +119,8 @@ SHELL = @SHELL@
 STRIP = @STRIP@
 VERSION = @VERSION@
 XBUILD = @XBUILD@
+ZEITGEIST_DAEMON_CFLAGS = @ZEITGEIST_DAEMON_CFLAGS@
+ZEITGEIST_DAEMON_LIBS = @ZEITGEIST_DAEMON_LIBS@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
diff --git a/Zeitgeist/Zeitgeist.csproj b/Zeitgeist/Zeitgeist.csproj
index 4f105d4..3b39d0e 100644
--- a/Zeitgeist/Zeitgeist.csproj
+++ b/Zeitgeist/Zeitgeist.csproj
@@ -32,17 +32,16 @@
     <ConsolePause>false</ConsolePause>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="System, Version=2.0.0.0" />
-    <Reference Include="System.Core, Version=3.5.0.0" />
-    <Reference Include="NDesk.DBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099">
-      <Package>ndesk-dbus-1.0</Package>
-    </Reference>
-    <Reference Include="NDesk.DBus.GLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f6716e4f9b2ed099">
-      <Package>ndesk-dbus-glib-1.0</Package>
-    </Reference>
     <Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
       <Package>glib-sharp-2.0</Package>
     </Reference>
+    <Reference Include="dbus-sharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5675b0c3093115b5">
+      <Package>dbus-sharp-1.0</Package>
+    </Reference>
+    <Reference Include="dbus-sharp-glib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5675b0c3093115b5">
+      <Package>dbus-sharp-glib-1.0</Package>
+    </Reference>
+    <Reference Include="System" />
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Datamodel\Event.cs" />
@@ -65,6 +64,8 @@
     <Compile Include="Datamodel\Monitor.cs" />
     <Compile Include="Datamodel\Delegates.cs" />
     <Compile Include="AssemblyInfo.cs" />
+    <Compile Include="Datamodel\Version.cs" />
+    <Compile Include="Client\IDBus.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Datamodel\" />
diff --git a/Zeitgeist/ZsUtils.cs b/Zeitgeist/ZsUtils.cs
index 9daa7cb..680a91e 100644
--- a/Zeitgeist/ZsUtils.cs
+++ b/Zeitgeist/ZsUtils.cs
@@ -25,7 +25,8 @@ using System;
 using Zeitgeist.Datamodel;
 using Zeitgeist.Client;
 using System.Collections.Generic;
-using NDesk.DBus;
+using DBus;
+using org.freedesktop.DBus;
 
 namespace Zeitgeist
 {
@@ -130,8 +131,19 @@ namespace Zeitgeist
 			}
 		}
 		
+		public static IBus SignalBus
+		{
+			get
+			{
+				return _signalBus;
+			}
+		}
+		
 		private static DateTime _epoch = new DateTime(1970, 1,1, 0,0,0, DateTimeKind.Utc);
 		
+		private static IBus _signalBus = Bus.Session.GetObject<IBus> ("org.freedesktop.DBus", 
+		                                                 new ObjectPath ("/org/freedesktop/DBus"));
+		
 		#endregion
 		
 		#region DBus Path
@@ -209,7 +221,9 @@ namespace Zeitgeist
 			
 			// Create the ObjectPath from the path provided
 			ObjectPath objPath = new ObjectPath(objectPath);
-			T interfaceInst = Bus.Session.GetObject<T>(ZsUtils.DBusPath, objPath);
+			Bus sessionBus = Bus.Session;
+			
+			T interfaceInst = sessionBus.GetObject<T>(ZsUtils.DBusPath, objPath);
 			
 			return interfaceInst;
 		}
diff --git a/aclocal.m4 b/aclocal.m4
index dc0f217..0009fd1 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -156,7 +156,7 @@ $$1_PKG_ERRORS
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-_PKG_TEXT])dnl
+_PKG_TEXT])[]dnl
         ])
 elif test $pkg_failed = untried; then
      	AC_MSG_RESULT([no])
@@ -167,7 +167,7 @@ path to pkg-config.
 
 _PKG_TEXT
 
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
         ])
 else
 	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
diff --git a/configure b/configure
index 789f6b3..d50dea4 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for zeitgeist-sharp 0.1.1.0.
+# Generated by GNU Autoconf 2.67 for zeitgeist-sharp 0.8.0.0.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -548,19 +548,21 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='zeitgeist-sharp'
 PACKAGE_TARNAME='zeitgeist-sharp'
-PACKAGE_VERSION='0.1.1.0'
-PACKAGE_STRING='zeitgeist-sharp 0.1.1.0'
+PACKAGE_VERSION='0.8.0.0'
+PACKAGE_STRING='zeitgeist-sharp 0.8.0.0'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+ZEITGEIST_DAEMON_LIBS
+ZEITGEIST_DAEMON_CFLAGS
 GLIB_SHARP_20_LIBS
 GLIB_SHARP_20_CFLAGS
-NDESK_DBUS_GLIB_10_LIBS
-NDESK_DBUS_GLIB_10_CFLAGS
-NDESK_DBUS_10_LIBS
-NDESK_DBUS_10_CFLAGS
+DBUS_SHARP_GLIB_10_LIBS
+DBUS_SHARP_GLIB_10_CFLAGS
+DBUS_SHARP_10_LIBS
+DBUS_SHARP_10_CFLAGS
 GACUTIL_FLAGS
 GACUTIL
 XBUILD
@@ -651,12 +653,14 @@ PKG_CONFIG_PATH
 PKG_CONFIG_LIBDIR
 MONO_CFLAGS
 MONO_LIBS
-NDESK_DBUS_10_CFLAGS
-NDESK_DBUS_10_LIBS
-NDESK_DBUS_GLIB_10_CFLAGS
-NDESK_DBUS_GLIB_10_LIBS
+DBUS_SHARP_10_CFLAGS
+DBUS_SHARP_10_LIBS
+DBUS_SHARP_GLIB_10_CFLAGS
+DBUS_SHARP_GLIB_10_LIBS
 GLIB_SHARP_20_CFLAGS
-GLIB_SHARP_20_LIBS'
+GLIB_SHARP_20_LIBS
+ZEITGEIST_DAEMON_CFLAGS
+ZEITGEIST_DAEMON_LIBS'
 
 
 # Initialize some variables set by options.
@@ -1199,7 +1203,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures zeitgeist-sharp 0.1.1.0 to adapt to many kinds of systems.
+\`configure' configures zeitgeist-sharp 0.8.0.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1265,7 +1269,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of zeitgeist-sharp 0.1.1.0:";;
+     short | recursive ) echo "Configuration of zeitgeist-sharp 0.8.0.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1284,18 +1288,22 @@ Some influential environment variables:
               path overriding pkg-config's built-in search path
   MONO_CFLAGS C compiler flags for MONO, overriding pkg-config
   MONO_LIBS   linker flags for MONO, overriding pkg-config
-  NDESK_DBUS_10_CFLAGS
-              C compiler flags for NDESK_DBUS_10, overriding pkg-config
-  NDESK_DBUS_10_LIBS
-              linker flags for NDESK_DBUS_10, overriding pkg-config
-  NDESK_DBUS_GLIB_10_CFLAGS
-              C compiler flags for NDESK_DBUS_GLIB_10, overriding pkg-config
-  NDESK_DBUS_GLIB_10_LIBS
-              linker flags for NDESK_DBUS_GLIB_10, overriding pkg-config
+  DBUS_SHARP_10_CFLAGS
+              C compiler flags for DBUS_SHARP_10, overriding pkg-config
+  DBUS_SHARP_10_LIBS
+              linker flags for DBUS_SHARP_10, overriding pkg-config
+  DBUS_SHARP_GLIB_10_CFLAGS
+              C compiler flags for DBUS_SHARP_GLIB_10, overriding pkg-config
+  DBUS_SHARP_GLIB_10_LIBS
+              linker flags for DBUS_SHARP_GLIB_10, overriding pkg-config
   GLIB_SHARP_20_CFLAGS
               C compiler flags for GLIB_SHARP_20, overriding pkg-config
   GLIB_SHARP_20_LIBS
               linker flags for GLIB_SHARP_20, overriding pkg-config
+  ZEITGEIST_DAEMON_CFLAGS
+              C compiler flags for ZEITGEIST_DAEMON, overriding pkg-config
+  ZEITGEIST_DAEMON_LIBS
+              linker flags for ZEITGEIST_DAEMON, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1363,7 +1371,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-zeitgeist-sharp configure 0.1.1.0
+zeitgeist-sharp configure 0.8.0.0
 generated by GNU Autoconf 2.67
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1380,7 +1388,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by zeitgeist-sharp $as_me 0.1.1.0, which was
+It was created by zeitgeist-sharp $as_me 0.8.0.0, which was
 generated by GNU Autoconf 2.67.  Invocation command line was
 
   $ $0 $@
@@ -2195,7 +2203,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='zeitgeist-sharp'
- VERSION='0.1.1.0'
+ VERSION='0.8.0.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2354,7 +2362,7 @@ fi
 # DO NOT TOUCH!
 # Except you know what you do
 # This defines the library ABI version!
-ASSEMBLY_VERSION="0.1.0.1"
+ASSEMBLY_VERSION="0.8.0.0"
 
 
 
@@ -2704,35 +2712,35 @@ GACUTIL_FLAGS='-root $(DESTDIR)$(libdir)'
 
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NDESK_DBUS_10" >&5
-$as_echo_n "checking for NDESK_DBUS_10... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS_SHARP_10" >&5
+$as_echo_n "checking for DBUS_SHARP_10... " >&6; }
 
-if test -n "$NDESK_DBUS_10_CFLAGS"; then
-    pkg_cv_NDESK_DBUS_10_CFLAGS="$NDESK_DBUS_10_CFLAGS"
+if test -n "$DBUS_SHARP_10_CFLAGS"; then
+    pkg_cv_DBUS_SHARP_10_CFLAGS="$DBUS_SHARP_10_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ndesk-dbus-1.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "ndesk-dbus-1.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-sharp-1.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-sharp-1.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_NDESK_DBUS_10_CFLAGS=`$PKG_CONFIG --cflags "ndesk-dbus-1.0" 2>/dev/null`
+  pkg_cv_DBUS_SHARP_10_CFLAGS=`$PKG_CONFIG --cflags "dbus-sharp-1.0" 2>/dev/null`
 else
   pkg_failed=yes
 fi
  else
     pkg_failed=untried
 fi
-if test -n "$NDESK_DBUS_10_LIBS"; then
-    pkg_cv_NDESK_DBUS_10_LIBS="$NDESK_DBUS_10_LIBS"
+if test -n "$DBUS_SHARP_10_LIBS"; then
+    pkg_cv_DBUS_SHARP_10_LIBS="$DBUS_SHARP_10_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ndesk-dbus-1.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "ndesk-dbus-1.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-sharp-1.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-sharp-1.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_NDESK_DBUS_10_LIBS=`$PKG_CONFIG --libs "ndesk-dbus-1.0" 2>/dev/null`
+  pkg_cv_DBUS_SHARP_10_LIBS=`$PKG_CONFIG --libs "dbus-sharp-1.0" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -2752,22 +2760,22 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        NDESK_DBUS_10_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ndesk-dbus-1.0" 2>&1`
+	        DBUS_SHARP_10_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-sharp-1.0" 2>&1`
         else
-	        NDESK_DBUS_10_PKG_ERRORS=`$PKG_CONFIG --print-errors "ndesk-dbus-1.0" 2>&1`
+	        DBUS_SHARP_10_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-sharp-1.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$NDESK_DBUS_10_PKG_ERRORS" >&5
+	echo "$DBUS_SHARP_10_PKG_ERRORS" >&5
 
-	as_fn_error $? "Package requirements (ndesk-dbus-1.0) were not met:
+	as_fn_error $? "Package requirements (dbus-sharp-1.0) were not met:
 
-$NDESK_DBUS_10_PKG_ERRORS
+$DBUS_SHARP_10_PKG_ERRORS
 
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-Alternatively, you may set the environment variables NDESK_DBUS_10_CFLAGS
-and NDESK_DBUS_10_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables DBUS_SHARP_10_CFLAGS
+and DBUS_SHARP_10_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -2778,50 +2786,50 @@ as_fn_error $? "The pkg-config script could not be found or is too old.  Make su
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
-Alternatively, you may set the environment variables NDESK_DBUS_10_CFLAGS
-and NDESK_DBUS_10_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables DBUS_SHARP_10_CFLAGS
+and DBUS_SHARP_10_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5 ; }
 else
-	NDESK_DBUS_10_CFLAGS=$pkg_cv_NDESK_DBUS_10_CFLAGS
-	NDESK_DBUS_10_LIBS=$pkg_cv_NDESK_DBUS_10_LIBS
+	DBUS_SHARP_10_CFLAGS=$pkg_cv_DBUS_SHARP_10_CFLAGS
+	DBUS_SHARP_10_LIBS=$pkg_cv_DBUS_SHARP_10_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 fi
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NDESK_DBUS_GLIB_10" >&5
-$as_echo_n "checking for NDESK_DBUS_GLIB_10... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS_SHARP_GLIB_10" >&5
+$as_echo_n "checking for DBUS_SHARP_GLIB_10... " >&6; }
 
-if test -n "$NDESK_DBUS_GLIB_10_CFLAGS"; then
-    pkg_cv_NDESK_DBUS_GLIB_10_CFLAGS="$NDESK_DBUS_GLIB_10_CFLAGS"
+if test -n "$DBUS_SHARP_GLIB_10_CFLAGS"; then
+    pkg_cv_DBUS_SHARP_GLIB_10_CFLAGS="$DBUS_SHARP_GLIB_10_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ndesk-dbus-glib-1.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "ndesk-dbus-glib-1.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-sharp-glib-1.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-sharp-glib-1.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_NDESK_DBUS_GLIB_10_CFLAGS=`$PKG_CONFIG --cflags "ndesk-dbus-glib-1.0" 2>/dev/null`
+  pkg_cv_DBUS_SHARP_GLIB_10_CFLAGS=`$PKG_CONFIG --cflags "dbus-sharp-glib-1.0" 2>/dev/null`
 else
   pkg_failed=yes
 fi
  else
     pkg_failed=untried
 fi
-if test -n "$NDESK_DBUS_GLIB_10_LIBS"; then
-    pkg_cv_NDESK_DBUS_GLIB_10_LIBS="$NDESK_DBUS_GLIB_10_LIBS"
+if test -n "$DBUS_SHARP_GLIB_10_LIBS"; then
+    pkg_cv_DBUS_SHARP_GLIB_10_LIBS="$DBUS_SHARP_GLIB_10_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ndesk-dbus-glib-1.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "ndesk-dbus-glib-1.0") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-sharp-glib-1.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-sharp-glib-1.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_NDESK_DBUS_GLIB_10_LIBS=`$PKG_CONFIG --libs "ndesk-dbus-glib-1.0" 2>/dev/null`
+  pkg_cv_DBUS_SHARP_GLIB_10_LIBS=`$PKG_CONFIG --libs "dbus-sharp-glib-1.0" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -2841,22 +2849,22 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        NDESK_DBUS_GLIB_10_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ndesk-dbus-glib-1.0" 2>&1`
+	        DBUS_SHARP_GLIB_10_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-sharp-glib-1.0" 2>&1`
         else
-	        NDESK_DBUS_GLIB_10_PKG_ERRORS=`$PKG_CONFIG --print-errors "ndesk-dbus-glib-1.0" 2>&1`
+	        DBUS_SHARP_GLIB_10_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-sharp-glib-1.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$NDESK_DBUS_GLIB_10_PKG_ERRORS" >&5
+	echo "$DBUS_SHARP_GLIB_10_PKG_ERRORS" >&5
 
-	as_fn_error $? "Package requirements (ndesk-dbus-glib-1.0) were not met:
+	as_fn_error $? "Package requirements (dbus-sharp-glib-1.0) were not met:
 
-$NDESK_DBUS_GLIB_10_PKG_ERRORS
+$DBUS_SHARP_GLIB_10_PKG_ERRORS
 
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-Alternatively, you may set the environment variables NDESK_DBUS_GLIB_10_CFLAGS
-and NDESK_DBUS_GLIB_10_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables DBUS_SHARP_GLIB_10_CFLAGS
+and DBUS_SHARP_GLIB_10_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details." "$LINENO" 5
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -2867,15 +2875,15 @@ as_fn_error $? "The pkg-config script could not be found or is too old.  Make su
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
-Alternatively, you may set the environment variables NDESK_DBUS_GLIB_10_CFLAGS
-and NDESK_DBUS_GLIB_10_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables DBUS_SHARP_GLIB_10_CFLAGS
+and DBUS_SHARP_GLIB_10_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details" "$LINENO" 5 ; }
 else
-	NDESK_DBUS_GLIB_10_CFLAGS=$pkg_cv_NDESK_DBUS_GLIB_10_CFLAGS
-	NDESK_DBUS_GLIB_10_LIBS=$pkg_cv_NDESK_DBUS_GLIB_10_LIBS
+	DBUS_SHARP_GLIB_10_CFLAGS=$pkg_cv_DBUS_SHARP_GLIB_10_CFLAGS
+	DBUS_SHARP_GLIB_10_LIBS=$pkg_cv_DBUS_SHARP_GLIB_10_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
@@ -2970,6 +2978,96 @@ $as_echo "yes" >&6; }
 
 fi
 
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZEITGEIST_DAEMON" >&5
+$as_echo_n "checking for ZEITGEIST_DAEMON... " >&6; }
+
+if test -n "$ZEITGEIST_DAEMON_CFLAGS"; then
+    pkg_cv_ZEITGEIST_DAEMON_CFLAGS="$ZEITGEIST_DAEMON_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zeitgeist-daemon >= 0.7.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "zeitgeist-daemon >= 0.7.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_ZEITGEIST_DAEMON_CFLAGS=`$PKG_CONFIG --cflags "zeitgeist-daemon >= 0.7.1" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$ZEITGEIST_DAEMON_LIBS"; then
+    pkg_cv_ZEITGEIST_DAEMON_LIBS="$ZEITGEIST_DAEMON_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zeitgeist-daemon >= 0.7.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "zeitgeist-daemon >= 0.7.1") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_ZEITGEIST_DAEMON_LIBS=`$PKG_CONFIG --libs "zeitgeist-daemon >= 0.7.1" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        ZEITGEIST_DAEMON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "zeitgeist-daemon >= 0.7.1" 2>&1`
+        else
+	        ZEITGEIST_DAEMON_PKG_ERRORS=`$PKG_CONFIG --print-errors "zeitgeist-daemon >= 0.7.1" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$ZEITGEIST_DAEMON_PKG_ERRORS" >&5
+
+	as_fn_error $? "Package requirements (zeitgeist-daemon >= 0.7.1) were not met:
+
+$ZEITGEIST_DAEMON_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables ZEITGEIST_DAEMON_CFLAGS
+and ZEITGEIST_DAEMON_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables ZEITGEIST_DAEMON_CFLAGS
+and ZEITGEIST_DAEMON_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5 ; }
+else
+	ZEITGEIST_DAEMON_CFLAGS=$pkg_cv_ZEITGEIST_DAEMON_CFLAGS
+	ZEITGEIST_DAEMON_LIBS=$pkg_cv_ZEITGEIST_DAEMON_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
 ac_config_files="$ac_config_files Zeitgeist/zeitgeist-sharp.pc Zeitgeist/AssemblyInfo.cs Zeitgeist/Makefile Makefile"
 
 
@@ -3520,7 +3618,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by zeitgeist-sharp $as_me 0.1.1.0, which was
+This file was extended by zeitgeist-sharp $as_me 0.8.0.0, which was
 generated by GNU Autoconf 2.67.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -3573,7 +3671,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-zeitgeist-sharp config.status 0.1.1.0
+zeitgeist-sharp config.status 0.8.0.0
 configured by $0, generated by GNU Autoconf 2.67,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index ab47077..acf4cfd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ([2.54])
-AC_INIT([zeitgeist-sharp], [0.1.1.0])
+AC_INIT([zeitgeist-sharp], [0.8.0.0])
 AM_INIT_AUTOMAKE([foreign])
 AM_MAINTAINER_MODE
 
@@ -18,7 +18,7 @@ AC_PROG_INSTALL
 # DO NOT TOUCH!
 # Except you know what you do
 # This defines the library ABI version!
-ASSEMBLY_VERSION="0.1.0.1"
+ASSEMBLY_VERSION="0.8.0.0"
 AC_SUBST(ASSEMBLY_VERSION)
 
 PKG_CHECK_MODULES([MONO], [mono >= 2.4])
@@ -41,10 +41,12 @@ GACUTIL_FLAGS='-root $(DESTDIR)$(libdir)'
 AC_SUBST(GACUTIL_FLAGS)
 
 dnl package checks, common for all configs
-PKG_CHECK_MODULES([NDESK_DBUS_10], [ndesk-dbus-1.0])
-PKG_CHECK_MODULES([NDESK_DBUS_GLIB_10], [ndesk-dbus-glib-1.0])
+PKG_CHECK_MODULES([DBUS_SHARP_10], [dbus-sharp-1.0])
+PKG_CHECK_MODULES([DBUS_SHARP_GLIB_10], [dbus-sharp-glib-1.0])
 PKG_CHECK_MODULES([GLIB_SHARP_20], [glib-sharp-2.0])
 
+PKG_CHECK_MODULES([ZEITGEIST_DAEMON], [zeitgeist-daemon >= 0.7.1])
+
 AC_CONFIG_FILES([
 Zeitgeist/zeitgeist-sharp.pc
 Zeitgeist/AssemblyInfo.cs

-- 
zeitgeist-sharp



More information about the Pkg-cli-libs-commits mailing list