D-Bus


I’m currently in the miami airport having a Boston Lager to celebrate St. Patrick’s day while waiting for my flight to San Paulo, Brazil. BOSSA will be a blast but I do regret not being able to celebrate with my friends back in Boston.

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

A little over a year after releasing D-Bus 1.0.0 I am proud to announce the beginning of a new series of stable releases. This is effectively the 1.2.x stable series though the version does not reflect that yet due to non-technical reasons discussed in the release notes bellow. This replaces the 1.0.x series while still staying ABI compatible. What this means is that applications written for the 1.0.x versions of D-Bus should still run unmodified using the 1.2.x library and bus.

D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a “single instance” application or daemon, and to launch applications and daemons on demand when their services are needed.

Major Version Feature List

  • Features
    • The system bus now supports starting services on demand. This uses a setuid helper program because system bus daemon runs as a nobody user, while services it launches may need to run as a different user.
      • A design doc is available in doc/system-activation.txt
    • The TCP address format has been enhanced, such that TCP may be actually usable.
      • The dbus-daemon man page describes the new elements in the address format.
    • Support ANONYMOUS mechanism for authentication, which allows a client to authenticate as nobody in particular
      • The ANONYMOUS support means you can now use D-Bus (without a bus daemon) as a protocol for a network service provided to anonymous Internet or LAN clients.
    • Autolaunched busses now save their parameters in X11 if possible making them behave closer to busses launched through the normal mechanisms
    • inotify is now the default backend for watching configuration file changes
    • Better thread support.
    • The bus daemon now generates a globally-unique ID for itself.
      • Use this as a unique ID for a user’s session, for example.
    • Support for message serialization added for use with external transports like TUBES!!!
    • Better eavesdropping support now picks up reply messages for debugging
  • Library API additions
    • dbus_connection_set_allow_anonymous() – allow the message stream to begin if the client auths as anonymous (otherwise, the client will be dropped unless they auth as a user).
    • dbus_watch_get_unix_fd() – replaces dbus_watch_get_fd
    • dbus_watch_get_socket() – replaces dbus_watch_get_fd
    • dbus_server_get_id() – available to access the unique ID of a particular address
    • dbus_connection_get_server_id() – available to access the unique ID of a particular address
    • dbus_message_marshal() – serializes a message into a byte array
    • dbus_message_demarshal() – de-serializes a byte array into a message
  • Library API deprecations
    • dbus_watch_get_fd() – had unclear cross-platform semantics
  • Protocol additions
    • Argument path matching of the type arg0path=’/aa/bb/’ is now supported
    • New error org.freedesktop.DBus.Error.ObjectPathInUse added
    • ANONYMOUS auth support added
    • GetAll call added to the properties interface for getting a list of properties an object exports

Release Notes

  • This is the next generation supported STABLE release of D-Bus. For all intents and purposes this is the 1.2.0 release WITHOUT the planned X11/MIT license change due to a couple of license holders who have yet to respond. For the most part this license change is being pursued to simplify licensing issues and fix a couple of licensing corner cases. When this happens D-Bus will be released under the 1.2.0 version.
  • D-Bus 1.0.x effectively goes into security fix mode and will only be updated for major issues.
  • Fixed CVE-2008-0595 – security policy of the type <allow send_interface= “some.interface.WithMethods“/> work as an implicit allow for messages sent without an interface bypassing the default deny rules and potentially allowing restricted methods exported on the bus to be executed by unauthorized users.
  • Fixes dbus-launch so the session bus goes away so does D-Bus
  • Builds against latest gcc/glibc changes
  • Correctly unref connections without guids during shutdown
  • About the name: Submitted by Greg K Nicholson, Coniston Water is a lake in Cumbria, England where several water speed records have been broken. Between 1956 and 1959 Sir Malcolm’s son Donald Campbell set four successive records on the lake in Bluebird K7, a hydroplane. Wikipedia

Get D-Bus 1.1.20 “Coniston Water”!!!

Go to the D-Bus web site for more information.

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

Well folks, D-Bus 1.1.3 has a little bug introduced via the inotify patch which would consume 100% of your memory, go into the OOM killer and subsequently consume 100% of your CPU. This is exactly why we have the Release Candidate series, to root out any last minute issues. Thanks to all who tested and sacrificed their productivity to get us to this next release. D-Bus 1.1.4 (1.2.0RC2) is now available for your perusal.

Download: http://dbus.freedesktop.org/releases/dbus/dbus-1.1.4.tar.gz
Homepage: http://www.freedesktop.org/wiki/Software/dbus

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

Who knew if you promise something you have to deliver. Well here you are, D-Bus 1.1.3 or as I like to refer to it 1.2.0RC1. That's right, if everything goes well within a week we should have our second major D-Bus release. I'll wait until then to get nostalgic about the great old days of 1.0.0 "Blue Bird". Why when I was your age D-Bus wasn't even at a major version and we didn't even have a recursive type system...but I digress. Here is the info you have been waiting for:

  • This release is intended to be Release Candidate 1 of major release D-Bus 1.2.0. If nothing is found to be wrong with this release it will become 1.2.0 within a week. If we need to make major changes we will release an RC2 and start the process over
    again. 
  • This is a development release, so API's may still change if problems are found (though this is extremely unlikely). 
  • DTD for the introspection format is fixed and uploaded to the servers 
  • Sources now reside in a git repository at http://gitweb.freedesktop.org/?p=dbus/dbus.git;a=summary 
  • Argument path matching of the type arg0path='/aa/bb/' is now supported (see the specification for more information) 
  • New error org.freedesktop.DBus.Error.ObjectPathInUse added 
  • Autolaunched busses now save their parameters in X11 if possible making them behave closer to busses launched through the normal mechanisms 
  • inotify is now the default backend for watching configuration file changes 
  • More support for the AIX platform has been added 
  • Numerous bug fixes and performance enhancements

Download: http://dbus.freedesktop.org/releases/dbus/dbus-1.1.3.tar.gz
Homepage: http://www.freedesktop.org/wiki/Software/dbus

P.S. Anyone want to suggest a name for 1.2.0? The rules are it needs to have some logical connection to the previous major release “Blue Bird”.

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

Just thought I would take “release early, release often” to heart. Hot on the heels of 0.1.7 is a major feature release 0.1.8. As of this version all complex and simple D-Bus types are displayed properly in the UI even if they are nested.

nested-types1.png

Please let me know if you ever see an Error(<some char>) in the parameter lists.

As usual:

Homepage: http://d-feet.fedorahosted.org

Tarball: http://johnp.fedorapeople.org/d-feet-0.1.8.tar.gz

Rawhide and Fedora 8: yum install d-feet

[read this post in: ar de es fr it ja ko pt ru zh-CN ]
  • update the license for _introspect_parser.py to permissive since dbus-python was relicensed (this just makes including this code easier since the GPL/AFL dual license confused some people)
  • add placeholder icons to denote methods, properties and signals, does someone want to make a standard set of programmer tool icons?dfeet-icons1.png
  • default service icon now added to the package for distributions that do not ship an icon called icon-servicedefault-service1.png
  • argument types now show the parameter name if given in the introspect data paramnames1.png
  • selecting a property now attempts to read the property and display a value property-value1.png
  • prettier formatting for introspect output
  • various bug fixes

Tarball:

http://johnp.fedorapeople.org/d-feet-0.1.7.tar.gz

Rawhide and Fedora 8:

yum install d-feet

d-feet20080107-small.png

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

I’ve been so busy lately I just noticed my Decorators on a Dime article was published by Python Magazine.  Pretty neat!

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

A new D-Feet D-Bus Debugger has been released. Some cool new features have been added and a lot of the code has been reorganized.

  • no longer restricted to the System and Session busses
    • using the connection dialog you can attach to any bus address you need
    • screenshot-add-a-connection.png
  • each bus tab is restored on startup if the address exists
    • d-feet-016-tabs.png
  • execute button makes executing methods more descoverable
    • button in toolbar become sensitive when you select a method from the introspect data
    • d-feet-016-execute.png
    • d-feet-016-execute-dialog.png
  • icons show up if app associated with a name has a toplevel window
    • based on libwnck so the application needs to have mapped a toplevel window
    • d-feet-016-app-icons.png
  • initial support for icons on introspect nodes
    • d-feet-016-introspect-icons.png
  • syntax highlighting and nicer formatting for methods and signals
    • unicode arrow used for return values of methods (Ray Strode)
    • d-feet-016-syntax-highlighting.png
  • support for property lists in the introspect data (Marcel Holtmann)
  • move to gtk.Builder for UI
    • requires PyGtk >= 2.12.0 and Gtk+ >= 2.12.0

Get It

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

I’ve been playing around with a little tool for debugging applications on the bus. It is far from done but I decided to release it now that it has become useful. Right now you can see all names on the Session and System buses and get information on the objects and interfaces they export.

Current Features

  • View names on the session and system bus
  • View exported objects, interfaces, methods and signals
  • View the full command line of services on the bus
  • Execute methods with parameters on the bus and see their return values

Planed Features

  • Attach to any address
  • Watch, edit and play back method calls
  • Watch signals
  • Attach scripted actions to triggers
  • Profiler for D-Bus calls
  • Assistant for creating async call chains

Info

Homepage: http://hosted.fedoraproject.org/projects/d-feet/
Tarball: http://johnp.fedorapeople.org/d-feet-0.1.4.tar.gz
Fedora: yum install d-feet
(Should be built for Rawhide, F-8 and F-7 though it may take a bit to be pushed as an update to F-8 and F-7)

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

Colin, wrong way around.  I don’t think D-Bus wants a dependency on upstart.  For various reasons we strive hard to not have complex external dependencies with the exception of some security models which is just out of necessity.   The other way around is more fesable.

[read this post in: ar de es fr it ja ko pt ru zh-CN ]

« Previous PageNext Page »