Hello community, here is the log from the commit of package dbus-1 checked in at Thu Dec 14 01:52:55 CET 2006. -------- --- dbus-1/dbus-1.changes 2006-11-12 21:40:50.000000000 +0100 +++ /mounts/work_src_done/STABLE/dbus-1/dbus-1.changes 2006-12-13 12:52:56.000000000 +0100 @@ -1,0 +2,12 @@ +Wed Dec 13 12:47:48 CET 2006 - thoenig@suse.de + +- move invocation of autoreconf from %prep to %build +- update to D-Bus 1.0.2 (skipped 1.0.1) + - fix security bug CVE-2006-6107 match rules can be removed by + apps that did not create them + - pthread fix + - fix bug where calling dbus_threads_init_default would assert + - fix UUID output to match the spec + - clear up documentation on UUIDs + +------------------------------------------------------------------- Old: ---- dbus-1.0.0.tar.gz New: ---- dbus-1.0.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dbus-1.spec ++++++ --- /var/tmp/diff_new_pack.67O65I/_old 2006-12-14 01:51:07.000000000 +0100 +++ /var/tmp/diff_new_pack.67O65I/_new 2006-12-14 01:51:07.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package dbus-1 (Version 1.0.0) +# spec file for package dbus-1 (Version 1.0.2) # # Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -13,10 +13,10 @@ Name: dbus-1 BuildRequires: doxygen expat libxml2-devel libzio pkgconfig URL: http://dbus.freedesktop.org/ -License: GNU General Public License (GPL) - all versions, Other License(s), see package +License: GNU General Public License (GPL), Other License(s), see package Group: System/Daemons -Version: 1.0.0 -Release: 3 +Version: 1.0.2 +Release: 1 Autoreqprov: on Summary: D-Bus Message Bus System Source0: dbus-%{version}.tar.gz @@ -151,9 +151,9 @@ %prep %setup -n dbus-%{version} -q %patch0 -autoreconf -fi %build +autoreconf -fi export CFLAGS="${RPM_OPT_FLAGS} -fno-strict-aliasing -fPIC" export CXXFLAGS="${RPM_OPT_FLAGS} -fno-strict-aliasing" %if 0%{?suse_version} > 1000 @@ -258,6 +258,15 @@ %{_mandir}/man1/dbus-launch.1.* %changelog -n dbus-1 +* Wed Dec 13 2006 - thoenig@suse.de +- move invocation of autoreconf from %%prep to %%build +- update to D-Bus 1.0.2 (skipped 1.0.1) + - fix security bug CVE-2006-6107 match rules can be removed by + apps that did not create them + - pthread fix + - fix bug where calling dbus_threads_init_default would assert + - fix UUID output to match the spec + - clear up documentation on UUIDs * Sun Nov 12 2006 - thoenig@suse.de - add patch dbus-do-not-abort-on-check-thoenig-01.patch: Do not call _dbus_warn_check_failed() but _dbus_warn() on checks as ++++++ dbus-1.0.0.tar.gz -> dbus-1.0.2.tar.gz ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/ChangeLog new/dbus-1.0.2/ChangeLog --- old/dbus-1.0.0/ChangeLog 2006-11-10 03:22:40.000000000 +0100 +++ new/dbus-1.0.2/ChangeLog 2006-12-12 20:40:50.000000000 +0100 @@ -1,3 +1,70 @@ +2006-12-12 John (J5) Palmieri <johnp@redhat.com> + + * Released 1.0.2 + +2006-12-12 John (J5) Palmieri <johnp@redhat.com> + + * bus/signal.c: Fix match_rule_equal errata + (CVE-2006-6107 - Patch from Kimmo Hämäläinen + <kimmo.hamalainen@nokia.com>) + +2006-11-19 Thiago Macieira <thiago@kde.org> + + * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock, + _dbus_pthread_condvar_wait, + _dbus_pthread_condvar_wait_timeout): set pmutex->holder to + pthread_self() after coming back from a conditional variable + wait as well as in one codepath where it was forgotten. + Approved by: Havoc Pennington. + +2006-11-17 Havoc Pennington <hp@redhat.com> + + * update-dbus-docs.sh: allow setting fd.org username via env + variable. Make it run autogen with --enable-xml-docs=yes + --enable-doxygen-docs=yes so configure will fail if the required + tools are missing. + +2006-11-17 Havoc Pennington <hp@redhat.com> + + * doc/dbus-faq.xml: minor FAQ tweaks + +2006-11-17 John (J5) Palmieri <johnp@redhat.com> + + * Released 1.0.1 + +2006-11-14 Havoc Pennington <hp@redhat.com> + + * dbus/dbus-misc.c, dbus/dbus-misc.h: Move + dbus_get_local_machine_id() to its own file, no substantive + changes. There are a couple other things we might want to add that + are "misc" so moving out of dbus-connection.[hc] which is big + enough already. + +2006-11-14 Havoc Pennington <hp@redhat.com> + + * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the + UUID had the timestamp last, but the implementation had it first; + move it to last since I think it's a tiny bit nicer (easier to + compare at a glance, faster to sort, less code), and will not + cause any practical compatibility problems. Also, always convert + the timestamp to big endian. + + * doc/dbus-specification.xml: Clean up the docs on the UUID. + + * tools/dbus-uuidgen.1: more prominently say it is not suitable + as a replacement for regular uuidgen/RFC4122. + +2006-11-14 John (J5) Palmieri <johnp@redhat.com> + + * configure.in: Bump version to 1.0.1 for next stable release + + * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have + the correct value so we don't assert when initalizing recursive threads + + * test/name-test/test-thread-init.c: call dbus_threads_init_default + instead of _dbus_threads_init_debug since it is more of a real world + test + 2006-11-09 John (J5) Palmieri <johnp@redhat.com> * Released 1.0.0 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/NEWS new/dbus-1.0.2/NEWS --- old/dbus-1.0.0/NEWS 2006-11-09 00:27:02.000000000 +0100 +++ new/dbus-1.0.2/NEWS 2006-12-12 20:39:42.000000000 +0100 @@ -1,3 +1,15 @@ +D-Bus 1.0.2 (12 December 2006) +== +- Fix security bug CVE-2006-6107 match rules can be removed by apps that did + not create them +- pthread fix + +D-Bus 1.0.1 (17 November 2006) +== +- Fix bug where calling dbus_threads_init_default would assert +- Fix UUID output to match the spec +- Clear up documentation on UUIDs + D-Bus 1.0.0 (08 November 2006) == - Documents updated with API/ABI garuntees diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/bus/signals.c new/dbus-1.0.2/bus/signals.c --- old/dbus-1.0.0/bus/signals.c 2005-11-22 21:37:00.000000000 +0100 +++ new/dbus-1.0.2/bus/signals.c 2006-12-12 19:55:54.000000000 +0100 @@ -1067,6 +1067,9 @@ if (a->flags != b->flags) return FALSE; + if (a->matches_go_to != b->matches_go_to) + return FALSE; + if ((a->flags & BUS_MATCH_MESSAGE_TYPE) && a->message_type != b->message_type) return FALSE; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/configure new/dbus-1.0.2/configure --- old/dbus-1.0.0/configure 2006-11-09 00:29:26.000000000 +0100 +++ new/dbus-1.0.2/configure 2006-12-12 20:41:50.000000000 +0100 @@ -1928,7 +1928,7 @@ # Define the identity of the package. PACKAGE=dbus - VERSION=1.0.0 + VERSION=1.0.2 cat >>confdefs.h <<_ACEOF diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/configure.in new/dbus-1.0.2/configure.in --- old/dbus-1.0.0/configure.in 2006-11-09 00:29:03.000000000 +0100 +++ new/dbus-1.0.2/configure.in 2006-12-11 20:21:19.000000000 +0100 @@ -5,7 +5,7 @@ AC_CANONICAL_TARGET -AM_INIT_AUTOMAKE(dbus, 1.0.0) +AM_INIT_AUTOMAKE(dbus, 1.0.2) AM_CONFIG_HEADER(config.h) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/Makefile.am new/dbus-1.0.2/dbus/Makefile.am --- old/dbus-1.0.0/dbus/Makefile.am 2006-10-27 03:09:24.000000000 +0200 +++ new/dbus-1.0.2/dbus/Makefile.am 2006-12-11 20:21:14.000000000 +0100 @@ -17,6 +17,7 @@ dbus-macros.h \ dbus-memory.h \ dbus-message.h \ + dbus-misc.h \ dbus-pending-call.h \ dbus-protocol.h \ dbus-server.h \ @@ -54,6 +55,7 @@ dbus-message.c \ dbus-message-internal.h \ dbus-message-private.h \ + dbus-misc.c \ dbus-object-tree.c \ dbus-object-tree.h \ dbus-pending-call.c \ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/Makefile.in new/dbus-1.0.2/dbus/Makefile.in --- old/dbus-1.0.0/dbus/Makefile.in 2006-11-09 00:29:25.000000000 +0100 +++ new/dbus-1.0.2/dbus/Makefile.in 2006-12-12 20:41:47.000000000 +0100 @@ -69,12 +69,13 @@ dbus-bus.lo dbus-connection.lo dbus-errors.lo dbus-keyring.lo \ dbus-marshal-header.lo dbus-marshal-byteswap.lo \ dbus-marshal-recursive.lo dbus-marshal-validate.lo \ - dbus-message.lo dbus-object-tree.lo dbus-pending-call.lo \ - dbus-resources.lo dbus-server.lo dbus-server-debug-pipe.lo \ - dbus-server-socket.lo dbus-server-unix.lo dbus-sha.lo \ - dbus-signature.lo dbus-timeout.lo dbus-threads.lo \ - dbus-transport.lo dbus-transport-socket.lo \ - dbus-transport-unix.lo dbus-uuidgen.lo dbus-watch.lo + dbus-message.lo dbus-misc.lo dbus-object-tree.lo \ + dbus-pending-call.lo dbus-resources.lo dbus-server.lo \ + dbus-server-debug-pipe.lo dbus-server-socket.lo \ + dbus-server-unix.lo dbus-sha.lo dbus-signature.lo \ + dbus-timeout.lo dbus-threads.lo dbus-transport.lo \ + dbus-transport-socket.lo dbus-transport-unix.lo \ + dbus-uuidgen.lo dbus-watch.lo am__objects_2 = dbus-dataslot.lo dbus-hash.lo dbus-internals.lo \ dbus-list.lo dbus-marshal-basic.lo dbus-memory.lo \ dbus-mempool.lo dbus-string.lo dbus-sysdeps.lo \ @@ -311,6 +312,7 @@ dbus-macros.h \ dbus-memory.h \ dbus-message.h \ + dbus-misc.h \ dbus-pending-call.h \ dbus-protocol.h \ dbus-server.h \ @@ -348,6 +350,7 @@ dbus-message.c \ dbus-message-internal.h \ dbus-message-private.h \ + dbus-misc.c \ dbus-object-tree.c \ dbus-object-tree.h \ dbus-pending-call.c \ @@ -580,6 +583,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-message-factory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-message-util.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-message.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-misc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-object-tree.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-pending-call.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus-resources.Plo@am__quote@ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-connection.c new/dbus-1.0.2/dbus/dbus-connection.c --- old/dbus-1.0.0/dbus/dbus-connection.c 2006-10-28 03:50:08.000000000 +0200 +++ new/dbus-1.0.2/dbus/dbus-connection.c 2006-12-11 20:21:08.000000000 +0100 @@ -5482,58 +5482,4 @@ return res; } -/** - * Obtains the machine UUID of the machine this process is running on. - * - * The returned string must be freed with dbus_free(). - * - * This UUID is guaranteed to remain the same until the next reboot - * (unless the sysadmin foolishly changes it and screws themselves). - * It will usually remain the same across reboots also, but hardware - * configuration changes or rebuilding the machine could break that. - * - * The idea is that two processes with the same machine ID should be - * able to use shared memory, UNIX domain sockets, process IDs, and other - * features of the OS that require both processes to be running - * on the same OS kernel instance. - * - * The machine ID can also be used to create unique per-machine - * instances. For example, you could use it in bus names or - * X selection names. - * - * The machine ID is preferred over the machine hostname, because - * the hostname is frequently set to "localhost.localdomain" and - * may also change at runtime. - * - * You can get the machine ID of a remote application by invoking the - * method GetMachineId from interface org.freedesktop.DBus.Peer. - * - * If the remote application has the same machine ID as the one - * returned by this function, then the remote application is on the - * same machine as your application. - * - * @returns a 32-byte-long hex-encoded UUID string, or #NULL if insufficient memory - */ -char* -dbus_get_local_machine_id (void) -{ - DBusString uuid; - char *s; - - s = NULL; - _dbus_string_init (&uuid); - if (!_dbus_get_local_machine_uuid_encoded (&uuid) || - !_dbus_string_steal_data (&uuid, &s)) - { - _dbus_string_free (&uuid); - return FALSE; - } - else - { - _dbus_string_free (&uuid); - return s; - } - -} - /** @} */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-connection.h new/dbus-1.0.2/dbus/dbus-connection.h --- old/dbus-1.0.0/dbus/dbus-connection.h 2006-10-22 01:38:11.000000000 +0200 +++ new/dbus-1.0.2/dbus/dbus-connection.h 2006-12-11 20:21:13.000000000 +0100 @@ -321,8 +321,6 @@ dbus_bool_t dbus_connection_get_socket (DBusConnection *connection, int *fd); -char* dbus_get_local_machine_id (void); - /** @} */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-internals.c new/dbus-1.0.2/dbus/dbus-internals.c --- old/dbus-1.0.0/dbus/dbus-internals.c 2006-10-24 22:25:01.000000000 +0200 +++ new/dbus-1.0.2/dbus/dbus-internals.c 2006-12-11 20:21:06.000000000 +0100 @@ -22,6 +22,7 @@ */ #include "dbus-internals.h" #include "dbus-protocol.h" +#include "dbus-marshal-basic.h" #include "dbus-test.h" #include <stdio.h> #include <stdarg.h> @@ -505,18 +506,12 @@ _dbus_generate_uuid (DBusGUID *uuid) { long now; - char *p; - int ts_size; _dbus_get_current_time (&now, NULL); - uuid->as_uint32s[0] = now; - - ts_size = sizeof (uuid->as_uint32s[0]); - p = ((char*)uuid->as_bytes) + ts_size; + uuid->as_uint32s[DBUS_UUID_LENGTH_WORDS - 1] = DBUS_UINT32_TO_BE (now); - _dbus_generate_random_bytes_buffer (p, - sizeof (uuid->as_bytes) - ts_size); + _dbus_generate_random_bytes_buffer (uuid->as_bytes, DBUS_UUID_LENGTH_BYTES - 4); } /** diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-internals.h new/dbus-1.0.2/dbus/dbus-internals.h --- old/dbus-1.0.0/dbus/dbus-internals.h 2006-10-28 03:41:37.000000000 +0200 +++ new/dbus-1.0.2/dbus/dbus-internals.h 2006-12-11 20:21:10.000000000 +0100 @@ -318,7 +318,8 @@ const char *address_problem_other); #define DBUS_UUID_LENGTH_BYTES 16 -#define DBUS_UUID_LENGTH_HEX (DBUS_UUID_LENGTH_BYTES * 2) +#define DBUS_UUID_LENGTH_WORDS (DBUS_UUID_LENGTH_BYTES / 4) +#define DBUS_UUID_LENGTH_HEX (DBUS_UUID_LENGTH_BYTES * 2) /** * A globally unique ID ; we have one for each DBusServer, and also one for each @@ -326,7 +327,7 @@ */ union DBusGUID { - dbus_uint32_t as_uint32s[DBUS_UUID_LENGTH_BYTES / 4]; /**< guid as four uint32 values */ + dbus_uint32_t as_uint32s[DBUS_UUID_LENGTH_WORDS]; /**< guid as four uint32 values */ char as_bytes[DBUS_UUID_LENGTH_BYTES]; /**< guid as 16 single-byte values */ }; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-misc.c new/dbus-1.0.2/dbus/dbus-misc.c --- old/dbus-1.0.0/dbus/dbus-misc.c 1970-01-01 01:00:00.000000000 +0100 +++ new/dbus-1.0.2/dbus/dbus-misc.c 2006-12-11 20:21:05.000000000 +0100 @@ -0,0 +1,113 @@ +/* -*- mode: C; c-file-style: "gnu" -*- */ +/* dbus-misc.c A few assorted public functions that don't fit elsewhere + * + * Copyright (C) 2006 Red Hat, Inc. + * + * Licensed under the Academic Free License version 2.1 + * + * 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 <config.h> +#include "dbus-misc.h" +#include "dbus-internals.h" +#include "dbus-string.h" + +/** + * @defgroup DBusMisc Miscellaneous + * @ingroup DBus + * @brief Miscellaneous API that doesn't cleanly fit anywhere else + * + * @{ + */ + +/** + * Obtains the machine UUID of the machine this process is running on. + * + * The returned string must be freed with dbus_free(). + * + * This UUID is guaranteed to remain the same until the next reboot + * (unless the sysadmin foolishly changes it and screws themselves). + * It will usually remain the same across reboots also, but hardware + * configuration changes or rebuilding the machine could break that. + * + * The idea is that two processes with the same machine ID should be + * able to use shared memory, UNIX domain sockets, process IDs, and other + * features of the OS that require both processes to be running + * on the same OS kernel instance. + * + * The machine ID can also be used to create unique per-machine + * instances. For example, you could use it in bus names or + * X selection names. + * + * The machine ID is preferred over the machine hostname, because + * the hostname is frequently set to "localhost.localdomain" and + * may also change at runtime. + * + * You can get the machine ID of a remote application by invoking the + * method GetMachineId from interface org.freedesktop.DBus.Peer. + * + * If the remote application has the same machine ID as the one + * returned by this function, then the remote application is on the + * same machine as your application. + * + * The UUID is not a UUID in the sense of RFC4122; the details + * are explained in the D-Bus specification. + * + * @returns a 32-byte-long hex-encoded UUID string, or #NULL if insufficient memory + */ +char* +dbus_get_local_machine_id (void) +{ + DBusString uuid; + char *s; + + s = NULL; + _dbus_string_init (&uuid); + if (!_dbus_get_local_machine_uuid_encoded (&uuid) || + !_dbus_string_steal_data (&uuid, &s)) + { + _dbus_string_free (&uuid); + return FALSE; + } + else + { + _dbus_string_free (&uuid); + return s; + } + +} + +/** @} */ /* End of public API */ + +#ifdef DBUS_BUILD_TESTS + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + +#include "dbus-test.h" +#include <stdlib.h> + + +dbus_bool_t +_dbus_misc_test (void) +{ + + return TRUE; +} + +#endif /* !DOXYGEN_SHOULD_SKIP_THIS */ + +#endif diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-misc.h new/dbus-1.0.2/dbus/dbus-misc.h --- old/dbus-1.0.0/dbus/dbus-misc.h 1970-01-01 01:00:00.000000000 +0100 +++ new/dbus-1.0.2/dbus/dbus-misc.h 2006-12-11 20:21:10.000000000 +0100 @@ -0,0 +1,47 @@ +/* -*- mode: C; c-file-style: "gnu" -*- */ +/* dbus-misc.h A few assorted public functions that don't fit elsewhere + * + * Copyright (C) 2006 Red Hat, Inc. + * + * Licensed under the Academic Free License version 2.1 + * + * 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 + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_MISC_H +#define DBUS_MISC_H + +#include <dbus/dbus-types.h> +#include <dbus/dbus-errors.h> + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusMisc + * @{ + */ + +char* dbus_get_local_machine_id (void); + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_MISC_H */ + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-sysdeps-pthread.c new/dbus-1.0.2/dbus/dbus-sysdeps-pthread.c --- old/dbus-1.0.0/dbus/dbus-sysdeps-pthread.c 2006-10-28 03:41:37.000000000 +0200 +++ new/dbus-1.0.2/dbus/dbus-sysdeps-pthread.c 2006-12-12 19:52:54.000000000 +0100 @@ -153,6 +153,7 @@ { /* Wait for the lock */ PTHREAD_CHECK ("pthread_mutex_lock", pthread_mutex_lock (&pmutex->lock)); + pmutex->holder = self; _dbus_assert (pmutex->count == 0); } @@ -222,10 +223,11 @@ _dbus_assert (pthread_equal (pmutex->holder, pthread_self ())); old_count = pmutex->count; - pmutex->count = 0; + pmutex->count = 0; /* allow other threads to lock */ PTHREAD_CHECK ("pthread_cond_wait", pthread_cond_wait (&pcond->cond, &pmutex->lock)); _dbus_assert (pmutex->count == 0); pmutex->count = old_count; + pmutex->holder = pthread_self(); /* other threads may have locked the mutex in the meantime */ } static dbus_bool_t @@ -264,6 +266,7 @@ _dbus_assert (pmutex->count == 0); pmutex->count = old_count; + pmutex->holder = pthread_self(); /* other threads may have locked the mutex in the meantime */ /* return true if we did not time out */ return result != ETIMEDOUT; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-test.c new/dbus-1.0.2/dbus/dbus-test.c --- old/dbus-1.0.0/dbus/dbus-test.c 2006-10-28 03:41:37.000000000 +0200 +++ new/dbus-1.0.2/dbus/dbus-test.c 2006-12-11 20:21:09.000000000 +0100 @@ -115,6 +115,8 @@ run_test ("sysdeps", specific_test, _dbus_sysdeps_test); run_test ("data-slot", specific_test, _dbus_data_slot_test); + + run_test ("misc", specific_test, _dbus_misc_test); run_test ("address", specific_test, _dbus_address_test); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-test.h new/dbus-1.0.2/dbus/dbus-test.h --- old/dbus-1.0.0/dbus/dbus-test.h 2005-02-24 17:03:56.000000000 +0100 +++ new/dbus-1.0.2/dbus/dbus-test.h 2006-12-11 20:21:05.000000000 +0100 @@ -36,6 +36,7 @@ dbus_bool_t _dbus_marshal_byteswap_test (void); dbus_bool_t _dbus_marshal_header_test (void); dbus_bool_t _dbus_marshal_validate_test (void); +dbus_bool_t _dbus_misc_test (void); dbus_bool_t _dbus_signature_test (void); dbus_bool_t _dbus_mem_pool_test (void); dbus_bool_t _dbus_string_test (void); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus-threads.h new/dbus-1.0.2/dbus/dbus-threads.h --- old/dbus-1.0.0/dbus/dbus-threads.h 2006-10-27 04:17:42.000000000 +0200 +++ new/dbus-1.0.2/dbus/dbus-threads.h 2006-12-11 20:21:06.000000000 +0100 @@ -134,7 +134,7 @@ DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_FREE_MASK = 1 << 11, DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_LOCK_MASK = 1 << 12, DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_UNLOCK_MASK = 1 << 13, - DBUS_THREAD_FUNCTIONS_ALL_MASK = (1 << 13) - 1 + DBUS_THREAD_FUNCTIONS_ALL_MASK = (1 << 14) - 1 } DBusThreadFunctionsMask; /** diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/dbus/dbus.h new/dbus-1.0.2/dbus/dbus.h --- old/dbus-1.0.0/dbus/dbus.h 2006-10-20 07:16:58.000000000 +0200 +++ new/dbus-1.0.2/dbus/dbus.h 2006-12-11 20:21:16.000000000 +0100 @@ -33,6 +33,7 @@ #include <dbus/dbus-errors.h> #include <dbus/dbus-macros.h> #include <dbus/dbus-message.h> +#include <dbus/dbus-misc.h> #include <dbus/dbus-pending-call.h> #include <dbus/dbus-protocol.h> #include <dbus/dbus-server.h> diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/doc/dbus-faq.xml new/dbus-1.0.2/doc/dbus-faq.xml --- old/dbus-1.0.0/doc/dbus-faq.xml 2006-11-07 07:13:53.000000000 +0100 +++ new/dbus-1.0.2/doc/dbus-faq.xml 2006-12-12 19:52:55.000000000 +0100 @@ -7,8 +7,8 @@ <article id="index"> <articleinfo> <title>D-Bus FAQ</title> - <releaseinfo>Version 0.2</releaseinfo> - <date>07 November 2006</date> + <releaseinfo>Version 0.3</releaseinfo> + <date>17 November 2006</date> <authorgroup> <author> <firstname>Havoc</firstname> @@ -304,6 +304,11 @@ </question> <answer> <para> + Keep in mind, it is not only an IPC system; it also includes + lifecycle tracking, service activation, security policy, and other + higher-level structure and assumptions. + </para> + <para> The best place to start is to read the D-Bus <ulink url="dbus-tutorial.html">tutorial</ulink>, so you have a concrete idea what D-Bus actually is. If you understand other protocols on a wire format level, you @@ -315,7 +320,7 @@ for some specific use cases. Thus, it probably isn't tuned for what you want to do, unless you are doing the things D-Bus was designed for. Don't make the mistake of thinking - that any system labeled "IPC" is the same thing. + that any system involving "IPC" is the same thing. </para> <para> The D-Bus authors would not recommend using D-Bus @@ -621,14 +626,18 @@ If you're writing a desktop application for UNIX, then D-Bus is of course our recommendation for talking to other parts of the desktop session. - (With the caveat that you should use a stable release - of D-Bus; until we reach 1.0, there isn't a stable release.) + </para> + <para> + D-Bus is also designed for communications between system daemons and + communications between the desktop and system daemons. </para> <para> If you're doing something complicated such as clustering, distributed swarms, peer-to-peer, or whatever then the authors of this FAQ don't have expertise in these areas and you should ask someone else or try a search engine. + D-Bus is most likely a poor choice but could be appropriate + for some things. </para> <para> Note: the D-Bus mailing list is probably not the place to diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/doc/dbus-specification.xml new/dbus-1.0.2/doc/dbus-specification.xml --- old/dbus-1.0.0/doc/dbus-specification.xml 2006-11-10 03:12:49.000000000 +0100 +++ new/dbus-1.0.2/doc/dbus-specification.xml 2006-12-11 20:21:04.000000000 +0100 @@ -2237,23 +2237,29 @@ <para> A server may specify a key-value pair with the key <literal>guid</literal> - and the value a hex-encoded 16-byte sequence. This globally unique ID must - be created by filling the first 4 bytes with a 32-bit UNIX time since the - epoch, and the remaining 12 bytes with random bytes. If present, the GUID - may be used to distinguish one server from another. A server should use a - different GUID for each address it listens on. For example, if a message - bus daemon offers both UNIX domain socket and TCP connections, but treats - clients the same regardless of how they connect, those two connections are - equivalent post-connection but should have distinct GUIDs to distinguish - the kinds of connection. + and the value a hex-encoded 16-byte sequence. <xref linkend="uuids"/> + describes the format of the <literal>guid</literal> field. If present, + this UUID may be used to distinguish one server address from another. A + server should use a different UUID for each address it listens on. For + example, if a message bus daemon offers both UNIX domain socket and TCP + connections, but treats clients the same regardless of how they connect, + those two connections are equivalent post-connection but should have + distinct UUIDs to distinguish the kinds of connection. </para> <para> - The intent of the GUID feature is to allow a client to avoid opening - multiple identical connections to the same server, by allowing the client - to check whether an address corresponds to an already-existing connection. - Comparing two addresses is insufficient, because addresses can be recycled - by distinct servers. + The intent of the address UUID feature is to allow a client to avoid + opening multiple identical connections to the same server, by allowing the + client to check whether an address corresponds to an already-existing + connection. Comparing two addresses is insufficient, because addresses + can be recycled by distinct servers, and equivalent addresses may look + different if simply compared as strings (for example, the host in a TCP + address can be given as an IP address or as a hostname). + </para> + + <para> + Note that the address key is <literal>guid</literal> even though the + rest of the API and documentation says "UUID," for historical reasons. </para> <para> @@ -2314,6 +2320,43 @@ hyphens. </para> </sect1> + + <sect1 id="uuids"> + <title>UUIDs</title> + <para> + A working D-Bus implementation uses universally-unique IDs in two places. + First, each server address has a UUID identifying the address, + as described in <xref linkend="addresses"/>. Second, each operating + system kernel instance running a D-Bus client or server has a UUID + identifying that kernel, retrieved by invoking the method + org.freedesktop.DBus.Peer.GetMachineId() (see <xref + linkend="standard-interfaces-peer"/>). + </para> + <para> + The term "UUID" in this document is intended literally, i.e. an + identifier that is universally unique. It is not intended to refer to + RFC4122, and in fact the D-Bus UUID is not compatible with that RFC. + </para> + <para> + The UUID must contain 128 bits of data and be hex-encoded. The + hex-encoded string may not contain hyphens or other non-hex-digit + characters, and it must be exactly 32 characters long. To generate a + UUID, the current reference implementation concatenates 96 bits of random + data followed by the 32-bit time in seconds since the UNIX epoch (in big + endian byte order). + </para> + <para> + It would also be acceptable and probably better to simply generate 128 + bits of random data, as long as the random number generator is of high + quality. The timestamp could conceivably help if the random bits are not + very random. With a quality random number generator, collisions are + extremely unlikely even with only 96 bits, so it's somewhat academic. + </para> + <para> + Implementations should, however, stick to random data for the first 96 bits + of the UUID. + </para> + </sect1> <sect1 id="standard-interfaces"> <title>Standard Interfaces</title> @@ -2364,12 +2407,7 @@ is more robust. </para> <para> - The UUID must contain 128 bits of data and be hex-encoded (meaning, the hex - string contains 32 ASCII characters). The hex-encoded string may not contain - hyphens or other non-hex-digit characters, and it must be exactly 32 characters long. - To generate a UUID, the recommended algorithm is to put the current time in seconds - since the UNIX epoch in the last 32 bits of the UUID, and to put randomly-generated bits - in the first 96 bits of the UUID. + <xref linkend="uuids"/> explains the format of the UUID. </para> </sect2> diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/test/data/valid-config-files/debug-allow-all-sha1.conf new/dbus-1.0.2/test/data/valid-config-files/debug-allow-all-sha1.conf --- old/dbus-1.0.0/test/data/valid-config-files/debug-allow-all-sha1.conf 2006-11-10 03:27:08.000000000 +0100 +++ new/dbus-1.0.2/test/data/valid-config-files/debug-allow-all-sha1.conf 2006-12-12 21:15:49.000000000 +0100 @@ -5,7 +5,7 @@ <busconfig> <listen>debug-pipe:name=test-server</listen> <listen>unix:tmpdir=/tmp</listen> - <servicedir>/home/quinticent/devel/dbus-release/dbus/test/data/valid-service-files</servicedir> + <servicedir>/home/quinticent/devel/dbus-branch/dbus_1_0/test/data/valid-service-files</servicedir> <auth>DBUS_COOKIE_SHA1</auth> <policy context="default"> <allow send_interface="*"/> diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/test/data/valid-config-files/debug-allow-all.conf new/dbus-1.0.2/test/data/valid-config-files/debug-allow-all.conf --- old/dbus-1.0.0/test/data/valid-config-files/debug-allow-all.conf 2006-11-10 03:27:09.000000000 +0100 +++ new/dbus-1.0.2/test/data/valid-config-files/debug-allow-all.conf 2006-12-12 21:15:49.000000000 +0100 @@ -5,7 +5,7 @@ <busconfig> <listen>debug-pipe:name=test-server</listen> <listen>unix:tmpdir=/tmp</listen> - <servicedir>/home/quinticent/devel/dbus-release/dbus/test/data/valid-service-files</servicedir> + <servicedir>/home/quinticent/devel/dbus-branch/dbus_1_0/test/data/valid-service-files</servicedir> <policy context="default"> <allow send_interface="*"/> <allow receive_interface="*"/> diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/test/data/valid-service-files/debug-echo.service new/dbus-1.0.2/test/data/valid-service-files/debug-echo.service --- old/dbus-1.0.0/test/data/valid-service-files/debug-echo.service 2006-11-10 03:27:08.000000000 +0100 +++ new/dbus-1.0.2/test/data/valid-service-files/debug-echo.service 2006-12-12 21:15:49.000000000 +0100 @@ -1,3 +1,3 @@ [D-BUS Service] Name=org.freedesktop.DBus.TestSuiteEchoService -Exec=/home/quinticent/devel/dbus-release/dbus/test/test-service +Exec=/home/quinticent/devel/dbus-branch/dbus_1_0/test/test-service diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/test/data/valid-service-files/debug-segfault.service new/dbus-1.0.2/test/data/valid-service-files/debug-segfault.service --- old/dbus-1.0.0/test/data/valid-service-files/debug-segfault.service 2006-11-10 03:27:08.000000000 +0100 +++ new/dbus-1.0.2/test/data/valid-service-files/debug-segfault.service 2006-12-12 21:15:49.000000000 +0100 @@ -1,4 +1,4 @@ [D-BUS Service] Name=org.freedesktop.DBus.TestSuiteSegfaultService -Exec=/home/quinticent/devel/dbus-release/dbus/test/test-segfault +Exec=/home/quinticent/devel/dbus-branch/dbus_1_0/test/test-segfault diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/test/data/valid-service-files/debug-shell-echo-fail.service new/dbus-1.0.2/test/data/valid-service-files/debug-shell-echo-fail.service --- old/dbus-1.0.0/test/data/valid-service-files/debug-shell-echo-fail.service 2006-11-10 03:27:08.000000000 +0100 +++ new/dbus-1.0.2/test/data/valid-service-files/debug-shell-echo-fail.service 2006-12-12 21:15:49.000000000 +0100 @@ -1,3 +1,3 @@ [D-BUS Service] Name=org.freedesktop.DBus.TestSuiteShellEchoServiceFail -Exec=/home/quinticent/devel/dbus-release/dbus/test/test-shell-service "this should 'fail' because of an unterminated quote +Exec=/home/quinticent/devel/dbus-branch/dbus_1_0/test/test-shell-service "this should 'fail' because of an unterminated quote diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/test/data/valid-service-files/debug-shell-echo-success.service new/dbus-1.0.2/test/data/valid-service-files/debug-shell-echo-success.service --- old/dbus-1.0.0/test/data/valid-service-files/debug-shell-echo-success.service 2006-11-10 03:27:08.000000000 +0100 +++ new/dbus-1.0.2/test/data/valid-service-files/debug-shell-echo-success.service 2006-12-12 21:15:49.000000000 +0100 @@ -1,3 +1,3 @@ [D-BUS Service] Name=org.freedesktop.DBus.TestSuiteShellEchoServiceSuccess -Exec=/home/quinticent/devel/dbus-release/dbus/test/test-shell-service -test "that" 'we get' back --what "we put in" +Exec=/home/quinticent/devel/dbus-branch/dbus_1_0/test/test-shell-service -test "that" 'we get' back --what "we put in" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/test/name-test/run-with-tmp-session-bus.conf new/dbus-1.0.2/test/name-test/run-with-tmp-session-bus.conf --- old/dbus-1.0.0/test/name-test/run-with-tmp-session-bus.conf 2006-11-10 03:27:08.000000000 +0100 +++ new/dbus-1.0.2/test/name-test/run-with-tmp-session-bus.conf 2006-12-12 21:15:49.000000000 +0100 @@ -10,7 +10,7 @@ <listen>unix:tmpdir=/tmp</listen> - <servicedir>/home/quinticent/devel/dbus-release/dbus/test/name-test/../.././test/data/valid-service-files</servicedir> + <servicedir>/home/quinticent/devel/dbus-branch/dbus_1_0/test/name-test/../.././test/data/valid-service-files</servicedir> <policy context="default"> <!-- Allow everything to be sent --> diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/test/name-test/test-threads-init.c new/dbus-1.0.2/test/name-test/test-threads-init.c --- old/dbus-1.0.0/test/name-test/test-threads-init.c 2006-10-01 17:36:18.000000000 +0200 +++ new/dbus-1.0.2/test/name-test/test-threads-init.c 2006-12-11 20:20:54.000000000 +0100 @@ -140,7 +140,7 @@ check_condvar_lock (dispatch_cond1, dispatch_cond2, TRUE); check_condvar_lock (io_path_cond1, io_path_cond2, TRUE); - _dbus_threads_init_debug (); + dbus_threads_init_default (); _dbus_connection_test_get_locks (conn, &mutex1, &dispatch_mutex1, diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/dbus-1.0.0/tools/dbus-uuidgen.1 new/dbus-1.0.2/tools/dbus-uuidgen.1 --- old/dbus-1.0.0/tools/dbus-uuidgen.1 2006-10-25 18:42:37.000000000 +0200 +++ new/dbus-1.0.2/tools/dbus-uuidgen.1 2006-12-11 20:21:26.000000000 +0100 @@ -14,6 +14,11 @@ The \fIdbus-uuidgen\fP command generates or reads a universally unique ID. .PP +Note that the D-Bus UUID has no relationship to RFC 4122 and does not generate +UUIDs compatible with that spec. Many systems have a separate command +for that (often called "uuidgen"). + +.PP See http://www.freedesktop.org/software/dbus/ for more information about D-Bus. @@ -39,15 +44,11 @@ .PP If you run \fIdbus-uuidgen\fP with no options it just prints a new uuid made -up out of thin air. This is similar to the regular "uuidgen" command. - -.PP -If you run it with --get, it prints the machine uuid by default, or -the uuid in the specified file if you specify a file. +up out of thin air. .PP -The D-Bus UUID has no relationship to RFC 4122 and does not generate -UUIDs compatible with that spec. +If you run it with --get, it prints the machine UUID by default, or +the UUID in the specified file if you specify a file. .PP If you try to change an existing machine-id on a running system, it will @@ -55,6 +56,10 @@ don't make it the same on two different systems; it needs to be different anytime there are two different kernels running. +.PP +The UUID should be different on two different virtual machines, +because there are two different kernels. + .SH OPTIONS The following options are supported: .TP ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@suse.de