BIND 10 #849: DBus as possible replacement of MSGQ.

BIND 10 Development do-not-reply at isc.org
Thu Apr 14 10:45:56 UTC 2011


#849: DBus as possible replacement of MSGQ.
-------------------------------------+-------------------------------------
                 Reporter:  vorner   |                Owner:  vorner
                     Type:  task     |               Status:  reviewing
                 Priority:  major    |            Milestone:
                Component:           |  Sprint-20110419
  Unclassified                       |           Resolution:
                 Keywords:           |            Sensitive:  0
Estimated Number of Hours:  0.0      |  Add Hours to Ticket:  0
                Billable?:  1        |          Total Hours:  0
                Internal?:  0        |
-------------------------------------+-------------------------------------
Changes (by stephen):

 * owner:  stephen => vorner


Comment:

 I agree with Michal and have the following additional comments:

 '''Licence'''[[BR]]
 * Even with AFL "Some of the standalone binaries are under the GPL only"
 (from the source code's COPYING file).  This raises the bar but does not
 necessarily rule it out - after all, if these are standalone, then BIND 10
 will not be a "derivative work".
 * With AFL, we would need to prominently attribute in the source code that
 part of the code is D-Bus and subject to the AFL.
 * When AFL code is distributed, "You must make a reasonable effort under
 the circumstances to obtain the express assent of recipients to the terms
 of this License.".  Obviously the question of "what is reasonable" is
 subject to interpretation but if the code is downloadable from a web site,
 I would argue that "reasonable" would include the need to check a box to
 confirm that person downloading the software has read the terms and
 conditions before the download is allowed.

 However, as Michal noted, the FAQ explicitly states that it can be used in
 proprietary applications.

 '''Bindings'''[[BR]]
 Regarding the C++ bindings, D-Bus is written in C so it should not be an
 insurmountable problem to create a useful interface layer in C++.
 However, the documentation does warn "If you use this low-level API
 directly, you're signing up for some pain" which may indicate that coding
 our own binding in C++ will be far from straight forward.


 '''Miscellaneous'''[[BR]]
  * Sending file descriptors for sockets between processes in Windows is
 awkward but can apparently be done through the function
 WSADuplicateSocket; whether D-Bus can handle this is another matter.

  * D-Bus comes with qdbus, a tool to examine the state of the bus and
 generally aid diagnosis of problems.  This could prove very useful and
 avoid us having to write our own.

  * I'd see the real blocker in the use of D-Bus as being how important
 cross-machine communication is.  TCP support appears to be very limited -
 two quotes from the D-Bus web pages are:
    - "Currently the communicating applications are on one computer, or
 through unencrypted TCP/IP suitable for use behind a firewall with shared
 NFS home directories."
    - "The TCP/IP transport isn't tested in use and it has the problems of
 access control, lack of encryption, and inability to go through firewalls
 and NAT."

 '''Comments on Conclusions'''[[BR]]
 I think this seems a good product, although I have the following
 reservations:
 * Licence: the fact that part of the distribution - even if only stand-
 alone applications - is GPL.  Introducing that caveat into BIND 10
 documentation may make people nervous.
 * The need to write our own C++ wrapper.  This may be non-trivial.
 However, if we do this we should consider making it a separate project and
 making the output available to the D-Bus community.
 * If cross-machine support is required, the limited TCP support may be an
 insuperable hurdle.

 For these reasons, I'd be keen to see if something else is better before
 making a decision to go with this one.

-- 
Ticket URL: <http://bind10.isc.org/ticket/849#comment:4>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list