rev bump, readd mono bindings
authorMarinus Schraal <foser@gentoo.org>
Sun, 31 Oct 2004 14:37:16 +0000 (14:37 +0000)
committerMarinus Schraal <foser@gentoo.org>
Sun, 31 Oct 2004 14:37:16 +0000 (14:37 +0000)
sys-apps/dbus/ChangeLog
sys-apps/dbus/Manifest
sys-apps/dbus/dbus-0.22-r2.ebuild [new file with mode: 0644]
sys-apps/dbus/files/dbus-0.22-bus_driver_know_thyself.patch [new file with mode: 0644]
sys-apps/dbus/files/dbus-0.22-mono_bindings.patch [new file with mode: 0644]
sys-apps/dbus/files/dbus-0.22-mono_service_owner.patch [new file with mode: 0644]
sys-apps/dbus/files/digest-dbus-0.22-r2 [new file with mode: 0644]

index 7f696f406fed1c38f88f81f2cee6bec2b5a7c9f4..b3ae7ca74e8b938ad4322b33bac32725207b13b9 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for sys-apps/dbus
 # Copyright 2000-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/ChangeLog,v 1.18 2004/10/28 22:17:05 foser Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/ChangeLog,v 1.19 2004/10/31 14:37:16 foser Exp $
+
+*dbus-0.22-r2 (31 Oct 2004)
+
+  31 Oct 2004; foser <foser@gentoo.org> dbus-0.22-r2.ebuild :
+  Re-enable mono USE
+  Add a couple of patches to get the mono bindings up to par
 
   29 Oct 2004; foser <foser@gentoo.org> dbus-0.22-r1.ebuild :
   Disable mono USE, so we can mark stable
index fe16c708b957e805d19207d45a36d718c73f5710..20392550c56b6f1468c653aa069f162bd8249211 100644 (file)
@@ -1,6 +1,11 @@
+MD5 12069e1a55e9ec7c36113c888e135857 dbus-0.22-r2.ebuild 3190
 MD5 a3ee6218307390858a50ed11f8c0d845 dbus-0.22-r1.ebuild 2860
-MD5 121b3c74967d2443e95523ae7a5023aa ChangeLog 2867
+MD5 fab245f58f1e1318a452243b5403374a ChangeLog 3041
 MD5 5b5bcd9c1a432b2c8157b0004a073f72 metadata.xml 224
 MD5 5ad50ae94f784548fc0d6f1364ce23bb files/dbus 544
 MD5 032a780f5d3dd0c743f2b932424fd39c files/dbus-0.22-python_int64.patch 5448
 MD5 b0cc4f0bb3505fb083602b48c09f25a6 files/digest-dbus-0.22-r1 62
+MD5 b0cc4f0bb3505fb083602b48c09f25a6 files/digest-dbus-0.22-r2 62
+MD5 0c8ee5b60e0dd01baea0e398f7ee5559 files/dbus-0.22-mono_service_owner.patch 905
+MD5 89670f39c616e08e472a236ed9079b34 files/dbus-0.22-mono_bindings.patch 5122
+MD5 0bbcecc888e29256a5b9a8b1b110099c files/dbus-0.22-bus_driver_know_thyself.patch 1373
diff --git a/sys-apps/dbus/dbus-0.22-r2.ebuild b/sys-apps/dbus/dbus-0.22-r2.ebuild
new file mode 100644 (file)
index 0000000..efa00b8
--- /dev/null
@@ -0,0 +1,141 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/dbus/dbus-0.22-r2.ebuild,v 1.1 2004/10/31 14:37:16 foser Exp $
+
+# because of the experimental nature debug by default
+inherit debug eutils mono python
+
+# FIXME : fix docs
+#IUSE="X gtk qt python mono doc xml2"
+IUSE="X gtk python mono xml2"
+
+DESCRIPTION="A message bus system, a simple way for applications to talk to eachother"
+HOMEPAGE="http://www.freedesktop.org/software/dbus/"
+SRC_URI="http://www.freedesktop.org/software/dbus/releases/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="|| ( GPL-2 AFL-2.1 )"
+KEYWORDS="~x86 ~ppc ~amd64"
+
+RDEPEND=">=dev-libs/glib-2
+       xml2? ( >=dev-libs/libxml2-2.6 )
+       !xml2? ( dev-libs/expat )
+       X? ( virtual/x11 )
+       gtk? ( >=x11-libs/gtk+-2 )
+       python? ( >=dev-lang/python-2.2
+               >=dev-python/pyrex-0.9 )
+       mono? ( >=dev-dotnet/mono-0.95 )"
+
+#      qt? ( >=x11-libs/qt-3 )
+
+DEPEND="${RDEPEND}
+       dev-util/pkgconfig"
+#      doc? ( app-doc/doxygen
+#              app-text/xmlto )"
+
+# needs gcj, we have no neat way of knowing if it was enabled
+#      java? ( sys-devel/gcc )
+
+src_unpack() {
+
+       unpack ${A}
+
+       cd ${S}
+       epatch ${FILESDIR}/${P}-python_int64.patch
+
+       local cs
+       # a few cvs patches for beagle
+       cd ${S}/mono
+       for cs in *.cs; do
+               einfo "Removing CR from ${cs}"
+               sed -e "s/\r//" ${cs} > ${cs}.new
+               mv ${cs}.new ${cs}
+       done;
+       epatch ${FILESDIR}/${P}-mono_bindings.patch
+       cd ${S}/bus
+       epatch ${FILESDIR}/${P}-bus_driver_know_thyself.patch
+       cd ${S}
+       epatch ${FILESDIR}/${P}-mono_service_owner.patch
+
+       cd ${S}
+       automake || die
+
+}
+
+src_compile() {
+
+       local myconf
+
+       if use xml2; then
+               myconf="--with-xml=libxml";
+       else
+               myconf="--with-xml=expat";
+       fi
+
+       econf \
+               `use_enable X x` \
+               `use_enable gtk` \
+               --disable-qt \
+               `use_enable python` \
+               `use_enable mono` \
+               --enable-glib \
+               --enable-verbose-mode \
+               --enable-checks \
+               --enable-asserts \
+               --with-system-pid-file=/var/run/dbus.pid \
+               --with-system-socket=/var/lib/dbus/system_bus_socket \
+               --with-session-socket-dir=/tmp \
+               --disable-doxygen-docs \
+               --disable-xml-docs \
+               --disable-mono-docs \
+               ${myconf} \
+               || die
+
+#              `use_enable qt` \
+#              `use_enable doc doxygen-docs` \
+#              `use_enable doc xml-docs` \
+
+       # do not build the mono examples, they need gtk-sharp
+       touch ${S}/mono/example/echo-{server,client}.exe
+
+       # this gets around a lib64 sandbox bug. note that this addpredict is
+       # added automatically by sandbox.c for lib.
+       addpredict /usr/lib64/python2.3/
+       addpredict /usr/lib64/python2.2/
+       addpredict /usr/lib64/python2.1/
+
+       emake || die
+
+}
+
+src_install() {
+
+       make DESTDIR=${D} install || die
+
+       # initscript
+       exeinto /etc/init.d/
+       doexe ${FILESDIR}/dbus
+
+       # needs to exist for the system socket
+       keepdir /var/lib/dbus
+
+       keepdir /usr/lib/dbus-1.0/services
+
+       dodoc AUTHORS ChangeLog HACKING NEWS README doc/TODO doc/*html
+
+}
+
+pkg_preinst() {
+
+       enewgroup messagebus || die "Problem adding messagebus group"
+       enewuser messagebus -1 /bin/false /dev/null messagebus || die "Problem adding messagebus user"
+
+}
+
+pkg_postinst() {
+
+       einfo "To start the DBUS system-wide messagebus by default"
+       einfo "you should add it to the default runlevel :"
+       einfo "\`rc-update add dbus default\`"
+
+}
diff --git a/sys-apps/dbus/files/dbus-0.22-bus_driver_know_thyself.patch b/sys-apps/dbus/files/dbus-0.22-bus_driver_know_thyself.patch
new file mode 100644 (file)
index 0000000..6edf75f
--- /dev/null
@@ -0,0 +1,42 @@
+Index: driver.c
+===================================================================
+RCS file: /cvs/dbus/dbus/bus/driver.c,v
+retrieving revision 1.53
+diff -u -p -r1.53 driver.c
+--- driver.c   25 Aug 2004 08:03:12 -0000      1.53
++++ driver.c   26 Aug 2004 16:38:11 -0000
+@@ -511,6 +511,7 @@ bus_driver_handle_service_exists (DBusCo
+   DBusMessage *reply;
+   DBusString service_name;
+   BusService *service;
++  dbus_bool_t service_exists;
+   char *name;
+   dbus_bool_t retval;
+   BusRegistry *registry;
+@@ -525,9 +526,14 @@ bus_driver_handle_service_exists (DBusCo
+     return FALSE;
+ 
+   retval = FALSE;
+-  
+-  _dbus_string_init_const (&service_name, name);
+-  service = bus_registry_lookup (registry, &service_name);
++
++  if (strcmp (name, DBUS_SERVICE_ORG_FREEDESKTOP_DBUS) == 0) {
++    service_exists = TRUE;
++  } else {
++    _dbus_string_init_const (&service_name, name);
++    service = bus_registry_lookup (registry, &service_name);
++    service_exists = service != NULL;
++  }
+  
+   reply = dbus_message_new_method_return (message);
+   if (reply == NULL)
+@@ -537,7 +543,7 @@ bus_driver_handle_service_exists (DBusCo
+     }
+ 
+   if (!dbus_message_append_args (reply,
+-                                 DBUS_TYPE_BOOLEAN, service != NULL,
++                                 DBUS_TYPE_BOOLEAN, service_exists,
+                                  0))
+     {
+       BUS_SET_OOM (error);
diff --git a/sys-apps/dbus/files/dbus-0.22-mono_bindings.patch b/sys-apps/dbus/files/dbus-0.22-mono_bindings.patch
new file mode 100644 (file)
index 0000000..ea75c18
--- /dev/null
@@ -0,0 +1,197 @@
+Index: BusDriver.cs
+===================================================================
+RCS file: BusDriver.cs
+diff -N BusDriver.cs
+--- /dev/null  1 Jan 1970 00:00:00 -0000
++++ BusDriver.cs       30 Aug 2004 16:17:20 -0000
+@@ -0,0 +1,39 @@
++namespace DBus
++{
++
++  using System;
++
++  public delegate void ServiceEventHandler (string serviceName);
++
++  [Interface ("org.freedesktop.DBus")]
++  public abstract class BusDriver
++  {
++    [Method]
++    public abstract string[] ListServices ();
++
++    [Method]
++    public abstract string GetServiceOwner (string serviceName);
++
++    [Method]
++    public abstract UInt32 GetConnectionUnixUser (string connectionName);
++
++
++    [Signal]
++    public virtual event ServiceEventHandler ServiceCreated;
++
++    [Signal]
++    public virtual event ServiceEventHandler ServiceDeleted;
++
++
++    static public BusDriver New (Connection connection)
++    {
++      Service service;
++      service = Service.Get (connection, "org.freedesktop.DBus");
++
++      BusDriver driver;
++      driver = (BusDriver) service.GetObject (typeof (BusDriver), "/org/freedesktop/DBus");
++      
++      return driver;
++    }
++  }
++}
+Index: Connection.cs
+===================================================================
+RCS file: /cvs/dbus/dbus/mono/Connection.cs,v
+retrieving revision 1.8
+diff -u -p -r1.8 Connection.cs
+--- Connection.cs      29 Aug 2004 18:14:30 -0000      1.8
++++ Connection.cs      30 Aug 2004 16:17:20 -0000
+@@ -76,6 +76,14 @@ namespace DBus 
+       return new Connection(rawConnection);
+     }
+ 
++    public string BaseService
++    {
++      get
++      {
++        return Marshal.PtrToStringAnsi (dbus_bus_get_base_service (RawConnection));
++      }
++    }
++
+     public int Timeout
+     {
+       get
+@@ -182,5 +190,8 @@ namespace DBus 
+     
+     [DllImport ("dbus-1")]
+     private extern static void dbus_connection_disconnect (IntPtr ptr);
++
++    [DllImport ("dbus-1")]
++    private extern static IntPtr dbus_bus_get_base_service (IntPtr ptr);
+   }
+ }
+Index: Handler.cs
+===================================================================
+RCS file: /cvs/dbus/dbus/mono/Handler.cs,v
+retrieving revision 1.6
+diff -u -p -r1.6 Handler.cs
+--- Handler.cs 7 Jun 2004 11:40:20 -0000       1.6
++++ Handler.cs 30 Aug 2004 16:17:20 -0000
+@@ -177,11 +177,15 @@ namespace DBus
+       }
+       
+       MethodInfo method = interfaceProxy.GetMethod(methodCall.Key);
++      
++      Message.Push (methodCall);
+ 
+       // Now call the method. FIXME: Error handling
+       object [] args = methodCall.Arguments.GetParameters(method);
+       object retVal = method.Invoke(this.handledObject, args);
+ 
++      Message.Pop ();
++
+       // Create the reply and send it
+       MethodReturn methodReturn = new MethodReturn(methodCall);
+       methodReturn.Arguments.AppendResults(method, retVal, args);
+Index: Makefile.am
+===================================================================
+RCS file: /cvs/dbus/dbus/mono/Makefile.am,v
+retrieving revision 1.10
+diff -u -p -r1.10 Makefile.am
+--- Makefile.am        17 Aug 2004 17:08:32 -0000      1.10
++++ Makefile.am        30 Aug 2004 16:17:20 -0000
+@@ -9,6 +9,7 @@ ASSEMBLY_NAME=dbus-sharp
+ DBUS_SHARP_FILES=             \
+       Arguments.cs            \
+       Bus.cs                  \
++      BusDriver.cs            \
+       Connection.cs           \
+       Custom.cs               \
+       DBusException.cs        \
+Index: Message.cs
+===================================================================
+RCS file: /cvs/dbus/dbus/mono/Message.cs,v
+retrieving revision 1.9
+diff -u -p -r1.9 Message.cs
+--- Message.cs 29 Aug 2004 18:14:30 -0000      1.9
++++ Message.cs 30 Aug 2004 16:17:20 -0000
+@@ -8,6 +8,25 @@ namespace DBus 
+   
+   public class Message 
+   {
++    private static Stack stack = new Stack ();
++        
++    static public Message Current {
++      get 
++      {
++        return stack.Count > 0 ? (Message) stack.Peek () : null;
++      }
++    }
++
++    static internal void Push (Message message)
++    {
++      stack.Push (message);
++    }
++
++    static internal void Pop ()
++    {
++      stack.Pop ();
++    }
++        
+     
+     /// <summary>
+     /// A pointer to the underlying Message structure
+@@ -294,6 +313,22 @@ namespace DBus 
+       }
+     }
+ 
++    public string Sender 
++    {
++      get
++      {
++        return Marshal.PtrToStringAnsi(dbus_message_get_sender(RawMessage));
++      }
++    }
++
++    public string Destination
++    {
++      get
++      {
++        return Marshal.PtrToStringAnsi(dbus_message_get_destination(RawMessage));
++      }
++    }
++          
+     protected int Slot
+     {
+       get 
+@@ -373,5 +408,8 @@ namespace DBus 
+ 
+     [DllImport("dbus-1")]
+     private extern static IntPtr dbus_message_get_destination(IntPtr rawMessage);
++
++    [DllImport("dbus-1")]
++    private extern static IntPtr dbus_message_get_sender(IntPtr rawMessage);
+   }
+ }
+Index: Service.cs
+===================================================================
+RCS file: /cvs/dbus/dbus/mono/Service.cs,v
+retrieving revision 1.6
+diff -u -p -r1.6 Service.cs
+--- Service.cs 23 May 2004 21:33:14 -0000      1.6
++++ Service.cs 30 Aug 2004 16:17:20 -0000
+@@ -128,7 +128,9 @@ namespace DBus
+       // We're only interested in signals
+       Signal signal = (Signal) message;
+       if (SignalCalled != null) {
++        Message.Push (message);
+         SignalCalled(signal);
++        Message.Pop ();
+       }
+       }
+       
diff --git a/sys-apps/dbus/files/dbus-0.22-mono_service_owner.patch b/sys-apps/dbus/files/dbus-0.22-mono_service_owner.patch
new file mode 100644 (file)
index 0000000..8b2b5c6
--- /dev/null
@@ -0,0 +1,31 @@
+===================================================================
+RCS file: /cvs/dbus/dbus/mono/BusDriver.cs,v
+retrieving revision 1.1
+retrieving revision 1.2
+diff -u -r1.1 -r1.2
+--- dbus/dbus/mono/BusDriver.cs        2004/08/31 03:59:14     1.1
++++ dbus/dbus/mono/BusDriver.cs        2004/09/29 01:46:45     1.2
+@@ -3,7 +3,9 @@
+ 
+   using System;
+ 
+-  public delegate void ServiceEventHandler (string serviceName);
++  public delegate void ServiceEventHandler (string serviceName,
++                                          string oldOwner,
++                                          string newOwner);
+ 
+   [Interface ("org.freedesktop.DBus")]
+   public abstract class BusDriver
+@@ -19,11 +21,7 @@
+ 
+ 
+     [Signal]
+-    public virtual event ServiceEventHandler ServiceCreated;
+-
+-    [Signal]
+-    public virtual event ServiceEventHandler ServiceDeleted;
+-
++    public virtual event ServiceEventHandler ServiceOwnerChanged;
+ 
+     static public BusDriver New (Connection connection)
+     {
diff --git a/sys-apps/dbus/files/digest-dbus-0.22-r2 b/sys-apps/dbus/files/digest-dbus-0.22-r2
new file mode 100644 (file)
index 0000000..d2af6e2
--- /dev/null
@@ -0,0 +1 @@
+MD5 6b1c2476ea8b82dd9fb7f29ef857cb9f dbus-0.22.tar.gz 1248780