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
+
+ * Released 1.0.2
+
+2006-12-12 John (J5) Palmieri
+
+ * bus/signal.c: Fix match_rule_equal errata
+ (CVE-2006-6107 - Patch from Kimmo Hämäläinen
+ )
+
+2006-11-19 Thiago Macieira
+
+ * 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
+
+ * 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
+
+ * doc/dbus-faq.xml: minor FAQ tweaks
+
+2006-11-17 John (J5) Palmieri
+
+ * Released 1.0.1
+
+2006-11-14 Havoc Pennington
+
+ * 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
+
+ * 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
+
+ * 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
* 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
#include
@@ -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
+#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
+
+
+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 can be included directly, this file may disappear or change contents."
+#endif
+
+#ifndef DBUS_MISC_H
+#define DBUS_MISC_H
+
+#include
+#include
+
+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
#include
#include
+#include
#include
#include
#include
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 ).
+ </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