rpms/ndesk-dbus/devel ndesk-dbus-sugar-datastore.patch, NONE, 1.1 ndesk-dbus.spec, 1.13, 1.14

Peter Gordon pgordon at fedoraproject.org
Thu Jul 30 03:17:36 UTC 2009


Author: pgordon

Update of /cvs/pkgs/rpms/ndesk-dbus/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv19456

Modified Files:
	ndesk-dbus.spec 
Added Files:
	ndesk-dbus-sugar-datastore.patch 
Log Message:



Correct previous %changelog version; apply sugar-datastore patch (#503151); fix lib/lib64 munging in the pkgconfig file; move %configure to %build instead of %prep.


ndesk-dbus-sugar-datastore.patch:
 Connection.cs    |   50 +++++++++++++++++++++++++++++++++++++++-----------
 MessageReader.cs |    2 +-
 2 files changed, 40 insertions(+), 12 deletions(-)

--- NEW FILE ndesk-dbus-sugar-datastore.patch ---
diff --git a/src/Connection.cs b/src/Connection.cs
index 22b20ca..eb27055 100644
--- a/src/Connection.cs
+++ b/src/Connection.cs
@@ -78,6 +78,7 @@ namespace NDesk.DBus
 			AddressEntry entry = entries[0];
 
 			transport = Transport.Create (entry);
+			transport.Connection = this;
 
 			//TODO: clean this bit up
 			ns = transport.Stream;
@@ -204,6 +205,7 @@ namespace NDesk.DBus
 		}
 		*/
 
+		bool insideReadMessage=false;
 		internal Message ReadMessage ()
 		{
 			byte[] header;
@@ -211,6 +213,8 @@ namespace NDesk.DBus
 
 			int read;
 
+			if (insideReadMessage) return null;
+
 			//16 bytes is the size of the fixed part of the header
 			byte[] hbuf = new byte[16];
 			read = ns.Read (hbuf, 0, 16);
@@ -221,6 +225,9 @@ namespace NDesk.DBus
 			if (read != 16)
 				throw new Exception ("Header read length mismatch: " + read + " of expected " + "16");
 
+			// Make this method void if is call from inside
+			insideReadMessage=true;
+
 			EndianFlag endianness = (EndianFlag)hbuf[0];
 			MessageReader reader = new MessageReader (endianness, hbuf);
 
@@ -274,8 +281,10 @@ namespace NDesk.DBus
 				body = new byte[bodyLen];
 				read = ns.Read (body, 0, bodyLen);
 
-				if (read != bodyLen)
-					throw new Exception ("Message body length mismatch: " + read + " of expected " + bodyLen);
+				while (read != bodyLen) {
+					WaitForIOCompletition(this);
+					read = read +ns.Read (body, read, bodyLen-read);
+				}
 			}
 
 			Message msg = new Message ();
@@ -283,6 +292,8 @@ namespace NDesk.DBus
 			msg.Body = body;
 			msg.SetHeaderData (header);
 
+			insideReadMessage=false;
+
 			return msg;
 		}
 
@@ -299,17 +310,34 @@ namespace NDesk.DBus
 
 		internal Thread mainThread = Thread.CurrentThread;
 
-		//temporary hack
-		public void Iterate ()
-		{
-			mainThread = Thread.CurrentThread;
-
-			//Message msg = Inbound.Dequeue ();
-			Message msg = ReadMessage ();
-			HandleMessage (msg);
-			DispatchSignals ();
+ 		//temporary hack
+		bool insideIterate=false;
+ 		public void Iterate ()
+ 		{
+			if (!insideIterate) {
+				insideIterate=true;
+				mainThread = Thread.CurrentThread;
+
+				//Message msg = Inbound.Dequeue ();
+				Message msg = ReadMessage ();
+				if (msg!=null) {
+					HandleMessage (msg);
+				}
+				DispatchSignals ();
+				insideIterate=false;
+			} else {
+				DispatchSignals ();
+			}
 		}
 
+		public delegate void WaitForIOCompletitionFunc (Connection conn);
+
+		public event WaitForIOCompletitionFunc WaitForIOCompletitionFuncEvent;
+ 
+		public void WaitForIOCompletition(Connection conn) {
+			WaitForIOCompletitionFuncEvent(conn);
+ 		}
+ 
 		internal void HandleMessage (Message msg)
 		{
 			//TODO: support disconnection situations properly and move this check elsewhere
diff --git a/src/MessageReader.cs b/src/MessageReader.cs
index 5a1f662..696603a 100644
--- a/src/MessageReader.cs
+++ b/src/MessageReader.cs
@@ -362,7 +362,7 @@ namespace NDesk.DBus
 			}
 
 			//advance to the alignment of the element
-			ReadPad (Protocol.GetAlignment (Signature.TypeToDType (elemType)));
+			ReadPad (Protocol.GetAlignment (DType.Array));
 
 			int endPos = pos + (int)ln;
 


Index: ndesk-dbus.spec
===================================================================
RCS file: /cvs/pkgs/rpms/ndesk-dbus/devel/ndesk-dbus.spec,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -r1.13 -r1.14
--- ndesk-dbus.spec	25 Jul 2009 15:53:49 -0000	1.13
+++ ndesk-dbus.spec	30 Jul 2009 03:17:34 -0000	1.14
@@ -2,7 +2,7 @@
 
 Name:			ndesk-dbus
 Version:		0.6.1a
-Release:		6%{?dist}
+Release:		7%{?dist}
 Summary:		Managed C# implementation of DBus
 
 License:		MIT
@@ -11,6 +11,7 @@ URL:			http://www.ndesk.org/DBusSharp
 Source0:		http://www.ndesk.org/archive/dbus-sharp/ndesk-dbus-%{version}.tar.gz
 BuildRoot:		%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
+Patch0:			%{name}-sugar-datastore.patch
 
 BuildRequires:		mono-devel
 
@@ -30,25 +31,25 @@ Development files for ndesk-dbus
 
 %prep
 %setup -q
-%configure
+%patch0 -p1 -b .sugar-datastore
+
 
 %build
+# hack pkgconfig file for multilib handling - this is ugly
+sed -ie "s,^libdir=.*$,libdir=%{_libdir},g" %{name}-1.0.pc.in
+%configure
 make %{?_smp_mflags}
 
+
 %install
 rm -rf $RPM_BUILD_ROOT
 make install DESTDIR=$RPM_BUILD_ROOT
 
-# hack pkgconfig file for multilib handling - this is ugly
-%ifarch x86_64
-sed -i 's|${exec_prefix}/lib|/usr/lib64|g' $RPM_BUILD_ROOT%{_libdir}/pkgconfig/%{name}-1.0.pc
-%else
-sed -i 's|${exec_prefix}/lib|/usr/lib|g' $RPM_BUILD_ROOT%{_libdir}/pkgconfig/%{name}-1.0.pc
-%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+
 %files
 %defattr(-,root,root,-)
 %{_libdir}/mono/ndesk-dbus-1.0/
@@ -59,6 +60,16 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/pkgconfig/ndesk-dbus-1.0.pc
 
 %changelog
+* Wed Jul 29 2009 Peter Gordon <peter at thecodergeek.com> - 0.6.1a-7
+- Correct version number in previous %%changelog entry.
+- Apply patch from Torello Querci to fix byte-alignment when reading from the
+  Sugar datastore (#503151):
+  + sugar-datastore.patch
+- Make the pkconfig lib/lib64 munging a little bit less ugly by using the
+  %%_libdir macro instead of hardcoding it per-arch.
+- Move %%configure to the %%build step, not %%prep (for consistency with the
+  ndesk-dbus-glib package).
+
 * Sat Jul 25 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.6.1a-6
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
 




More information about the fedora-extras-commits mailing list