diff options
author | Seemant Kulleen <seemant@gentoo.org> | 2003-06-22 01:34:50 +0000 |
---|---|---|
committer | Seemant Kulleen <seemant@gentoo.org> | 2003-06-22 01:34:50 +0000 |
commit | 1b8151a0775a67b2bd4e8ec80a0d35da004b20a5 (patch) | |
tree | 138868dee47c7640e5e529040673401edccaee64 /sys-apps/dbus/files | |
parent | blah (diff) | |
download | historical-1b8151a0775a67b2bd4e8ec80a0d35da004b20a5.tar.gz historical-1b8151a0775a67b2bd4e8ec80a0d35da004b20a5.tar.bz2 historical-1b8151a0775a67b2bd4e8ec80a0d35da004b20a5.zip |
blah
Diffstat (limited to 'sys-apps/dbus/files')
-rw-r--r-- | sys-apps/dbus/files/dbus-0.11-cvs-update.patch | 7403 | ||||
-rw-r--r-- | sys-apps/dbus/files/digest-dbus-0.11 | 1 |
2 files changed, 7404 insertions, 0 deletions
diff --git a/sys-apps/dbus/files/dbus-0.11-cvs-update.patch b/sys-apps/dbus/files/dbus-0.11-cvs-update.patch new file mode 100644 index 000000000000..6a610d88080d --- /dev/null +++ b/sys-apps/dbus/files/dbus-0.11-cvs-update.patch @@ -0,0 +1,7403 @@ +diff -urN dbus-0.11.orig/ChangeLog dbus-0.11/ChangeLog +--- dbus-0.11.orig/ChangeLog 2003-05-15 12:50:37.000000000 -0700 ++++ dbus-0.11/ChangeLog 2003-05-28 13:32:17.000000000 -0700 +@@ -1,3 +1,74 @@ ++2003-05-18 Anders Carlsson <andersca@codefactory.se> ++ ++ * dbus/dbus-message.c (dbus_message_new): Remove @todo. ++ ++2003-05-17 Colin Walters <walters@gnu.org> ++ ++ * tools/dbus-send.c: Don't exit with an error code if --help was ++ passed. Default to using the session bus instead of the system ++ one. ++ ++ * tools/dbus-launch.c: Ditto. ++ ++ * tools/dbus-monitor.c: Ditto. ++ ++ * tools/dbus-send.1: Update with new arguments. ++ ++ * tools/dbus-launch.c: Emit code to export variables. New ++ arguments -s and -c to specify shell syntax, and a bit of code to ++ autodetect syntax. Also, allow specifying a program to run. ++ ++ * tools/dbus-launch.1: Update with new arguments. ++ ++ * tools/dbus-send.1: Ditto. ++ ++ * tools/dbus-monitor.1: Ditto. ++ ++2003-05-17 Havoc Pennington <hp@pobox.com> ++ ++ * bus/config-parser.c (merge_included): merge in policies from ++ child configuration file. ++ ++ * bus/policy.c (bus_policy_merge): function to merge two policies ++ together ++ ++2003-05-16 Havoc Pennington <hp@redhat.com> ++ ++ * dbus/dbus-connection.c: disable verbose lock spew ++ ++ * tools/dbus-send.c: add --print-reply command line option ++ ++ * tools/dbus-print-message.h (print_message): new util function ++ shared by dbus-send and dbus-monitor ++ ++ * tools/dbus-monitor.c (handler_func): exit on disconnect ++ ++ * dbus/dbus-transport-unix.c (do_reading): if the transport is ++ disconnected, don't try to use the read_watch ++ ++ * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL ++ so we can find this bug more easily ++ ++2003-05-16 Havoc Pennington <hp@redhat.com> ++ ++ * bus/policy.c (free_rule_list_func): avoid a crash when passed ++ NULL as DBusHashTable is annoyingly likely to do. ++ ++2003-05-16 Colin Walters <walters@verbum.org> ++ ++ * tools/dbus-monitor.c: Add --session argument and usage() ++ function. ++ ++ * tools/dbus-monitor.1: Update with new --session arg. ++ ++ * bus/Makefile.am (install-data-hook): Create ++ $(libdir)/dbus-1.0/services so that the session bus is happy. ++ ++2003-05-15 Havoc Pennington <hp@redhat.com> ++ ++ * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work ++ on non-x86. ifdef's are evil. ++ + 2003-05-15 Havoc Pennington <hp@redhat.com> + + * configure.in: 0.11 +diff -urN dbus-0.11.orig/Makefile.in dbus-0.11/Makefile.in +--- dbus-0.11.orig/Makefile.in 2003-05-15 12:50:57.000000000 -0700 ++++ dbus-0.11/Makefile.in 2003-05-28 13:34:13.000000000 -0700 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.7.3 from Makefile.am. ++# Makefile.in generated by automake 1.7.5 from Makefile.am. + # @configure_input@ + + # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +@@ -390,9 +390,15 @@ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ ++ if (etags --etags-include --version) >/dev/null 2>&1; then \ ++ include_option=--etags-include; \ ++ else \ ++ include_option=--include; \ ++ fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ +- test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ ++ test -f $$subdir/TAGS && \ ++ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ +@@ -536,7 +542,7 @@ + @echo "$(distdir).tar.gz is ready for distribution" | \ + sed 'h;s/./=/g;p;x;p;x' + distuninstallcheck: +- cd $(distuninstallcheck_dir) \ ++ @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ +@@ -545,11 +551,11 @@ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 + distcleancheck: distclean +- if test '$(srcdir)' = . ; then \ ++ @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi +- test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ ++ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +diff -urN dbus-0.11.orig/aclocal.m4 dbus-0.11/aclocal.m4 +--- dbus-0.11.orig/aclocal.m4 2003-05-15 12:50:53.000000000 -0700 ++++ dbus-0.11/aclocal.m4 2003-05-28 13:34:07.000000000 -0700 +@@ -1,4 +1,4 @@ +-# generated automatically by aclocal 1.7.3 -*- Autoconf -*- ++# generated automatically by aclocal 1.7.5 -*- Autoconf -*- + + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 + # Free Software Foundation, Inc. +@@ -74,7 +74,7 @@ + # This macro actually does too much some checks are only needed if + # your package does certain things. But this isn't really a big deal. + +-# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 + # Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify +@@ -92,14 +92,7 @@ + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + # 02111-1307, USA. + +-# serial 9 +- +-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +-# written in clear, in which case automake, when reading aclocal.m4, +-# will think it sees a *use*, and therefore will trigger all it's +-# C support machinery. Also note that it means that autoscan, seeing +-# CC etc. in the Makefile, will ask for an AC_PROG_CC use... +- ++# serial 10 + + AC_PREREQ([2.54]) + +@@ -228,7 +221,7 @@ + # Call AM_AUTOMAKE_VERSION so it can be traced. + # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. + AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +- [AM_AUTOMAKE_VERSION([1.7.3])]) ++ [AM_AUTOMAKE_VERSION([1.7.5])]) + + # Helper functions for option handling. -*- Autoconf -*- + +@@ -778,7 +771,7 @@ + + # Check to see how 'make' treats includes. -*- Autoconf -*- + +-# Copyright (C) 2001, 2002 Free Software Foundation, Inc. ++# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by +@@ -803,8 +796,9 @@ + AC_DEFUN([AM_MAKE_INCLUDE], + [am_make=${MAKE-make} + cat > confinc << 'END' +-doit: ++am__doit: + @echo done ++.PHONY: am__doit + END + # If we don't find an include directive, just comment out the code. + AC_MSG_CHECKING([for style of include used by $am_make]) +@@ -832,9 +826,9 @@ + _am_result=BSD + fi + fi +-AC_SUBST(am__include) +-AC_SUBST(am__quote) +-AC_MSG_RESULT($_am_result) ++AC_SUBST([am__include]) ++AC_SUBST([am__quote]) ++AC_MSG_RESULT([$_am_result]) + rm -f confinc confmf + ]) + +@@ -2331,30 +2325,6 @@ + hardcode_shlibpath_var=no + ;; + +- linux*) +- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- supports_anon_versioning=no +- case `$LD -v 2>/dev/null` in +- *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 +- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... +- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... +- *\ 2.11.*) ;; # other 2.11 versions +- *) supports_anon_versioning=yes ;; +- esac +- if test $supports_anon_versioning = yes; then +- archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ +-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +-$echo "local: *; };" >> $output_objdir/$libname.ver~ +- $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' +- else +- $archive_expsym_cmds="$archive_cmds" +- fi +- else +- ld_shlibs=no +- fi +- ;; +- + *) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +@@ -2493,7 +2463,7 @@ + allow_undefined_flag='${wl}-berok' + # This is a bit strange, but is similar to how AIX traditionally builds + # it's shared libraries. +- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname' ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; +@@ -3024,6 +2994,18 @@ + dynamic_linker=no + ;; + ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ + freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat +@@ -3189,6 +3171,7 @@ + osf3* | osf4* | osf5*) + version_type=osf + need_version=no ++ need_lib_prefix=no + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH +@@ -4323,7 +4306,7 @@ + # This must be Linux ELF. + linux-gnu*) + case $host_cpu in +- alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | arm* | m68k) + lt_cv_deplibs_check_method=pass_all ;; + *) + # glibc up to 2.1.1 does not perform some relocations on ARM +diff -urN dbus-0.11.orig/bus/Makefile.am dbus-0.11/bus/Makefile.am +--- dbus-0.11.orig/bus/Makefile.am 2003-05-15 12:50:25.000000000 -0700 ++++ dbus-0.11/bus/Makefile.am 2003-05-16 00:01:38.000000000 -0700 +@@ -86,6 +86,7 @@ + install-data-hook: + $(mkinstalldirs) $(DESTDIR)/$(localstatedir)/run/dbus + $(mkinstalldirs) $(DESTDIR)/$(configdir)/system.d ++ $(mkinstalldirs) $(DESTDIR)/$(libdir)/dbus-1.0/services + + #### Init scripts fun + SCRIPT_IN_FILES=messagebus.in +diff -urN dbus-0.11.orig/bus/Makefile.in dbus-0.11/bus/Makefile.in +--- dbus-0.11.orig/bus/Makefile.in 2003-05-15 12:50:57.000000000 -0700 ++++ dbus-0.11/bus/Makefile.in 2003-05-28 13:34:13.000000000 -0700 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.7.3 from Makefile.am. ++# Makefile.in generated by automake 1.7.5 from Makefile.am. + # @configure_input@ + + # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +@@ -277,6 +277,7 @@ + #### Extra dist + EXTRA_DIST = $(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) $(man_MANS) $(MAN_IN_FILES) + subdir = bus ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/config.h + CONFIG_CLEAN_FILES = system.conf session.conf messagebus dbus-daemon-1.1 +@@ -454,7 +455,7 @@ + .c.o: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -465,7 +466,7 @@ + .c.obj: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -476,7 +477,7 @@ + .c.lo: + @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@@ -724,7 +725,6 @@ + + installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(initddir) $(DESTDIR)$(man1dir) $(DESTDIR)$(configdir) +- + install: install-am + install-exec: install-exec-am + install-data: install-data-am +@@ -823,6 +823,7 @@ + install-data-hook: + $(mkinstalldirs) $(DESTDIR)/$(localstatedir)/run/dbus + $(mkinstalldirs) $(DESTDIR)/$(configdir)/system.d ++ $(mkinstalldirs) $(DESTDIR)/$(libdir)/dbus-1.0/services + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: +diff -urN dbus-0.11.orig/bus/bus.c dbus-0.11/bus/bus.c +--- dbus-0.11.orig/bus/bus.c 2003-05-05 12:10:38.000000000 -0700 ++++ dbus-0.11/bus/bus.c 2003-05-16 13:25:47.000000000 -0700 +@@ -970,6 +970,7 @@ + "had name \"%s\" destination \"%s\")", + dbus_message_get_name (message), + dest ? dest : DBUS_SERVICE_DBUS); ++ _dbus_verbose ("security policy disallowing message due to sender policy\n"); + return FALSE; + } + +@@ -986,6 +987,7 @@ + "had name \"%s\" destination \"%s\")", + dbus_message_get_name (message), + dest ? dest : DBUS_SERVICE_DBUS); ++ _dbus_verbose ("security policy disallowing message due to recipient policy\n"); + return FALSE; + } + +@@ -998,8 +1000,10 @@ + dbus_set_error (error, DBUS_ERROR_LIMITS_EXCEEDED, + "The destination service \"%s\" has a full message queue", + dest ? dest : DBUS_SERVICE_DBUS); ++ _dbus_verbose ("security policy disallowing message due to full message queue\n"); + return FALSE; + } +- ++ ++ _dbus_verbose ("security policy allowing message\n"); + return TRUE; + } +diff -urN dbus-0.11.orig/bus/config-parser.c dbus-0.11/bus/config-parser.c +--- dbus-0.11.orig/bus/config-parser.c 2003-04-28 11:49:04.000000000 -0700 ++++ dbus-0.11/bus/config-parser.c 2003-05-17 19:16:22.000000000 -0700 +@@ -231,6 +231,13 @@ + { + DBusList *link; + ++ if (!bus_policy_merge (parser->policy, ++ included->policy)) ++ { ++ BUS_SET_OOM (error); ++ return FALSE; ++ } ++ + if (included->user != NULL) + { + dbus_free (parser->user); +diff -urN dbus-0.11.orig/bus/dbus-daemon-1.1 dbus-0.11/bus/dbus-daemon-1.1 +--- dbus-0.11.orig/bus/dbus-daemon-1.1 2003-05-15 12:51:12.000000000 -0700 ++++ dbus-0.11/bus/dbus-daemon-1.1 2003-05-28 13:34:41.000000000 -0700 +@@ -30,9 +30,9 @@ + + .PP + The \-\-session option is equivalent to +-"\-\-config-file=/unst/etc/dbus-1/session.conf" and the \-\-system ++"\-\-config-file=/build/dbus/etc/dbus-1/session.conf" and the \-\-system + option is equivalent to +-"\-\-config-file=/unst/etc/dbus-1/system.conf". By creating ++"\-\-config-file=/build/dbus/etc/dbus-1/system.conf". By creating + additional configuration files and using the \-\-config-file option, + additional special-purpose message bus daemons could be created. + +@@ -106,8 +106,8 @@ + + .PP + The standard systemwide and per-session message bus setups are +-configured in the files "/unst/etc/dbus-1/system.conf" and +-"/unst/etc/dbus-1/session.conf". These files normally ++configured in the files "/build/dbus/etc/dbus-1/system.conf" and ++"/build/dbus/etc/dbus-1/session.conf". These files normally + <include> a system-local.conf or session-local.conf; you can put local + overrides in those files to avoid modifying the primary configuration + files. +@@ -169,7 +169,7 @@ + This is intended to allow extension of the system bus by particular + packages. For example, if CUPS wants to be able to send out + notification of printer queue changes, it could install a file to +-/unst/etc/dbus-1/system.d that allowed all apps to receive ++/build/dbus/etc/dbus-1/system.d that allowed all apps to receive + this message and allowed the printer daemon user to send it. + + .TP +diff -urN dbus-0.11.orig/bus/policy.c dbus-0.11/bus/policy.c +--- dbus-0.11.orig/bus/policy.c 2003-04-28 11:10:54.000000000 -0700 ++++ dbus-0.11/bus/policy.c 2003-05-17 19:16:22.000000000 -0700 +@@ -124,6 +124,9 @@ + { + DBusList **list = data; + ++ if (list == NULL) /* DBusHashTable is on crack */ ++ return; ++ + _dbus_list_foreach (list, free_rule_func, NULL); + + _dbus_list_clear (list); +@@ -509,6 +512,87 @@ + return TRUE; + } + ++static dbus_bool_t ++append_copy_of_policy_list (DBusList **list, ++ DBusList **to_append) ++{ ++ DBusList *link; ++ DBusList *tmp_list; ++ ++ tmp_list = NULL; ++ ++ /* Preallocate all our links */ ++ link = _dbus_list_get_first_link (to_append); ++ while (link != NULL) ++ { ++ if (!_dbus_list_append (&tmp_list, link->data)) ++ { ++ _dbus_list_clear (&tmp_list); ++ return FALSE; ++ } ++ ++ link = _dbus_list_get_next_link (to_append, link); ++ } ++ ++ /* Now append them */ ++ while ((link = _dbus_list_pop_first_link (&tmp_list))) ++ { ++ bus_policy_rule_ref (link->data); ++ _dbus_list_append_link (list, link); ++ } ++ ++ return TRUE; ++} ++ ++static dbus_bool_t ++merge_id_hash (DBusHashTable *dest, ++ DBusHashTable *to_absorb) ++{ ++ DBusHashIter iter; ++ ++ _dbus_hash_iter_init (to_absorb, &iter); ++ while (_dbus_hash_iter_next (&iter)) ++ { ++ unsigned long id = _dbus_hash_iter_get_ulong_key (&iter); ++ DBusList **list = _dbus_hash_iter_get_value (&iter); ++ DBusList **target = get_list (dest, id); ++ ++ if (target == NULL) ++ return FALSE; ++ ++ if (!append_copy_of_policy_list (target, list)) ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++dbus_bool_t ++bus_policy_merge (BusPolicy *policy, ++ BusPolicy *to_absorb) ++{ ++ /* Not properly atomic, but as used for configuration files ++ * we don't rely on it. ++ */ ++ if (!append_copy_of_policy_list (&policy->default_rules, ++ &to_absorb->default_rules)) ++ return FALSE; ++ ++ if (!append_copy_of_policy_list (&policy->mandatory_rules, ++ &to_absorb->mandatory_rules)) ++ return FALSE; ++ ++ if (!merge_id_hash (policy->rules_by_uid, ++ to_absorb->rules_by_uid)) ++ return FALSE; ++ ++ if (!merge_id_hash (policy->rules_by_gid, ++ to_absorb->rules_by_gid)) ++ return FALSE; ++ ++ return TRUE; ++} ++ + struct BusClientPolicy + { + int refcount; +diff -urN dbus-0.11.orig/bus/policy.h dbus-0.11/bus/policy.h +--- dbus-0.11.orig/bus/policy.h 2003-04-28 11:10:54.000000000 -0700 ++++ dbus-0.11/bus/policy.h 2003-05-17 19:16:22.000000000 -0700 +@@ -111,7 +111,8 @@ + dbus_bool_t bus_policy_append_group_rule (BusPolicy *policy, + dbus_gid_t gid, + BusPolicyRule *rule); +- ++dbus_bool_t bus_policy_merge (BusPolicy *policy, ++ BusPolicy *to_absorb); + + BusClientPolicy* bus_client_policy_new (void); + void bus_client_policy_ref (BusClientPolicy *policy); +diff -urN dbus-0.11.orig/bus/system.conf.in dbus-0.11/bus/system.conf.in +--- dbus-0.11.orig/bus/system.conf.in 2003-05-02 15:12:23.000000000 -0700 ++++ dbus-0.11/bus/system.conf.in 2003-05-16 13:25:47.000000000 -0700 +@@ -37,6 +37,8 @@ + <!-- But allow all users to connect --> + <allow user="*"/> + <!-- Allow anyone to talk to the message bus --> ++ <!-- FIXME I think currently these allow rules are always implicit ++ even if they aren't in here --> + <allow send_to="org.freedesktop.DBus"/> + <allow receive_from="org.freedesktop.DBus"/> + </policy> +diff -urN dbus-0.11.orig/config.guess dbus-0.11/config.guess +--- dbus-0.11.orig/config.guess 2003-05-15 12:50:52.000000000 -0700 ++++ dbus-0.11/config.guess 2003-05-28 13:34:06.000000000 -0700 +@@ -1,9 +1,9 @@ + #! /bin/sh + # Attempt to guess a canonical system name. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002 Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +-timestamp='2002-10-21' ++timestamp='2003-05-19' + + # This file is free software; you can redistribute it and/or modify it + # under the terms of the GNU General Public License as published by +@@ -98,14 +98,17 @@ + # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still + # use `HOST_CC' if defined, but it is deprecated. + +-# This shell variable is my proudest work .. or something. --bje ++# Portable tmp directory creation inspired by the Autoconf team. + +-set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; +-(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) +- || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; +-dummy=$tmpdir/dummy ; +-files="$dummy.c $dummy.o $dummy.rel $dummy" ; +-trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; ++set_cc_for_build=' ++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; ++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; ++: ${TMPDIR=/tmp} ; ++ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || ++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; ++dummy=$tmp/dummy ; ++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; + case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do +@@ -113,15 +116,13 @@ + CC_FOR_BUILD="$c"; break ; + fi ; + done ; +- rm -f $files ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +-esac ; +-unset files' ++esac ;' + + # This is needed to find uname on a Pyramid OSx when run in the BSD universe. + # (ghazi@noc.rutgers.edu 1994-08-24) +@@ -178,7 +179,18 @@ + ;; + esac + # The OS release +- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ # Debian GNU/NetBSD machines have a different userland, and ++ # thus, need a distinct triplet. However, they do not need ++ # kernel version information, so it can be replaced with a ++ # suitable tag, in the style of linux-gnu. ++ case "${UNAME_VERSION}" in ++ Debian*) ++ release='-gnu' ++ ;; ++ *) ++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ++ ;; ++ esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. +@@ -227,66 +239,47 @@ + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi ++ # According to Compaq, /usr/sbin/psrinfo has been available on ++ # OSF/1 and Tru64 systems produced since 1995. I hope that ++ # covers most systems running today. This code pipes the CPU ++ # types through head -n 1, so we only detect the type of CPU 0. ++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` ++ case "$ALPHA_CPU_TYPE" in ++ "EV4 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "EV4.5 (21064)") ++ UNAME_MACHINE="alpha" ;; ++ "LCA4 (21066/21068)") ++ UNAME_MACHINE="alpha" ;; ++ "EV5 (21164)") ++ UNAME_MACHINE="alphaev5" ;; ++ "EV5.6 (21164A)") ++ UNAME_MACHINE="alphaev56" ;; ++ "EV5.6 (21164PC)") ++ UNAME_MACHINE="alphapca56" ;; ++ "EV5.7 (21164PC)") ++ UNAME_MACHINE="alphapca57" ;; ++ "EV6 (21264)") ++ UNAME_MACHINE="alphaev6" ;; ++ "EV6.7 (21264A)") ++ UNAME_MACHINE="alphaev67" ;; ++ "EV6.8CB (21264C)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8AL (21264B)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.8CX (21264D)") ++ UNAME_MACHINE="alphaev68" ;; ++ "EV6.9A (21264/EV69A)") ++ UNAME_MACHINE="alphaev69" ;; ++ "EV7 (21364)") ++ UNAME_MACHINE="alphaev7" ;; ++ "EV7.9 (21364A)") ++ UNAME_MACHINE="alphaev79" ;; ++ esac + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. +- eval $set_cc_for_build +- cat <<EOF >$dummy.s +- .data +-\$Lformat: +- .byte 37,100,45,37,120,10,0 # "%d-%x\n" +- +- .text +- .globl main +- .align 4 +- .ent main +-main: +- .frame \$30,16,\$26,0 +- ldgp \$29,0(\$27) +- .prologue 1 +- .long 0x47e03d80 # implver \$0 +- lda \$2,-1 +- .long 0x47e20c21 # amask \$2,\$1 +- lda \$16,\$Lformat +- mov \$0,\$17 +- not \$1,\$18 +- jsr \$26,printf +- ldgp \$29,0(\$26) +- mov 0,\$16 +- jsr \$26,exit +- .end main +-EOF +- $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null +- if test "$?" = 0 ; then +- case `$dummy` in +- 0-0) +- UNAME_MACHINE="alpha" +- ;; +- 1-0) +- UNAME_MACHINE="alphaev5" +- ;; +- 1-1) +- UNAME_MACHINE="alphaev56" +- ;; +- 1-101) +- UNAME_MACHINE="alphapca56" +- ;; +- 2-303) +- UNAME_MACHINE="alphaev6" +- ;; +- 2-307) +- UNAME_MACHINE="alphaev67" +- ;; +- 2-1307) +- UNAME_MACHINE="alphaev68" +- ;; +- 3-1307) +- UNAME_MACHINE="alphaev7" +- ;; +- esac +- fi +- rm -f $dummy.s $dummy && rmdir $tmpdir + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha\ *:Windows_NT*:*) +@@ -439,8 +432,7 @@ + EOF + $CC_FOR_BUILD -o $dummy $dummy.c \ + && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ +- && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 +- rm -f $dummy.c $dummy && rmdir $tmpdir ++ && exit 0 + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) +@@ -449,7 +441,7 @@ + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; +- Night_Hawk:*:*:PowerMAX_OS) ++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) +@@ -524,8 +516,7 @@ + exit(0); + } + EOF +- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 +- rm -f $dummy.c $dummy && rmdir $tmpdir ++ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 +@@ -624,10 +615,20 @@ + } + EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` +- if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi +- rm -f $dummy.c $dummy && rmdir $tmpdir ++ test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac ++ if [ ${HP_ARCH} = "hppa2.0w" ] ++ then ++ # avoid double evaluation of $set_cc_for_build ++ test -n "$CC_FOR_BUILD" || eval $set_cc_for_build ++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null ++ then ++ HP_ARCH="hppa2.0w" ++ else ++ HP_ARCH="hppa64" ++ fi ++ fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) +@@ -661,8 +662,7 @@ + exit (0); + } + EOF +- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 +- rm -f $dummy.c $dummy && rmdir $tmpdir ++ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) +@@ -720,15 +720,15 @@ + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; +- CRAY*T3D:*:*:*) +- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' +- exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; ++ *:UNICOS/mp:*:*) ++ echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ++ exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` +@@ -744,7 +744,7 @@ + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; +- *:FreeBSD:*:*) ++ *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) + # Determine whether the default compiler uses glibc. + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +@@ -756,7 +756,6 @@ + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` +- rm -f $dummy.c && rmdir $tmpdir + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + exit 0 ;; + i*:CYGWIN*:*) +@@ -769,13 +768,16 @@ + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + x86:Interix*:3*) +- echo i386-pc-interix3 ++ echo i586-pc-interix3 ++ exit 0 ;; ++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ++ echo i${UNAME_MACHINE}-pc-mks + exit 0 ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? +- echo i386-pc-interix ++ echo i586-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin +@@ -795,6 +797,9 @@ + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; ++ cris:Linux:*:*) ++ echo cris-axis-linux-gnu ++ exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; +@@ -818,8 +823,26 @@ + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` +- rm -f $dummy.c && rmdir $tmpdir +- test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 ++ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ++ ;; ++ mips64:Linux:*:*) ++ eval $set_cc_for_build ++ sed 's/^ //' << EOF >$dummy.c ++ #undef CPU ++ #undef mips64 ++ #undef mips64el ++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ++ CPU=mips64el ++ #else ++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ++ CPU=mips64 ++ #else ++ CPU= ++ #endif ++ #endif ++EOF ++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` ++ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu +@@ -914,7 +937,6 @@ + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` +- rm -f $dummy.c && rmdir $tmpdir + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; +@@ -932,6 +954,23 @@ + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; ++ i*86:OS/2:*:*) ++ # If we were able to find `uname', then EMX Unix compatibility ++ # is probably installed. ++ echo ${UNAME_MACHINE}-pc-os2-emx ++ exit 0 ;; ++ i*86:XTS-300:*:STOP) ++ echo ${UNAME_MACHINE}-unknown-stop ++ exit 0 ;; ++ i*86:atheos:*:*) ++ echo ${UNAME_MACHINE}-unknown-atheos ++ exit 0 ;; ++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ++ echo i386-unknown-lynxos${UNAME_RELEASE} ++ exit 0 ;; ++ i*86:*DOS:*:*) ++ echo ${UNAME_MACHINE}-pc-msdosdjgpp ++ exit 0 ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then +@@ -966,9 +1005,6 @@ + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; +- i*86:*DOS:*:*) +- echo ${UNAME_MACHINE}-pc-msdosdjgpp +- exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about +@@ -995,9 +1031,12 @@ + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit 0 ;; ++ M680?0:D-NIX:5.3:*) ++ echo m68k-diab-dnix ++ exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; +- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) ++ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` +@@ -1014,9 +1053,6 @@ + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; +- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) +- echo i386-unknown-lynxos${UNAME_RELEASE} +- exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; +@@ -1098,7 +1134,11 @@ + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) +- echo `uname -p`-apple-darwin${UNAME_RELEASE} ++ case `uname -p` in ++ *86) UNAME_PROCESSOR=i686 ;; ++ powerpc) UNAME_PROCESSOR=powerpc ;; ++ esac ++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` +@@ -1134,11 +1174,6 @@ + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; +- i*86:OS/2:*:*) +- # If we were able to find `uname', then EMX Unix compatibility +- # is probably installed. +- echo ${UNAME_MACHINE}-pc-os2-emx +- exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; +@@ -1157,12 +1192,6 @@ + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; +- i*86:XTS-300:*:STOP) +- echo ${UNAME_MACHINE}-unknown-stop +- exit 0 ;; +- i*86:atheos:*:*) +- echo ${UNAME_MACHINE}-unknown-atheos +- exit 0 ;; + esac + + #echo '(No uname command or uname output not recognized.)' 1>&2 +@@ -1283,8 +1312,7 @@ + } + EOF + +-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 +-rm -f $dummy.c $dummy && rmdir $tmpdir ++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 + + # Apollos put the system type in the environment. + +diff -urN dbus-0.11.orig/config.sub dbus-0.11/config.sub +--- dbus-0.11.orig/config.sub 2003-05-15 12:50:52.000000000 -0700 ++++ dbus-0.11/config.sub 2003-05-28 13:34:06.000000000 -0700 +@@ -1,9 +1,9 @@ + #! /bin/sh + # Configuration validation subroutine script. + # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +-# 2000, 2001, 2002 Free Software Foundation, Inc. ++# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + +-timestamp='2002-09-05' ++timestamp='2003-05-09' + + # This file is (in principle) common to ALL GNU software. + # The presence of a machine in this file suggests that SOME GNU software +@@ -118,7 +118,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) ++ nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -245,17 +245,19 @@ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mipsisa32 | mipsisa32el \ ++ | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ ++ | msp430 \ + | ns16k | ns32k \ + | openrisc | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ +- | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ ++ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | strongarm \ +@@ -294,7 +296,7 @@ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ ++ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ +@@ -315,21 +317,25 @@ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mipsisa32-* | mipsisa32el-* \ ++ | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ +- | mipstx39 | mipstx39el \ +- | none-* | np1-* | ns16k-* | ns32k-* \ ++ | mipstx39-* | mipstx39el-* \ ++ | msp430-* \ ++ | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ +- | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ ++ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ +- | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ ++ | tahoe-* | thumb-* \ ++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ++ | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ +@@ -367,6 +373,9 @@ + basic_machine=a29k-none + os=-bsd + ;; ++ amd64) ++ basic_machine=x86_64-pc ++ ;; + amdahl) + basic_machine=580-amdahl + os=-sysv +@@ -716,6 +725,10 @@ + np1) + basic_machine=np1-gould + ;; ++ nv1) ++ basic_machine=nv1-cray ++ os=-unicosmp ++ ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; +@@ -901,10 +914,6 @@ + basic_machine=i386-sequent + os=-dynix + ;; +- t3d) +- basic_machine=alpha-cray +- os=-unicos +- ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos +@@ -921,6 +930,14 @@ + basic_machine=tic54x-unknown + os=-coff + ;; ++ tic55x | c55x*) ++ basic_machine=tic55x-unknown ++ os=-coff ++ ;; ++ tic6x | c6x*) ++ basic_machine=tic6x-unknown ++ os=-coff ++ ;; + tx39) + basic_machine=mipstx39-unknown + ;; +@@ -977,10 +994,6 @@ + basic_machine=hppa1.1-winbond + os=-proelf + ;; +- windows32) +- basic_machine=i386-pc +- os=-windows32-msvcrt +- ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; +@@ -1027,7 +1040,7 @@ + we32k) + basic_machine=we32k-att + ;; +- sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) ++ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sh64) +@@ -1113,11 +1126,12 @@ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ +- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ ++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ +- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*) ++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ ++ | -powermax* | -dnix*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) +@@ -1129,8 +1143,10 @@ + ;; + esac + ;; ++ -nto-qnx*) ++ ;; + -nto*) +- os=-nto-qnx ++ os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ +@@ -1224,6 +1240,12 @@ + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; ++ -aros*) ++ os=-aros ++ ;; ++ -kaos*) ++ os=-kaos ++ ;; + -none) + ;; + *) +diff -urN dbus-0.11.orig/configure dbus-0.11/configure +--- dbus-0.11.orig/configure 2003-05-15 12:50:59.000000000 -0700 ++++ dbus-0.11/configure 2003-05-28 13:34:15.000000000 -0700 +@@ -2677,12 +2677,12 @@ + (exit $ac_status); }; }; then + for ac_declaration in \ + ''\ +- '#include <stdlib.h>' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ +- 'void exit (int);' ++ 'void exit (int);' \ ++ '#include <stdlib.h>' + do + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" +@@ -2782,8 +2782,9 @@ + + am_make=${MAKE-make} + cat > confinc << 'END' +-doit: ++am__doit: + @echo done ++.PHONY: am__doit + END + # If we don't find an include directive, just comment out the code. + echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +@@ -3154,12 +3155,12 @@ + fi + for ac_declaration in \ + ''\ +- '#include <stdlib.h>' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ +- 'void exit (int);' ++ 'void exit (int);' \ ++ '#include <stdlib.h>' + do + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" +@@ -4286,7 +4287,7 @@ + # This must be Linux ELF. + linux-gnu*) + case $host_cpu in +- alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ++ alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | arm* | m68k) + lt_cv_deplibs_check_method=pass_all ;; + *) + # glibc up to 2.1.1 does not perform some relocations on ARM +@@ -5099,7 +5100,7 @@ + case $host in + *-*-irix6*) + # Find out which ABI we are using. +- echo '#line 5102 "configure"' > conftest.$ac_ext ++ echo '#line 5103 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +@@ -5628,7 +5629,7 @@ + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" + compiler_c_o=no +-if { (eval echo configure:5631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ++if { (eval echo configure:5632: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s out/conftest.err; then +@@ -6025,30 +6026,6 @@ + hardcode_shlibpath_var=no + ;; + +- linux*) +- if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- supports_anon_versioning=no +- case `$LD -v 2>/dev/null` in +- *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 +- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... +- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... +- *\ 2.11.*) ;; # other 2.11 versions +- *) supports_anon_versioning=yes ;; +- esac +- if test $supports_anon_versioning = yes; then +- archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ +-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ +-$echo "local: *; };" >> $output_objdir/$libname.ver~ +- $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' +- else +- $archive_expsym_cmds="$archive_cmds" +- fi +- else +- ld_shlibs=no +- fi +- ;; +- + *) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +@@ -6187,7 +6164,7 @@ + allow_undefined_flag='${wl}-berok' + # This is a bit strange, but is similar to how AIX traditionally builds + # it's shared libraries. +- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname' ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; +@@ -6725,6 +6702,18 @@ + dynamic_linker=no + ;; + ++freebsd*-gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='GNU/FreeBSD ld.so' ++ ;; ++ + freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat +@@ -6890,6 +6879,7 @@ + osf3* | osf4* | osf5*) + version_type=osf + need_version=no ++ need_lib_prefix=no + soname_spec='${libname}${release}.so$major' + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' + shlibpath_var=LD_LIBRARY_PATH +@@ -7484,7 +7474,7 @@ + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<EOF +-#line 7487 "configure" ++#line 7477 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -7582,7 +7572,7 @@ + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<EOF +-#line 7585 "configure" ++#line 7575 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +diff -urN dbus-0.11.orig/dbus/Makefile.in dbus-0.11/dbus/Makefile.in +--- dbus-0.11.orig/dbus/Makefile.in 2003-05-15 12:50:57.000000000 -0700 ++++ dbus-0.11/dbus/Makefile.in 2003-05-28 13:34:13.000000000 -0700 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.7.3 from Makefile.am. ++# Makefile.in generated by automake 1.7.5 from Makefile.am. + # @configure_input@ + + # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +@@ -328,6 +328,7 @@ + + dbus_test_LDADD = $(DBUS_CLIENT_LIBS) libdbus-1.la + subdir = dbus ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/config.h + CONFIG_CLEAN_FILES = dbus-arch-deps.h +@@ -522,7 +523,7 @@ + .c.o: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -533,7 +534,7 @@ + .c.obj: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -544,7 +545,7 @@ + .c.lo: + @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@@ -764,8 +765,8 @@ + + installdirs: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(dbusarchincludedir) $(DESTDIR)$(dbusincludedir) +- +-install: install-am ++install: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) install-am + install-exec: install-exec-am + install-data: install-data-am + uninstall: uninstall-am +diff -urN dbus-0.11.orig/dbus/dbus-connection.c dbus-0.11/dbus/dbus-connection.c +--- dbus-0.11.orig/dbus/dbus-connection.c 2003-05-15 12:19:06.000000000 -0700 ++++ dbus-0.11/dbus/dbus-connection.c 2003-05-16 13:25:47.000000000 -0700 +@@ -36,7 +36,7 @@ + #include "dbus-protocol.h" + #include "dbus-dataslot.h" + +-#if 1 ++#if 0 + #define CONNECTION_LOCK(connection) do { \ + _dbus_verbose (" LOCK: %s\n", _DBUS_FUNCTION_NAME); \ + dbus_mutex_lock ((connection)->mutex); \ +diff -urN dbus-0.11.orig/dbus/dbus-sysdeps.c dbus-0.11/dbus/dbus-sysdeps.c +--- dbus-0.11.orig/dbus/dbus-sysdeps.c 2003-05-15 12:19:07.000000000 -0700 ++++ dbus-0.11/dbus/dbus-sysdeps.c 2003-05-15 19:11:02.000000000 -0700 +@@ -1822,11 +1822,10 @@ + #ifdef DBUS_USE_ATOMIC_INT_486 + return atomic_exchange_and_add (atomic, 1); + #else +- dbus_atomic_t res; +- ++ dbus_int32_t res; + _DBUS_LOCK (atomic); +- *atomic += 1; +- res = *atomic; ++ res = atomic->value; ++ atomic->value += 1; + _DBUS_UNLOCK (atomic); + return res; + #endif +@@ -1846,11 +1845,11 @@ + #ifdef DBUS_USE_ATOMIC_INT_486 + return atomic_exchange_and_add (atomic, -1); + #else +- dbus_atomic_t res; ++ dbus_int32_t res; + + _DBUS_LOCK (atomic); +- *atomic -= 1; +- res = *atomic; ++ res = atomic->value; ++ atomic->value -= 1; + _DBUS_UNLOCK (atomic); + return res; + #endif +diff -urN dbus-0.11.orig/dbus/dbus-transport-unix.c dbus-0.11/dbus/dbus-transport-unix.c +--- dbus-0.11.orig/dbus/dbus-transport-unix.c 2003-04-21 11:39:42.000000000 -0700 ++++ dbus-0.11/dbus/dbus-transport-unix.c 2003-05-16 13:25:47.000000000 -0700 +@@ -593,11 +593,9 @@ + total = 0; + + again: +- ++ + /* See if we've exceeded max messages and need to disable reading */ + check_read_watch (transport); +- if (!dbus_watch_get_enabled (unix_transport->read_watch)) +- return TRUE; + + if (total > unix_transport->max_bytes_read_per_iteration) + { +@@ -606,9 +604,15 @@ + goto out; + } + ++ _dbus_assert (unix_transport->read_watch != NULL || ++ transport->disconnected); ++ + if (transport->disconnected) + goto out; + ++ if (!dbus_watch_get_enabled (unix_transport->read_watch)) ++ return TRUE; ++ + if (_dbus_auth_needs_decoding (transport->auth)) + { + if (_dbus_string_get_length (&unix_transport->encoded_incoming) > 0) +diff -urN dbus-0.11.orig/dbus/dbus-watch.c dbus-0.11/dbus/dbus-watch.c +--- dbus-0.11.orig/dbus/dbus-watch.c 2003-05-05 12:10:38.000000000 -0700 ++++ dbus-0.11/dbus/dbus-watch.c 2003-05-16 13:25:47.000000000 -0700 +@@ -535,6 +535,7 @@ + dbus_bool_t + dbus_watch_get_enabled (DBusWatch *watch) + { ++ _dbus_assert (watch != NULL); + return watch->enabled; + } + +diff -urN dbus-0.11.orig/depcomp dbus-0.11/depcomp +--- dbus-0.11.orig/depcomp 2003-01-27 03:03:04.000000000 -0800 ++++ dbus-0.11/depcomp 2003-05-19 11:10:58.000000000 -0700 +@@ -206,6 +206,36 @@ + rm -f "$tmpdepfile" + ;; + ++icc) ++ # Must come before tru64. ++ ++ # Intel's C compiler understands `-MD -MF file'. However ++ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c ++ # will fill foo.d with something like ++ # foo.o: sub/foo.c ++ # foo.o: sub/foo.h ++ # which is wrong. We want: ++ # sub/foo.o: sub/foo.c ++ # sub/foo.o: sub/foo.h ++ # sub/foo.c: ++ # sub/foo.h: ++ ++ "$@" -MD -MF "$tmpdepfile" ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ # Each line is of the form `foo.o: dependent.h'. ++ # Do two passes, one to just change these to ++ # `$object: dependent.h' and one to simply `dependent.h:'. ++ sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" ++ sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ + tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. +@@ -265,9 +295,7 @@ + shift + fi + +- # Remove `-o $object'. We will use -o /dev/null later, +- # however we can't do the remplacement now because +- # `-o $object' might simply not be used ++ # Remove `-o $object'. + IFS=" " + for arg + do +@@ -287,7 +315,11 @@ + done + + test -z "$dashmflag" && dashmflag=-M +- "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" ++ # Require at least two characters before searching for `:' ++ # in the target name. This is to cope with DOS-style filenames: ++ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. ++ "$@" $dashmflag | ++ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +@@ -306,6 +338,13 @@ + + makedepend) + "$@" || exit $? ++ # Remove any Libtool call ++ if test "$libtool" = yes; then ++ while test $1 != '--mode=compile'; do ++ shift ++ done ++ shift ++ fi + # X makedepend + shift + cleared=no +@@ -318,7 +357,9 @@ + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; +- -*) ++ # Strip any option that makedepend may not understand. Remove ++ # the object too, otherwise makedepend will parse it as a source file. ++ -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; +diff -urN dbus-0.11.orig/doc/Makefile.in dbus-0.11/doc/Makefile.in +--- dbus-0.11.orig/doc/Makefile.in 2003-05-15 12:50:57.000000000 -0700 ++++ dbus-0.11/doc/Makefile.in 2003-05-28 13:34:13.000000000 -0700 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.7.3 from Makefile.am. ++# Makefile.in generated by automake 1.7.5 from Makefile.am. + # @configure_input@ + + # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +@@ -194,6 +194,7 @@ + file-boilerplate.c + + subdir = doc ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/config.h + CONFIG_CLEAN_FILES = +@@ -260,7 +261,6 @@ + all-am: Makefile all-local + + installdirs: +- + install: install-am + install-exec: install-exec-am + install-data: install-data-am +diff -urN dbus-0.11.orig/doc/TODO dbus-0.11/doc/TODO +--- dbus-0.11.orig/doc/TODO 2003-05-15 12:19:07.000000000 -0700 ++++ dbus-0.11/doc/TODO 2003-05-17 19:16:22.000000000 -0700 +@@ -56,3 +56,18 @@ + will only be right for one of them. Probably need to just write() the serial + number, rather than putting it in the DBusMessage, or something. + ++ - perhaps the bus driver should have properties that reflect attributes ++ of the session, such as hostname, architecture, operating system, ++ etc. Could be useful for code that wants to special-case behavior ++ for a particular host or class of hosts, for example. ++ ++ - currently the security policy stuff for messages to/from ++ the bus driver is kind of strange; basically it's hardcoded that ++ you can always talk to the driver, but the default config file ++ has rules for it anyway, or something. it's conceptually ++ screwy at the moment. ++ ++ - <limit> elements are not merged in from included configuration ++ files; they have to be in the toplevel file. when loading ++ a child file, we could just init its DBusLimits from the parent, ++ then after parsing copy its DBusLimits back to the parent +diff -urN dbus-0.11.orig/doc/dbus-specification.html dbus-0.11/doc/dbus-specification.html +--- dbus-0.11.orig/doc/dbus-specification.html 2003-04-28 16:00:56.000000000 -0700 ++++ dbus-0.11/doc/dbus-specification.html 2003-05-15 23:56:43.000000000 -0700 +@@ -1,12 +1,11 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> + <HTML + ><HEAD + ><TITLE + >D-BUS Specification</TITLE + ><META + NAME="GENERATOR" +-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ +-"></HEAD ++CONTENT="Modular DocBook HTML Stylesheet Version 1.7"></HEAD + ><BODY + CLASS="ARTICLE" + BGCOLOR="#FFFFFF" +@@ -22,19 +21,19 @@ + CLASS="TITLE" + ><A + NAME="AEN2" +-></A +->D-BUS Specification</H1 ++>D-BUS Specification</A ++></H1 + ><DIV + CLASS="AUTHORGROUP" + ><A + NAME="AEN6" + ></A +-><H4 ++><H3 + CLASS="AUTHOR" + ><A + NAME="AEN7" + >Havoc Pennington</A +-></H4 ++></H3 + ><DIV + CLASS="AFFILIATION" + ><SPAN +@@ -42,18 +41,24 @@ + >Red Hat, Inc<BR></SPAN + ><DIV + CLASS="ADDRESS" +-> <DIV ++><P ++CLASS="ADDRESS" ++> <CODE + CLASS="EMAIL" +->hp@pobox.com</DIV +-> +- </DIV ++><<A ++HREF="mailto:hp@pobox.com" ++>hp@pobox.com</A ++>></CODE ++><br> ++ </P ++></DIV + ></DIV +-><H4 ++><H3 + CLASS="AUTHOR" + ><A + NAME="AEN14" + >Anders Carlsson</A +-></H4 ++></H3 + ><DIV + CLASS="AFFILIATION" + ><SPAN +@@ -61,18 +66,24 @@ + >CodeFactory AB<BR></SPAN + ><DIV + CLASS="ADDRESS" +-> <DIV ++><P ++CLASS="ADDRESS" ++> <CODE + CLASS="EMAIL" +->andersca@codefactory.se</DIV +-> +- </DIV ++><<A ++HREF="mailto:andersca@codefactory.se" ++>andersca@codefactory.se</A ++>></CODE ++><br> ++ </P ++></DIV + ></DIV +-><H4 ++><H3 + CLASS="AUTHOR" + ><A + NAME="AEN21" + >Alexander Larsson</A +-></H4 ++></H3 + ><DIV + CLASS="AFFILIATION" + ><SPAN +@@ -80,18 +91,23 @@ + >Red Hat, Inc<BR></SPAN + ><DIV + CLASS="ADDRESS" +-> <DIV ++><P ++CLASS="ADDRESS" ++> <CODE + CLASS="EMAIL" +->alexl@redhat.com</DIV +-> +- </DIV ++><<A ++HREF="mailto:alexl@redhat.com" ++>alexl@redhat.com</A ++>></CODE ++><br> ++ </P ++></DIV + ></DIV + ></DIV +-><HR +-WIDTH="75%" +-ALIGN="CENTER" +-COLOR="#000000" +-SIZE="1"></DIV ++><SPAN ++CLASS="RELEASEINFO" ++>Version 0.7<BR></SPAN ++><HR></DIV + ><DIV + CLASS="TOC" + ><DL +@@ -100,40 +116,311 @@ + >Table of Contents</B + ></DT + ><DT +-><A ++>1. <A + HREF="#INTRODUCTION" + >Introduction</A + ></DT + ><DT +-><A ++>2. <A + HREF="#MESSAGE-PROTOCOL" + >Message Protocol</A + ></DT ++><DD ++><DL + ><DT +-><A ++>2.1. <A ++HREF="#MESSAGE-PROTOCOL-HEADER-ENCODING" ++>Header Encoding</A ++></DT ++><DT ++>2.2. <A ++HREF="#MESSAGE-PROTOCOL-HEADER-FIELDS" ++>Header Fields</A ++></DT ++><DT ++>2.3. <A ++HREF="#MESSAGE-PROTOCOL-HEADER-PADDING" ++>Header Alignment Padding</A ++></DT ++><DT ++>2.4. <A ++HREF="#MESSAGE-PROTOCOL-ARGUMENTS" ++>Message Arguments</A ++></DT ++><DT ++>2.5. <A ++HREF="#MESSAGE-PROTOCOL-NAMES" ++>Valid names</A ++></DT ++></DL ++></DD ++><DT ++>3. <A + HREF="#AUTH-PROTOCOL" + >Authentication Protocol</A + ></DT ++><DD ++><DL + ><DT +-><A ++>3.1. <A ++HREF="#AUTH-PROTOCOL-OVERVIEW" ++>Protocol Overview</A ++></DT ++><DT ++>3.2. <A ++HREF="#AUTH-NUL-BYTE" ++>Special credentials-passing nul byte</A ++></DT ++><DT ++>3.3. <A ++HREF="#AUTH-COMMAND-AUTH" ++>AUTH command</A ++></DT ++><DT ++>3.4. <A ++HREF="#AUTH-COMMAND-CANCEL" ++>CANCEL Command</A ++></DT ++><DT ++>3.5. <A ++HREF="#AUTH-COMMAND-DATA" ++>DATA Command</A ++></DT ++><DT ++>3.6. <A ++HREF="#AUTH-COMMAND-BEGIN" ++>BEGIN Command</A ++></DT ++><DT ++>3.7. <A ++HREF="#AUTH-COMMAND-REJECTED" ++>REJECTED Command</A ++></DT ++><DT ++>3.8. <A ++HREF="#AUTH-COMMAND-OK" ++>OK Command</A ++></DT ++><DT ++>3.9. <A ++HREF="#AUTH-COMMAND-ERROR" ++>ERROR Command</A ++></DT ++><DT ++>3.10. <A ++HREF="#AUTH-EXAMPLES" ++>Authentication examples</A ++></DT ++><DT ++>3.11. <A ++HREF="#AUTH-MECHANISMS" ++>Authentication mechanisms</A ++></DT ++><DD ++><DL ++><DT ++>3.11.1. <A ++HREF="#AUTH-MECHANISMS-SHA" ++>DBUS_COOKIE_SHA1</A ++></DT ++></DL ++></DD ++></DL ++></DD ++><DT ++>4. <A + HREF="#ADDRESSES" + >Server Addresses</A + ></DT + ><DT +-><A ++>5. <A + HREF="#MESSAGE-CONVENTIONS" + >Message Conventions</A + ></DT ++><DD ++><DL + ><DT +-><A ++>5.1. <A ++HREF="#MESSAGE-CONVENTIONS-NAMING" ++>Message Naming</A ++></DT ++><DT ++>5.2. <A ++HREF="#MESSAGE-CONVENTIONS-METHOD" ++>Method Call Mapping</A ++></DT ++></DL ++></DD ++><DT ++>6. <A + HREF="#STANDARD-MESSAGES" + >Standard Peer-to-Peer Messages</A + ></DT ++><DD ++><DL + ><DT +-><A ++>6.1. <A ++HREF="#STANDARD-MESSAGES-PING" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.Peer.Ping</VAR ++></A ++></DT ++><DT ++>6.2. <A ++HREF="#STANDARD-MESSAGES-GET-PROPS" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.Props.Get</VAR ++></A ++></DT ++></DL ++></DD ++><DT ++>7. <A + HREF="#MESSAGE-BUS" + >Message Bus Specification</A + ></DT ++><DD ++><DL ++><DT ++>7.1. <A ++HREF="#MESSAGE-BUS-OVERVIEW" ++>Message Bus Overview</A ++></DT ++><DT ++>7.2. <A ++HREF="#MESSAGE-BUS-SERVICES" ++>Message Bus Services</A ++></DT ++><DT ++>7.3. <A ++HREF="#MESSAGE-BUS-ROUTING" ++>Message Bus Message Routing</A ++></DT ++><DT ++>7.4. <A ++HREF="#MESSAGE-BUS-ACTIVATION" ++>Message Bus Service Activation</A ++></DT ++><DT ++>7.5. <A ++HREF="#MESSAGE-BUS-TYPES" ++>Well-known Message Bus Instances</A ++></DT ++><DD ++><DL ++><DT ++>7.5.1. <A ++HREF="#MESSAGE-BUS-TYPES-LOGIN" ++>Login session message bus</A ++></DT ++><DT ++>7.5.2. <A ++HREF="#MESSAGE-BUS-TYPES-SYSTEM" ++>System message bus</A ++></DT ++></DL ++></DD ++><DT ++>7.6. <A ++HREF="#MESSAGE-BUS-MESSAGES" ++>Message Bus Messages</A ++></DT ++><DD ++><DL ++><DT ++>7.6.1. <A ++HREF="#BUS-MESSAGES-HELLO" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.Hello</VAR ++></A ++></DT ++><DT ++>7.6.2. <A ++HREF="#BUS-MESSAGES-LIST-SERVICES" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.ListServices</VAR ++></A ++></DT ++><DT ++>7.6.3. <A ++HREF="#BUS-MESSAGES-SERVICE-EXISTS" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.ServiceExists</VAR ++></A ++></DT ++><DT ++>7.6.4. <A ++HREF="#BUS-MESSAGES-ACQUIRE-SERVICE" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.AcquireService</VAR ++></A ++></DT ++><DT ++>7.6.5. <A ++HREF="#BUS-MESSAGES-SERVICE-ACQUIRED" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.ServiceAcquired</VAR ++></A ++></DT ++><DT ++>7.6.6. <A ++HREF="#BUS-MESSAGES-SERVICE-LOST" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.ServiceLost</VAR ++></A ++></DT ++><DT ++>7.6.7. <A ++HREF="#BUS-MESSAGES-SERVICE-CREATED" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.ServiceCreated</VAR ++></A ++></DT ++><DT ++>7.6.8. <A ++HREF="#BUS-MESSAGES-SERVICE-DELETED" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.ServiceDeleted</VAR ++></A ++></DT ++><DT ++>7.6.9. <A ++HREF="#BUS-MESSAGES-ACTIVATE-SERVICE" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.ActivateService</VAR ++></A ++></DT ++><DT ++>7.6.10. <A ++HREF="#BUS-MESSAGES-OUT-OF-MEMORY" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.Error.NoMemory</VAR ++></A ++></DT ++><DT ++>7.6.11. <A ++HREF="#BUS-MESSAGES-SERVICE-DOES-NOT-EXIST" ++><VAR ++CLASS="LITERAL" ++>org.freedesktop.DBus.Error.ServiceDoesNotExist</VAR ++></A ++></DT ++></DL ++></DD ++></DL ++></DD + ><DT + ><A + HREF="#AEN853" +@@ -147,8 +434,8 @@ + CLASS="SECT1" + ><A + NAME="INTRODUCTION" +-></A +->Introduction</H2 ++>1. Introduction</A ++></H2 + ><P + > D-BUS is a system for low-latency, low-overhead, easy to use + interprocess communication (IPC). In more detail: +@@ -157,9 +444,12 @@ + ><UL + ><LI + ><P +-> D-BUS is <I ++> D-BUS is <SPAN ++CLASS="emphasis" ++><I + CLASS="EMPHASIS" + >low-latency</I ++></SPAN + > because it is designed + to avoid round trips and allow asynchronous operation, much like + the X protocol. +@@ -167,9 +457,12 @@ + ></LI + ><LI + ><P +-> D-BUS is <I ++> D-BUS is <SPAN ++CLASS="emphasis" ++><I + CLASS="EMPHASIS" + >low-overhead</I ++></SPAN + > because it uses a + binary protocol, and does not have to convert to and from a text + format such as XML. Because D-BUS is intended for potentially +@@ -179,9 +472,12 @@ + ></LI + ><LI + ><P +-> D-BUS is <I ++> D-BUS is <SPAN ++CLASS="emphasis" ++><I + CLASS="EMPHASIS" + >easy to use</I ++></SPAN + > because it works in terms + of <I + CLASS="FIRSTTERM" +@@ -192,9 +488,7 @@ + may choose to abstract messages as "method calls" (see + <A + HREF="#MESSAGE-CONVENTIONS-METHOD" +->the Section called <I +->Method Call Mapping</I +-></A ++>Section 5.2</A + >). + </P + ></LI +@@ -204,9 +498,7 @@ + ><P + > The base D-BUS protocol is a peer-to-peer protocol, specified in <A + HREF="#MESSAGE-PROTOCOL" +->the Section called <I +->Message Protocol</I +-></A ++>Section 2</A + >. That is, it is a system for one application + to talk to a single other application. However, the primary intended + application of D-BUS is the D-BUS <I +@@ -215,9 +507,7 @@ + >, + specified in <A + HREF="#MESSAGE-BUS" +->the Section called <I +->Message Bus Specification</I +-></A ++>Section 7</A + >. The message bus is a special + application that accepts connections from multiple other applications, and + forwards messages among them. +@@ -236,8 +526,8 @@ + CLASS="SECT1" + ><A + NAME="MESSAGE-PROTOCOL" +-></A +->Message Protocol</H2 ++>2. Message Protocol</A ++></H2 + ><P + > A <I + CLASS="FIRSTTERM" +@@ -269,15 +559,13 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-PROTOCOL-HEADER-ENCODING" +-></A +->Header Encoding</H3 ++>2.1. Header Encoding</A ++></H3 + ><P + > Following the mandatory fields, there are zero or more named fields (see + <A + HREF="#MESSAGE-PROTOCOL-HEADER-FIELDS" +->the Section called <I +->Header Fields</I +-></A ++>Section 2.2</A + >), and then nul bytes + padding the header such that its total length in bytes is a multiple of + 8. +@@ -287,61 +575,42 @@ + order: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN61" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Size</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1 byte</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Endianness flag; ASCII 'l' for little-endian + or ASCII 'B' for big-endian.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1 byte</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Bitwise OR of flags. Unknown flags + MUST be ignored. Currently-defined flags are described below. + </TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1 byte</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Major protocol version of the sending application. If + the major protocol version of the receiving application does not + match, the applications will not be able to communicate and the +@@ -351,24 +620,16 @@ + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1 byte</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >A nul byte, reserved for future use. + Any value for this byte MUST be accepted. + </TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >4 bytes</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >An unsigned 32-bit integer in the + message's byte order, indicating the total length in bytes of + the header including named fields and any alignment padding. +@@ -377,12 +638,8 @@ + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >4 bytes</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >An unsigned 32-bit integer in the + message's byte order, indicating the total length in bytes of + the message body. +@@ -390,12 +647,8 @@ + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >4 bytes</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The message's serial number, an unsigned 32-bit integer in + the message's byte order. Applications MUST NOT reuse the same + serial number for different messages more often than 32-bit +@@ -413,38 +666,27 @@ + > Flags that can appear in the second byte of the header: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN90" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Hex value</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0x1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >This message is an error reply. If the first argument exists and is a string, it is an error message.</TD + ></TR + ></TBODY +@@ -461,15 +703,13 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-PROTOCOL-HEADER-FIELDS" +-></A +->Header Fields</H3 ++>2.2. Header Fields</A ++></H3 + ><P + > In addition to the required header information mentioned + in <A + HREF="#MESSAGE-PROTOCOL-HEADER-ENCODING" +->the Section called <I +->Header Encoding</I +-></A ++>Section 2.1</A + >, + the header may contain zero or more named + header fields. These fields are named to allow +@@ -486,9 +726,7 @@ + of that type. + See <A + HREF="#MESSAGE-PROTOCOL-ARGUMENTS" +->the Section called <I +->Message Arguments</I +-></A ++>Section 2.4</A + > for a description + of how each type is encoded. If an implementation sees a header + field name that it does not understand, it MUST ignore +@@ -498,102 +736,65 @@ + > Here are the currently-defined named header fields: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN107" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Name</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >name</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The name of the message, such as org.freedesktop.Peer.Ping</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >rply</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The serial number of the message this message is a reply + to. (The serial number is one of the mandatory header fields, + see <A + HREF="#MESSAGE-PROTOCOL-HEADER-ENCODING" +->the Section called <I +->Header Encoding</I +-></A ++>Section 2.1</A + >.)</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >srvc</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The name of the service this message should be routed to. + Only used in combination with the message bus, see + <A + HREF="#MESSAGE-BUS" +->the Section called <I +->Message Bus Specification</I +-></A ++>Section 7</A + >.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >sndr</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The name of the base service that sent this message. + The message bus fills in this field; the field is + only meaningful in combination with the message bus.</TD +@@ -612,8 +813,8 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-PROTOCOL-HEADER-PADDING" +-></A +->Header Alignment Padding</H3 ++>2.3. Header Alignment Padding</A ++></H3 + ><P + > To allow implementations to keep the header and the body in a single + buffer while keeping data types aligned, the total length of the header +@@ -631,8 +832,8 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-PROTOCOL-ARGUMENTS" +-></A +->Message Arguments</H3 ++>2.4. Message Arguments</A ++></H3 + ><P + > The message body is made up of arguments. Each argument + is a type code, followed by the value of the argument +@@ -641,217 +842,133 @@ + ><P + > <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN140" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type name</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Code</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >INVALID</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Not a valid type code (error if it appears in a message)</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >NIL</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Marks an "unset" or "nonexistent" argument</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >BYTE</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >2</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >8-bit unsigned integer</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >BOOLEAN</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >3</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Boolean value, 0 is FALSE and 1 is TRUE. Everything else is invalid.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >INT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >4</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >32-bit signed integer</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >5</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >32-bit unsigned integer</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >INT64</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >6</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >64-bit signed integer</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT64</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >7</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >64-bit unsigned integer</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DOUBLE</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >8</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >IEEE 754 double</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >9</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" +->UTF-8 string (<I ++>UTF-8 string (<SPAN ++CLASS="emphasis" ++><I + CLASS="EMPHASIS" + >must</I ++></SPAN + > be valid UTF-8). Must be zero terminated. </TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >NAMED</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >10</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >A named byte array, used for custom types</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >ARRAY</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >11</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Array</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DICT</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >12</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >A dictionary of key/value pairs</TD + ></TR + ></TBODY +@@ -865,129 +982,82 @@ + > The types are encoded as follows: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN202" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type name</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Encoding</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >INVALID</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Not applicable; cannot be encoded.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >NIL</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >No data is encoded; the type code is followed immediately + by the type code of the next argument.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >BYTE</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >A byte.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >BOOLEAN</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >A byte, with valid values 0 and 1.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >INT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >32-bit signed integer in the message's byte order, aligned to 4-byte boundary.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >32-bit unsigned integer in the message's byte order, aligned to 4-byte boundary.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >INT64</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >64-bit signed integer in the message's byte order, aligned to 8-byte boundary.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT64</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >64-bit unsigned integer in the message's byte order, aligned to 8-byte boundary.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DOUBLE</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >64-bit IEEE 754 double in the message's byte order, aligned to 8-byte boundary.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32 aligned to 4-byte boundary indicating the string's + length in bytes excluding its terminating nul, followed by + string data of the given length, followed by a terminating nul +@@ -996,12 +1066,8 @@ + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >NAMED</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >A string (encoded as the STRING type above) giving the + name of the type followed by an UINT32 aligned to 4-byte boundary + indicating the data length in bytes, followed by the data. +@@ -1009,12 +1075,8 @@ + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >ARRAY</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >A sequence of bytes giving the element type of the array, terminated + by a type different from ARRAY (just one byte for one-dimensional arrays, but + larger for multi-dimensional arrays), followed by an UINT32 (aligned to 4 bytes) +@@ -1026,12 +1088,8 @@ + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DICT</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32 giving the length of the dictionary data in bytes. + This is followed by a number of keyname/value pairs, where the + keyname is encoded as a STRING above, and the value is encoded +@@ -1053,8 +1111,8 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-PROTOCOL-NAMES" +-></A +->Valid names</H3 ++>2.5. Valid names</A ++></H3 + ><P + > Messages and services have names with type STRING, meaning that + they must be valid UTF-8. However, there are also some +@@ -1092,8 +1150,8 @@ + CLASS="SECT1" + ><A + NAME="AUTH-PROTOCOL" +-></A +->Authentication Protocol</H2 ++>3. Authentication Protocol</A ++></H2 + ><P + > Before the flow of messages begins, two applications must + authenticate. A simple plain-text protocol is used for +@@ -1111,8 +1169,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-PROTOCOL-OVERVIEW" +-></A +->Protocol Overview</H3 ++>3.1. Protocol Overview</A ++></H3 + ><P + > The protocol is a line-based protocol, where each line ends with + \r\n. Each line begins with an all-caps ASCII command name containing +@@ -1179,8 +1237,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-NUL-BYTE" +-></A +->Special credentials-passing nul byte</H3 ++>3.2. Special credentials-passing nul byte</A ++></H3 + ><P + > Immediately after connecting to the server, the client must send a + single nul byte. This byte may be accompanied by credentials +@@ -1208,8 +1266,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-COMMAND-AUTH" +-></A +->AUTH command</H3 ++>3.3. AUTH command</A ++></H3 + ><P + > If an AUTH command has no arguments, it is a request to list + available mechanisms. The server SHOULD respond with a REJECTED +@@ -1253,8 +1311,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-COMMAND-CANCEL" +-></A +->CANCEL Command</H3 ++>3.4. CANCEL Command</A ++></H3 + ><P + > At any time up to sending the BEGIN command, the client may send a + CANCEL command. On receiving the CANCEL command, the server MUST +@@ -1268,8 +1326,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-COMMAND-DATA" +-></A +->DATA Command</H3 ++>3.5. DATA Command</A ++></H3 + ><P + > The DATA command may come from either client or server, and simply + contains a base64-encoded block of data to be interpreted +@@ -1286,8 +1344,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-COMMAND-BEGIN" +-></A +->BEGIN Command</H3 ++>3.6. BEGIN Command</A ++></H3 + ><P + > The BEGIN command acknowledges that the client has received an + OK command from the server, and that the stream of messages +@@ -1305,8 +1363,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-COMMAND-REJECTED" +-></A +->REJECTED Command</H3 ++>3.7. REJECTED Command</A ++></H3 + ><P + > The REJECTED command indicates that the current authentication + exchange has failed, and further exchange of DATA is inappropriate. +@@ -1327,8 +1385,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-COMMAND-OK" +-></A +->OK Command</H3 ++>3.8. OK Command</A ++></H3 + ><P + > The OK command indicates that the client has been authenticated, + and that further communication will be a stream of D-BUS messages +@@ -1352,8 +1410,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-COMMAND-ERROR" +-></A +->ERROR Command</H3 ++>3.9. ERROR Command</A ++></H3 + ><P + > The ERROR command indicates that either server or client did not + know a command, does not accept the given command in the current +@@ -1377,20 +1435,18 @@ + CLASS="SECT2" + ><A + NAME="AUTH-EXAMPLES" +-></A +->Authentication examples</H3 ++>3.10. Authentication examples</A ++></H3 + ><P + > <DIV + CLASS="FIGURE" + ><A + NAME="AEN328" + ></A +-><TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD ++><P ++><B ++>Figure 1. Example of successful magic cookie authentication</B ++></P + ><PRE + CLASS="PROGRAMLISTING" + > (MAGIC_COOKIE is a made up mechanism) +@@ -1399,13 +1455,6 @@ + S: OK + C: BEGIN + </PRE +-></TD +-></TR +-></TABLE +-><P +-><B +->Figure 1. Example of successful magic cookie authentication</B +-></P + ></DIV + > + <DIV +@@ -1413,12 +1462,10 @@ + ><A + NAME="AEN331" + ></A +-><TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD ++><P ++><B ++>Figure 2. Example of finding out mechanisms then picking one</B ++></P + ><PRE + CLASS="PROGRAMLISTING" + > C: AUTH +@@ -1429,13 +1476,6 @@ + S: OK + C: BEGIN + </PRE +-></TD +-></TR +-></TABLE +-><P +-><B +->Figure 2. Example of finding out mechanisms then picking one</B +-></P + ></DIV + > + <DIV +@@ -1443,12 +1483,10 @@ + ><A + NAME="AEN334" + ></A +-><TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD ++><P ++><B ++>Figure 3. Example of client sends unknown command then falls back to regular auth</B ++></P + ><PRE + CLASS="PROGRAMLISTING" + > C: FOOBAR +@@ -1457,13 +1495,6 @@ + S: OK + C: BEGIN + </PRE +-></TD +-></TR +-></TABLE +-><P +-><B +->Figure 3. Example of client sends unknown command then falls back to regular auth</B +-></P + ></DIV + > + <DIV +@@ -1471,12 +1502,10 @@ + ><A + NAME="AEN337" + ></A +-><TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD ++><P ++><B ++>Figure 4. Example of server doesn't support initial auth mechanism</B ++></P + ><PRE + CLASS="PROGRAMLISTING" + > C: AUTH MAGIC_COOKIE BsAY3g4gBNo= +@@ -1487,13 +1516,6 @@ + S: OK + C: BEGIN + </PRE +-></TD +-></TR +-></TABLE +-><P +-><B +->Figure 4. Example of server doesn't support initial auth mechanism</B +-></P + ></DIV + > + <DIV +@@ -1501,12 +1523,10 @@ + ><A + NAME="AEN340" + ></A +-><TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD ++><P ++><B ++>Figure 5. Example of wrong password or the like followed by successful retry</B ++></P + ><PRE + CLASS="PROGRAMLISTING" + > C: AUTH MAGIC_COOKIE BsAY3g4gBNo= +@@ -1521,13 +1541,6 @@ + S: OK + C: BEGIN + </PRE +-></TD +-></TR +-></TABLE +-><P +-><B +->Figure 5. Example of wrong password or the like followed by successful retry</B +-></P + ></DIV + > + <DIV +@@ -1535,12 +1548,10 @@ + ><A + NAME="AEN343" + ></A +-><TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD ++><P ++><B ++>Figure 6. Example of skey cancelled and restarted</B ++></P + ><PRE + CLASS="PROGRAMLISTING" + > C: AUTH MAGIC_COOKIE BsAY3g4gBNo= +@@ -1555,13 +1566,6 @@ + S: OK + C: BEGIN + </PRE +-></TD +-></TR +-></TABLE +-><P +-><B +->Figure 6. Example of skey cancelled and restarted</B +-></P + ></DIV + > + </P +@@ -1572,8 +1576,8 @@ + CLASS="SECT2" + ><A + NAME="AUTH-MECHANISMS" +-></A +->Authentication mechanisms</H3 ++>3.11. Authentication mechanisms</A ++></H3 + ><P + > This section describes some new authentication mechanisms. + D-BUS also allows any standard SASL mechanism of course. +@@ -1584,8 +1588,8 @@ + CLASS="SECT3" + ><A + NAME="AUTH-MECHANISMS-SHA" +-></A +->DBUS_COOKIE_SHA1</H4 ++>3.11.1. DBUS_COOKIE_SHA1</A ++></H4 + ><P + > The DBUS_COOKIE_SHA1 mechanism is designed to establish that a client + has the ability to read a private file owned by the user being +@@ -1692,9 +1696,9 @@ + ><P + > Create a lockfile name by appending ".lock" to the name of the + cookie file. The server should attempt to create this file +- using <TT ++ using <VAR + CLASS="LITERAL" +->O_CREAT | O_EXCL</TT ++>O_CREAT | O_EXCL</VAR + >. If file creation + fails, the lock fails. Servers should retry for a reasonable + period of time, then they may choose to delete an existing lock +@@ -1702,7 +1706,10 @@ + lock. <A + NAME="AEN378" + HREF="#FTN.AEN378" +->[1]</A ++><SPAN ++CLASS="footnote" ++>[1]</SPAN ++></A + > + </P + ></LI +@@ -1745,8 +1752,8 @@ + CLASS="SECT1" + ><A + NAME="ADDRESSES" +-></A +->Server Addresses</H2 ++>4. Server Addresses</A ++></H2 + ><P + > Server addresses consist of a transport name followed by a colon, and + then an optional, comma-separated list of keys and values in the form key=value. +@@ -1754,18 +1761,9 @@ + </P + ><P + > For example: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + >unix:path=/tmp/dbus-test</PRE +-></TD +-></TR +-></TABLE + > + Which is the address to a unix socket with the path /tmp/dbus-test. + </P +@@ -1776,18 +1774,9 @@ + separated by a semi-colon. The library will then try to connect + to the first address and if that fails, it'll try to connect to + the next one specified, and so forth. For example +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + >unix:path=/tmp/dbus-test;unix:path=/tmp/dbus-test2</PRE +-></TD +-></TR +-></TABLE + > + </P + ><P +@@ -1805,8 +1794,8 @@ + CLASS="SECT1" + ><A + NAME="MESSAGE-CONVENTIONS" +-></A +->Message Conventions</H2 ++>5. Message Conventions</A ++></H2 + ><P + > This section documents conventions that are not essential to D-BUS + functionality, but should generally be followed in order to simplify +@@ -1818,8 +1807,8 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-CONVENTIONS-NAMING" +-></A +->Message Naming</H3 ++>5.1. Message Naming</A ++></H3 + ><P + > Messages are normally named in the form + "org.freedesktop.Peer.Ping", which has three +@@ -1830,9 +1819,9 @@ + CLASS="VARIABLELIST" + ><DL + ><DT +->Namespace e.g. <TT ++>Namespace e.g. <VAR + CLASS="LITERAL" +->org.freedesktop</TT ++>org.freedesktop</VAR + ></DT + ><DD + ><P +@@ -1841,9 +1830,9 @@ + </P + ></DD + ><DT +->Package or object e.g. <TT ++>Package or object e.g. <VAR + CLASS="LITERAL" +->Peer</TT ++>Peer</VAR + ></DT + ><DD + ><P +@@ -1856,9 +1845,9 @@ + </P + ></DD + ><DT +->Method or operation e.g. <TT ++>Method or operation e.g. <VAR + CLASS="LITERAL" +->Ping</TT ++>Ping</VAR + ></DT + ><DD + ><P +@@ -1875,9 +1864,7 @@ + > A reply to a message conventionally has the same name as the message + being replied to. When following method call conventions (see <A + HREF="#MESSAGE-CONVENTIONS-METHOD" +->the Section called <I +->Method Call Mapping</I +-></A ++>Section 5.2</A + >), this convention is mandatory, + because a message with multiple possible replies can't be mapped + to method call semantics without special-case code. +@@ -1889,8 +1876,8 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-CONVENTIONS-METHOD" +-></A +->Method Call Mapping</H3 ++>5.2. Method Call Mapping</A ++></H3 + ><P + > Some implementations of D-BUS may present an API that translates object + method calls into D-BUS messages. This document does not specify in +@@ -1901,20 +1888,20 @@ + ><P + > Remember that D-BUS does not have object references or object instances. + So when one application sends the message +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.Peer.Ping</TT ++>org.freedesktop.Peer.Ping</VAR + >, it sends it to another + application, not to any kind of sub-portion of that application. + However, a convenience API used within the recipient application may + route all messages that start with +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.Peer</TT ++>org.freedesktop.Peer</VAR + > to a particular object instance, +- and may invoke the <TT ++ and may invoke the <VAR + CLASS="LITERAL" +->Ping()</TT ++>Ping()</VAR + > method on said instance in + order to handle the message. This is a convenience API based on + method calls. +@@ -1922,13 +1909,13 @@ + ><P + > A "method call" consists of a message and, optionally, a reply to that + message. The name of the "method" is the last component of the message, +- for example, <TT ++ for example, <VAR + CLASS="LITERAL" +->org.freedesktop.Peer.Ping</TT ++>org.freedesktop.Peer.Ping</VAR + > would map to +- the method <TT ++ the method <VAR + CLASS="LITERAL" +->Ping()</TT ++>Ping()</VAR + > on some object. + </P + ><P +@@ -1959,9 +1946,7 @@ + reply. Error replies can be identified by a special header flag, see + <A + HREF="#MESSAGE-PROTOCOL-HEADER-ENCODING" +->the Section called <I +->Header Encoding</I +-></A ++>Section 2.1</A + >. Error replies have a + name which reflects the type of error that occurred. Error replies would + generally be mapped to exceptions in a programming language. If an +@@ -1980,8 +1965,8 @@ + CLASS="SECT1" + ><A + NAME="STANDARD-MESSAGES" +-></A +->Standard Peer-to-Peer Messages</H2 ++>6. Standard Peer-to-Peer Messages</A ++></H2 + ><P + > In the following message definitions, "method call notation" is presented + in addition to simply listing the message names and arguments. The special +@@ -1996,38 +1981,29 @@ + CLASS="SECT2" + ><A + NAME="STANDARD-MESSAGES-PING" +-></A +-><TT ++>6.1. <VAR + CLASS="LITERAL" +->org.freedesktop.Peer.Ping</TT ++>org.freedesktop.Peer.Ping</VAR ++></A + ></H3 + ><P + > + As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > void Ping () + </PRE +-></TD +-></TR +-></TABLE + > + </P + ><P +-> On receipt of the message <TT ++> On receipt of the message <VAR + CLASS="LITERAL" +->org.freedesktop.Peer.Ping</TT ++>org.freedesktop.Peer.Ping</VAR + >, + an application should reply with +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.Peer.Ping</TT ++>org.freedesktop.Peer.Ping</VAR + >. Neither the + message nor its reply have any arguments. + [FIXME the messages here are just made up to illustrate the +@@ -2040,70 +2016,46 @@ + CLASS="SECT2" + ><A + NAME="STANDARD-MESSAGES-GET-PROPS" +-></A +-><TT ++>6.2. <VAR + CLASS="LITERAL" +->org.freedesktop.Props.Get</TT ++>org.freedesktop.Props.Get</VAR ++></A + ></H3 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > ANY_OR_NIL Get (in STRING property_name) + </PRE +-></TD +-></TR +-></TABLE + > + Message arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN453" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Name of the property to get</TD + ></TR + ></TBODY +@@ -2115,46 +2067,31 @@ + Reply arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN465" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >ANY_OR_NIL</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The value of the property. The type depends on the property.</TD + ></TR + ></TBODY +@@ -2177,16 +2114,16 @@ + CLASS="SECT1" + ><A + NAME="MESSAGE-BUS" +-></A +->Message Bus Specification</H2 ++>7. Message Bus Specification</A ++></H2 + ><DIV + CLASS="SECT2" + ><H3 + CLASS="SECT2" + ><A + NAME="MESSAGE-BUS-OVERVIEW" +-></A +->Message Bus Overview</H3 ++>7.1. Message Bus Overview</A ++></H3 + ><P + > The message bus accepts connections from one or more applications. + Once connected, applications can send and receive messages from +@@ -2198,18 +2135,18 @@ + CLASS="FIRSTTERM" + >services</I + >. A service is simply a name, such as +- <TT ++ <VAR + CLASS="LITERAL" +->com.yoyodyne.Screensaver</TT ++>com.yoyodyne.Screensaver</VAR + >, which can be + <I + CLASS="FIRSTTERM" + >owned</I + > by one or more of the connected + applications. The message bus itself always owns the special service +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.DBus</TT ++>org.freedesktop.DBus</VAR + >. + </P + ><P +@@ -2222,36 +2159,34 @@ + the new owner of the service. + </P + ><P +-> Messages may have a <TT ++> Messages may have a <VAR + CLASS="LITERAL" +->srvc</TT ++>srvc</VAR + > field (see <A + HREF="#MESSAGE-PROTOCOL-HEADER-FIELDS" +->the Section called <I +->Header Fields</I +-></A ++>Section 2.2</A + >). When the message bus +- receives a message, if the <TT ++ receives a message, if the <VAR + CLASS="LITERAL" +->srvc</TT ++>srvc</VAR + > field is absent, the + message is taken to be a standard peer-to-peer message and interpreted + by the message bus itself. For example, sending +- an <TT ++ an <VAR + CLASS="LITERAL" +->org.freedesktop.Peer.Ping</TT ++>org.freedesktop.Peer.Ping</VAR + > message with no +- <TT ++ <VAR + CLASS="LITERAL" +->srvc</TT ++>srvc</VAR + > will cause the message bus itself to reply + to the ping immediately; the message bus would never make + this message visible to other applications. + </P + ><P +-> If the <TT ++> If the <VAR + CLASS="LITERAL" +->srvc</TT ++>srvc</VAR + > field is present, then it indicates a + request for the message bus to route the message. In the usual case, + messages are routed to the owner of the named service. +@@ -2260,9 +2195,9 @@ + >broadcast</I + > + by sending them to the special service +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.Broadcast</TT ++>org.freedesktop.DBus.Broadcast</VAR + >. Broadcast messages are + sent to all applications with <I + CLASS="FIRSTTERM" +@@ -2271,27 +2206,27 @@ + > that match the message. + </P + ><P +-> Continuing the <TT ++> Continuing the <VAR + CLASS="LITERAL" +->org.freedesktop.Peer.Ping</TT ++>org.freedesktop.Peer.Ping</VAR + > example, if +- the ping message were sent with a <TT ++ the ping message were sent with a <VAR + CLASS="LITERAL" +->srvc</TT ++>srvc</VAR + > name of +- <TT ++ <VAR + CLASS="LITERAL" +->com.yoyodyne.Screensaver</TT ++>com.yoyodyne.Screensaver</VAR + >, then the ping would be + forwarded, and the Yoyodyne Corporation screensaver application would be + expected to reply to the ping. If +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.Peer.Ping</TT ++>org.freedesktop.Peer.Ping</VAR + > were sent to +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.Broadcast</TT ++>org.freedesktop.DBus.Broadcast</VAR + >, then multiple applications + might receive the ping, and all would normally reply to it. + </P +@@ -2302,15 +2237,15 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-BUS-SERVICES" +-></A +->Message Bus Services</H3 ++>7.2. Message Bus Services</A ++></H3 + ><P + > A service is a name that identifies a certain application. Each + application connected to the message bus has at least one service name + assigned at connection time and returned in response to the +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.Hello</TT ++>org.freedesktop.DBus.Hello</VAR + > message. + This automatically-assigned service name is called + the application's <I +@@ -2337,9 +2272,9 @@ + ><P + > An application can request additional service names to be associated + with it using the +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.AcquireService</TT ++>org.freedesktop.DBus.AcquireService</VAR + > + message. [FIXME what service names are allowed; ASCII or unicode; + length limit; etc.] +@@ -2348,9 +2283,9 @@ + > [FIXME this needs more detail, and should move the service-related message + descriptions up into this section perhaps] + Service ownership handling can be specified in the flags part +- of the <TT ++ of the <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.AcquireService</TT ++>org.freedesktop.DBus.AcquireService</VAR + > + message. If an application specifies the + DBUS_SERVICE_FLAGS_PROHIBIT_REPLACEMENT flag, then all applications +@@ -2375,18 +2310,18 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-BUS-ROUTING" +-></A +->Message Bus Message Routing</H3 ++>7.3. Message Bus Message Routing</A ++></H3 + ><P + > When a message is received by the message bus, the message's +- <TT ++ <VAR + CLASS="LITERAL" +->sndr</TT ++>sndr</VAR + > header field MUST be set to the base service of + the application which sent the message. If the service already has +- a <TT ++ a <VAR + CLASS="LITERAL" +->sndr</TT ++>sndr</VAR + > field, the pre-existing field is replaced. + This rule means that a replies are always sent to the base service name, + i.e. to the same application that sent the message being replied to. +@@ -2401,8 +2336,8 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-BUS-ACTIVATION" +-></A +->Message Bus Service Activation</H3 ++>7.4. Message Bus Service Activation</A ++></H3 + ><P + > <I + CLASS="FIRSTTERM" +@@ -2422,9 +2357,7 @@ + executables. Different kinds of message bus will look for these files + in different places, see <A + HREF="#MESSAGE-BUS-TYPES" +->the Section called <I +->Well-known Message Bus Instances</I +-></A ++>Section 7.5</A + >. + </P + ><P +@@ -2449,12 +2382,10 @@ + ><A + NAME="AEN534" + ></A +-><TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD ++><P ++><B ++>Figure 7. Example service description file</B ++></P + ><PRE + CLASS="PROGRAMLISTING" + > # Sample service description file +@@ -2462,13 +2393,6 @@ + Name=org.gnome.ConfigurationDatabase + Exec=/usr/libexec/gconfd-2 + </PRE +-></TD +-></TR +-></TABLE +-><P +-><B +->Figure 7. Example service description file</B +-></P + ></DIV + > + </P +@@ -2483,9 +2407,9 @@ + </P + ><P + > The executable launched will have the environment variable +- <TT ++ <VAR + CLASS="LITERAL" +->DBUS_ACTIVATION_ADDRESS</TT ++>DBUS_ACTIVATION_ADDRESS</VAR + > set to the address of the + message bus so it can connect and register the appropriate services. + </P +@@ -2493,27 +2417,25 @@ + > The executable being launched may want to know whether the message bus + activating it is one of the well-known message buses (see <A + HREF="#MESSAGE-BUS-TYPES" +->the Section called <I +->Well-known Message Bus Instances</I +-></A ++>Section 7.5</A + >). To facilitate this, the bus MUST also set +- the <TT ++ the <VAR + CLASS="LITERAL" +->DBUS_ACTIVATION_BUS_TYPE</TT ++>DBUS_ACTIVATION_BUS_TYPE</VAR + > environment variable if it is one + of the well-known buses. The currently-defined values for this variable +- are <TT ++ are <VAR + CLASS="LITERAL" +->system</TT ++>system</VAR + > for the systemwide message bus, +- and <TT ++ and <VAR + CLASS="LITERAL" +->session</TT ++>session</VAR + > for the per-login-session message + bus. The activated executable must still connect to the address given +- in <TT ++ in <VAR + CLASS="LITERAL" +->DBUS_ACTIVATION_ADDRESS</TT ++>DBUS_ACTIVATION_ADDRESS</VAR + >, but may assume that the + resulting connection is to the well-known bus. + </P +@@ -2530,8 +2452,8 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-BUS-TYPES" +-></A +->Well-known Message Bus Instances</H3 ++>7.5. Well-known Message Bus Instances</A ++></H3 + ><P + > Two standard message bus instances are defined here, along with how + to locate them and where their service files live. +@@ -2542,8 +2464,8 @@ + CLASS="SECT3" + ><A + NAME="MESSAGE-BUS-TYPES-LOGIN" +-></A +->Login session message bus</H4 ++>7.5.1. Login session message bus</A ++></H4 + ><P + > Each time a user logs in, a <I + CLASS="FIRSTTERM" +@@ -2554,19 +2476,19 @@ + </P + ><P + > The address of the login session message bus is given +- in the <TT ++ in the <VAR + CLASS="LITERAL" +->DBUS_SESSION_BUS_ADDRESS</TT ++>DBUS_SESSION_BUS_ADDRESS</VAR + > environment + variable. If that variable is not set, applications may + also try to read the address from the X Window System root +- window property <TT ++ window property <VAR + CLASS="LITERAL" +->_DBUS_SESSION_BUS_ADDRESS</TT ++>_DBUS_SESSION_BUS_ADDRESS</VAR + >. +- The root window property must have type <TT ++ The root window property must have type <VAR + CLASS="LITERAL" +->STRING</TT ++>STRING</VAR + >. + The environment variable should have precedence over the + root window property. +@@ -2583,8 +2505,8 @@ + CLASS="SECT3" + ><A + NAME="MESSAGE-BUS-TYPES-SYSTEM" +-></A +->System message bus</H4 ++>7.5.2. System message bus</A ++></H4 + ><P + > A computer may have a <I + CLASS="FIRSTTERM" +@@ -2596,20 +2518,23 @@ + </P + ><P + > The address of the login session message bus is given +- in the <TT ++ in the <VAR + CLASS="LITERAL" +->DBUS_SYSTEM_BUS_ADDRESS</TT ++>DBUS_SYSTEM_BUS_ADDRESS</VAR + > environment + variable. If that variable is not set, applications should try + to connect to the well-known address +- <TT ++ <VAR + CLASS="LITERAL" +->unix:path=/var/run/dbus/system_bus_socket</TT ++>unix:path=/var/run/dbus/system_bus_socket</VAR + >. + <A + NAME="AEN566" + HREF="#FTN.AEN566" +->[2]</A ++><SPAN ++CLASS="footnote" ++>[2]</SPAN ++></A + > + </P + ><P +@@ -2623,12 +2548,12 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-BUS-MESSAGES" +-></A +->Message Bus Messages</H3 ++>7.6. Message Bus Messages</A ++></H3 + ><P +-> The special message bus service <TT ++> The special message bus service <VAR + CLASS="LITERAL" +->org.freedesktop.DBus</TT ++>org.freedesktop.DBus</VAR + > + responds to a number of messages, allowing applications to + interact with the message bus. +@@ -2639,70 +2564,46 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-HELLO" +-></A +-><TT ++>7.6.1. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.Hello</TT ++>org.freedesktop.DBus.Hello</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > STRING Hello () + </PRE +-></TD +-></TR +-></TABLE + > + Reply arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN579" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Name of the service assigned to the application</TD + ></TR + ></TBODY +@@ -2715,16 +2616,16 @@ + ><P + > Before an application is able to send messages to other + applications it must send the +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.Hello</TT ++>org.freedesktop.DBus.Hello</VAR + > message to the + message bus service. If an application tries to send a + message to another application, or a message to the message + bus service that isn't the +- <TT ++ <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.Hello</TT ++>org.freedesktop.DBus.Hello</VAR + > message, it + will be disconnected from the bus. If a client wishes to + disconnect from the bus, it just has to disconnect from the +@@ -2740,70 +2641,46 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-LIST-SERVICES" +-></A +-><TT ++>7.6.2. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.ListServices</TT ++>org.freedesktop.DBus.ListServices</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > STRING_ARRAY ListServices () + </PRE +-></TD +-></TR +-></TABLE + > + Reply arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN600" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING_ARRAY</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Array of strings where each string is the name of a service</TD + ></TR + ></TBODY +@@ -2823,70 +2700,46 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-SERVICE-EXISTS" +-></A +-><TT ++>7.6.3. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.ServiceExists</TT ++>org.freedesktop.DBus.ServiceExists</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > BOOLEAN ServiceExists (in STRING service_name) + </PRE +-></TD +-></TR +-></TABLE + > + Message arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN618" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Name of the service</TD + ></TR + ></TBODY +@@ -2898,46 +2751,31 @@ + Reply arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN630" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >BOOLEAN</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Return value, true if the service exists</TD + ></TR + ></TBODY +@@ -2957,84 +2795,54 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-ACQUIRE-SERVICE" +-></A +-><TT ++>7.6.4. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.AcquireService</TT ++>org.freedesktop.DBus.AcquireService</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > UINT32 AcquireService (in STRING service_name) + </PRE +-></TD +-></TR +-></TABLE + > + Message arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN648" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Name of the service</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Flags</TD + ></TR + ></TBODY +@@ -3046,46 +2854,31 @@ + Reply arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN664" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Return value</TD + ></TR + ></TBODY +@@ -3101,68 +2894,47 @@ + + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN677" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Identifier</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Value</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DBUS_SERVICE_FLAGS_PROHIBIT_REPLACEMENT</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0x1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + > If the application succeeds in being the owner of the specified service, + then ownership of the service can't be transferred until the service + disconnects. If this flag is not set, then any application trying to become + the owner of the service will succeed and the previous owner will be +- sent a <TT ++ sent a <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.ServiceLost</TT ++>org.freedesktop.DBus.ServiceLost</VAR + > message. + </TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DBUS_SERVICE_FLAGS_REPLACE_EXISTING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0x2</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Try to replace the current owner if there is one. If this flag + is not set the application will only become the owner of the service if + there is no current owner.</TD +@@ -3180,88 +2952,55 @@ + + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN694" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Identifier</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Value</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DBUS_SERVICE_REPLY_PRIMARY_OWNER</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0x1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The application is now the primary owner of the service.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DBUS_SERVICE_REPLY_IN_QUEUE</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0x2</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The service already has an owner which do not want to give up ownership and therefore the application has been put in a queue.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DBUS_SERVICE_REPLY_SERVICE_EXISTS</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0x4</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The service does already have a primary owner, and DBUS_SERVICE_FLAG_REPLACE_EXISTING was not specified when trying to acquire the service.</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >DBUS_SERVICE_REPLY_ALREADY_OWNER</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0x8</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >The application trying to request ownership of the service is already the owner of it.</TD + ></TR + ></TBODY +@@ -3278,84 +3017,54 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-SERVICE-ACQUIRED" +-></A +-><TT ++>7.6.5. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.ServiceAcquired</TT ++>org.freedesktop.DBus.ServiceAcquired</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > ServiceAcquired (in STRING service_name) + </PRE +-></TD +-></TR +-></TABLE + > + Message arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN723" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Name of the service</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Flags</TD + ></TR + ></TBODY +@@ -3376,84 +3085,54 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-SERVICE-LOST" +-></A +-><TT ++>7.6.6. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.ServiceLost</TT ++>org.freedesktop.DBus.ServiceLost</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > ServiceLost (in STRING service_name) + </PRE +-></TD +-></TR +-></TABLE + > + Message arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN745" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Name of the service</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Flags</TD + ></TR + ></TBODY +@@ -3478,84 +3157,54 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-SERVICE-CREATED" +-></A +-><TT ++>7.6.7. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.ServiceCreated</TT ++>org.freedesktop.DBus.ServiceCreated</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > ServiceCreated (in STRING service_name) + </PRE +-></TD +-></TR +-></TABLE + > + Message arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN767" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Name of the service</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Flags</TD + ></TR + ></TBODY +@@ -3576,84 +3225,54 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-SERVICE-DELETED" +-></A +-><TT ++>7.6.8. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.ServiceDeleted</TT ++>org.freedesktop.DBus.ServiceDeleted</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > ServiceDeleted (in STRING service_name) + </PRE +-></TD +-></TR +-></TABLE + > + Message arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN789" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Name of the service</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Flags</TD + ></TR + ></TBODY +@@ -3674,84 +3293,54 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-ACTIVATE-SERVICE" +-></A +-><TT ++>7.6.9. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.ActivateService</TT ++>org.freedesktop.DBus.ActivateService</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > UINT32 ActivateService (in STRING service_name, in UINT32 flags) + </PRE +-></TD +-></TR +-></TABLE + > + Message arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN811" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >STRING</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Name of the service to activate</TD + ></TR + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >1</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Flags (currently not used)</TD + ></TR + ></TBODY +@@ -3763,46 +3352,31 @@ + Reply arguments: + <DIV + CLASS="INFORMALTABLE" ++><P ++></P + ><A + NAME="AEN827" + ></A +-><P +-></P + ><TABLE + BORDER="1" +-BGCOLOR="#E0E0E0" +-CELLSPACING="0" +-CELLPADDING="4" + CLASS="CALSTABLE" +-><THEAD ++><COL><COL><COL><THEAD + ><TR + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Argument</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Type</TH + ><TH +-ALIGN="LEFT" +-VALIGN="TOP" + >Description</TH + ></TR + ></THEAD + ><TBODY + ><TR + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >0</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >UINT32</TD + ><TD +-ALIGN="LEFT" +-VALIGN="TOP" + >Result code; DBUS_ACTIVATION_REPLY_ACTIVATED if + the service was activated successfully or + DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE if the service is +@@ -3818,9 +3392,7 @@ + ><P + > Tries to launch the executable associated with a service. For more information, see <A + HREF="#MESSAGE-BUS-ACTIVATION" +->the Section called <I +->Message Bus Service Activation</I +-></A ++>Section 7.4</A + >. + + [FIXME need semantics in much more detail here; for example, +@@ -3834,26 +3406,17 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-OUT-OF-MEMORY" +-></A +-><TT ++>7.6.10. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.Error.NoMemory</TT ++>org.freedesktop.DBus.Error.NoMemory</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > void NoMemory () + </PRE +-></TD +-></TR +-></TABLE + > + </P + ><P +@@ -3866,26 +3429,17 @@ + CLASS="SECT3" + ><A + NAME="BUS-MESSAGES-SERVICE-DOES-NOT-EXIST" +-></A +-><TT ++>7.6.11. <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.Error.ServiceDoesNotExist</TT ++>org.freedesktop.DBus.Error.ServiceDoesNotExist</VAR ++></A + ></H4 + ><P + > As a method: +- <TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD +-><PRE ++ <PRE + CLASS="PROGRAMLISTING" + > void ServiceDoesNotExist (in STRING error) + </PRE +-></TD +-></TR +-></TABLE + > + </P + ><P +@@ -3942,9 +3496,9 @@ + ></DT + ><DD + ><P +-> A message sent to the special <TT ++> A message sent to the special <VAR + CLASS="LITERAL" +->org.freedesktop.DBus.Broadcast</TT ++>org.freedesktop.DBus.Broadcast</VAR + > + service; the message bus will forward the broadcast message + to all applications that have expressed interest in it. +@@ -4044,9 +3598,9 @@ + ><DD + ><P + > A service is simply a named list of applications. For example, the +- hypothetical <TT ++ hypothetical <VAR + CLASS="LITERAL" +->com.yoyodyne.Screensaver</TT ++>com.yoyodyne.Screensaver</VAR + > service might + accept messages that affect a screensaver from Yoyodyne Corporation. + An application is said to <I +@@ -4118,7 +3672,10 @@ + ><A + NAME="FTN.AEN378" + HREF="#AEN378" +->[1]</A ++><SPAN ++CLASS="footnote" ++>[1]</SPAN ++></A + ></TD + ><TD + ALIGN="LEFT" +@@ -4126,9 +3683,9 @@ + WIDTH="95%" + ><P + >Lockfiles are used instead of real file +- locking <TT ++ locking <VAR + CLASS="LITERAL" +->fcntl()</TT ++>fcntl()</VAR + > because real locking + implementations are still flaky on network + filesystems.</P +@@ -4142,7 +3699,10 @@ + ><A + NAME="FTN.AEN566" + HREF="#AEN566" +->[2]</A ++><SPAN ++CLASS="footnote" ++>[2]</SPAN ++></A + ></TD + ><TD + ALIGN="LEFT" +@@ -4150,9 +3710,9 @@ + WIDTH="95%" + ><P + > The D-BUS reference implementation actually honors the +- <TT ++ <VAR + CLASS="LITERAL" +->$(localstatedir)</TT ++>$(localstatedir)</VAR + > configure option + for this address, on both client and server side. + </P +diff -urN dbus-0.11.orig/doc/dbus-test-plan.html dbus-0.11/doc/dbus-test-plan.html +--- dbus-0.11.orig/doc/dbus-test-plan.html 2003-02-26 11:27:36.000000000 -0800 ++++ dbus-0.11/doc/dbus-test-plan.html 2003-05-15 23:56:50.000000000 -0700 +@@ -1,12 +1,11 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> ++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> + <HTML + ><HEAD + ><TITLE + >D-BUS Test Plan</TITLE + ><META + NAME="GENERATOR" +-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ +-"></HEAD ++CONTENT="Modular DocBook HTML Stylesheet Version 1.7"></HEAD + ><BODY + CLASS="ARTICLE" + BGCOLOR="#FFFFFF" +@@ -22,19 +21,19 @@ + CLASS="TITLE" + ><A + NAME="AEN2" +-></A +->D-BUS Test Plan</H1 ++>D-BUS Test Plan</A ++></H1 + ><DIV + CLASS="AUTHORGROUP" + ><A + NAME="AEN5" + ></A +-><H4 ++><H3 + CLASS="AUTHOR" + ><A + NAME="AEN6" + >Anders Carlsson</A +-></H4 ++></H3 + ><DIV + CLASS="AFFILIATION" + ><SPAN +@@ -42,17 +41,19 @@ + >CodeFactory AB<BR></SPAN + ><DIV + CLASS="ADDRESS" +-><DIV ++><P ++CLASS="ADDRESS" ++><CODE + CLASS="EMAIL" +->andersca@codefactory.se</DIV ++><<A ++HREF="mailto:andersca@codefactory.se" ++>andersca@codefactory.se</A ++>></CODE ++></P + ></DIV + ></DIV + ></DIV +-><HR +-WIDTH="75%" +-ALIGN="CENTER" +-COLOR="#000000" +-SIZE="1"></DIV ++><HR></DIV + ><DIV + CLASS="TOC" + ><DL +@@ -61,25 +62,81 @@ + >Table of Contents</B + ></DT + ><DT +-><A ++>1. <A + HREF="#INTRODUCTION" + >Introduction</A + ></DT ++><DD ++><DL ++><DT ++>1.1. <A ++HREF="#IMPORTANCE-OF-TESTING" ++>The importance of testing</A ++></DT ++></DL ++></DD + ><DT +-><A ++>2. <A + HREF="#CLIENT-LIBRARY" + >Testing the D-BUS client library</A + ></DT ++><DD ++><DL + ><DT +-><A ++>2.1. <A ++HREF="#DATA-STRUCTURES" ++>Data Structures</A ++></DT ++><DT ++>2.2. <A ++HREF="#MESSAGE-LOADER" ++>Message loader</A ++></DT ++><DT ++>2.3. <A ++HREF="#AUTHENTICATION" ++>Authentication</A ++></DT ++></DL ++></DD ++><DT ++>3. <A + HREF="#DAEMON" + >Testing the D-BUS bus daemon</A + ></DT ++><DD ++><DL + ><DT +-><A ++>3.1. <A ++HREF="#DEBUG-TRANSPORT" ++>The debug transport</A ++></DT ++><DT ++>3.2. <A ++HREF="#BUS-TEST" ++>The bus-test program</A ++></DT ++></DL ++></DD ++><DT ++>4. <A + HREF="#OTHER-TESTS" + >Other tests</A + ></DT ++><DD ++><DL ++><DT ++>4.1. <A ++HREF="#OOM-ROBUSTNESS" ++>Out-Of-Memory robustness</A ++></DT ++><DT ++>4.2. <A ++HREF="#LEAKS-AND-OTHER-STUFF" ++>Memory leaks and code robustness</A ++></DT ++></DL ++></DD + ></DL + ></DIV + ><DIV +@@ -88,8 +145,8 @@ + CLASS="SECT1" + ><A + NAME="INTRODUCTION" +-></A +->Introduction</H2 ++>1. Introduction</A ++></H2 + ><P + > This document tries to explain the details of the test plan for D-BUS + </P +@@ -99,8 +156,8 @@ + CLASS="SECT2" + ><A + NAME="IMPORTANCE-OF-TESTING" +-></A +->The importance of testing</H3 ++>1.1. The importance of testing</A ++></H3 + ><P + > As with any big library or program, testing is important. It + can help find bugs and regressions and make the code better +@@ -114,9 +171,9 @@ + </P + ><P + > D-BUS can be built with support for testing by passing +- <TT ++ <VAR + CLASS="LITERAL" +->--enable-tests</TT ++>--enable-tests</VAR + >. to the configure script. It + is recommended that production systems build without testing + since that reduces the D-BUS client library size. +@@ -129,8 +186,8 @@ + CLASS="SECT1" + ><A + NAME="CLIENT-LIBRARY" +-></A +->Testing the D-BUS client library</H2 ++>2. Testing the D-BUS client library</A ++></H2 + ><P + > The tests for the client library consist of the dbus-test + program which is a unit test for all aspects of the client +@@ -143,8 +200,8 @@ + CLASS="SECT2" + ><A + NAME="DATA-STRUCTURES" +-></A +->Data Structures</H3 ++>2.1. Data Structures</A ++></H3 + ><P + > The D-BUS client library consists of some data structures that + are used internally; a linked list class, a hashtable class and +@@ -157,17 +214,20 @@ + CLASS="SECT2" + ><A + NAME="MESSAGE-LOADER" +-></A +->Message loader</H3 ++>2.2. Message loader</A ++></H3 + ><P + > The message loader is the part of D-BUS that takes messages in + raw character form and parses them, turning them into DBusMessages. + </P + ><P + > This is one of the parts of D-BUS that +- <I ++ <SPAN ++CLASS="emphasis" ++><I + CLASS="EMPHASIS" + >must</I ++></SPAN + > be absolutely bug-free and + robust. The message loader should be able to handle invalid + and incomplete messages without crashing. Not doing so is a +@@ -185,12 +245,10 @@ + ><A + NAME="AEN34" + ></A +-><TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD ++><P ++><B ++>Figure 1. Example of a message in string form</B ++></P + ><PRE + CLASS="PROGRAMLISTING" + > # Standard org.freedesktop.DBus.Hello message +@@ -207,13 +265,6 @@ + START_LENGTH Body + END_LENGTH Body + </PRE +-></TD +-></TR +-></TABLE +-><P +-><B +->Figure 1. Example of a message in string form</B +-></P + ></DIV + ><P + > The file format of messages in string form is documented in +@@ -228,9 +279,9 @@ + </P + ><P + > There is also a test program called +- <TT ++ <VAR + CLASS="LITERAL" +->break-loader</TT ++>break-loader</VAR + > that loads a message in + string-form into raw character form using the message + builder. It then randomly changes the message, it can for +@@ -246,8 +297,8 @@ + CLASS="SECT2" + ><A + NAME="AUTHENTICATION" +-></A +->Authentication</H3 ++>2.3. Authentication</A ++></H3 + ><P + > For testing authentication, there is a testing feature that + can read authentication sequences from a file and play them +@@ -259,12 +310,10 @@ + ><A + NAME="AEN44" + ></A +-><TABLE +-BORDER="0" +-BGCOLOR="#E0E0E0" +-WIDTH="100%" +-><TR +-><TD ++><P ++><B ++>Figure 2. Example of an authentication script</B ++></P + ><PRE + CLASS="PROGRAMLISTING" + > ## this tests a successful auth of type EXTERNAL +@@ -276,13 +325,6 @@ + SEND 'BEGIN' + EXPECT_STATE AUTHENTICATED + </PRE +-></TD +-></TR +-></TABLE +-><P +-><B +->Figure 2. Example of an authentication script</B +-></P + ></DIV + ></DIV + ></DIV +@@ -292,8 +334,8 @@ + CLASS="SECT1" + ><A + NAME="DAEMON" +-></A +->Testing the D-BUS bus daemon</H2 ++>3. Testing the D-BUS bus daemon</A ++></H2 + ><P + > Since the D-BUS bus daemon is using the D-BUS client library it + will benefit from all tests done on the client library, but +@@ -307,12 +349,15 @@ + CLASS="SECT2" + ><A + NAME="DEBUG-TRANSPORT" +-></A +->The debug transport</H3 ++>3.1. The debug transport</A ++></H3 + ><P +-> In D-BUS, a <I ++> In D-BUS, a <SPAN ++CLASS="emphasis" ++><I + CLASS="EMPHASIS" + >transport</I ++></SPAN + > is a class that + handles sending and receiving raw data over a certain + medium. The transport that is used most in D-BUS is the UNIX +@@ -333,8 +378,8 @@ + CLASS="SECT2" + ><A + NAME="BUS-TEST" +-></A +->The bus-test program</H3 ++>3.2. The bus-test program</A ++></H3 + ><P + > The bus-test program is a program that is used to test various + parts of the D-BUS bus daemon; robustness and that it conforms +@@ -360,16 +405,16 @@ + CLASS="SECT1" + ><A + NAME="OTHER-TESTS" +-></A +->Other tests</H2 ++>4. Other tests</A ++></H2 + ><DIV + CLASS="SECT2" + ><H3 + CLASS="SECT2" + ><A + NAME="OOM-ROBUSTNESS" +-></A +->Out-Of-Memory robustness</H3 ++>4.1. Out-Of-Memory robustness</A ++></H3 + ><P + > Since D-BUS should be able to be used in embedded devices, and + also as a system service, it should be able to cope with +@@ -381,14 +426,14 @@ + </P + ><P + > To test this, two environment variables +- exist. <TT ++ exist. <VAR + CLASS="LITERAL" +->DBUS_MALLOC_FAIL_NTH</TT ++>DBUS_MALLOC_FAIL_NTH</VAR + > will make every + nth call to dbus_malloc return NULL, and +- <TT ++ <VAR + CLASS="LITERAL" +->DBUS_MALLOC_FAIL_GREATER_THAN</TT ++>DBUS_MALLOC_FAIL_GREATER_THAN</VAR + > will make any + dbus_malloc call with a request for more than the specified + number of bytes fail. +@@ -400,8 +445,8 @@ + CLASS="SECT2" + ><A + NAME="LEAKS-AND-OTHER-STUFF" +-></A +->Memory leaks and code robustness</H3 ++>4.2. Memory leaks and code robustness</A ++></H3 + ><P + > Naturally there are some things that tests can't be written + for, for example things like memory leaks and out-of-bounds +diff -urN dbus-0.11.orig/glib/Makefile.in dbus-0.11/glib/Makefile.in +--- dbus-0.11.orig/glib/Makefile.in 2003-05-15 12:50:58.000000000 -0700 ++++ dbus-0.11/glib/Makefile.in 2003-05-28 13:34:14.000000000 -0700 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.7.3 from Makefile.am. ++# Makefile.in generated by automake 1.7.5 from Makefile.am. + # @configure_input@ + + # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +@@ -236,6 +236,7 @@ + + @HAVE_GLIB_THREADS_TRUE@test_profile_LDADD = $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la + subdir = glib ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/config.h + CONFIG_CLEAN_FILES = +@@ -397,7 +398,7 @@ + .c.o: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -408,7 +409,7 @@ + .c.obj: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -419,7 +420,7 @@ + .c.lo: + @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@@ -546,7 +547,6 @@ + + installdirs: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(dbusincludedir) +- + install: install-am + install-exec: install-exec-am + install-data: install-data-am +diff -urN dbus-0.11.orig/glib/test-profile.c dbus-0.11/glib/test-profile.c +--- dbus-0.11.orig/glib/test-profile.c 2003-05-11 19:44:45.000000000 -0700 ++++ dbus-0.11/glib/test-profile.c 2003-05-17 19:16:22.000000000 -0700 +@@ -27,8 +27,8 @@ + #include <stdlib.h> + + #define N_CLIENT_THREADS 1 +-#define N_ITERATIONS 100 +-#define PAYLOAD_SIZE 1000 ++#define N_ITERATIONS 1000 ++#define PAYLOAD_SIZE 30 + #define ECHO_MESSAGE "org.freedesktop.DBus.Test.EchoProfile" + static const char *address; + static unsigned char *payload; +diff -urN dbus-0.11.orig/install-sh dbus-0.11/install-sh +--- dbus-0.11.orig/install-sh 2003-01-27 03:03:04.000000000 -0800 ++++ dbus-0.11/install-sh 2003-05-19 11:10:58.000000000 -0700 +@@ -1,19 +1,37 @@ + #!/bin/sh + # + # install - install a program, script, or datafile +-# This comes from X11R5 (mit/util/scripts/install.sh). + # +-# Copyright 1991 by the Massachusetts Institute of Technology ++# This originates from X11R5 (mit/util/scripts/install.sh), which was ++# later released in X11R6 (xc/config/util/install.sh) with the ++# following copyright and license. + # +-# Permission to use, copy, modify, distribute, and sell this software and its +-# documentation for any purpose is hereby granted without fee, provided that +-# the above copyright notice appear in all copies and that both that +-# copyright notice and this permission notice appear in supporting +-# documentation, and that the name of M.I.T. not be used in advertising or +-# publicity pertaining to distribution of the software without specific, +-# written prior permission. M.I.T. makes no representations about the +-# suitability of this software for any purpose. It is provided "as is" +-# without express or implied warranty. ++# Copyright (C) 1994 X Consortium ++# ++# Permission is hereby granted, free of charge, to any person obtaining a copy ++# of this software and associated documentation files (the "Software"), to ++# deal in the Software without restriction, including without limitation the ++# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or ++# sell copies of the Software, and to permit persons to whom the Software is ++# furnished to do so, subject to the following conditions: ++# ++# The above copyright notice and this permission notice shall be included in ++# all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- ++# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++# ++# Except as contained in this notice, the name of the X Consortium shall not ++# be used in advertising or otherwise to promote the sale, use or other deal- ++# ings in this Software without prior written authorization from the X Consor- ++# tium. ++# ++# ++# FSF changes to this file are in the public domain. + # + # Calling this script install-sh is preferred over install.sh, to prevent + # `make' implicit rules from creating a file called install from it +@@ -56,7 +74,7 @@ + + while [ x"$1" != x ]; do + case $1 in +- -c) instcmd="$cpprog" ++ -c) instcmd=$cpprog + shift + continue;; + +@@ -79,7 +97,7 @@ + shift + continue;; + +- -s) stripcmd="$stripprog" ++ -s) stripcmd=$stripprog + shift + continue;; + +@@ -106,7 +124,7 @@ + + if [ x"$src" = x ] + then +- echo "install: no input file specified" ++ echo "$0: no input file specified" >&2 + exit 1 + else + : +@@ -115,8 +133,8 @@ + if [ x"$dir_arg" != x ]; then + dst=$src + src="" +- +- if [ -d $dst ]; then ++ ++ if [ -d "$dst" ]; then + instcmd=: + chmodcmd="" + else +@@ -125,20 +143,20 @@ + else + + # Waiting for this to be detected by the "$instcmd $src $dsttmp" command +-# might cause directories to be created, which would be especially bad ++# might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + + if [ -f "$src" ] || [ -d "$src" ] + then + : + else +- echo "install: $src does not exist" ++ echo "$0: $src does not exist" >&2 + exit 1 + fi +- ++ + if [ x"$dst" = x ] + then +- echo "install: no destination specified" ++ echo "$0: no destination specified" >&2 + exit 1 + else + : +@@ -147,16 +165,16 @@ + # If destination is a directory, append the input filename; if your system + # does not like double slashes in filenames, you may need to add some logic + +- if [ -d $dst ] ++ if [ -d "$dst" ] + then +- dst="$dst"/`basename $src` ++ dst=$dst/`basename "$src"` + else + : + fi + fi + + ## this sed command emulates the dirname command +-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` ++dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + + # Make sure that the destination directory exists. + # this part is taken from Noah Friedman's mkinstalldirs script +@@ -165,69 +183,73 @@ + if [ ! -d "$dstdir" ]; then + defaultIFS=' + ' +-IFS="${IFS-${defaultIFS}}" ++IFS="${IFS-$defaultIFS}" + +-oIFS="${IFS}" ++oIFS=$IFS + # Some sh's can't handle IFS=/ for some reason. + IFS='%' +-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +-IFS="${oIFS}" ++set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` ++IFS=$oIFS + + pathcomp='' + + while [ $# -ne 0 ] ; do +- pathcomp="${pathcomp}${1}" ++ pathcomp=$pathcomp$1 + shift + +- if [ ! -d "${pathcomp}" ] ; ++ if [ ! -d "$pathcomp" ] ; + then +- $mkdirprog "${pathcomp}" ++ $mkdirprog "$pathcomp" + else + : + fi + +- pathcomp="${pathcomp}/" ++ pathcomp=$pathcomp/ + done + fi + + if [ x"$dir_arg" != x ] + then +- $doit $instcmd $dst && ++ $doit $instcmd "$dst" && + +- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && +- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && +- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && +- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi ++ if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && ++ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && ++ if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && ++ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi + else + + # If we're going to rename the final executable, determine the name now. + +- if [ x"$transformarg" = x ] ++ if [ x"$transformarg" = x ] + then +- dstfile=`basename $dst` ++ dstfile=`basename "$dst"` + else +- dstfile=`basename $dst $transformbasename | ++ dstfile=`basename "$dst" $transformbasename | + sed $transformarg`$transformbasename + fi + + # don't allow the sed command to completely eliminate the filename + +- if [ x"$dstfile" = x ] ++ if [ x"$dstfile" = x ] + then +- dstfile=`basename $dst` ++ dstfile=`basename "$dst"` + else + : + fi + +-# Make a temp file name in the proper directory. ++# Make a couple of temp file names in the proper directory. + + dsttmp=$dstdir/#inst.$$# ++ rmtmp=$dstdir/#rm.$$# + +-# Move or copy the file name to the temp name ++# Trap to clean up temp files at exit. ++ ++ trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 ++ trap '(exit $?); exit' 1 2 13 15 + +- $doit $instcmd $src $dsttmp && ++# Move or copy the file name to the temp name + +- trap "rm -f ${dsttmp}" 0 && ++ $doit $instcmd "$src" "$dsttmp" && + + # and set any options; do chmod last to preserve setuid bits + +@@ -235,17 +257,38 @@ + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $instcmd $src $dsttmp" command. + +- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && +- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && +- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && +- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && ++ if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && ++ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && ++ if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && ++ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && ++ ++# Now remove or move aside any old file at destination location. We try this ++# two ways since rm can't unlink itself on some systems and the destination ++# file might be busy for other reasons. In this case, the final cleanup ++# might fail but the new file should still install successfully. ++ ++{ ++ if [ -f "$dstdir/$dstfile" ] ++ then ++ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || ++ $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || ++ { ++ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 ++ (exit 1); exit ++ } ++ else ++ : ++ fi ++} && + + # Now rename the file to the real destination. + +- $doit $rmcmd -f $dstdir/$dstfile && +- $doit $mvcmd $dsttmp $dstdir/$dstfile ++ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + + fi && + ++# The final little trick to "correctly" pass the exit status to the exit trap. + +-exit 0 ++{ ++ (exit 0); exit ++} +diff -urN dbus-0.11.orig/ltmain.sh dbus-0.11/ltmain.sh +--- dbus-0.11.orig/ltmain.sh 2003-05-15 12:50:52.000000000 -0700 ++++ dbus-0.11/ltmain.sh 2003-05-28 13:34:06.000000000 -0700 +@@ -226,7 +226,7 @@ + # Infer the operation mode. + if test -z "$mode"; then + case $nonopt in +- *cc | *++ | gcc* | *-gcc* | xlc*) ++ *cc | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do +@@ -899,7 +899,7 @@ + prev= + continue + ;; +- inst_prefix) ++ inst_prefix) + inst_prefix_dir="$arg" + prev= + continue +@@ -1006,9 +1006,9 @@ + ;; + + -inst-prefix-dir) +- prev=inst_prefix +- continue +- ;; ++ prev=inst_prefix ++ continue ++ ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L +@@ -1857,6 +1857,14 @@ + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" ++ # Try looking first in the location we're being installed to. ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" ++ ;; ++ esac ++ fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" +@@ -1904,16 +1912,7 @@ + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then +- # Try looking first in the location we're being installed to. +- add_dir= +- if test -n "$inst_prefix_dir"; then +- case "$libdir" in +- [\\/]*) +- add_dir="-L$inst_prefix_dir$libdir" +- ;; +- esac +- fi +- add_dir="$add_dir -L$libdir" ++ add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in +@@ -1923,16 +1922,15 @@ + add="-l$name" + else + # We cannot seem to hardcode it, guess we'll fake it. ++ add_dir="-L$libdir" + # Try looking first in the location we're being installed to. +- add_dir= + if test -n "$inst_prefix_dir"; then + case "$libdir" in +- [\\/]*) +- add_dir="-L$inst_prefix_dir$libdir" ++ [\/]*) ++ add_dir="-L$inst_prefix_dir$libdir $add_dir" + ;; + esac + fi +- add_dir="$add_dir -L$libdir" + add="-l$name" + fi + +@@ -4258,23 +4256,23 @@ + dir="$dir$objdir" + + if test -n "$relink_command"; then +- # Determine the prefix the user has applied to our future dir. +- inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` +- +- # Don't allow the user to place us outside of our expected +- # location b/c this prevents finding dependent libraries that +- # are installed to the same prefix. +- if test "$inst_prefix_dir" = "$destdir"; then +- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 +- exit 1 +- fi +- +- if test -n "$inst_prefix_dir"; then +- # Stick the inst_prefix_dir data into the link command. +- relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` +- else +- relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` +- fi ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ if test "$inst_prefix_dir" = "$destdir"; then ++ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` ++ fi + + $echo "$modename: warning: relinking \`$file'" 1>&2 + $show "$relink_command" +@@ -4444,11 +4442,7 @@ + if test "$finalize" = yes && test -z "$run"; then + tmpdir="/tmp" + test -n "$TMPDIR" && tmpdir="$TMPDIR" +- tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null` +- if test $? = 0 ; then : +- else +- tmpdir="$tmpdir/libtool-$$" +- fi ++ tmpdir="$tmpdir/libtool-$$" + if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : + else + $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 +diff -urN dbus-0.11.orig/mkinstalldirs dbus-0.11/mkinstalldirs +--- dbus-0.11.orig/mkinstalldirs 2003-01-27 03:03:04.000000000 -0800 ++++ dbus-0.11/mkinstalldirs 2003-05-19 11:10:58.000000000 -0700 +@@ -12,18 +12,29 @@ + + # process command line arguments + while test $# -gt 0 ; do +- case "${1}" in +- -h | --help | --h* ) # -h for help +- echo "${usage}" 1>&2; exit 0 ;; +- -m ) # -m PERM arg +- shift +- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } +- dirmode="${1}" +- shift ;; +- -- ) shift; break ;; # stop option processing +- -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option +- * ) break ;; # first non-opt arg +- esac ++ case $1 in ++ -h | --help | --h*) # -h for help ++ echo "$usage" 1>&2 ++ exit 0 ++ ;; ++ -m) # -m PERM arg ++ shift ++ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } ++ dirmode=$1 ++ shift ++ ;; ++ --) # stop option processing ++ shift ++ break ++ ;; ++ -*) # unknown option ++ echo "$usage" 1>&2 ++ exit 1 ++ ;; ++ *) # first non-opt arg ++ break ++ ;; ++ esac + done + + for file +@@ -36,64 +47,65 @@ + done + + case $# in +-0) exit 0 ;; ++ 0) exit 0 ;; + esac + + case $dirmode in +-'') +- if mkdir -p -- . 2>/dev/null; then +- echo "mkdir -p -- $*" +- exec mkdir -p -- "$@" +- fi ;; +-*) +- if mkdir -m "$dirmode" -p -- . 2>/dev/null; then +- echo "mkdir -m $dirmode -p -- $*" +- exec mkdir -m "$dirmode" -p -- "$@" +- fi ;; ++ '') ++ if mkdir -p -- . 2>/dev/null; then ++ echo "mkdir -p -- $*" ++ exec mkdir -p -- "$@" ++ fi ++ ;; ++ *) ++ if mkdir -m "$dirmode" -p -- . 2>/dev/null; then ++ echo "mkdir -m $dirmode -p -- $*" ++ exec mkdir -m "$dirmode" -p -- "$@" ++ fi ++ ;; + esac + + for file + do +- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` +- shift ++ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` ++ shift + +- pathcomp= +- for d +- do +- pathcomp="$pathcomp$d" +- case "$pathcomp" in +- -* ) pathcomp=./$pathcomp ;; +- esac +- +- if test ! -d "$pathcomp"; then +- echo "mkdir $pathcomp" +- +- mkdir "$pathcomp" || lasterr=$? +- +- if test ! -d "$pathcomp"; then +- errstatus=$lasterr +- else +- if test ! -z "$dirmode"; then +- echo "chmod $dirmode $pathcomp" +- +- lasterr="" +- chmod "$dirmode" "$pathcomp" || lasterr=$? +- +- if test ! -z "$lasterr"; then +- errstatus=$lasterr +- fi +- fi +- fi +- fi ++ pathcomp= ++ for d ++ do ++ pathcomp="$pathcomp$d" ++ case $pathcomp in ++ -*) pathcomp=./$pathcomp ;; ++ esac ++ ++ if test ! -d "$pathcomp"; then ++ echo "mkdir $pathcomp" ++ ++ mkdir "$pathcomp" || lasterr=$? ++ ++ if test ! -d "$pathcomp"; then ++ errstatus=$lasterr ++ else ++ if test ! -z "$dirmode"; then ++ echo "chmod $dirmode $pathcomp" ++ lasterr="" ++ chmod "$dirmode" "$pathcomp" || lasterr=$? ++ ++ if test ! -z "$lasterr"; then ++ errstatus=$lasterr ++ fi ++ fi ++ fi ++ fi + +- pathcomp="$pathcomp/" +- done ++ pathcomp="$pathcomp/" ++ done + done + + exit $errstatus + + # Local Variables: + # mode: shell-script +-# sh-indentation: 3 ++# sh-indentation: 2 + # End: + # mkinstalldirs ends here +diff -urN dbus-0.11.orig/qt/Makefile.in dbus-0.11/qt/Makefile.in +--- dbus-0.11.orig/qt/Makefile.in 2003-05-15 12:50:58.000000000 -0700 ++++ dbus-0.11/qt/Makefile.in 2003-05-28 13:34:14.000000000 -0700 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.7.3 from Makefile.am. ++# Makefile.in generated by automake 1.7.5 from Makefile.am. + # @configure_input@ + + # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +@@ -202,6 +202,7 @@ + libdbus_qt_1_la_LIBADD = $(DBUS_QT_LIBS) $(top_builddir)/dbus/libdbus-1.la + libdbus_qt_1_la_LDFLAGS = -version-info 1:0 + subdir = qt ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/config.h + CONFIG_CLEAN_FILES = +@@ -283,7 +284,7 @@ + .cpp.o: + @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCXX_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -294,7 +295,7 @@ + .cpp.obj: + @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ +-@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCXX_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -305,7 +306,7 @@ + .cpp.lo: + @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ ++@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ + @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCXX_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@@ -432,7 +433,6 @@ + + installdirs: + $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(dbusincludedir) +- + install: install-am + install-exec: install-exec-am + install-data: install-data-am +diff -urN dbus-0.11.orig/test/Makefile.in dbus-0.11/test/Makefile.in +--- dbus-0.11.orig/test/Makefile.in 2003-05-15 12:57:07.000000000 -0700 ++++ dbus-0.11/test/Makefile.in 2003-05-28 13:54:06.000000000 -0700 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.7.3 from Makefile.am. ++# Makefile.in generated by automake 1.7.5 from Makefile.am. + # @configure_input@ + + # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +@@ -255,6 +255,7 @@ + + FIND_TESTS = find -name "*.message" -o -name "*.message-raw" -o -name "*.auth-script" -o -name "*.sha1" -o -name "*.txt" -o -name "*.conf" -o -name "*.service" + subdir = test ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/config.h + CONFIG_CLEAN_FILES = +@@ -403,7 +404,7 @@ + .c.o: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -414,7 +415,7 @@ + .c.obj: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -425,7 +426,7 @@ + .c.lo: + @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@@ -536,7 +537,6 @@ + all-am: Makefile $(PROGRAMS) all-local + + installdirs: +- + install: install-am + install-exec: install-exec-am + install-data: install-data-am +diff -urN dbus-0.11.orig/test/data/invalid-messages/no-name.message dbus-0.11/test/data/invalid-messages/no-name.message +--- dbus-0.11.orig/test/data/invalid-messages/no-name.message 2003-05-15 12:57:07.000000000 -0700 ++++ dbus-0.11/test/data/invalid-messages/no-name.message 1969-12-31 16:00:00.000000000 -0800 +@@ -1,15 +0,0 @@ +-## like simplest-manual.message, but doesn't contain a valid name field +- +-LITTLE_ENDIAN +-BYTE 'l' +-BYTE 0 +-BYTE 0 +-BYTE 0 +-LENGTH Header +-LENGTH Body +-## client serial +-INT32 7 +-ALIGN 8 +-END_LENGTH Header +-START_LENGTH Body +-END_LENGTH Body +diff -urN dbus-0.11.orig/test/data/valid-config-files/debug-allow-all-sha1.conf dbus-0.11/test/data/valid-config-files/debug-allow-all-sha1.conf +--- dbus-0.11.orig/test/data/valid-config-files/debug-allow-all-sha1.conf 2003-05-15 12:57:07.000000000 -0700 ++++ dbus-0.11/test/data/valid-config-files/debug-allow-all-sha1.conf 2003-05-28 13:54:06.000000000 -0700 +@@ -5,7 +5,7 @@ + <busconfig> + <listen>debug-pipe:name=test-server</listen> + <listen>unix:tmpdir=/tmp</listen> +- <servicedir>/cvs/fd-cvs/dbus/test/data/valid-service-files</servicedir> ++ <servicedir>/src/cvs/wildstar.community.redhat.com/dbus/test/data/valid-service-files</servicedir> + <auth>DBUS_COOKIE_SHA1</auth> + <policy context="default"> + <allow send="*"/> +diff -urN dbus-0.11.orig/test/data/valid-config-files/debug-allow-all.conf dbus-0.11/test/data/valid-config-files/debug-allow-all.conf +--- dbus-0.11.orig/test/data/valid-config-files/debug-allow-all.conf 2003-05-15 12:57:07.000000000 -0700 ++++ dbus-0.11/test/data/valid-config-files/debug-allow-all.conf 2003-05-28 13:54:06.000000000 -0700 +@@ -5,7 +5,7 @@ + <busconfig> + <listen>debug-pipe:name=test-server</listen> + <listen>unix:tmpdir=/tmp</listen> +- <servicedir>/cvs/fd-cvs/dbus/test/data/valid-service-files</servicedir> ++ <servicedir>/src/cvs/wildstar.community.redhat.com/dbus/test/data/valid-service-files</servicedir> + <policy context="default"> + <allow send="*"/> + <allow receive="*"/> +diff -urN dbus-0.11.orig/test/data/valid-config-files/session.conf dbus-0.11/test/data/valid-config-files/session.conf +--- dbus-0.11.orig/test/data/valid-config-files/session.conf 2003-05-15 12:57:07.000000000 -0700 ++++ dbus-0.11/test/data/valid-config-files/session.conf 2003-05-28 13:54:06.000000000 -0700 +@@ -10,6 +10,8 @@ + + <listen>unix:tmpdir=/tmp</listen> + ++ <servicedir>/build/dbus/lib/dbus-1.0/services</servicedir> ++ + <policy context="default"> + <!-- Allow everything --> + <allow send="*"/> +diff -urN dbus-0.11.orig/test/data/valid-config-files/system.conf dbus-0.11/test/data/valid-config-files/system.conf +--- dbus-0.11.orig/test/data/valid-config-files/system.conf 2003-05-15 12:57:07.000000000 -0700 ++++ dbus-0.11/test/data/valid-config-files/system.conf 2003-05-28 13:54:06.000000000 -0700 +@@ -21,13 +21,13 @@ + <fork/> + + <!-- Write a pid file --> +- <pidfile>/unst/var/run/messagebus.pid</pidfile> ++ <pidfile>/build/dbus/var/run/dbus/pid</pidfile> + + <!-- Only allow socket-credentials-based authentication --> + <auth>EXTERNAL</auth> + + <!-- Only listen on a local socket --> +- <listen>unix:path=/unst/var/run/dbus/system_bus_socket</listen> ++ <listen>unix:path=/build/dbus/var/run/dbus/system_bus_socket</listen> + + <policy context="default"> + <!-- Deny everything then punch holes --> +@@ -37,6 +37,8 @@ + <!-- But allow all users to connect --> + <allow user="*"/> + <!-- Allow anyone to talk to the message bus --> ++ <!-- FIXME I think currently these allow rules are always implicit ++ even if they aren't in here --> + <allow send_to="org.freedesktop.DBus"/> + <allow receive_from="org.freedesktop.DBus"/> + </policy> +diff -urN dbus-0.11.orig/test/data/valid-service-files/debug-echo.service dbus-0.11/test/data/valid-service-files/debug-echo.service +--- dbus-0.11.orig/test/data/valid-service-files/debug-echo.service 2003-05-15 12:57:07.000000000 -0700 ++++ dbus-0.11/test/data/valid-service-files/debug-echo.service 2003-05-28 13:54:06.000000000 -0700 +@@ -1,3 +1,3 @@ + [D-BUS Service] + Name=org.freedesktop.DBus.TestSuiteEchoService +-Exec=/cvs/fd-cvs/dbus/test/test-service ++Exec=/src/cvs/wildstar.community.redhat.com/dbus/test/test-service +diff -urN dbus-0.11.orig/test/data/valid-service-files/debug-segfault.service dbus-0.11/test/data/valid-service-files/debug-segfault.service +--- dbus-0.11.orig/test/data/valid-service-files/debug-segfault.service 2003-05-15 12:57:07.000000000 -0700 ++++ dbus-0.11/test/data/valid-service-files/debug-segfault.service 2003-05-28 13:54:06.000000000 -0700 +@@ -1,4 +1,4 @@ + [D-BUS Service] + Name=org.freedesktop.DBus.TestSuiteSegfaultService +-Exec=/cvs/fd-cvs/dbus/test/test-segfault ++Exec=/src/cvs/wildstar.community.redhat.com/dbus/test/test-segfault + +diff -urN dbus-0.11.orig/tools/Makefile.am dbus-0.11/tools/Makefile.am +--- dbus-0.11.orig/tools/Makefile.am 2003-05-05 12:10:38.000000000 -0700 ++++ dbus-0.11/tools/Makefile.am 2003-05-16 13:25:47.000000000 -0700 +@@ -9,10 +9,14 @@ + bin_PROGRAMS=dbus-send $(GLIB_TOOLS) dbus-launch + + dbus_send_SOURCES= \ ++ dbus-print-message.c \ ++ dbus-print-message.h \ + dbus-send.c + + dbus_monitor_SOURCES= \ +- dbus-monitor.c ++ dbus-monitor.c \ ++ dbus-print-message.c \ ++ dbus-print-message.h + + dbus_launch_SOURCES= \ + dbus-launch.c +diff -urN dbus-0.11.orig/tools/Makefile.in dbus-0.11/tools/Makefile.in +--- dbus-0.11.orig/tools/Makefile.in 2003-05-15 12:50:58.000000000 -0700 ++++ dbus-0.11/tools/Makefile.in 2003-05-28 13:34:14.000000000 -0700 +@@ -1,4 +1,4 @@ +-# Makefile.in generated by automake 1.7.3 from Makefile.am. ++# Makefile.in generated by automake 1.7.5 from Makefile.am. + # @configure_input@ + + # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +@@ -193,11 +193,15 @@ + bin_PROGRAMS = dbus-send $(GLIB_TOOLS) dbus-launch + + dbus_send_SOURCES = \ ++ dbus-print-message.c \ ++ dbus-print-message.h \ + dbus-send.c + + + dbus_monitor_SOURCES = \ +- dbus-monitor.c ++ dbus-monitor.c \ ++ dbus-print-message.c \ ++ dbus-print-message.h + + + dbus_launch_SOURCES = \ +@@ -211,6 +215,7 @@ + man_MANS = dbus-send.1 dbus-monitor.1 dbus-launch.1 + EXTRA_DIST = $(man_MANS) + subdir = tools ++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/config.h + CONFIG_CLEAN_FILES = +@@ -223,11 +228,12 @@ + dbus_launch_OBJECTS = $(am_dbus_launch_OBJECTS) + dbus_launch_DEPENDENCIES = + dbus_launch_LDFLAGS = +-am_dbus_monitor_OBJECTS = dbus-monitor.$(OBJEXT) ++am_dbus_monitor_OBJECTS = dbus-monitor.$(OBJEXT) \ ++ dbus-print-message.$(OBJEXT) + dbus_monitor_OBJECTS = $(am_dbus_monitor_OBJECTS) + dbus_monitor_DEPENDENCIES = $(top_builddir)/glib/libdbus-glib-1.la + dbus_monitor_LDFLAGS = +-am_dbus_send_OBJECTS = dbus-send.$(OBJEXT) ++am_dbus_send_OBJECTS = dbus-print-message.$(OBJEXT) dbus-send.$(OBJEXT) + dbus_send_OBJECTS = $(am_dbus_send_OBJECTS) + dbus_send_DEPENDENCIES = $(top_builddir)/dbus/libdbus-1.la + dbus_send_LDFLAGS = +@@ -237,6 +243,7 @@ + am__depfiles_maybe = depfiles + @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/dbus-launch.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/dbus-monitor.Po \ ++@AMDEP_TRUE@ ./$(DEPDIR)/dbus-print-message.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/dbus-send.Po + COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@@ -309,6 +316,7 @@ + + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-launch.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-monitor.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-print-message.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-send.Po@am__quote@ + + distclean-depend: +@@ -317,7 +325,7 @@ + .c.o: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -328,7 +336,7 @@ + .c.obj: + @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@@ -339,7 +347,7 @@ + .c.lo: + @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + @am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +-@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ + @am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + @am__fastdepCC_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@@ -495,7 +503,6 @@ + + installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir) +- + install: install-am + install-exec: install-exec-am + install-data: install-data-am +diff -urN dbus-0.11.orig/tools/dbus-launch.1 dbus-0.11/tools/dbus-launch.1 +--- dbus-0.11.orig/tools/dbus-launch.1 2003-05-04 01:54:24.000000000 -0700 ++++ dbus-0.11/tools/dbus-launch.1 2003-05-17 19:14:18.000000000 -0700 +@@ -7,7 +7,7 @@ + dbus-launch \- Utility to start a message bus from a shell script + .SH SYNOPSIS + .PP +-.B dbus-launch [\-\-version] [\-\-exit-with-session] ++.B dbus-launch [\-\-version] [\-\-sh-syntax] [\-\-csh-syntax] [\-\-auto-syntax] [\-\-exit-with-session] [PROGRAM] [ARGS...] + + .SH DESCRIPTION + +@@ -15,8 +15,25 @@ + from a shell script. It would normally be called from a user's login + scripts. Unlike the daemon itself, \fIdbus-launch\fP exits, so + backticks or the $() construct can be used to read information from +-\fIdbus-launch\fP. \fIdbus-launch\fP prints information about the +-launched daemon in KEY=VALUE format. ++\fIdbus-launch\fP. ++ ++With no arguments, \fIdbus-launch\fP will simply print the values of ++DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. ++ ++You may specify a program to be run; in this case, \fIdbus-launch\fP ++will then set the appropriate environment variables and execute the ++specified program, with the specified arguments. See below for ++examples. ++ ++Finally, you may use the \-\-auto-syntax command to cause ++\fIdbus-launch\fP to emit shell code to set up the environment. This ++is useful in shell scripts. With this option, \fIdbus-launch\fP looks ++at the value of the SHELL environment variable to determine which ++shell syntax should be used. If SHELL ends in "csh", then ++csh-compatible code is emitted; otherwise Bourne shell code is ++emitted. Instead of passing \-\-auto-syntax, you may explicity ++specify a particular one by using \-\-sh-syntax for Bourne syntax, or ++\-\-csh-syntax for csh syntax. + + .PP + See http://www.freedesktop.org/software/dbus/ for more information +@@ -30,17 +47,34 @@ + ## test for an existing bus daemon, just to be safe + if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then + ## if not found, launch a new one +- eval `dbus-launch --exit-with-session` ++ eval `dbus-launch --auto-syntax --exit-with-session` + echo "D-BUS per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS" +- export DBUS_SESSION_BUS_ADDRESS + fi + + .fi + You might run something like that in your login scripts. + ++.PP ++Another way to use \fIdbus-launch\fP is to run your main session ++program, like so: ++.nf ++ ++dbus-launch gnome-session ++ ++.fi ++The above would likely be appropriate for ~/.xsession. ++ + .SH OPTIONS + The following options are supported: + .TP ++.I "--auto-syntax" ++Attempt to detect the shell in use, and emit compatible code. ++ ++.TP ++.I "--csh-syntax" ++Emit csh compatible code. ++ ++.TP + .I "--exit-with-session" + If this option is provided, a persistent "babysitter" process will be + created that watches stdin for HUP and tries to connect to the X +@@ -48,6 +82,10 @@ + it kills the message bus daemon. + + .TP ++.I "--sh-syntax" ++Emit Bourne-shell compatible code. ++ ++.TP + .I "--version" + Print the version of dbus-launch + +diff -urN dbus-0.11.orig/tools/dbus-launch.c dbus-0.11/tools/dbus-launch.c +--- dbus-0.11.orig/tools/dbus-launch.c 2003-05-04 01:54:24.000000000 -0700 ++++ dbus-0.11/tools/dbus-launch.c 2003-05-17 19:38:33.000000000 -0700 +@@ -77,10 +77,10 @@ + } + + static void +-usage (void) ++usage (int ecode) + { +- fprintf (stderr, "dbus-launch [--version] [--exit-with-session]\n"); +- exit (1); ++ fprintf (stderr, "dbus-launch [--version] [--help] [--sh-syntax] [--csh-syntax] [--auto-syntax] [--exit-with-session]\n"); ++ exit (ecode); + } + + static void +@@ -94,6 +94,26 @@ + exit (0); + } + ++static char * ++xstrdup (const char *str) ++{ ++ int len; ++ char *copy; ++ ++ if (str == NULL) ++ return NULL; ++ ++ len = strlen (str); ++ ++ copy = malloc (len + 1); ++ if (copy == NULL) ++ return NULL; ++ ++ memcpy (copy, str, len + 1); ++ ++ return copy; ++} ++ + typedef enum + { + READ_STATUS_OK, /**< Read succeeded */ +@@ -277,6 +297,7 @@ + { + verbose ("X IO error\n"); + kill_bus_and_exit (); ++ return 0; + } + #endif + +@@ -543,7 +564,13 @@ + main (int argc, char **argv) + { + const char *prev_arg; ++ const char *shname; ++ const char *runprog = NULL; ++ int remaining_args = 0; + int exit_with_session; ++ int c_shell_syntax = FALSE; ++ int bourne_shell_syntax = FALSE; ++ int auto_shell_syntax = FALSE; + int i; + int ret; + int bus_pid_to_launcher_pipe[2]; +@@ -561,20 +588,48 @@ + if (strcmp (arg, "--help") == 0 || + strcmp (arg, "-h") == 0 || + strcmp (arg, "-?") == 0) +- usage (); ++ usage (0); ++ else if (strcmp (arg, "--auto-syntax") == 0) ++ auto_shell_syntax = TRUE; ++ else if (strcmp (arg, "-c") == 0 || ++ strcmp (arg, "--csh-syntax") == 0) ++ c_shell_syntax = TRUE; ++ else if (strcmp (arg, "-s") == 0 || ++ strcmp (arg, "--sh-syntax") == 0) ++ bourne_shell_syntax = TRUE; + else if (strcmp (arg, "--version") == 0) + version (); + else if (strcmp (arg, "--exit-with-session") == 0) + exit_with_session = TRUE; ++ else if (runprog) ++ usage (1); + else +- usage (); ++ { ++ runprog = arg; ++ remaining_args = i+1; ++ break; ++ } + + prev_arg = arg; + + ++i; + } + +- verbose ("--exit-with-session provided\n"); ++ if (exit_with_session) ++ verbose ("--exit-with-session enabled\n"); ++ ++ if (auto_shell_syntax) ++ { ++ if ((shname = getenv ("SHELL")) != NULL) ++ { ++ if (!strncmp (shname + strlen (shname) - 3, "csh", 3)) ++ c_shell_syntax = TRUE; ++ else ++ bourne_shell_syntax = TRUE; ++ } ++ else ++ bourne_shell_syntax = TRUE; ++ } + + if (pipe (bus_pid_to_launcher_pipe) < 0 || + pipe (bus_address_to_launcher_pipe) < 0) +@@ -737,17 +792,62 @@ + } + + close (bus_pid_to_launcher_pipe[READ_END]); +- +- printf ("DBUS_SESSION_BUS_ADDRESS='%s'\n", +- bus_address); +- +- printf ("DBUS_SESSION_BUS_PID=%ld\n", +- (long) bus_pid); +- ++ ++ if (runprog) ++ { ++ char *envvar; ++ char **args; ++ ++ envvar = malloc (strlen ("DBUS_SESSION_BUS_ADDRESS=") + strlen (bus_address) + 1); ++ args = malloc (sizeof (char *) * ((argc-remaining_args)+2)); ++ ++ if (envvar == NULL || args == NULL) ++ goto oom; ++ ++ args[0] = xstrdup (runprog); ++ if (!args[0]) ++ goto oom; ++ for (i = 1; i <= (argc-remaining_args); i++) ++ { ++ size_t len = strlen (argv[remaining_args+i-1])+1; ++ args[i] = malloc (len); ++ if (!args[i]) ++ goto oom; ++ strncpy (args[i], argv[remaining_args+i-1], len); ++ } ++ args[i] = NULL; ++ ++ strcpy (envvar, "DBUS_SESSION_BUS_ADDRESS="); ++ strcat (envvar, bus_address); ++ putenv (envvar); ++ ++ execvp (runprog, args); ++ fprintf (stderr, "Couldn't exec %s: %s\n", runprog, strerror (errno)); ++ exit (1); ++ } ++ else ++ { ++ if (c_shell_syntax) ++ printf ("setenv DBUS_SESSION_BUS_ADDRESS '%s'\n", bus_address); ++ else ++ { ++ printf ("DBUS_SESSION_BUS_ADDRESS='%s'\n", bus_address); ++ if (bourne_shell_syntax) ++ printf ("export DBUS_SESSION_BUS_ADDRESS\n"); ++ } ++ if (c_shell_syntax) ++ printf ("set DBUS_SESSION_BUS_PID=%ld\n", (long) bus_pid); ++ else ++ printf ("DBUS_SESSION_BUS_PID=%ld\n", (long) bus_pid); ++ } ++ + verbose ("dbus-launch exiting\n"); + + exit (0); + } + + return 0; ++ oom: ++ fprintf (stderr, "Out of memory!"); ++ exit (1); + } +diff -urN dbus-0.11.orig/tools/dbus-monitor.1 dbus-0.11/tools/dbus-monitor.1 +--- dbus-0.11.orig/tools/dbus-monitor.1 2003-05-03 15:03:16.000000000 -0700 ++++ dbus-0.11/tools/dbus-monitor.1 2003-05-16 16:13:43.000000000 -0700 +@@ -8,6 +8,7 @@ + .SH SYNOPSIS + .PP + .B dbus-monitor ++[\-\-system] + + .SH DESCRIPTION + +@@ -20,16 +21,17 @@ + There are two well-known message buses: the systemwide message bus + (installed on many systems as the "messagebus" service) and the + per-user-login-session message bus (started each time a user logs in). +-Right now, \fIdbus-monitor\fP is hardcoded to only work with the +-systemwide message bus. It should really be extended to have a +-\-\-session command line option as with \fIdbus-send\fP. ++\fIdbus-monitor\fP by default monitors the session bus; to monitor the ++system bus, specify \-\-system. + + .PP + The message bus configuration may keep \fIdbus-monitor\fP from seeing + all messages, especially if you run the monitor as a non-root user. + + .SH OPTIONS +-No options are currently supported. ++.TP ++.I "--system" ++Use the system message bus instead of the session bus. + + .SH AUTHOR + dbus-monitor was written by Philip Blundell. +diff -urN dbus-0.11.orig/tools/dbus-monitor.c dbus-0.11/tools/dbus-monitor.c +--- dbus-0.11.orig/tools/dbus-monitor.c 2003-04-24 09:35:58.000000000 -0700 ++++ dbus-0.11/tools/dbus-monitor.c 2003-05-16 16:03:38.000000000 -0700 +@@ -27,6 +27,7 @@ + #include <dbus/dbus.h> + /* Don't copy this, for programs outside the dbus tree it's dbus/dbus-glib.h */ + #include <glib/dbus-glib.h> ++#include "dbus-print-message.h" + + static DBusHandlerResult + handler_func (DBusMessageHandler *handler, +@@ -34,69 +35,47 @@ + DBusMessage *message, + void *user_data) + { +- DBusMessageIter iter; +- +- printf ("message name=%s; sender=%s\n", dbus_message_get_name (message), +- dbus_message_get_sender (message)); +- +- dbus_message_iter_init (message, &iter); +- +- do +- { +- int type = dbus_message_iter_get_arg_type (&iter); +- char *str; +- dbus_uint32_t uint32; +- dbus_int32_t int32; +- double d; +- unsigned char byte; +- +- if (type == DBUS_TYPE_INVALID) +- break; +- +- switch (type) +- { +- case DBUS_TYPE_STRING: +- str = dbus_message_iter_get_string (&iter); +- printf ("string:%s\n", str); +- break; +- +- case DBUS_TYPE_INT32: +- int32 = dbus_message_iter_get_int32 (&iter); +- printf ("int32:%d\n", int32); +- break; +- +- case DBUS_TYPE_UINT32: +- uint32 = dbus_message_iter_get_uint32 (&iter); +- printf ("int32:%u\n", uint32); +- break; +- +- case DBUS_TYPE_DOUBLE: +- d = dbus_message_iter_get_double (&iter); +- printf ("double:%f\n", d); +- break; +- +- case DBUS_TYPE_BYTE: +- byte = dbus_message_iter_get_byte (&iter); +- printf ("byte:%d\n", byte); +- break; +- +- default: +- printf ("(unknown arg type %d)\n", type); +- break; +- } +- } while (dbus_message_iter_next (&iter)); +- ++ print_message (message); ++ ++ if (dbus_message_has_name (message, DBUS_MESSAGE_LOCAL_DISCONNECT)) ++ exit (0); ++ + return DBUS_HANDLER_RESULT_ALLOW_MORE_HANDLERS; + } + ++static void ++usage (char *name, int ecode) ++{ ++ fprintf (stderr, "Usage: %s [--system]\n", name); ++ exit (ecode); ++} ++ + int + main (int argc, char *argv[]) + { + DBusConnection *connection; + DBusError error; +- DBusBusType type = DBUS_BUS_SYSTEM; ++ DBusBusType type = DBUS_BUS_SESSION; + DBusMessageHandler *handler; + GMainLoop *loop; ++ int i; ++ ++ for (i = 1; i < argc; i++) ++ { ++ char *arg = argv[i]; ++ ++ if (!strcmp (arg, "--session")) ++ type = DBUS_BUS_SYSTEM; ++ else if (!strcmp (arg, "--help")) ++ usage (argv[0], 0); ++ else if (!strcmp (arg, "--")) ++ break; ++ else if (arg[0] == '-') ++ usage (argv[0], 1); ++ } ++ ++ if (argc > 2) ++ usage (argv[0], 1); + + loop = g_main_loop_new (NULL, FALSE); + +diff -urN dbus-0.11.orig/tools/dbus-print-message.c dbus-0.11/tools/dbus-print-message.c +--- dbus-0.11.orig/tools/dbus-print-message.c 1969-12-31 16:00:00.000000000 -0800 ++++ dbus-0.11/tools/dbus-print-message.c 2003-05-16 13:09:25.000000000 -0700 +@@ -0,0 +1,83 @@ ++/* -*- mode: C; c-file-style: "gnu" -*- */ ++/* dbus-print-message.h Utility function to print out a message ++ * ++ * Copyright (C) 2003 Philip Blundell <philb@gnu.org> ++ * Copyright (C) 2003 Red Hat, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++#include "dbus-print-message.h" ++ ++void ++print_message (DBusMessage *message) ++{ ++ DBusMessageIter iter; ++ const char *sender; ++ ++ sender = dbus_message_get_sender (message); ++ ++ printf ("message name=%s; sender=%s\n", ++ dbus_message_get_name (message), ++ sender ? sender : "(no sender)"); ++ ++ dbus_message_iter_init (message, &iter); ++ ++ do ++ { ++ int type = dbus_message_iter_get_arg_type (&iter); ++ char *str; ++ dbus_uint32_t uint32; ++ dbus_int32_t int32; ++ double d; ++ unsigned char byte; ++ ++ if (type == DBUS_TYPE_INVALID) ++ break; ++ ++ switch (type) ++ { ++ case DBUS_TYPE_STRING: ++ str = dbus_message_iter_get_string (&iter); ++ printf ("string:%s\n", str); ++ break; ++ ++ case DBUS_TYPE_INT32: ++ int32 = dbus_message_iter_get_int32 (&iter); ++ printf ("int32:%d\n", int32); ++ break; ++ ++ case DBUS_TYPE_UINT32: ++ uint32 = dbus_message_iter_get_uint32 (&iter); ++ printf ("int32:%u\n", uint32); ++ break; ++ ++ case DBUS_TYPE_DOUBLE: ++ d = dbus_message_iter_get_double (&iter); ++ printf ("double:%f\n", d); ++ break; ++ ++ case DBUS_TYPE_BYTE: ++ byte = dbus_message_iter_get_byte (&iter); ++ printf ("byte:%d\n", byte); ++ break; ++ ++ default: ++ printf ("(unknown arg type %d)\n", type); ++ break; ++ } ++ } while (dbus_message_iter_next (&iter)); ++} ++ +diff -urN dbus-0.11.orig/tools/dbus-print-message.h dbus-0.11/tools/dbus-print-message.h +--- dbus-0.11.orig/tools/dbus-print-message.h 1969-12-31 16:00:00.000000000 -0800 ++++ dbus-0.11/tools/dbus-print-message.h 2003-05-16 13:09:25.000000000 -0700 +@@ -0,0 +1,31 @@ ++/* -*- mode: C; c-file-style: "gnu" -*- */ ++/* dbus-print-message.h Utility function to print out a message ++ * ++ * Copyright (C) 2003 Philip Blundell <philb@gnu.org> ++ * Copyright (C) 2003 Red Hat, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ */ ++#ifndef DBUS_PRINT_MESSAGE_H ++#define DBUS_PRINT_MESSAGE_H ++ ++#include <stdio.h> ++#include <string.h> ++#include <dbus/dbus.h> ++ ++void print_message (DBusMessage *message); ++ ++#endif /* DBUS_PRINT_MESSAGE_H */ +diff -urN dbus-0.11.orig/tools/dbus-send.1 dbus-0.11/tools/dbus-send.1 +--- dbus-0.11.orig/tools/dbus-send.1 2003-05-03 15:03:16.000000000 -0700 ++++ dbus-0.11/tools/dbus-send.1 2003-05-16 16:13:32.000000000 -0700 +@@ -8,7 +8,7 @@ + .SH SYNOPSIS + .PP + .B dbus-send +-[\-\-session] [\-\-dest=SERVICE] <message name> [contents ...] ++[\-\-system] [\-\-dest=SERVICE] [\-\-print-reply] <message name> [contents ...] + + .SH DESCRIPTION + +@@ -20,8 +20,8 @@ + There are two well-known message buses: the systemwide message bus + (installed on many systems as the "messagebus" service) and the + per-user-login-session message bus (started each time a user logs in). +-\fIdbus-send\fP sends messages to the system bus by default, and +-to the per-session bus if you specify \-\-session. ++\fIdbus-send\fP sends messages to the session bus by default, and ++to the system bus if you specify \-\-system. + + .PP + Nearly all uses of \fIdbus-send\fP must provide the \-\-dest +@@ -50,11 +50,14 @@ + .SH OPTIONS + The following options are supported: + .TP +-.I "--session" +-Use the per-login-session message bus instead of the systemwide bus. +-.TP + .I "--dest=SERVICE" + Specify the service to receive the message. ++.TP ++.I "--print-reply" ++Block for a reply to the message sent, and print any reply received. ++.TP ++.I "--system" ++Use the system message bus instead of the session bus. + + .SH AUTHOR + dbus-send was written by Philip Blundell. +diff -urN dbus-0.11.orig/tools/dbus-send.c dbus-0.11/tools/dbus-send.c +--- dbus-0.11.orig/tools/dbus-send.c 2003-04-24 11:18:38.000000000 -0700 ++++ dbus-0.11/tools/dbus-send.c 2003-05-16 16:04:04.000000000 -0700 +@@ -25,11 +25,13 @@ + + #include <dbus/dbus.h> + ++#include "dbus-print-message.h" ++ + static void +-usage (char *name) ++usage (char *name, int ecode) + { +- fprintf (stderr, "Usage: %s [--session] [--dest=SERVICE] <message type> [contents ...]\n", name); +- exit (1); ++ fprintf (stderr, "Usage: %s [--help] [--session] [--dest=SERVICE] [--print-reply] <message type> [contents ...]\n", name); ++ exit (ecode); + } + + int +@@ -38,31 +40,38 @@ + DBusConnection *connection; + DBusError error; + DBusMessage *message; ++ int print_reply; + DBusMessageIter iter; + int i; +- DBusBusType type = DBUS_BUS_SYSTEM; ++ DBusBusType type = DBUS_BUS_SESSION; + char *dest = DBUS_SERVICE_BROADCAST; + char *name = NULL; + + if (argc < 2) +- usage (argv[0]); ++ usage (argv[0], 1); + ++ print_reply = FALSE; ++ + for (i = 1; i < argc && name == NULL; i++) + { + char *arg = argv[i]; + +- if (!strcmp (arg, "--session")) +- type = DBUS_BUS_SESSION; ++ if (strcmp (arg, "--system") == 0) ++ type = DBUS_BUS_SYSTEM; ++ else if (strcmp (arg, "--print-reply") == 0) ++ print_reply = TRUE; + else if (strstr (arg, "--dest=") == arg) + dest = strchr (arg, '=') + 1; ++ else if (!strcmp(arg, "--help")) ++ usage (argv[0], 0); + else if (arg[0] == '-') +- usage (argv[0]); ++ usage (argv[0], 1); + else + name = arg; + } + + if (name == NULL) +- usage (argv[0]); ++ usage (argv[0], 1); + + dbus_error_init (&error); + connection = dbus_bus_get (type, &error); +@@ -156,9 +165,32 @@ + } + } + +- dbus_connection_send (connection, message, NULL); ++ if (print_reply) ++ { ++ DBusMessage *reply; + +- dbus_connection_flush (connection); ++ dbus_error_init (&error); ++ reply = dbus_connection_send_with_reply_and_block (connection, ++ message, -1, ++ &error); ++ if (dbus_error_is_set (&error)) ++ { ++ fprintf (stderr, "Error: %s\n", ++ error.message); ++ exit (1); ++ } ++ ++ if (reply) ++ { ++ print_message (reply); ++ dbus_message_unref (reply); ++ } ++ } ++ else ++ { ++ dbus_connection_send (connection, message, NULL); ++ dbus_connection_flush (connection); ++ } + + dbus_message_unref (message); + diff --git a/sys-apps/dbus/files/digest-dbus-0.11 b/sys-apps/dbus/files/digest-dbus-0.11 new file mode 100644 index 000000000000..e1d602545411 --- /dev/null +++ b/sys-apps/dbus/files/digest-dbus-0.11 @@ -0,0 +1 @@ +MD5 87f8cf7ffd114846d577e454ef3129aa dbus-0.11.tar.gz 875660 |