[rename] renamed kdbus related macros
[platform/upstream/dbus.git] / README.win
index b941a08..4e4f757 100644 (file)
-----------------------------------------
+-----------------------------------------
 Windows port of the freedesktop.org D-Bus
-----------------------------------------
+-----------------------------------------
 
-Requirements 
-------------
-- cmake version >= 2.4.4 see http://www.cmake.org 
-- installed libxml2 or libexpat 
+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
 
-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 win32libs packages from 
-               http://www.abi-neuhaus.de/chris/win32libs/
-   into a subdir win32libs in your program installation eg c:\Programme\win32libs (german) 
-   or "c:\Program Files\win32libs" (english) 
-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
+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
 -----
-(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
----
+ - dbus library check
+    bin\dbus-test.exe <build-root>\test\data
 
-- How much work remains till DBUS win32 can be merged with the main project?
+ - bus daemon check
+    bin\bus-test.exe <build-root>\test\data
 
-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
+ - check available names
+    bin\test_names.exe
 
-I assume they will answer ALL your questions, and they are very
-interested in fully supporting win32.
+ - 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"]
 
-- 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.
+ - 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
 
-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.
+    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.
 
 
-- On UNIX D-Bus uses UNIX sockets to communicate (correct me if I'm wrong). 
+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.
 
+  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.
-
+  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?
 
-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.
+  The OpenWengo dbus-c++ binding has been ported to windows see in WinDBus svn
+  (http://sf.net/projects/windbus)
+  The related test applications are running well.
 
 
 TODO
 ----
 
-February 2007:
+October 2010:
+
+- the code wrapped with DBUS_WIN_FIXME should be inspected if it required for windows
 
-- 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
+- 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
 
-see also:
-http://lists.freedesktop.org/archives/dbus/2006-July/005076.html
+- 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:<username>".
+  Also the dbus installer should start a session bus on user login.