----------------------------------------- Windows port of the freedesktop.org D-Bus ----------------------------------------- Features and completeness ------------------------- The windows port of dbus provides the dbus-1 library and mostly applications which are already available on unix. These applications are: dbus-daemon, dbus-launch, dbus-monitor and dbus-send. DBus comes with a test suite which is used on unix to guarantate production quality and this test suite runs mostly. There are some test not running yet and there is help needed to get them running. Supported compilers ------------------- On windows Microsoft Visual Studio 2010 (Express and professional variants) and mingw-w64|32 are known to work. Building -------- DBus can be built on windows using automake or cmake. See the file README for more information. Special cmake build instructions can be found in cmake/readme-cmake.txt windbus and dbus4win Ports -------------------------- The Windows ports from the windbus and dbus4win projects has been merged into the freedesktop git master branch, as applicable. The spec has been updated with windows specific stuff. Tests ----- - dbus library check bin\dbus-test.exe \test\data - bus daemon check bin\bus-test.exe \test\data - check available names bin\test_names.exe - check if dbus-daemon is accessable 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"] - start session dbus-daemon either by running bin\dbus-launch or start bin\dbus-daemon --session Before running these commands you may execute set DBUS_VERBOSE=1 for getting debug infos - call function registerd in dbus 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 note: When building with the Visual C++ IDE the *.exe files are in the bin/Debug and bin/Release folder, not in the bin folder. FAQ --- - How far is WinDBus from being usable for production ? dbus comes with a test suite which is used on unix to guarantate production quality and this test suite runs mostly. There are some test not running and we need help to get them running. In the pratice I and some other people are using dbus for at least more than four years in conjunction with kde on windows without any problems. - On UNIX D-Bus uses UNIX sockets to communicate (correct me if I'm wrong). What is used on Windows ? tcp sockets, there are some efforts to get named pipe running, but some design problems of the win32 api, we are not able to solve without bigger changes to the dbus code base let us stop this effort. - Do you have any clue if dbus-win32 can run in a Windows CE environment? dbus has been ported to wince, see README.wince for more information - Do you know if the C++ binding made by OpenWengo will be easily portable to Windows? The OpenWengo dbus-c++ binding has been ported to windows see in WinDBus svn (http://sf.net/projects/windbus) The related test applicationa are running well. TODO ---- Oktober 2010: - the code wrapped with DBUS_WIN_FIXME should be inspected if it required for windows - create a dbus setup installer - implement system bus and system bus service starter see http://windbus.svn.sourceforge.net/viewvc/windbus/trunk/bus/bus-service-win.c for a starting point - implement a real login session bus The scope parameter of the autolaunch meta protocol could be extended to support user specific session busses (like already done with the amarok bundled dbus which use a shared memory area named "DBusDaemonAddressInfo:". Also the dbus installer should start a session bus on user login.