| This README.windbus file below originates from the "windbus" fork. It |
| does not reflect reality here. Changes from both windbus and the |
| separate "dbus4win" fork have been merged into this code repository, |
| as applicable. |
| |
| ---------------------------------------- |
| Windows port of the freedesktop.org D-Bus |
| ---------------------------------------- |
| |
| Requirements |
| ------------ |
| - cmake version >= 2.4.4 see http://www.cmake.org |
| - installed libxml2 or libexpat from http://82.149.170.66/kde-windows/win32libs |
| |
| Build |
| ----- |
| |
| unix |
| 1. install cmake and libxml or libexpat |
| 2. get dbus sources |
| 3. mkdir dbus-build |
| 4. cd dbus-build |
| 5. cmake <dbus-src-root>/cmake or cmake -DDBUS_USE_EXPAT=on <dbus-src-root>/cmake in case libexpat should de used |
| 5. make |
| 6. make install |
| |
| win32 |
| 1. Install your prefered compiler |
| - Mingw from www.mingw.org |
| - Visual C++ 2005 Express/Studio |
| |
| 2. Install libxml2 or libexpat packages from |
| http://82.149.170.66/kde-windows/win32libs |
| into a subdir win32libs in your program installation eg |
| - german => "c:\Programme\win32libs" |
| - english => "c:\Program Files\win32libs" |
| |
| 3. download and install the most recent CMake version from http://www.cmake.org/files/ |
| |
| 4. apply dbus-win.patch: 'patch -p0 -i dbus-win.patch' |
| |
| 5. open command shell and run in the created build folder which resides side by side |
| to the D-Bus sources: |
| - for mingw: |
| cmake -G "MinGW Makefiles" <options> ..\<dbus-source-root>\cmake |
| - for Visual C++ |
| cmake ..\<dbus-source-root>\cmake |
| |
| 7. build |
| |
| |
| Tests |
| ----- |
| (when build with the Visual C++ IDE the *.exe files are |
| in the bin/Debug and bin/Release folder) |
| |
| - 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 dbus-daemon |
| * set DBUS_VERBOSE=0 (=1 for getting debug infos) |
| * start bin\dbus-daemon --session |
| * 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 |
| |
| |
| |
| Some build options |
| ------------- |
| key description default value |
| --- ----------- ------------- |
| DBUS_USE_EXPAT "Use expat (== ON) or libxml2 (==OFF) OFF |
| DBUS_DISABLE_ASSERTS "Disable assertion checking" OFF |
| DBUS_BUILD_TESTS "enable unit test code" ON |
| DBUS_ENABLE_ANSI "enable -ansi -pedantic gcc flags" OFF |
| DBUS_ENABLE_GCOV "compile with coverage profiling |
| instrumentation (gcc only)" OFF |
| DBUS_ENABLE_VERBOSE_MODE "support verbose debug mode" ON |
| DBUS_DISABLE_CHECKS "Disable public API sanity checking" OFF |
| DBUS_INSTALL_SYSTEM_LIBS "install required system libraries |
| (mingw: libxml2, libiconv, mingw10)" OFF |
| CMAKE_BUILD_TYPE "build type (== debug) or (== release) release |
| |
| |
| |
| Developers |
| ---------- |
| |
| Running the tests in Visual Studio: |
| |
| To successfully run the tests by the IDE you must add |
| the FULL patch to test\data in your build directory |
| (e.g. c:\dbus\build\test\data) |
| in something like |
| -> Project Settings |
| -> Debugging |
| -> Command line arguments |
| |
| |
| |
| FAQ |
| --- |
| |
| - How much work remains till DBUS win32 can be merged with the main project? |
| |
| There are some patches outstanding and the most effort is required in |
| discussions with the main dbus team how to implement some parts. One of |
| the main dbus team estimated the open work to one fulltime week. |
| http://lists.freedesktop.org/archives/dbus/2006-November/006264.html |
| |
| I assume they will answer ALL your questions, and they are very |
| interested in fully supporting win32. |
| |
| - 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 a half year 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? |
| |
| I was told that windows ce does not have posix function |
| open/close/select/... and dbus code uses such function in some area. |
| |
| |
| - Do you know if the C++ binding made by OpenWengo will be easily portable to Windows? |
| |
| We have already ported the OpenWengo dbus-c++ binding, see in WinDBus svn (http://sf.net/projects/windbus) |
| The related test applicationa are running well. |
| |
| |
| TODO |
| ---- |
| |
| February 2007: |
| |
| - all changes of dbus-win.patch should become part of the official D-Bus code |
| |
| - all code currently disabled by DBUS_WIN_FIXME should work |
| |
| - clean up: |
| * bus/bus-service-win.c |
| * bus/dir-watch.c |
| * dbus/dbus-spawn-win.c |
| * dbus/dbus-sysdeps-util-win.c |
| * dbus/dbus-sysdeps-win.c |
| |
| |
| see also: |
| http://lists.freedesktop.org/archives/dbus/2006-July/005076.html |