1-----------------------------------------
2Windows port of the freedesktop.org D-Bus
3-----------------------------------------
4
5Features and completeness
6-------------------------
7The windows port of dbus provides the dbus-1 library and mostly
8applications which are already available on unix. These applications
9are: dbus-daemon, dbus-launch, dbus-monitor and dbus-send.
10DBus comes with a test suite which is used on unix to guarantate
11production quality and this test suite runs mostly. There are some
12test not running yet and there is help needed to get them running.
13
14Supported compilers
15-------------------
16On windows Microsoft Visual Studio 2010 (Express and professional variants)
17and mingw-w64|32 are known to work.
18
19Building
20--------
21DBus can be built on windows using automake or cmake. See the
22file README for more information.
23Special cmake build instructions can be found in cmake/readme-cmake.txt
24
25
26windbus and dbus4win Ports
27--------------------------
28The Windows ports from the windbus and dbus4win projects has been merged
29into the freedesktop git master branch, as applicable. The spec has been
30updated with windows specific stuff.
31
32
33Tests
34-----
35 - dbus library check
36    bin\dbus-test.exe <build-root>\test\data
37
38 - bus daemon check
39    bin\bus-test.exe <build-root>\test\data
40
41 - check available names
42    bin\test_names.exe
43
44 - check if dbus-daemon is accessable
45    bin\dbus-send.exe --session --type=method_call --print-reply --dest=org.freedesktop.DBus / org.freedesktop.DBus.ListNames method return sender=org.freedesktop.DBus -> dest=:1.4 array [ string "org.freedesktop.DBus"string ":1.4"]
46
47 - start session dbus-daemon
48    either by running
49        bin\dbus-launch
50    or
51        start bin\dbus-daemon --session
52
53    Before running these commands you may execute
54        set DBUS_VERBOSE=1
55    for getting debug infos
56
57
58 - call function registerd in dbus
59    bin\dbus-send.exe  --dest=org.freedesktop.DBus --print-reply --type=method_call / org.freedesktop.DBus.StartServiceByName string:org.freedesktop.DBus.TestSuiteEchoService  uint32:455 method return sender=org.freedesktop.DBus -> dest=:1.8 uint32 2
60
61    note: When building with the Visual C++ IDE the *.exe files are in
62          the bin/Debug and bin/Release folder, not in the bin folder.
63
64
65FAQ
66---
67
68- How far is WinDBus from being usable for production ?
69
70  dbus comes with a test suite which is used on unix to guarantate
71  production quality and this test suite runs mostly. There are some
72  test not running and we need help to get them running.
73  In the pratice I and some other people are using dbus for at least more
74  than four years in conjunction with kde on windows without any problems.
75
76- On UNIX D-Bus uses UNIX sockets to communicate (correct me if I'm wrong).
77  What is used on Windows ?
78
79  tcp sockets, there are some efforts to get named pipe running, but some
80  design problems of the win32 api, we are not able to solve without
81  bigger changes to the dbus code base let us stop this effort.
82
83- Do you have any clue if dbus-win32 can run in a Windows CE environment?
84
85  dbus has been ported to wince, see README.wince for more information
86
87- Do you know if the C++ binding made by OpenWengo will be easily portable to Windows?
88
89  The OpenWengo dbus-c++ binding has been ported to windows see in WinDBus svn
90  (http://sf.net/projects/windbus)
91  The related test applicationa are running well.
92
93
94TODO
95----
96
97Oktober 2010:
98
99- the code wrapped with DBUS_WIN_FIXME should be inspected if it required for windows
100
101- create a dbus setup installer
102
103- implement system bus and system bus service starter
104  see http://windbus.svn.sourceforge.net/viewvc/windbus/trunk/bus/bus-service-win.c
105  for a starting point
106
107- implement a real login session bus
108  The scope parameter of the autolaunch meta protocol could be extended to support user
109  specific session busses (like already done with the amarok bundled dbus which use a
110  shared memory area named "DBusDaemonAddressInfo:<username>".
111  Also the dbus installer should start a session bus on user login.
112