summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-04-29 21:56:37 +0000
committerHavoc Pennington <hp@redhat.com>2003-04-29 21:56:37 +0000
commitae759bff511cfbd28bdb668a532ba9169d05af2d (patch)
treee6573551a278025e7220c0788de8beb80ff2d600
parent2a708128adc5e825471a3a63d6bc7a53005ae237 (diff)
2003-04-29 Havoc Pennington <hp@redhat.com>
* dbus-1.pc.in, dbus-glib-1.pc.in: rename these from dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the parallel install API version, not with the D-BUS package version. * HACKING: move some of README over here * README: updates, and document API/ABI policy * configure.in: reindentation
-rw-r--r--ChangeLog12
-rw-r--r--HACKING44
-rw-r--r--README89
-rwxr-xr-xautogen.sh2
-rw-r--r--configure.in16
-rw-r--r--dbus-1.pc.in (renamed from dbus-1.0.pc.in)0
-rw-r--r--dbus-glib-1.pc.in (renamed from dbus-glib-1.0.pc.in)0
-rw-r--r--dbus/dbus.h2
8 files changed, 121 insertions, 44 deletions
diff --git a/ChangeLog b/ChangeLog
index a6257d8f..d9477709 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2003-04-29 Havoc Pennington <hp@redhat.com>
+ * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
+ dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
+ parallel install API version, not with the D-BUS package version.
+
+ * HACKING: move some of README over here
+
+ * README: updates, and document API/ABI policy
+
+ * configure.in: reindentation
+
+2003-04-29 Havoc Pennington <hp@redhat.com>
+
* dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
to use this library" to be sure people have the right
expectations.
diff --git a/HACKING b/HACKING
index d8fc1f92..3bd2e094 100644
--- a/HACKING
+++ b/HACKING
@@ -98,3 +98,47 @@ To make a release of D-BUS, do the following:
- post to message-bus-list@freedesktop.org announcing the release.
+
+Environment variables
+===
+
+These are the environment variables that are used by the D-BUS client library
+
+DBUS_VERBOSE=1
+Turns on printing verbose messages. This only works if D-BUS has been
+compiled with --enable-verbose-mode
+
+DBUS_MALLOC_FAIL_NTH=n
+Can be set to a number, causing every nth call to dbus_alloc or
+dbus_realloc to fail. This only works if D-BUS has been compiled with
+--enable-tests.
+
+DBUS_MALLOC_FAIL_GREATER_THAN=n
+Can be set to a number, causing every call to dbus_alloc or
+dbus_realloc to fail if the number of bytes to be allocated is greater
+than the specified number. This only works if D-BUS has been compiled with
+--enable-tests.
+
+Tests
+===
+
+These are the test programs that are built if dbus is compiled using
+--enable-tests.
+
+dbus/dbus-test
+This is the main unit test program that tests all aspects of the D-BUS
+client library.
+
+dbus/bus-test
+This it the unit test program for the message bus.
+
+test/break-loader
+A test that tries to break the message loader by passing it randomly
+created invalid messages.
+
+"make check" runs all the deterministic test programs (i.e. not break-loader).
+
+"make check-coverage" is available if you configure with --enable-gcov and
+gives a complete report on test suite coverage. You can also run
+"test/decode-gcov foo.c" on any source file to get annotated source,
+after running make check with a gcov-enabled tree.
diff --git a/README b/README
index 4ac8cb24..fb246dcc 100644
--- a/README
+++ b/README
@@ -1,52 +1,73 @@
D-BUS is a simple IPC library based on messages.
+See also the file HACKING for notes of interest to developers working on D-BUS.
+
+See http://www.freedesktop.org/software/dbus/ for lots of documentation,
+mailing lists, etc.
+
Configuration flags
===
-These are the configuration flags that can be given to the ./configure program.
+These are the dbus-specific configuration flags that can be given to
+the ./configure program.
---enable-qt enable Qt-friendly client library
---enable-glib enable GLib-friendly client library
---enable-tests enable unit test code
---enable-ansi enable -ansi -pedantic gcc flags
---enable-verbose-mode support verbose debug mode
---enable-asserts include assertion checks
---enable-gcov compile with coverage profiling instrumentation (gcc only)
+ --enable-qt enable Qt-friendly client library
+ --enable-glib enable GLib-friendly client library
+ --enable-tests enable unit test code
+ --enable-ansi enable -ansi -pedantic gcc flags
+ --enable-verbose-mode support verbose debug mode
+ --enable-asserts include assertion checks
+ --enable-checks include sanity checks on public API
+ --enable-docs build documentation (requires Doxygen and jade)
+ --enable-gcov compile with coverage profiling instrumentation (gcc only)
+ --with-xml=libxml/expat XML library to use
+ --with-init-scripts=redhat Style of init scripts to install
+ --with-session-socket-dir=dirname Where to put sockets for the per-login-session message bus
+ --with-test-socket-dir=dirname Where to put sockets for make check
+ --with-system-pid-file=pidfile PID file for systemwide daemon
+ --with-system-socket=filename UNIX domain socket for systemwide daemon
-Environment variables
-===
-These are the environment variables that are used by the D-BUS client library
+API/ABI Policy
+===
-DBUS_VERBOSE=1
-Turns on printing verbose messages. This only works if D-BUS has been
-compiled with --enable-verbose-mode
+D-BUS API/ABI and protocol necessarily remain in flux until we are
+sure it will meet the various needs it's intended to meet. This means
+we need to see some significant sample usage in the contexts of GNOME,
+KDE, desktop applications, and systemwide uses such as print queue
+monitoring, hotplug events, or whatever. We need the flexibility to
+incorporate feedback from this sample usage.
-DBUS_MALLOC_FAIL_NTH=n
-Can be set to a number, causing every nth call to dbus_alloc or
-dbus_realloc to fail. This only works if D-BUS has been compiled with
---enable-tests.
+Once we feel confident in the protocol and the API, we will release a
+version 1.0. At that point, the intent is:
-DBUS_MALLOC_FAIL_GREATER_THAN=n
-Can be set to a number, causing every call to dbus_alloc or
-dbus_realloc to fail if the number of bytes to be allocated is greater
-than the specified number. This only works if D-BUS has been compiled with
---enable-tests.
+ - The protocol will never be broken again; any message bus should
+ work with any client forever. However, extensions are possible
+ where the protocol is extensible.
+ - If the library API is modified incompatibly, we will rename it
+ as in http://ometer.com/parallel.html - in other words,
+ it will always be possible to compile against and use the older
+ API, and apps will always get the API they expect.
-Tests
-===
+Until 1.0 is released, feedback that requires API changes may be
+incorporated into D-BUS. This may break the API, the ABI, the
+protocol, or all three.
-These are the test programs that are built if dbus is compiled using
---enable-tests.
+To avoid a huge soname, the plan is to increment the soname only
+between official stable releases, not with every development snapshot.
+Versions numbered 0.x are considered development snapshots.
-dbus/dbus-test
-This is the main unit test program that tests all aspects of the D-BUS
-client library.
+Until 1.0 is released, you have to define -DDBUS_API_SUBJECT_TO_CHANGE
+just as a safety check to be sure everyone is aware of this API/ABI
+policy and has the right expectations.
-test/break-loader
-A test that tries to break the message loader by passing it invalid messages.
+We do need people to test the APIs, so please do use the development
+snapshots of D-BUS. They are intended to work and we do actively
+address bugs.
-test/bus-test
-A test that simulates a bus daemon and tests it.
+However, if you're shipping a commercial binary-only application that
+needs to keep running on M future versions of N operating systems, you
+might want to include your own copy of D-BUS rather than relying on
+the installed copy, for example.
diff --git a/autogen.sh b/autogen.sh
index 0b374df9..a7c9b590 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -9,7 +9,7 @@ cd $srcdir
PROJECT=dbus
TEST_TYPE=-f
-FILE=dbus-1.0.pc.in
+FILE=dbus-1.pc.in
DIE=0
diff --git a/configure.in b/configure.in
index 07830d90..91759117 100644
--- a/configure.in
+++ b/configure.in
@@ -31,14 +31,14 @@ AC_ARG_ENABLE(verbose-mode, [ --enable-verbose-mode support verbose debug mode]
AC_ARG_ENABLE(asserts, [ --enable-asserts include assertion checks],enable_asserts=$enableval,enable_asserts=$USE_MAINTAINER_MODE)
AC_ARG_ENABLE(checks, [ --enable-checks include sanity checks on public API],enable_checks=$enableval,enable_checks=yes)
AC_ARG_ENABLE(docs, [ --enable-docs build documentation (requires Doxygen and jade)],enable_docs=$enableval,enable_docs=auto)
-AC_ARG_ENABLE(gcov, [ --enable-gcov compile with coverage profiling instrumentation (gcc only)],enable_gcov=$enableval,enable_gcov=no)
+AC_ARG_ENABLE(gcov, [ --enable-gcov compile with coverage profiling instrumentation (gcc only)],enable_gcov=$enableval,enable_gcov=no)
-AC_ARG_WITH(xml, [ --with-xml=[libxml/expat] XML library to use])
-AC_ARG_WITH(init-scripts, [ --with-init-scripts=[redhat] Style of init scripts to install])
+AC_ARG_WITH(xml, [ --with-xml=[libxml/expat] XML library to use])
+AC_ARG_WITH(init-scripts, [ --with-init-scripts=[redhat] Style of init scripts to install])
AC_ARG_WITH(session-socket-dir, [ --with-session-socket-dir=[dirname] Where to put sockets for the per-login-session message bus])
-AC_ARG_WITH(test-socket-dir, [ --with-test-socket-dir=[dirname] Where to put sockets for make check])
-AC_ARG_WITH(system-pid-file, [ --with-system-pid-file=[pidfile] PID file for systemwide daemon])
-AC_ARG_WITH(system-socket, [ --with-system-socket=[filename] UNIX domain socket for systemwide daemon])
+AC_ARG_WITH(test-socket-dir, [ --with-test-socket-dir=[dirname] Where to put sockets for make check])
+AC_ARG_WITH(system-pid-file, [ --with-system-pid-file=[pidfile] PID file for systemwide daemon])
+AC_ARG_WITH(system-socket, [ --with-system-socket=[filename] UNIX domain socket for systemwide daemon])
dnl DBUS_BUILD_TESTS controls unit tests built in to .c files
dnl and also some stuff in the test/ subdir
@@ -596,8 +596,8 @@ bus/Makefile
tools/Makefile
test/Makefile
doc/Makefile
-dbus-1.0.pc
-dbus-glib-1.0.pc
+dbus-1.pc
+dbus-glib-1.pc
test/data/valid-config-files/debug-allow-all.conf
test/data/valid-config-files/debug-allow-all-sha1.conf
test/data/valid-service-files/debug-echo.service
diff --git a/dbus-1.0.pc.in b/dbus-1.pc.in
index 1b535ba2..1b535ba2 100644
--- a/dbus-1.0.pc.in
+++ b/dbus-1.pc.in
diff --git a/dbus-glib-1.0.pc.in b/dbus-glib-1.pc.in
index 81ac8c73..81ac8c73 100644
--- a/dbus-glib-1.0.pc.in
+++ b/dbus-glib-1.pc.in
diff --git a/dbus/dbus.h b/dbus/dbus.h
index d7fec9b9..0dd072ac 100644
--- a/dbus/dbus.h
+++ b/dbus/dbus.h
@@ -27,7 +27,7 @@
#define DBUS_INSIDE_DBUS_H 1
#ifndef DBUS_API_SUBJECT_TO_CHANGE
-#error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. That said, you are encouraged to use it and we are actively fixing bugs and believe it to be functional."
+#error "Please define DBUS_API_SUBJECT_TO_CHANGE to acknowledge your understanding that D-BUS hasn't reached 1.0 and is subject to protocol and API churn. See the README for a full explanation."
#endif
#include <dbus/dbus-arch-deps.h>