Commit 30213f4b authored by Ralf Habacker's avatar Ralf Habacker

Cleaned up windows related README's.

parent d0da9218
On 2009-10-21 I (Tor Lillqvist <tml@iki.fi>) cherry-picked a bunch of
commits from the dbus4win-noncetcp branch of the dbus4win repository
to (my clone of) dbus upstream's master branch.
The dbus4win repository is at least currently at
git://repo.or.cz/dbus4win.git
I went through the commits done to the dbus4win-noncetcp branch since
the dbus-1.2.14 tag, i.e. commit f719d454329a1a54ff2d569feaf10ceee7cead50.
The following commits were left out because they either 0) were
already upstream, 1) seemed broken, or 2) seemed pointless to me,
especially if the commit message didn't say much. For each commit left
out, below is three lines: its id, the first log comment line, and an
explanation why I left it out.
f719d454329a1a54ff2d569feaf10ceee7cead50
configure.in: not all gccs support -Wno-pointer-sign
already upstream
6eddb6e1229b617ad44c8d61107983229dc7d589
configure.in: fail abstract socket test gracefully when cross-compilin
already upstream
c54dd9eefa5ed0d54be3b09cf30c12f05130fda1
r783: one ifdef lesser
probably pointless
93c288ca3e86e7760d3ac3fa6490257c1b6dc544
r783: compile if ENOMEM or EINTR is undefined.
huh, ENOMEM and EINTR is defined in the Microsoft C library
4f4ba13357da15c35a9d4ad111bf972a5d0d5db0
r783: introduced _dbus_daemon_release() function called in _dbus_loop_quit()...
this can't be right, there can be nested dbus loops afaik
124eb334324472a10de2c7e0a1455d353431f08f
unix build fixes against windbus-svn
can't be right to make a char* const when the code below then assigns through it
594bd19a0c45822d8763871e3491d99beb4d22cb
introduce DBUS_DIR_SEPERATOR and make use of it. On windows, disable some system service tests
"forward" slashes work fine on Windows, no need to uglify code with DBUS_DIR_SEPARATOR
cd2cdb3457f72cf058d5b19796ee691ceca6b52c
r783: introduced DBUS_CLEANUP_OLD_SERVICES that does cleanup prev zombie-instances...
unsure about this. something specific to KDE-on-Windows?
eeedba5b2f5b008819619764943caddd52441adf
build fixes for OS X, xcode 3.1.2, gcc 4.2.1
doesn't apply, seems to be upstream?
7dc7f71cf3003e006f6e177b5460d14a7cdbf2de
configure.in: fix pthread detection
doesn't apply
05b37fa87b1f6aa670de9007879f53a8198a7a89
configure.in: suppress -fPIC, -fPIE for W32
doesn't apply
b0d14fed92d9f539cd3478e72dc2f3ea75f3941a
configure.in: only check for wspiapi.h on Windows
nah, no harm checking for it on UNIX too
1724fc10e516e2d570537d522d8608abba90be5e
prototypes cleanup
related to cd2cdb3457f72cf058d5b19796ee691ceca6b52c which was skipped above
-----------------------------------------
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.
Building
--------
DBus could be build on windows using automake or cmake. See the
file README for more informations.
Special cmake build instructions could 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 <build-root>\test\data
- bus daemon check
bin\bus-test.exe <build-root>\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 informations
- 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:<username>".
Also the dbus installer should start a session bus on user login.
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
......@@ -35,5 +35,5 @@ win32-msvc
6. make
7. make install
A list of all build options could be find in the file ../README.
A list of all available build options could be find in the file ../README.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment