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