Find a file
Mark McLoughlin 46c072e113 2003-09-25 Mark McLoughlin <mark@skynet.ie>
* doc/dbus-specification.sgml: don't require header fields
	to be 4-byte aligned and specify that fields should be
	distinguished from padding by the fact that zero is not
	a valid field name.

	* doc/TODO: remove re-alignment item and add item to doc
	the OBJECT_PATH type.

	* dbus/dbus-message.c:
	(HeaderField): rename the original member to value_offset
	and introduce a name_offset member to keep track of where
	the field actually begins.
	(adjust_field_offsets): remove.
	(append_int_field), (append_uint_field),
	(append_string_field): don't align the start of the header
	field to a 4-byte boundary.
	(get_next_field): impl finding the next marhsalled field
	after a given field.
	(re_align_field_recurse): impl re-aligning a number of
	already marshalled fields.
	(delete_field): impl deleting a field of any type and
	re-aligning any following fields.
	(delete_int_or_uint_field), (delete_string_field): remove.
	(set_int_field), (set_uint_field): no need to re-check
	that we have the correct type for the field.
	(set_string_field): ditto and impl re-aligning any
	following fields.
	(decode_header_data): update to take into account that
	the fields aren't 4-byte aligned any more and the new
	way to distinguish padding from header fields. Also,
	don't exit when there is too much header padding.
	(process_test_subdir): print the directory.
	(_dbus_message_test): add test to make sure a following
	field is re-aligned correctly after field deletion.

	* dbus/dbus-string.[ch]:
	(_dbus_string_insert_bytes): rename from insert_byte and
	allow the insert of multiple bytes.
	(_dbus_string_test): test inserting multiple bytes.

	* dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
	warning note to docs about having to re-align any
	marshalled values following the string.

	* dbus/dbus-message-builder.c:
	(append_string_field), (_dbus_message_data_load):
	don't align the header field.

	* dbus/dbus-auth.c: (process_test_subdir): print the
	directory.

	* test/break-loader.c: (randomly_add_one_byte): upd. for
	insert_byte change.

	* test/data/invalid-messages/bad-header-field-alignment.message:
	new test case.

	* test/data/valid-messages/unknown-header-field.message: shove
	a dict in the unknown field.
2003-09-25 08:50:14 +00:00
bus 2003-09-23 Havoc Pennington <hp@redhat.com> 2003-09-23 23:47:09 +00:00
dbus 2003-09-25 Mark McLoughlin <mark@skynet.ie> 2003-09-25 08:50:14 +00:00
doc 2003-09-25 Mark McLoughlin <mark@skynet.ie> 2003-09-25 08:50:14 +00:00
gcj 2003-06-23 Anders Carlsson <andersca@codefactory.se> 2003-06-23 17:39:48 +00:00
glib 2003-09-23 Havoc Pennington <hp@pobox.com> 2003-09-24 02:58:14 +00:00
mono 2003-06-29 Havoc Pennington <hp@pobox.com> 2003-07-03 01:48:31 +00:00
python 2003-09-25 Seth Nickell <seth@gnome.org> 2003-09-25 08:46:39 +00:00
qt 2003-04-06 Havoc Pennington <hp@pobox.com> 2003-04-07 02:01:53 +00:00
test 2003-09-25 Mark McLoughlin <mark@skynet.ie> 2003-09-25 08:50:14 +00:00
tools 2003-09-21 Havoc Pennington <hp@pobox.com> 2003-09-21 19:53:56 +00:00
.cvsignore 2003-02-16 Havoc Pennington <hp@pobox.com> 2003-02-16 07:20:54 +00:00
acinclude.m4 2003-09-21 Seth Nickell <seth@gnome.org> 2003-09-22 05:45:59 +00:00
AUTHORS 2003-04-13 Havoc Pennington <hp@pobox.com> 2003-04-14 03:25:19 +00:00
autogen.sh 2003-05-15 Havoc Pennington <hp@redhat.com> 2003-05-15 19:59:19 +00:00
ChangeLog 2003-09-25 Mark McLoughlin <mark@skynet.ie> 2003-09-25 08:50:14 +00:00
configure.in 2003-09-21 Seth Nickell <seth@gnome.org> 2003-09-22 05:45:59 +00:00
COPYING 2003-06-01 Havoc Pennington <hp@pobox.com> 2003-06-01 07:33:59 +00:00
dbus-1.pc.in 2003-04-29 Havoc Pennington <hp@redhat.com> 2003-04-29 21:56:37 +00:00
dbus-glib-1.pc.in 2003-06-22 Anders Carlsson <andersca@codefactory.se> 2003-06-22 06:53:42 +00:00
Doxyfile.in 2003-09-07 Havoc Pennington <hp@pobox.com> 2003-09-07 23:04:54 +00:00
HACKING 2003-04-29 Havoc Pennington <hp@redhat.com> 2003-04-29 21:56:37 +00:00
INSTALL initial import of "dbus" skeleton 2002-11-21 16:41:33 +00:00
Makefile.am 2003-09-21 Seth Nickell <seth@gnome.org> 2003-09-22 05:45:59 +00:00
Makefile.cvs 2002-11-21 Havoc Pennington <hp@redhat.com> 2002-11-21 19:03:04 +00:00
NEWS 2003-05-15 Havoc Pennington <hp@redhat.com> 2003-05-15 19:59:19 +00:00
README 2003-04-29 Havoc Pennington <hp@redhat.com> 2003-04-29 21:56:37 +00:00

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 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-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


API/ABI Policy
===

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.

Once we feel confident in the protocol and the API, we will release a 
version 1.0. At that point, the intent is:

 - 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.

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.

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.

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.

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.

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.