dbus-send.1: use bold and italic type consistently
[platform/upstream/dbus.git] / doc / TODO
index c70cc92..eb4e797 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -1,51 +1,86 @@
+Important for 1.2
+===
 
 
- - Message matching rules (so broadcasts can be filtered) need sorting
-   out.
+ - System bus activation
 
 
- - How we will handle DCOP needs sorting out. Among other things, we
-   need to check that service and service-ownership semantics map to DCOP 
-   reasonably well.
+ - Windows port
 
 
- - Activation needs some careful additional thinking-through.
+Important for 1.0 GLib Bindings
+===
 
 
- - Property list feature on message bus (list of properties associated 
-   with a connection). May also include message matching rules 
-   that involve the properties of the source or destination
-   connection.
+ - Test point-to-point mode
 
 
- - Automatic service activation, should probably be done through a message flag.
+ - Add support for getting sender
 
 
- - Disconnecting the remote end on invalid UTF-8 is probably not a good 
-   idea. The definitiion of "valid" is slightly fuzzy. I think it might 
-   be better to just silently "fix" the UTF-8, or perhaps return an error.
+ - format_version in the object info doesn't look like it's handled correctly. The creator
+   of the object info should specify some fixed number per struct version; the library
+   should handle only specific numbers it knows about. There's no assumption that all 
+   numbers >= the given one are compatible. The idea is that new versions of the lib
+   can offer totally different object info structs, but old versions
+   keep working.
+
+Important for 1.0 Python bindings
+===
+
+ - Hammer down API
+
+ - Fix removing of signals from the match tree
+
+ - Fix refcounting and userdata lifecycles
+
+ - Write a generic mainloop
+
+Might as Well for 1.0
+===
+
+ - protocol version in each message is pretty silly
+
+Can Be Post 1.0
+===
+
+ - revamp dbus-launch a bit,
+   see http://lists.freedesktop.org/archives/dbus/2006-October/005906.html
+   for some thoughts.
+
+ - clean up the creds issue on *BSD's in dbus/dbus-sysdeps-unix.c.
+   They should work as is but we need to rearange it to make it
+   clearer which method is being used.  configure.in should
+   be fixed up to make that decition.
+
+ - _dbus_connection_unref_unlocked() is essentially always broken because
+   the connection finalizer calls non-unlocked functions. One fix is to make 
+   the finalizer run with the lock held, but since it calls out to the app that may 
+   be pretty broken. More likely all the uses of unref_unlocked are just wrong.
 
 
-   Owen says we should only validate the UTF-8 on dbus_message_get_string()
-   (changing get_string to have an error return, and allowing a type error 
-   as a possible return)
+ - if the GUID is obtained only during authentication, not in the address, 
+   we could still share the connection
 
 
- - The convenience functions in dbus-bus.h should perhaps have
-   the signatures that they would have if they were autogenerated
-   stubs. e.g. the acquire service function. We should also evaluate 
-   which of these functions to include, in light of the fact that 
-   GLib/Qt native stubs will probably also exist.
+ - Allow a dbus_g_proxy_to_string()/g_object_to_string() that
+   would convert the proxy to an "IOR" and dbus_g_proxy_from_string()
+   that would decode; using these, dbus-glib users could avoid
+   DBusConnection entirely. Of course the same applies to other kinds
+   of binding. This would use dbus_connection_open()'s connection-sharing
+   feature to avoid massive proliferation of connections.
 
 
- - The message handler interface needs rethinking, perhaps handlers should be able 
-   to return an error that automatically gets turned into a message; most likely 
-   some basic spec'ing out of the GLib/Qt level stubs/skels stuff will b
-   needed to understand the right approach.
+ - DBusWatchList/TimeoutList duplicate a lot of code, as do
+   protected_change_watch/protected_change_timeout in dbus-connection.c
+   and dbus-server.c. This could all be mopped up, cut-and-past
+   fixed, code size reduced.
 
 
- - there are various bits of code to manage ref/unref of data slots, that should 
-   be merged into a generic facility
+ - change .service files to allow Names=list in addition to Name=string
 
 
- - assorted _-prefixed symbols in libdbus aren't actually used by
-   libdbus, only by the message bus. These bloat up the library
-   size. Not sure how to fix, really.
+ - The message bus internal code still says "service" for 
+   "name", "base service" for "unique name", "activate" for 
+   "start"; would be nice to clean up.
 
 
- - if you send a message to a service then block for reply, and the service exits/crashes
-   after the message bus has processed your message but before the service has replied, 
-   it would be nice if the message bus sent you an error reply.
+ - Property list feature on message bus (list of properties associated 
+   with a connection). May also include message matching rules 
+   that involve the properties of the source or destination
+   connection.
 
 
- - write a DTD for the dbus-daemon-1 configuration file
+ - Disconnecting the remote end on invalid UTF-8 is probably not a good 
+   idea. The definition of "valid" is slightly fuzzy. I think it might 
+   be better to just silently "fix" the UTF-8, or perhaps return an error.
 
  - build and install the Doxygen manual in Makefile when --enable-docs
 
 
  - build and install the Doxygen manual in Makefile when --enable-docs
 
    has rules for it anyway, or something. it's conceptually 
    screwy at the moment.
 
    has rules for it anyway, or something. it's conceptually 
    screwy at the moment.
 
- - <limit> elements are not merged in from included configuration 
-   files; they have to be in the toplevel file. when loading 
-   a child file, we could just init its DBusLimits from the parent, 
-   then after parsing copy its DBusLimits back to the parent
-
  - when making a method call, if the call serial were globally unique,
    we could forward the call serial along with any method calls made
    as a result of the first method call, and allow reentrancy that was
  - when making a method call, if the call serial were globally unique,
    we could forward the call serial along with any method calls made
    as a result of the first method call, and allow reentrancy that was
    call serial to all method calls all the time, or disallowing 
    async calls.
 
    call serial to all method calls all the time, or disallowing 
    async calls.
 
- the invalid messages in the test suite are all useless becaus
-   they are invalid for the wrong reasons due to protocol changes
  If done post 1.0 will probably be an optional/ugly-API typ
+   of thing.
 
  - I don't want to introduce DBusObject, but refcounting and object
    data could still be factored out into an internal "base class" 
    perhaps.
 
 
  - I don't want to introduce DBusObject, but refcounting and object
    data could still be factored out into an internal "base class" 
    perhaps.
 
- - modify the auth protocol to also support other initial-handshake
-   type of information
+ - Keep convenience wrappers in sync with bus methods
 
  - document the auth protocol as a set of states and transitions, and
    then reimplement it in those terms
 
 
  - document the auth protocol as a set of states and transitions, and
    then reimplement it in those terms
 
- - dbus_gproxy or dbus_g_proxy?
+ - recursive dispatch, see dbus_connection_dispatch()
+
+ - do we need per-display activation; if so I'd like to do this by setting a
+   "display ID" property on screen 0, with a GUID, and keying activation by 
+   said GUID. Otherwise you get all kinds of unrobust
+   string/hostname-based mess. per-screen is then done by appending screen number
+   to the display. If displays have a deterministic ID like this, you can 
+   do per-display by simply including GUID in the service name.
+
+ - optimization and profiling!
+
+ - Match rules aren't in the spec (probably a lot of methods on the bus
+   are not)
+
+ - the "break loader" and valid/invalid message tests are all disabled;
+   they need to be fixed and re-enabled with the new message args stuff.
+   I think I want to drop the .message files thing and just have code
+   that generates messages, more like the tests for
+   dbus-marshal-recursive.c (this is mostly done now, just needs some
+   cleanup)
+
+ - just before 1.0, try a HAVE_INT64=0 build and be sure it runs
+
+ - Windows port needs recursive mutexes
+
+Should Be Post 1.0
+===
+
+ - look into supporting the concept of a "connection" generically
+   (what does this TODO item mean?)
+
+ - test/name-test should be named test/with-bus or something like that
+
 
 
- - The OBJECT_PATH type is not documented in the spec.