Added documentation for the --enable-python configure switch
[platform/upstream/dbus.git] / README
1 D-BUS is a simple IPC library based on messages.
2
3 See also the file HACKING for notes of interest to developers working on D-BUS.
4
5 See http://www.freedesktop.org/software/dbus/ for lots of documentation, 
6 mailing lists, etc.
7
8 Configuration flags
9 ===
10
11 These are the dbus-specific configuration flags that can be given to
12 the ./configure program.
13
14   --enable-qt      enable Qt-friendly client library
15   --enable-glib    enable GLib-friendly client library
16   --enable-mono    enable mono bindings
17   --enable-mono-docs build mono documentation (requires monodoc)
18   --enable-tests   enable unit test code
19   --enable-ansi    enable -ansi -pedantic gcc flags
20   --enable-verbose-mode support verbose debug mode
21   --enable-asserts include assertion checks
22   --enable-checks  include sanity checks on public API
23   --enable-docs    build documentation (requires Doxygen and jade)
24   --enable-gcov    compile with coverage profiling instrumentation (gcc only)
25   --enable-python  build python bindings (reqires Pyrex >= 0.9)
26
27   --with-xml=libxml/expat           XML library to use
28   --with-init-scripts=redhat        Style of init scripts to install
29   --with-session-socket-dir=dirname Where to put sockets for the per-login-session message bus
30   --with-test-socket-dir=dirname    Where to put sockets for make check
31   --with-system-pid-file=pidfile    PID file for systemwide daemon
32   --with-system-socket=filename     UNIX domain socket for systemwide daemon
33
34
35 API/ABI Policy
36 ===
37
38 D-BUS API/ABI and protocol necessarily remain in flux until we are
39 sure it will meet the various needs it's intended to meet. This means
40 we need to see some significant sample usage in the contexts of GNOME,
41 KDE, desktop applications, and systemwide uses such as print queue
42 monitoring, hotplug events, or whatever. We need the flexibility to
43 incorporate feedback from this sample usage.
44
45 Once we feel confident in the protocol and the API, we will release a 
46 version 1.0. At that point, the intent is:
47
48  - The protocol will never be broken again; any message bus should 
49    work with any client forever. However, extensions are possible
50    where the protocol is extensible.
51
52  - If the library API is modified incompatibly, we will rename it 
53    as in http://ometer.com/parallel.html - in other words, 
54    it will always be possible to compile against and use the older 
55    API, and apps will always get the API they expect.
56
57 Until 1.0 is released, feedback that requires API changes may be
58 incorporated into D-BUS. This may break the API, the ABI, the
59 protocol, or all three.
60
61 To avoid a huge soname, the plan is to increment the soname only
62 between official stable releases, not with every development snapshot.
63 Versions numbered 0.x are considered development snapshots.
64
65 Until 1.0 is released, you have to define -DDBUS_API_SUBJECT_TO_CHANGE
66 just as a safety check to be sure everyone is aware of this API/ABI
67 policy and has the right expectations.
68
69 We do need people to test the APIs, so please do use the development
70 snapshots of D-BUS. They are intended to work and we do actively
71 address bugs.
72
73 However, if you're shipping a commercial binary-only application that
74 needs to keep running on M future versions of N operating systems, you
75 might want to include your own copy of D-BUS rather than relying on
76 the installed copy, for example.