--- dbus-glib-0.84.orig/debian/compat
+++ dbus-glib-0.84/debian/compat
@@ -0,0 +1 @@
+7
--- dbus-glib-0.84.orig/debian/libdbus-glib-1-2.symbols
+++ dbus-glib-0.84/debian/libdbus-glib-1-2.symbols
@@ -0,0 +1,90 @@
+libdbus-glib-1.so.2 libdbus-glib-1-2 #MINVER#
+ dbus_connection_get_g_connection@Base 0.78
+ dbus_connection_get_g_type@Base 0.78
+ dbus_connection_setup_with_g_main@Base 0.78
+ dbus_g_bus_get@Base 0.78
+ dbus_g_bus_get_private@Base 0.84
+ dbus_g_connection_flush@Base 0.78
+ dbus_g_connection_get_connection@Base 0.78
+ dbus_g_connection_get_g_type@Base 0.78
+ dbus_g_connection_lookup_g_object@Base 0.78
+ dbus_g_connection_open@Base 0.78
+ dbus_g_connection_ref@Base 0.78
+ dbus_g_connection_register_g_object@Base 0.78
+ dbus_g_connection_unref@Base 0.78
+ dbus_g_connection_unregister_g_object@Base 0.82
+ dbus_g_error_domain_register@Base 0.78
+ dbus_g_error_get_name@Base 0.78
+ dbus_g_error_has_name@Base 0.78
+ dbus_g_error_quark@Base 0.78
+ dbus_g_message_get_g_type@Base 0.78
+ dbus_g_message_get_message@Base 0.78
+ dbus_g_message_ref@Base 0.78
+ dbus_g_message_unref@Base 0.78
+ dbus_g_method_get_reply@Base 0.78
+ dbus_g_method_get_sender@Base 0.78
+ dbus_g_method_return@Base 0.78
+ dbus_g_method_return_error@Base 0.78
+ dbus_g_method_send_reply@Base 0.78
+ dbus_g_object_path_get_g_type@Base 0.78
+ dbus_g_object_register_marshaller@Base 0.78
+ dbus_g_object_register_marshaller_array@Base 0.78
+ dbus_g_object_type_install_info@Base 0.78
+ dbus_g_proxy_add_signal@Base 0.78
+ dbus_g_proxy_begin_call@Base 0.78
+ dbus_g_proxy_begin_call_with_timeout@Base 0.78
+ dbus_g_proxy_call@Base 0.78
+ dbus_g_proxy_call_no_reply@Base 0.78
+ dbus_g_proxy_call_with_timeout@Base 0.78
+ dbus_g_proxy_cancel_call@Base 0.78
+ dbus_g_proxy_connect_signal@Base 0.78
+ dbus_g_proxy_disconnect_signal@Base 0.78
+ dbus_g_proxy_end_call@Base 0.78
+ dbus_g_proxy_get_bus_name@Base 0.78
+ dbus_g_proxy_get_interface@Base 0.78
+ dbus_g_proxy_get_path@Base 0.78
+ dbus_g_proxy_get_type@Base 0.78
+ dbus_g_proxy_new_for_name@Base 0.78
+ dbus_g_proxy_new_for_name_owner@Base 0.78
+ dbus_g_proxy_new_for_peer@Base 0.78
+ dbus_g_proxy_new_from_proxy@Base 0.78
+ dbus_g_proxy_send@Base 0.78
+ dbus_g_proxy_set_default_timeout@Base 0.78
+ dbus_g_proxy_set_interface@Base 0.78
+ dbus_g_signature_get_g_type@Base 0.80
+ dbus_g_thread_init@Base 0.78
+ dbus_g_type_collection_get_fixed@Base 0.78
+ dbus_g_type_collection_peek_vtable@Base 0.78
+ dbus_g_type_collection_value_iterate@Base 0.78
+ dbus_g_type_get_collection@Base 0.78
+ dbus_g_type_get_collection_specialization@Base 0.78
+ dbus_g_type_get_map@Base 0.78
+ dbus_g_type_get_map_key_specialization@Base 0.78
+ dbus_g_type_get_map_value_specialization@Base 0.78
+ dbus_g_type_get_struct@Base 0.78
+ dbus_g_type_get_struct_member_type@Base 0.78
+ dbus_g_type_get_struct_size@Base 0.78
+ dbus_g_type_get_structv@Base 0.78
+ dbus_g_type_is_collection@Base 0.78
+ dbus_g_type_is_map@Base 0.78
+ dbus_g_type_is_struct@Base 0.78
+ dbus_g_type_map_peek_vtable@Base 0.78
+ dbus_g_type_map_value_iterate@Base 0.78
+ dbus_g_type_register_collection@Base 0.78
+ dbus_g_type_register_map@Base 0.78
+ dbus_g_type_register_struct@Base 0.78
+ dbus_g_type_specialized_collection_append@Base 0.78
+ dbus_g_type_specialized_collection_end_append@Base 0.78
+ dbus_g_type_specialized_construct@Base 0.78
+ dbus_g_type_specialized_init@Base 0.78
+ dbus_g_type_specialized_init_append@Base 0.78
+ dbus_g_type_specialized_map_append@Base 0.78
+ dbus_g_type_struct_get@Base 0.78
+ dbus_g_type_struct_get_member@Base 0.78
+ dbus_g_type_struct_peek_vtable@Base 0.78
+ dbus_g_type_struct_set@Base 0.78
+ dbus_g_type_struct_set_member@Base 0.78
+ dbus_glib_internal_do_not_use_run_tests@Base 0.78
+ dbus_message_get_g_type@Base 0.78
+ dbus_server_setup_with_g_main@Base 0.78
+ dbus_set_g_error@Base 0.78
--- dbus-glib-0.84.orig/debian/libdbus-glib-1-2.install
+++ dbus-glib-0.84/debian/libdbus-glib-1-2.install
@@ -0,0 +1 @@
+debian/tmp/usr/lib/libdbus-glib*.so.*
--- dbus-glib-0.84.orig/debian/dbus-bus-introspect.xml
+++ dbus-glib-0.84/debian/dbus-bus-introspect.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--- dbus-glib-0.84.orig/debian/libdbus-glib-1-2-dbg.links
+++ dbus-glib-0.84/debian/libdbus-glib-1-2-dbg.links
@@ -0,0 +1 @@
+usr/share/doc/libdbus-glib-1-2 usr/share/doc/libdbus-glib-1-2-dbg
--- dbus-glib-0.84.orig/debian/watch
+++ dbus-glib-0.84/debian/watch
@@ -0,0 +1,2 @@
+version=3
+http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-(.*)\.tar\.gz
--- dbus-glib-0.84.orig/debian/libdbus-glib-1-doc.links
+++ dbus-glib-0.84/debian/libdbus-glib-1-doc.links
@@ -0,0 +1 @@
+usr/share/gtk-doc/html/dbus-glib usr/share/doc/libdbus-glib-1-doc/dbus-glib
--- dbus-glib-0.84.orig/debian/control
+++ dbus-glib-0.84/debian/control
@@ -0,0 +1,84 @@
+Source: dbus-glib
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Developers
+XSBC-Original-Maintainer: Utopia Maintenance Team
+Uploaders: Sjoerd Simons ,
+ Sebastian Dröge ,
+ Simon McVittie ,
+ Michael Biebl
+Build-Depends: cdbs (>= 0.4.43),
+ debhelper (>= 7),
+ libglib2.0-dev (>= 2.10),
+ libdbus-1-dev (>= 1.1),
+ libexpat-dev,
+ gtk-doc-tools (>= 1.4)
+Standards-Version: 3.8.4
+Vcs-Svn: svn://svn.debian.org/pkg-utopia/packages/unstable/dbus-glib/
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-utopia/packages/unstable/dbus-glib/
+Homepage: http://www.freedesktop.org/wiki/Software/DBusBindings
+
+Package: libdbus-glib-1-dev
+Section: libdevel
+Architecture: any
+Depends: libdbus-glib-1-2 (= ${binary:Version}),
+ libdbus-1-dev (>= 1.1),
+ libglib2.0-dev,
+ ${shlibs:Depends},
+ ${misc:Depends}
+Conflicts: libdbus-glib-dev, dbus-glib-1-dev, dbus-1-utils (<< 0.50-2)
+Replaces: libdbus-glib0-dev, dbus-glib-1-dev, libdbus-1-dev (<< 0.90)
+Description: simple interprocess messaging system (GLib interface)
+ D-Bus is a message bus, used for sending messages between applications.
+ Conceptually, it fits somewhere in between raw sockets and CORBA in
+ terms of complexity.
+ .
+ This package provides a GLib-style interface to D-Bus.
+ .
+ See the dbus description for more information about D-Bus in general.
+
+Package: libdbus-glib-1-2
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends},
+ ${misc:Depends}
+Description: simple interprocess messaging system (GLib-based shared library)
+ D-Bus is a message bus, used for sending messages between applications.
+ Conceptually, it fits somewhere in between raw sockets and CORBA in
+ terms of complexity.
+ .
+ This package provides the GLib-based shared library for applications using the
+ GLib interface to D-Bus.
+ .
+ See the dbus description for more information about D-Bus in general.
+
+Package: libdbus-glib-1-doc
+Section: doc
+Architecture: all
+Depends: lynx | www-browser,
+ ${misc:Depends}
+Suggests: devhelp
+Description: simple interprocess messaging system (GLib library documentation)
+ D-Bus is a message bus, used for sending messages between applications.
+ Conceptually, it fits somewhere in between raw sockets and CORBA in
+ terms of complexity.
+ .
+ This package provides the HTML documentation for dbus-glib
+ .
+ See the dbus description for more information about D-Bus in general.
+
+Package: libdbus-glib-1-2-dbg
+Section: debug
+Priority: extra
+Architecture: any
+Depends: libdbus-glib-1-2 (= ${binary:Version}),
+ ${misc:Depends}
+Description: simple interprocess messaging system (GLib library debug symbols)
+ D-Bus is a message bus, used for sending messages between applications.
+ Conceptually, it fits somewhere in between raw sockets and CORBA in
+ terms of complexity.
+ .
+ This package provides support for debugging programs that use the GLib-based
+ shared library.
+ .
+ See the dbus description for more information about D-Bus in general.
--- dbus-glib-0.84.orig/debian/libdbus-glib-1-doc.install
+++ dbus-glib-0.84/debian/libdbus-glib-1-doc.install
@@ -0,0 +1 @@
+debian/tmp/usr/share/gtk-doc/html/dbus-glib
--- dbus-glib-0.84.orig/debian/changelog
+++ dbus-glib-0.84/debian/changelog
@@ -0,0 +1,1085 @@
+dbus-glib (0.84-1ubuntu0.2) lucid-security; urgency=low
+
+ * SECURITY UPDATE: fix to honor access flag on specified properties
+ - debian/patches/01-CVE-2010-1172.patch: don't allow Set/write calls for
+ readonly properties, or properties not listed in the XML
+ - CVE-2010-1172
+ - LP: #616517
+
+ -- Jamie Strandboge Wed, 25 May 2011 15:46:32 -0500
+
+dbus-glib (0.84-1) unstable; urgency=low
+
+ * New upstream release.
+ - dbus-gvalue: set an error when demarshal_basic doesn't recognize type.
+ (Closes: #541632)
+ * debian/patches/10_support_duplicate_object_registrations.patch
+ - Remove, merged upstream.
+ * debian/libdbus-glib-1-2.symbols
+ - Add new dbus_g_bus_get_private symbol.
+ * debian/rules
+ - Bumps shlibs to >= 0.84.
+ * debian/control
+ - Bump Standards-Version to 3.8.4. No further changes.
+ - Bump Build-Depends on debhelper to (>= 7).
+ * debian/compat
+ - Bump debhelper compat level to 7.
+
+ -- Michael Biebl Mon, 01 Feb 2010 16:57:09 +0100
+
+dbus-glib (0.82-2) unstable; urgency=low
+
+ * debian/patches/10_support_duplicate_object_registrations.patch
+ - Pull patch from upstream git which allows duplicate object registrations
+ and fixes a regression introduced in 0.82.
+ (Closes: #540421, #541712, #542513, #544174, #546044)
+ * Bump Standards-Version to 3.8.3. No further changes.
+
+ -- Michael Biebl Tue, 29 Sep 2009 23:49:03 +0200
+
+dbus-glib (0.82-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/patches/01-20884-proxy-manager-replace-name-owner.patch
+ - Dropped, merged upstream.
+ * debian/libdbus-glib-1-2.symbols
+ - Update symbols file for new API additions.
+ * debian/rules
+ - Bump shlibs to >= 0.82.
+ * debian/control
+ - Bump Standards-Version to 3.8.2. No further changes.
+
+ -- Michael Biebl Wed, 29 Jul 2009 06:02:28 +0200
+
+dbus-glib (0.80-4) unstable; urgency=low
+
+ [ Michael Biebl ]
+ * debian/control
+ - Changes section of libdbus-glib-1-2-dbg.
+ - Bump Standards-Version to 3.8.1. No further changes.
+
+ [ Simon McVittie ]
+ * Apply my patch from upstream git to fix invalid memory accesses in
+ DBusGProxyManager after the first of a process's names is removed
+ (freedesktop.org #20884)
+
+ -- Simon McVittie Mon, 27 Apr 2009 12:00:42 +0100
+
+dbus-glib (0.80-3) unstable; urgency=low
+
+ * Merge from experimental into unstable
+ * Really bump *all* symbol versions to at least 0.78
+ * Add missing symbol from 0.80, and bump the old shlibs version too
+ * Bump build dependencies to D-Bus 1.1 and GLib 2.10 to match configure.ac
+ * Wrap Uploaders, Build-Depends and Depends
+
+ -- Simon McVittie Mon, 16 Feb 2009 12:28:47 +0000
+
+dbus-glib (0.80-2) experimental; urgency=low
+
+ * debian/libdbus-glib-1-2.symbols
+ - Updated. Bump all symbol versions to 0.78. Some internal behaviour has
+ changed which newer programs can rely upon, but which is not directly
+ related to any symbol.
+
+ -- Sjoerd Simons Tue, 03 Feb 2009 17:38:49 +0000
+
+dbus-glib (0.80-1) experimental; urgency=low
+
+ * New upstream release.
+ * debian/control
+ - Bump Standards-Version to 3.8.0. No further changes.
+ - Remove Dm-Upload-Allowed, no longer required.
+ * debian/copyright
+ - Update AFL license to version 2.1.
+ - Make it clear that dbus-glib is released under version 2 of the GPL and
+ refer to the versioned GPL-2 file in /usr/share/common-licenses.
+
+ -- Michael Biebl Tue, 03 Feb 2009 12:09:49 +0100
+
+dbus-glib (0.78-1) experimental; urgency=low
+
+ * New upstream release
+ - Update symbols file and shlibs for new ABI
+ * Add ${misc:Depends} to all binary packages as recommended by lintian
+
+ -- Simon McVittie Fri, 05 Dec 2008 17:00:55 +0000
+
+dbus-glib (0.76-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/patches/01-476080-freeze-error-abi.patch
+ - Removed, merged upstream.
+ * debian/patches/02-ignore-namespaced-nodes-and-attributes.patch
+ - Removed, merged upstream.
+ * Add symbols file for libdbus-glib-1-2.
+ * debian/rules
+ - Bump shlibs to >= 0.76 due to API additions.
+
+ -- Michael Biebl Fri, 06 Jun 2008 00:05:01 +0200
+
+dbus-glib (0.74-4) unstable; urgency=low
+
+ * debian/control
+ - Add myself to Uploaders.
+ - Add Vcs-* fields.
+ - Add Homepage field.
+ - Add Suggests: devhelp to libdbus-glib-1-doc which allows to easily
+ browse and search through the dbus-glib API documentation.
+ * debian/patches/02-ignore-namespaced-nodes-and-attributes.patch
+ - Ignore namespaced extensions to introspection XML. (Closes: #478265)
+ Patch pulled from upstream git.
+ * debian/watch
+ - Add watch file to track new upstream releases.
+
+ -- Michael Biebl Tue, 29 Apr 2008 00:57:43 +0200
+
+dbus-glib (0.74-3) unstable; urgency=low
+
+ * Use my debian.org address in Uploaders
+ * Add a -dbg package (Closes: #446240)
+ * Symlink the gtk-doc for the library into /usr/share/doc/libdbus-glib-1-doc
+ as well as installing it into /usr/share/gtk-doc
+ * Standards-Version: 3.7.3 (no changes)
+
+ -- Simon McVittie Mon, 28 Apr 2008 11:55:09 +0100
+
+dbus-glib (0.74-2) unstable; urgency=low
+
+ * Fix error-enum ABI to match that of the current packages in lenny, Ubuntu
+ gutsy/feisty/hardy and Fedora 8, rather than picking up an arbitrarily
+ incompatible ABI depending on the installed libdbus (Closes: #476080)
+ (debian/patches/01-476080-freeze-error-abi.patch)
+ * Add myself to Uploaders and set Dm-Upload-Allowed: yes for future versions
+
+ -- Simon McVittie Mon, 14 Apr 2008 13:25:29 +0100
+
+dbus-glib (0.74-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/rules:
+ + Update shlibs to >= 0.74 because of new API.
+ * debian/control:
+ + Use ${binary:Version} to make lintian happy.
+
+ -- Sebastian Dröge Fri, 06 Jul 2007 14:00:42 +0200
+
+dbus-glib (0.73-2) unstable; urgency=low
+
+ * Upload to unstable
+ * Merge experimental branch
+ * debian/patches/00_unref_crash.patch:
+ removed. Fixed upstream.
+
+ -- Sjoerd Simons Mon, 09 Apr 2007 22:16:26 +0200
+
+dbus-glib (0.73-1) experimental; urgency=low
+
+ * New upstream release:
+ + debian/patches/01_proxy-crash.patch,
+ debian/patches/02_gthreads-deadlock.patch:
+ - Dropped, merged upstream
+ * debian/rules:
+ + Bump shlibs to reflect API additions
+ + Use the new configure flag to specify the location of the dbus daemon
+ introspection data instead of the previous workaround.
+
+ -- Sebastian Dröge Tue, 13 Feb 2007 19:03:19 +0100
+
+dbus-glib (0.72-4) experimental; urgency=low
+
+ * debian/patches/02_gthreads-deadlock.patch:
+ + Instead of using gthreads just initialize the default dbus threads. This
+ fixes all the deadlocks in dbus-glib applications that are called via
+ sudo like gdmsetup for example. (fd.o: #9259)
+
+ -- Sebastian Dröge Mon, 22 Jan 2007 22:05:22 +0100
+
+dbus-glib (0.72-3) experimental; urgency=low
+
+ * No-change upload against unstable's libc6
+
+ -- Sebastian Dröge Mon, 22 Jan 2007 21:10:30 +0100
+
+dbus-glib (0.72-2) experimental; urgency=low
+
+ * debian/control:
+ + Updated to use my debian.org mail address
+ * debian/patches/01_proxy-crash.patch:
+ + Fix for a dbus-glib crash that could take down all dbus-glib using
+ applications at once (fd.o: #8235)
+
+ -- Sebastian Dröge Mon, 8 Jan 2007 01:54:04 +0100
+
+dbus-glib (0.72-1) experimental; urgency=low
+
+ * New upstream release
+ * debian/control:
+ + Require libdbus-1-dev (>= 0.94) and libglib2.0-dev (>= 2.6)
+ + Add build dependency on gtk-doc-tools (>= 1.4)
+ * debian/control,
+ debian/libdbus-glib-1-doc.install:
+ + Add libdbus-glib-1-doc package
+
+ -- Sebastian Dröge Wed, 1 Nov 2006 10:51:01 +0100
+
+dbus-glib (0.71-3) unstable; urgency=low
+
+ * debian/patches/00_unref_crash.patch
+ + Added. Fixes a crash if disposing one DBusGProxy causes another for the
+ same service to be unreffed in a destroyed callback. (From upstream git)
+
+ -- Sjoerd Simons Fri, 3 Nov 2006 11:14:42 +0100
+
+dbus-glib (0.71-2) unstable; urgency=low
+
+ [ Sebastian Dröge ]
+ * debian/control:
+ + Add missing Replaces for libdbus-1-dev (<< 0.90) on libdbus-glib-1-dev
+
+ [ Sjoerd Simons ]
+ * Upload to unstable
+
+ -- Sjoerd Simons Sat, 9 Sep 2006 11:07:39 +0200
+
+dbus-glib (0.71-1) experimental; urgency=low
+
+ * First package of the dbus-glib bindings based on the non-modular dbus
+ package
+ * debian/rules: Just build the glib bindings
+ * debian/control: Just build the glib bindings
+ * debian/control: Updated to use the official D-Bus spelling
+ * Removed patches and files that are not applicable to the dbus-glib
+ bindings.
+ * debian/dbus-bus-introspect.xml: Added. Copy into place before building the
+ bindings, so it's not generated on compile-time (which requires a running
+ dbus)
+
+ -- Sjoerd Simons Tue, 8 Aug 2006 00:14:35 +0200
+
+
+dbus (0.62-5) unstable; urgency=low
+
+ * Update python-dbus to the new Python Policy
+ * Bump Standards-Version to 3.7.2
+
+ -- Sebastian Dröge Sat, 8 Jul 2006 01:25:40 +0200
+
+dbus (0.62-4) unstable; urgency=low
+
+ [ Sebastian Dröge ]
+ * add ${shlibs:Depends} to Depends of libdbus-glib-1-dev, as it ships
+ dbus-binding-tool to /usr/bin/. This fixes a missing libexpat.so.1.0.0.
+ Thanks to Daniel Holbach for noticing this.
+
+ [ Michael Biebl ]
+ * debian/libdbus-qt4-1-dev.install: qt/dbus/qdbus.h is only a dummy header
+ file. Install the real one instead. (Closes: #375298)
+
+ -- Sjoerd Simons Wed, 28 Jun 2006 19:03:23 +0200
+
+dbus (0.62-3) unstable; urgency=low
+
+ * Make the Qt4 bindings buid-depend on libqt4-dev (>= 4.1.3)
+ (Closes: #374802)
+ * Ensure /etc/dbus-1/system.d is included in the dbus package
+ (Closes: #374930)
+
+ -- Sjoerd Simons Thu, 22 Jun 2006 18:36:35 +0200
+
+dbus (0.62-2) unstable; urgency=low
+
+ * debian/libdbus-qt-1-dev.install: Make the wildcard more strict so that it
+ doesn't accidentally pickup qt4 files
+ * debian/libdbus-qt4-1-dev.install: Also install the dbuscpp2xml and
+ dbusidl2cpp utilities
+ * debian/session.conf
+ + Install a custom dbus session.conf. In the generated one some variables
+ aren't expanded, causing the session bus to fail (Closes: #374747)
+ * Move libdbus-1-2 to sections libs
+ * Let libdbus-1-2 recommend dbus. Almost all libdbus-1 using applications
+ really need the dbus to be present so the recommends is justified.
+ (Closes: #374726)
+ * debian/libdbus-qt-1-dev.install: Install all the needed header files.
+ Thanks to Michael Biebl for testing a KDE4 build against these bindings.
+
+ -- Sjoerd Simons Wed, 21 Jun 2006 10:47:00 +0200
+
+
+
+dbus (0.62-1) unstable; urgency=low
+
+ * New upstream release
+ * Remove Daniel Stone from uploaders on his request.
+ * debian/dbus.init: Remove the sleep 1 when restarting. It's not needed as
+ the start-stop-daemon --retry option is used to shut dbus down
+ * Removed patched that aren't needed anymore:
+ + debian/patches/dbus-reload-usercache.patch
+ + debian/patches/dbus-qt-buildfix.patch
+ + debian/patches/dbus-qt-endianness.patch
+ + debian/patches/dbus-0.60-mono-return-null-fix.diff
+ + debian/patches/dbus-tcp-econreff.patch
+ + debian/patches/dbus-transport-tcp.patch
+ + debian/patches/dbus-pendingcall-deadlock.patch
+ * debian/patches/dbus-update-automake.patch
+ + Updated
+ * debian/patches/dbus-no-qt4-examples.patch
+ + Added. Quick hack to disable the building of the qt4 example binaries.
+
+ -- Sjoerd Simons Tue, 20 Jun 2006 19:35:46 +0200
+
+dbus (0.61-6) unstable; urgency=low
+
+ [ Sebastian Dröge ]
+ * debian/patches/dbus-new-monodoc.patch:
+ + Call the new monodoc executables for doc generation to really get
+ docs (Closes: #361541)
+ * debian/patches/dbus-update-automake.patch:
+ + updated for the above change
+ * Add the correct libdbus-glib-1-2 path to the dh_shlibdeps search path to
+ generate correct dependencies on dbus-1-utils.
+ * Update libdbus-1-cil to the new CLI policy and use dh_installcligac for
+ late GAC installation
+ * debian/patches/dbus-mono-pkgconfig-location.patch:
+ + Adjust the location of the .dll in the pkg-config file for the new CLI
+ policy.
+
+ [ Sjoerd Simons ]
+ * debian/patches/dbus-transport-tcp.patch
+ + Added. Fixes crash when using the tcp transport without an host option
+ (from dbus CVS) (Closes: #368894)
+ * debian/patches/dbus-tcp-econreff.patch
+ + Added. Make the error which is given when the tcp transport gets a
+ connection refused more understandable (from dbus CVS)
+
+ -- Sjoerd Simons Wed, 31 May 2006 15:00:49 +0200
+
+dbus (0.61-5) unstable; urgency=low
+
+ * debian/patches/dbus-0.60-mono-return-null-fix.diff:
+ + Added again as this wasn't applied upstream. This makes dbus-sharp
+ useable again as you don't get null anymore when asking for the session
+ bus (see fd.o #5716)
+
+ -- Sebastian Dröge Sat, 18 Mar 2006 14:40:48 +0100
+
+dbus (0.61-4) unstable; urgency=low
+
+ * debian/patches/dbus-reload-usercache.patch
+ + Added. Reload the user info cache when reloading the config.
+ * debian/patches/dbus-pendingcall-deadlock.patch
+ + Added. Don't block in a poll if the data we're looking for was already
+ read by another connection. (From dbus CVS)
+
+ -- Sjoerd Simons Sun, 5 Mar 2006 21:27:16 +0100
+
+dbus (0.61-3) unstable; urgency=low
+
+ * debian/patches/dbus-monoversion.patch
+ + Added. Dbus mono assembly version is synced with release version, but
+ nothing actually changed. This patch changes the assembly version back to
+ 0.60 to minimize breakage. New version will encode the assembly version
+ in the package name (e.g libdbus-1-cil-0.61).
+
+ -- Sjoerd Simons Wed, 1 Mar 2006 19:59:47 +0100
+
+dbus (0.61-2) unstable; urgency=low
+
+ * debian/patches/dbus-qt-endianness.patch
+ + Added. Fix FTBS on big-endian architectures
+
+ -- Sjoerd Simons Tue, 28 Feb 2006 00:58:05 +0100
+
+dbus (0.61-1) unstable; urgency=medium
+
+ * New upstream release
+ * debian/patches/dbus-0.60-mono-arguments-fix.diff
+ - Removed. Fixed upstream
+ * debian/patches/dbus-0.60-mono-return-null-fix.diff
+ - Removed. Fixed upstream
+ * debian/patches/dbus-moc-selection.patch
+ - Removed. Fixed upstream
+ * debian/patches/dbus-qdbusmarshall-amd64.patch
+ - Removed. Fixed upstream
+ * Update cli-common depend to >= 0.2.0. Older versions have known bugs
+ * Let binary-predeb/libdbus-1-cil:: depend on
+ common-binary-post-install-arch, so dh_clideps can do it's work correctly.
+ * debian/patches/dbus-qt-buildfix.patch
+ + Added. Fix compilation of the Qt bindings (from CVS)
+ * debian/patches/dbus-update-automake.patch
+ + Added. Do a new autogen run, because the qt patch patches autotools
+ files
+
+ -- Sjoerd Simons Fri, 24 Feb 2006 22:09:17 +0100
+
+dbus (0.60-6) unstable; urgency=low
+
+ * Sync relavant changes from ubuntu
+ + dbus-0.60-mono-arguments-fix.diff
+ - Added. 64bit fixes ((fd.o bugzilla #4410)
+ + dbus-0.60-mono-return-null-fix.diff
+ - Added. Don't return null for the session bus (fd.o bugzilla #5716)
+ + Send the update-notifier reboot required notification if it's installed
+ + Build mono bindings as arch indep.
+
+ -- Sjoerd Simons Thu, 16 Feb 2006 12:32:31 +0100
+
+dbus (0.60-5) unstable; urgency=low
+
+ * Fix a bashim in the postinst script (Closes: #347453)
+
+ -- Sjoerd Simons Wed, 11 Jan 2006 20:15:02 +0100
+
+dbus (0.60-4) unstable; urgency=low
+
+ * Upload to unstable
+
+ -- Sjoerd Simons Thu, 5 Jan 2006 21:55:49 +0100
+
+dbus (0.60-3) experimental; urgency=low
+
+ * debian/patches/dbus-qdbusmarshall-amd64.patch
+ + Fix build failure on amd64 (Closes: #343746)
+ * Ignore the exit code of run-parts in the init script.
+
+ -- Sjoerd Simons Thu, 5 Jan 2006 12:30:26 +0100
+
+dbus (0.60-2) experimental; urgency=low
+
+ * Let python2.4-dbus depend on python2.4-libxml2 (Closes: #343715)
+ * Changed maintainer address to
+ pkg-utopia-maintainers@lists.alioth.debian.org
+
+ -- Sjoerd Simons Thu, 15 Dec 2005 20:01:11 +0100
+
+dbus (0.60-1) experimental; urgency=low
+
+ * New upstream release
+ * Soname of libdbus-1 and libdbus-glib-1 were bumped to 2
+ * debian/patches/dbus-reloadconfig-reply.patch
+ + Removed. Merged upstream
+ * debian/patches/dbus-monitor.patch
+ + Removed. Merged upstream
+ * debian/patches/dbus-make-libtool-safe.patch
+ + Removed. Fixed upstream
+ * debian/patches/dbus-moc-selection.patch
+ + Added. Enable the Qt moc paths to be specified to configure
+ * Depend on lsb-base >= 3.0
+ * Let dbus conflicht with libdbus-1-1 and libdbus-1-2 with dbus << 0.60.
+ Some bus changes could result in strange bugs when mixing the old libs
+ with the new bus.
+
+ -- Sjoerd Simons Wed, 14 Dec 2005 19:53:07 +0100
+
+dbus (0.50-3) experimental; urgency=low
+
+ * Also move dbus-launch and dbus-send manpages to the dbus package
+ * debian/dbus.init
+ + Make force-reload an alias of reload instead of restart
+
+ -- Sjoerd Simons Mon, 21 Nov 2005 11:17:57 +0100
+
+dbus (0.50-2) experimental; urgency=low
+
+ * maintainance is actually spelled "maintenance" (Closes: #332238)
+ * Disable --enable-verbose because of the big performance hit
+ * Move dbus-binding-tool from dbus-1-utils to libdbus-glib-1-dev
+ * Move dbus-launch and dbus-send into the dbus package (Closes: #337212)
+ * Move the /etc/X11/Xsession.d/ script from dbus-1-utils to dbus
+ * Add reload function to the init script
+ * Use log_daemon_msg instead of log_begin_msg in the init script where
+ applicable
+ * debian/patches/dbus-reloadconfig-reply.patch
+ + Added. Send a reply message when org.freedesktop.DBus.ReloadConfig is
+ called
+ * Prefix the long description of monodoc-dubs-1-manual with one space
+ instead of two (Closes: #337032)
+ * Add LSB formatted dependency info in the init script (Closes: #337644)
+
+ -- Sjoerd Simons Wed, 9 Nov 2005 20:02:09 +0100
+
+dbus (0.50-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Sjoerd Simons Thu, 8 Sep 2005 10:01:21 +0200
+
+dbus (0.36.2-1) experimental; urgency=low
+
+ * New upstream release
+ * Fix descriptions to refer to dbus rather than dbus-1.
+ * Make dbus-1-utils depend on dbus
+ * debian/patches/dbus-sessionbus-checkuid.patch
+ + Removed. Fixed upstream
+
+ -- Sjoerd Simons Tue, 6 Sep 2005 09:26:19 +0200
+
+dbus (0.36.1-1) experimental; urgency=low
+
+ * New upstream release (Closes: #319593, #324016)
+ * debian/patches/dbus_cmsgcred.patch
+ + Removed. Fixed upstream.
+ * debian/patches/dbus-gilstate.patch
+ + Removed. Fixed upstream.
+ * Sync with the ubuntu package
+ + Remove dbus_bindings.{a,la} from python2.4-dbus
+ + debian/patches/dbus-make-libtool-safe.patch
+ - Added. Replace explicit libtool calls with $(LIBTOOL) in
+ glib/Makefile.*
+ + Don't include the .la files in the dev packages.
+ + Don't restart dbus on upgrade. Too many applications don't handle it
+ correctly.
+ + Switched the init script to lsb-base
+ + Ship dbus-binding-tool and dbus-viewer with dbus-1-utils
+
+ -- Sjoerd Simons Fri, 26 Aug 2005 21:58:42 +0200
+
+dbus (0.34-4) experimental; urgency=low
+
+ * libdbus-1-cil improvements based on comments from Mirco Bauer
+ + Call dh_clideps before dh_makeclilibs
+ + libdbus-1-cil can be arch all
+ + Use CLI instead of .NET in the package description
+ * Add debian/patches/dbus-sessionbus-checkuid.patch:
+ - bus/session.conf.in: Do not allow any user to connect to any session bus
+ by default.
+ - bus/policy.c: "allowed" now defaults to true if the connecting user id
+ matches the session bus user id.
+ - This stops other users from listening and sending to other user's
+ session dbus instances.
+ - References:
+ CAN-2005-0201
+ https://bugs.freedesktop.org/show_bug.cgi?id=2436
+ * debian/patches/dbus-gilstate: Fix segfaults in python bindings.
+ Patch by Anthony Baxter.
+ * Add D-BUS monodoc documentation package
+ * C++ transition
+
+ -- Sjoerd Simons Mon, 11 Jul 2005 10:22:44 +0200
+
+dbus (0.34-3) experimental; urgency=low
+
+ * Build-depend on python-pyrex instead of python2.3-pyrex
+ * debian/dbus.postinst
+ + Forgot to rename dbus-1 to dbus in the previous package.
+ * Rename libdbus-cil to libdbus-1-cil
+
+ -- Sjoerd Simons Wed, 22 Jun 2005 18:53:22 +0200
+
+dbus (0.34-2) experimental; urgency=low
+
+ * debian/dbus.init
+ + The even.d dir is in /etc/dbus-1 not in /etc/dbus
+
+ -- Sjoerd Simons Tue, 21 Jun 2005 16:16:43 +0200
+
+dbus (0.34-1) experimental; urgency=low
+
+ * New upstream release
+ * Build libdbus-cil on amd64 too (Closes: #314247)
+ * Python bindings need python2.4, so build them against python2.4.
+
+ -- Sjoerd Simons Mon, 20 Jun 2005 13:07:04 +0200
+
+dbus (0.33-1) experimental; urgency=low
+
+ * New upstream release (Closes: #299049)
+ * Redone the package names to be much more sane.
+ - Based on ubuntu's dbus 0.33 package by Daniel Stone.
+ - dbus deamon goes into the dbus package instead of dbus-1
+ - glib bindings in libdbus-glib-1-1 instead of dbus-glib-1
+ - qt bindings in libdbus-qt-1-1 instead of dbus-qt-1
+ - Library component from dbus-1 goed into libdbus-1-1
+ * debian/patches/dbus-fixverbose.patch
+ - Removed. Fixed upstream
+ * debian/patches/dbus-getpwname.patch
+ - Removed. Fixed upstream
+ * debian/patches/fix-policy-group.patch
+ - Removed. Not relevant anymore
+
+ -- Sjoerd Simons Mon, 20 Jun 2005 11:12:12 +0200
+
+dbus (0.23.4-2) unstable; urgency=low
+
+ * Upload version with QT and Mono bindings to unstable. (Closes: #271895)
+ (Closes: #271896) (Closes: #260044) (Closes: #290622)
+ * debian/patches/dbus_cmsgcred.patch
+ - Added. Fix syntax error on systems where HAVE_CMSGCRED is defined
+ (Thanks to Michael Banck) (Closes: #311726)
+
+ -- Sjoerd Simons Mon, 6 Jun 2005 22:48:08 +0200
+
+dbus (0.23.4-1bindings0) experimental; urgency=low
+
+ * Enable Mono and QT bindings.
+
+ -- Sjoerd Simons Tue, 5 Apr 2005 22:15:29 +0200
+
+dbus (0.23.4-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/patches/dbus-abi-api.patch
+ - Removed, fixed upstream
+ * debian/patches/dbus-python-fix.patch
+ - Removed, fixed upstream
+ * debian/patches/fix-policy-group.patch
+ - Stop segfaulting at " tags (Closes: #297495)
+ * debian/patches/dbus-fixverbose.patch
+ - Fix inaccurate messages in the debug output of the uid/gid lookup code
+ (Thanks to Tom Parker) (Closes: #297497)
+ * debian/patches/dbus-getpwname.patch
+ * Add .la files in the -dev packages (Closes: #297936)
+
+ -- Sjoerd Simons Wed, 30 Mar 2005 23:02:00 +0200
+
+dbus (0.23.2-3) unstable; urgency=low
+
+ * debian/patches/dbus-abi-api.patch
+ - Fix dbus api and abi breakage between 0.23.1 and 0.23.2 (Closes: #297020)
+
+ -- Sjoerd Simons Mon, 28 Feb 2005 15:05:19 +0100
+
+dbus (0.23.2-2) unstable; urgency=low
+
+ * debian/patches/dbus-python-fix.patch
+ - Fix python bindings (Based on dbus CVS fix)
+
+ -- Sjoerd Simons Thu, 24 Feb 2005 11:19:03 +0100
+
+dbus (0.23.2-1bindings0) experimental; urgency=low
+ * debian/patches/dbus-monofixes.patch
+ + Removed. Fixed in this release
+
+ -- Sjoerd Simons Thu, 17 Feb 2005 13:24:22 +0100
+
+dbus (0.23.2-1) unstable; urgency=low
+ * New upstream release
+
+ -- Sjoerd Simons Wed, 23 Feb 2005 13:04:21 +0100
+
+dbus (0.23.1-1bindings0) experimental; urgency=low
+
+ * New upstream release
+ * debian/patches/dbus-monofixes.patch
+ + Added. Some mono fixes from dbus cvs
+
+ -- Sjoerd Simons Thu, 17 Feb 2005 13:24:22 +0100
+
+dbus (0.23-1mono1) experimental; urgency=low
+
+ * Enable the qt bindings. Thanks to Kevin Ottens
+ (Closes: #271895) (Closes: #271896) (Closes: #290622)
+
+ -- Sjoerd Simons Sat, 22 Jan 2005 13:53:27 +0100
+
+dbus (0.23-1mono0) experimental; urgency=low
+
+ * Enable the mono bindings
+
+ -- Sjoerd Simons Fri, 14 Jan 2005 17:54:26 +0100
+
+dbus (0.23-1) unstable; urgency=low
+
+ * New upstream release
+ * Disable the mono bindings for the unstable packages untill mono goes into
+ testing.
+
+ -- Sjoerd Simons Fri, 14 Jan 2005 15:22:20 +0100
+
+dbus (0.22+cvs.20050104-1) experimental; urgency=low
+
+ * CVS snapshot
+ * Package the dbus mono bindings for i386, powerpc and s390. Mostly based on
+ patches from Edd Dumbill. (Closes: #260044)
+
+ -- Sjoerd Simons Wed, 5 Jan 2005 18:20:47 +0100
+
+dbus (0.22-4) unstable; urgency=low
+
+ * Let the initscript check if the pid in the pidfile actually corresponds
+ to a dbus daemon process (Closes: #285758)
+
+ -- Sjoerd Simons Wed, 5 Jan 2005 16:55:45 +0100
+
+dbus (0.22-3) unstable; urgency=medium
+
+ * Actually ship the init script improvements mentioned in the previous
+ upload. (please pass the brown paper bag)
+ * Call run-parts --reverse on the event.d dir when stopping dbus
+ (Closes: #269283)
+
+ -- Sjoerd Simons Sat, 6 Nov 2004 16:17:40 +0100
+
+dbus (0.22-2) unstable; urgency=medium
+
+ * debian/patches/dbus-monitor.patch
+ + Updated. Unbreak dbus-monitor when arguments are given. (From the ubuntu
+ dbus package)
+ * Use run-parts --arg instead of -a, which works with woody's run-parts
+ (Closes: #269708) (Closes: #274702)
+ * Use start-stop-daemon --retry when stopping to ensure the system bus
+ stopped. Prevents race conditions with the dbus pidfile (Closes: #277148)
+ * Add myself to Uploaders
+ * Acknowledge my own NMU (Closes: #272862)
+
+ -- Sjoerd Simons Tue, 02 Nov 2004 12:19:47 +0100
+
+dbus (0.22-1.1) unstable; urgency=high
+
+ * Non-maintainer upload with maintainers permission
+ * debian/patches/dbus-python-64bit.patch
+ + Added. Taken from dbus cvs. Add support for int64 and uint64 to the
+ python bindings (Closes: #272862)
+ * Urgency high because the hal package depending on this fix fixes RC bugs.
+
+ -- Sjoerd Simons Sat, 25 Sep 2004 17:45:33 +0200
+
+dbus (0.22-1) unstable; urgency=high
+
+ * New upstream release.
+ + Urgency high so it slips into sarge before the freeze.
+
+ -- Daniel Stone Tue, 17 Aug 2004 00:42:56 +0100
+
+dbus (0.21-7) unstable; urgency=low
+
+ * Created /etc/dbus-1/event.d/ and added support to dbus' init script
+ to run the files in it on stop/start/restart
+
+ -- Daniel Silverstone Thu, 22 Jul 2004 14:13:44 +0100
+
+dbus (0.21-6) unstable; urgency=low
+
+ * Add a chown,chgrp to the init script to make sure the pid dir is owned
+ by the messagebus user.
+ * Modify the dbus-1 init script to remove some arguments from the invocation
+ of start-stop-daemon so that it will work when being asked to stop a
+ dbus instance which has a different executable to that installed.
+
+ -- Daniel Silverstone Mon, 12 Jul 2004 21:56:45 +0100
+
+dbus (0.21-5) unstable; urgency=low
+
+ * Change debian/control to indicate that dbus is group maintained.
+ * Build-depend on the version of python2.3-pyrex which theoretically has
+ the fixed patch for coping with unsigned long int vs. long unsigned int
+ * Removed the seddery introduced in 0.21-2 because the above build-depend
+ change should ensure we're safe.
+
+ -- Daniel Silverstone Mon, 5 Jul 2004 17:44:06 +0100
+
+dbus (0.21-4) unstable; urgency=low
+
+ * Updated debian/copyright to the AFL 2.0 closes: #239332
+ * Updated debian/dbus-1.init to create /var/run/dbus if it
+ doesn't already exist. closes: #242639
+
+ -- Daniel Silverstone Fri, 18 Jun 2004 00:20:27 +0100
+
+dbus (0.21-3) unstable; urgency=low
+
+ * Add the sed call to Makefile.in too. Damn my forgetfulness.
+
+ -- Daniel Silverstone Wed, 16 Jun 2004 18:06:28 +0100
+
+dbus (0.21-2) unstable; urgency=low
+
+ * Add a sed -e's/long unsigned/unsigned long/g' to the python bindings
+ preparation line. This *should* solve the FTBFS on alpha, s390 and ia64
+ * Also, fix an a-umlaut to 'ae' in the changelog to prevent nasty
+ debian-changelog-file-uses-obsolete-national-charset errors from lintian
+
+ -- Daniel Silverstone Tue, 15 Jun 2004 19:26:12 +0100
+
+dbus (0.21-1) unstable; urgency=low
+
+ * New upstream version.
+ + Fixes varargs crap - cleaner patch from David Zeuthen applied. (closes:
+ #229274)
+ * Added provides/replaces/conflicts on dbus-1-utils << 0.20-4, per -4's
+ moving of manpages.
+
+ -- Daniel Stone Sun, 21 Mar 2004 02:42:53 +1100
+
+dbus (0.20-6) unstable; urgency=low
+
+ * Add a touch of usage information to the top of the dbus Xsession.d file.
+ Also since we've had confirmation that this file does enough, this version
+ closes: #230835
+ * Add an extra rm -f $PIDFILE to /etc/init.d/dbus-1 to help on restart.
+ closes: #229609
+ * Temporarily quiesce error reports in system.d/*.conf files when loading.
+ This breaks the standard that the daemon shouldn't start with malformed
+ configuration files, but at least for now it seems sensible to do.
+ closes: #230231
+ NOTE: this is likely to be removed in a future version of dbus after the
+ configuration file syntax stabilises. Please report bugs against packages
+ which have configs which fail to parse with the latest dbus package.
+
+ -- Daniel Silverstone Tue, 10 Feb 2004 00:46:52 +0000
+
+dbus (0.20-5) unstable; urgency=low
+
+ * Add an /etc/X11/Xsession.d/ entry to launch a session bus.
+ You will need to add 'use-session-dbus' to your /etc/X11/Xsession.options
+ file to enable it.
+
+ -- Daniel Silverstone Tue, 3 Feb 2004 18:15:48 +0000
+
+dbus (0.20-4) unstable; urgency=low
+
+ * Ensure the manpages are installed into the right package.
+ * Add /usr/lib/dbus-1.0/services to the dbus-1 package. (closes: #230413)
+ * dbus-glib-1-dev now depends on libglib2.0-dev which is kinda needed in order
+ to get glib-object.h
+ * Removed the dbus-qt-1 and dbus-qt-1-dev packages until upstream actually
+ do something with the binding (like putting some code into it)
+
+ -- Daniel Silverstone Sun, 1 Feb 2004 22:22:59 +0000
+
+dbus (0.20-3) unstable; urgency=high
+
+ * Urgency high because the old package was virtually useless.
+ * debian/patches/fix-varargs-usage.diff:
+ + Merged patch from Michel Daenzer (thanks Michel!) to fix varargs usage,
+ so we don't segfault on --system anymore. (closes: #229274, #229005,
+ #229609)
+
+ -- Daniel Stone Wed, 28 Jan 2004 06:51:07 +1100
+
+dbus (0.20-2) unstable; urgency=low
+
+ * The "gotta keep the ftpmaster cab^Whappy release".
+ + Hey, I need the overrides ...
+ * debian/python2.3-dbus.install:
+ + Stop installing .a and .la files (thanks Daniel Silverstone).
+ * debian/dbus-qt-1-dev.install:
+ + Install the .la file ... yep, Daniel Silverstone
+ * debian/patches/dbus-monitor.patch:
+ + Patch from Daniel Silverstone to add suport for filters to dbus-monitor:
+ only watch for certain events.
+ * debian/rules:
+ + Add --enable-verbose-mode to make debugging far more easier.
+ - Daniel Silverstone strikes again!
+
+ -- Daniel Stone Wed, 21 Jan 2004 11:07:37 +1100
+
+dbus (0.20-1) unstable; urgency=low
+
+ * New upstream release (closes: #223400).
+ + This version includes Qt and Python support.
+ - New packages: dbus-1-qt, python2.3-dbus.
+ * debian/dbus-1.postinst:
+ + Call addgroup with --system so it doesn't get a userspace GID.
+ (closes: #222563)
+ * debian/control, debian/rules:
+ + Start building Qt and Python bindings.
+ * debian/patches/dbus-python-signals-dze.patch:
+ + Merged patch (already applied in HEAD) to enhance signal support in the
+ Python interface; available from
+ http://freedesktop.org/~david/dbus-python-signals-dze.patch.
+
+ -- Daniel Stone Sat, 6 Dec 2003 00:17:50 +1100
+
+dbus (0.13-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/control:
+ + Update Maintainer address to debian.org.
+ + Add Recommends: dbus-glib-1 to dbus-1-utils, for the dbus-monitor
+ program. (closes: #213914)
+
+ -- Daniel Stone Wed, 22 Oct 2003 13:54:53 +1000
+
+dbus (0.12-4) unstable; urgency=low
+
+ * debian/control:
+ + Taking over from Colin as maintainer.
+ + Bump debhelper Build-Dep to >=4.1.46, when dh_installlogcheck was first
+ introduced.
+ + Bump Standards-Version to 3.6.1.
+ + Add Replaces/Provides/Conflicts on earlier dbus-1 versions to
+ dbus-1-utils.
+ * debian/dbus-1.init:
+ + Clean up after the daemon's pidfile mess, ensuring smooth upgrades.
+ (closes: #209143)
+
+ -- Daniel Stone Mon, 22 Sep 2003 12:13:06 +1000
+
+dbus (0.12-3) unstable; urgency=low
+
+ * debian/control:
+ - Break out utilities into separate dbus-1-utils package.
+
+ -- Colin Walters Sat, 30 Aug 2003 20:07:28 -0400
+
+dbus (0.12-2) unstable; urgency=low
+
+ * debian/control:
+ - [dbus-1] Add Depends on adduser (Closes: #204871)
+
+ -- Colin Walters Sun, 10 Aug 2003 22:23:36 -0400
+
+dbus (0.12-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/control:
+ - Bump Standards-Version to 3.6.0, no changes required.
+
+ -- Colin Walters Wed, 6 Aug 2003 01:50:13 -0400
+
+dbus (0.11+cvs200307017-1) unstable; urgency=low
+
+ * New upstream CVS snapshot.
+ - Creates services directory (Closes: #198433)
+
+ -- Colin Walters Thu, 17 Jul 2003 19:05:37 -0400
+
+dbus (0.11+cvs20030528-2) unstable; urgency=low
+
+ * debian/rules:
+ - Include utils.mk.
+
+ -- Colin Walters Thu, 29 May 2003 02:14:29 -0400
+
+dbus (0.11+cvs20030528-1) unstable; urgency=low
+
+ * New upstream CVS snapshot.
+ * debian/control:
+ - Build-Depend on latest cdbs to get some minor fixes.
+
+ -- Colin Walters Wed, 28 May 2003 16:56:29 -0400
+
+dbus (0.11-2) unstable; urgency=low
+
+ * debian/control:
+ - Add Build-Depends on cdbs, just because it's so freaking sweet.
+ * debian/rules:
+ - Convert to CDBS.
+ * debian/rocks:
+ - Removed.
+
+ -- Colin Walters Mon, 19 May 2003 19:21:33 -0400
+
+dbus (0.11-1) unstable; urgency=low
+
+ * The "Bill Gates Grants Self 18 Dexterity, 20 Charisma" release.
+ * New upstream release.
+ * debian/control:
+ - Bump Standards-Version to 3.5.10, no changes required.
+ * debian/rocks:
+ - No need to create system.d anymore, upstream does it now.
+
+ -- Colin Walters Thu, 15 May 2003 22:01:23 -0400
+
+dbus (0.10+cvs20030503-2) unstable; urgency=low
+
+ * The "I've Got To Stop Taking Lives So Seriously" release.
+ * debian/control:
+ - Add Build-Depends on docbook-utils.
+
+ -- Colin Walters Sat, 3 May 2003 16:58:20 -0400
+
+dbus (0.10+cvs20030503-1) unstable; urgency=low
+
+ * The "Chimp Study On Human-Evasion Response To Feces-Hurling Nearly
+ Complete" release.
+ * New upstream snapshot.
+ - Includes some of my patches; this will among other things make
+ the system bus go again.
+ * debian/rocks:
+ - Add --enable-docs to DEB_CONFIGURE_EXTRA_FLAGS.
+ * debian/dbus-1-dev.install:
+ - Update to handle new upstream .pc name.
+ * debian/rules:
+ - Update to latest version of Colin's Build System.
+
+ -- Colin Walters Sat, 3 May 2003 03:58:53 -0400
+
+dbus (0.10-1) unstable; urgency=low
+
+ * The "West-Wing Tech-Support' Crew Be A Buncha Wack Bitches" release.
+ * New upstream release.
+ * debian/dbus-1.install:
+ - Install all binaries.
+ * debian/dbus-1-dev.install:
+ - Install headers from /usr/lib/dbus-1.0 too.
+ * debian/rocks:
+ - Create etc/dbus-1/system.d.
+
+ -- Colin Walters Mon, 28 Apr 2003 17:29:50 -0400
+
+dbus (0.9-2) unstable; urgency=low
+
+ * The "New Fox Reality Show To Determine Ruler Of Iraq" release.
+ * debian/rocks:
+ - Generate API docs via doxygen (Closes: #185470)
+ * debian/control:
+ - Build-Depend on doxygen.
+ * debian/dbus-1-doc.install:
+ - Install docs in correct place.
+ - Install newly generated doxygen docs.
+ * debian/rules:
+ - Update to latest version of Colin's Build System.
+ - Eagerly await ftpmaster installing build-common.
+
+ -- Colin Walters Wed, 23 Apr 2003 23:40:00 -0400
+
+dbus (0.9-1) unstable; urgency=low
+
+ * The "Starbucks To Begin Sinister 'Phase Two' Of Operation" release.
+ * New upstream release.
+ * debian/control:
+ - Drop "lib*" prefix from all packages, and change suffix from "0" to "-1".
+ D-BUS isn't technically just a shared library; it also includes a
+ daemon. This could really go either way; I could just put the daemon
+ in the libdbus0 package and be done with it, but I think that's more
+ confusing in the end, since people have been very conditioned to
+ expect libfoo -> just shared library.
+ - Add Conflicts: and Replaces: on older lib* packages.
+ - Remove Provides and Conflicts on libdbus-dev in new dbus-1-dev
+ package, since they are actually parallel installable.
+ - Ditto for libdbus-glib0-dev.
+ - Touch up descriptions.
+ - Update to Standards-Version: 3.5.9; no changes required.
+ - Add libexpat-dev to Build-Depends.
+ * debian/dbus0.init:
+ - New file; runs the D-BUS daemon.
+ * debian/dbus0.default:
+ - New file.
+ * debian/dbus0.postinst:
+ - New file; creates the messagebus user and stuff.
+ * debian/dbus0.install:
+ - Install configuration files.
+ * debian/rocks:
+ - Add --with-xml=expat.
+ - Update to correspond with changes to debian/control.
+ - Make dbus-glib-1 package be built after dbus-1 package.
+ - Add debian/dbus-1/usr/lib to DEB_SHLIBDEPS_INCLUDE_dbus-glib-1 so we
+ pick up the right shlibs.
+ * debian/rules:
+ - Update to latest version of Colin's Build System.
+
+ -- Colin Walters Sun, 13 Apr 2003 23:40:29 -0400
+
+dbus (0.6-1) unstable; urgency=low
+
+ * New upstream release.
+ * debian/control:
+ - [libdbus0] Flesh out description somewhat.
+
+ -- Colin Walters Tue, 18 Mar 2003 10:50:42 -0500
+
+dbus (0.5-2) unstable; urgency=low
+
+ * debian/libdbus0-dev.install:
+ - Don't include dbus-glib-1.0.pc.
+ - Don't include dbus-glib-1.a or .so.
+
+ -- Colin Walters Thu, 6 Mar 2003 23:17:53 -0500
+
+dbus (0.5-1) unstable; urgency=low
+
+ * Initial version (Closes: #183739)
+
+ -- Colin Walters Thu, 6 Mar 2003 17:58:06 -0500
--- dbus-glib-0.84.orig/debian/libdbus-glib-1-dev.install
+++ dbus-glib-0.84/debian/libdbus-glib-1-dev.install
@@ -0,0 +1,5 @@
+debian/tmp/usr/bin/dbus-binding-tool
+debian/tmp/usr/include/dbus*/dbus/*.h
+debian/tmp/usr/lib/pkgconfig/dbus-glib-1.pc
+debian/tmp/usr/lib/libdbus-glib-*.a
+debian/tmp/usr/lib/libdbus-glib-*.so
--- dbus-glib-0.84.orig/debian/rules
+++ dbus-glib-0.84/debian/rules
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+# Copyright © 2002,2003 Colin Walters
+# Copyright © 2003 Daniel Stone
+# Copyright © 2006 Sjoerd Simons
+
+include /usr/share/cdbs/1/rules/simple-patchsys.mk
+include /usr/share/cdbs/1/rules/utils.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/autotools.mk
+
+# Strict library versioning
+DEB_DH_MAKESHLIBS_ARGS_ALL := -V "libdbus-glib-1-2 (>= 0.84)"
+
+DEB_CONFIGURE_EXTRA_FLAGS := --with-introspect-xml=$(CURDIR)/debian/dbus-bus-introspect.xml
+
+# these doc directories can safely be symlinks to the library's docs
+DEB_INSTALL_DOCS_libdbus-glib-1-2-dbg := --no-act
+DEB_INSTALL_CHANGELOGS_libdbus-glib-1-2-dbg := --no-act
--- dbus-glib-0.84.orig/debian/copyright
+++ dbus-glib-0.84/debian/copyright
@@ -0,0 +1,214 @@
+This package was debianized by Colin Walters on
+Thu, 6 Mar 2003 18:01:37 -0500
+
+It was downloaded from http://www.freedesktop.org/software/dbus
+
+This package is dual-licensed under the Academic Free License version 2.1,
+and the GPL version 2. For a description of the GPL, see
+/usr/share/common-licenses/GPL-2 on your Debian system.
+
+Portions of the package are only licensed under the GPL (notably
+tools/dbus-cleanup-sockets.c and test/decode-gcov.c ).
+
+The Academic Free License follows:
+
+The Academic Free License
+v. 2.1
+
+This Academic Free License (the "License") applies to any original
+work of authorship (the "Original Work") whose owner (the "Licensor")
+has placed the following notice immediately following the copyright
+notice for the Original Work:
+
+Licensed under the Academic Free License version 2.1
+
+1) Grant of Copyright License. Licensor hereby grants You a
+world-wide, royalty-free, non-exclusive, perpetual, sublicenseable
+license to do the following:
+
+a) to reproduce the Original Work in copies;
+
+b) to prepare derivative works ("Derivative Works") based upon the Original Work;
+
+c) to distribute copies of the Original Work and Derivative Works to the public;
+
+d) to perform the Original Work publicly; and
+
+e) to display the Original Work publicly.
+
+2) Grant of Patent License. Licensor hereby grants You a world-wide,
+royalty-free, non-exclusive, perpetual, sublicenseable license, under
+patent claims owned or controlled by the Licensor that are embodied in
+the Original Work as furnished by the Licensor, to make, use, sell and
+offer for sale the Original Work and Derivative Works.
+
+3) Grant of Source Code License. The term "Source Code" means the
+preferred form of the Original Work for making modifications to it and
+all available documentation describing how to modify the Original
+Work. Licensor hereby agrees to provide a machine-readable copy of the
+Source Code of the Original Work along with each copy of the Original
+Work that Licensor distributes. Licensor reserves the right to satisfy
+this obligation by placing a machine-readable copy of the Source Code
+in an information repository reasonably calculated to permit
+inexpensive and convenient access by You for as long as Licensor
+continues to distribute the Original Work, and by publishing the
+address of that information repository in a notice immediately
+following the copyright notice that applies to the Original Work.
+
+4) Exclusions From License Grant. Neither the names of Licensor, nor
+the names of any contributors to the Original Work, nor any of their
+trademarks or service marks, may be used to endorse or promote
+products derived from this Original Work without express prior written
+permission of the Licensor. Nothing in this License shall be deemed to
+grant any rights to trademarks, copyrights, patents, trade secrets or
+any other intellectual property of Licensor except as expressly stated
+herein. No patent license is granted to make, use, sell or offer to
+sell embodiments of any patent claims other than the licensed claims
+defined in Section 2. No right is granted to the trademarks of
+Licensor even if such marks are included in the Original Work. Nothing
+in this License shall be interpreted to prohibit Licensor from
+licensing under different terms from this License any Original Work
+that Licensor otherwise would have a right to license.
+
+5) This section intentionally omitted.
+
+6) Attribution Rights. You must retain, in the Source Code of any
+Derivative Works that You create, all copyright, patent or trademark
+notices from the Source Code of the Original Work, as well as any
+notices of licensing and any descriptive text identified therein as an
+"Attribution Notice." You must cause the Source Code for any
+Derivative Works that You create to carry a prominent Attribution
+Notice reasonably calculated to inform recipients that You have
+modified the Original Work.
+
+7) Warranty of Provenance and Disclaimer of Warranty. Licensor
+warrants that the copyright in and to the Original Work and the patent
+rights granted herein by Licensor are owned by the Licensor or are
+sublicensed to You under the terms of this License with the permission
+of the contributor(s) of those copyrights and patent rights. Except as
+expressly stated in the immediately proceeding sentence, the Original
+Work is provided under this License on an "AS IS" BASIS and WITHOUT
+WARRANTY, either express or implied, including, without limitation,
+the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL
+WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential
+part of this License. No license to Original Work is granted hereunder
+except under this disclaimer.
+
+8) Limitation of Liability. Under no circumstances and under no legal
+theory, whether in tort (including negligence), contract, or
+otherwise, shall the Licensor be liable to any person for any direct,
+indirect, special, incidental, or consequential damages of any
+character arising as a result of this License or the use of the
+Original Work including, without limitation, damages for loss of
+goodwill, work stoppage, computer failure or malfunction, or any and
+all other commercial damages or losses. This limitation of liability
+shall not apply to liability for death or personal injury resulting
+from Licensor's negligence to the extent applicable law prohibits such
+limitation. Some jurisdictions do not allow the exclusion or
+limitation of incidental or consequential damages, so this exclusion
+and limitation may not apply to You.
+
+9) Acceptance and Termination. If You distribute copies of the
+Original Work or a Derivative Work, You must make a reasonable effort
+under the circumstances to obtain the express assent of recipients to
+the terms of this License. Nothing else but this License (or another
+written agreement between Licensor and You) grants You permission to
+create Derivative Works based upon the Original Work or to exercise
+any of the rights granted in Section 1 herein, and any attempt to do
+so except under the terms of this License (or another written
+agreement between Licensor and You) is expressly prohibited by
+U.S. copyright law, the equivalent laws of other countries, and by
+international treaty. Therefore, by exercising any of the rights
+granted to You in Section 1 herein, You indicate Your acceptance of
+this License and all of its terms and conditions.
+
+10) Termination for Patent Action. This License shall terminate
+automatically and You may no longer exercise any of the rights granted
+to You by this License as of the date You commence an action,
+including a cross-claim or counterclaim, against Licensor or any
+licensee alleging that the Original Work infringes a patent. This
+termination provision shall not apply for an action alleging patent
+infringement by combinations of the Original Work with other software
+or hardware.
+
+11) Jurisdiction, Venue and Governing Law. Any action or suit relating
+to this License may be brought only in the courts of a jurisdiction
+wherein the Licensor resides or in which Licensor conducts its primary
+business, and under the laws of that jurisdiction excluding its
+conflict-of-law provisions. The application of the United Nations
+Convention on Contracts for the International Sale of Goods is
+expressly excluded. Any use of the Original Work outside the scope of
+this License or after its termination shall be subject to the
+requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101
+et seq., the equivalent laws of other countries, and international
+treaty. This section shall survive the termination of this License.
+
+12) Attorneys Fees. In any action to enforce the terms of this License
+or seeking damages relating thereto, the prevailing party shall be
+entitled to recover its costs and expenses, including, without
+limitation, reasonable attorneys' fees and costs incurred in
+connection with such action, including any appeal of such action. This
+section shall survive the termination of this License.
+
+13) Miscellaneous. This License represents the complete agreement
+concerning the subject matter hereof. If any provision of this License
+is held to be unenforceable, such provision shall be reformed only to
+the extent necessary to make it enforceable.
+
+14) Definition of "You" in This License. "You" throughout this
+License, whether in upper or lower case, means an individual or a
+legal entity exercising rights under, and complying with all of the
+terms of, this License. For legal entities, "You" includes any entity
+that controls, is controlled by, or is under common control with
+you. For purposes of this definition, "control" means (i) the power,
+direct or indirect, to cause the direction or management of such
+entity, whether by contract or otherwise, or (ii) ownership of fifty
+percent (50%) or more of the outstanding shares, or (iii) beneficial
+ownership of such entity.
+
+15) Right to Use. You may use the Original Work in all ways not
+otherwise restricted or conditioned by this License or by law, and
+Licensor promises not to interfere with or be responsible for such
+uses by You.
+
+This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights
+reserved. Permission is hereby granted to copy and distribute this
+license without modification. This license may not be modified without
+the express written permission of its copyright owner.
+
+
+--
+END OF ACADEMIC FREE LICENSE. The following is intended to describe the essential
+differences between the Academic Free License (AFL) version 1.0 and other
+open source licenses:
+
+The Academic Free License is similar to the BSD, MIT, UoI/NCSA and Apache
+licenses in many respects but it is intended to solve a few problems with
+those licenses.
+
+* The AFL is written so as to make it clear what software is being
+licensed (by the inclusion of a statement following the copyright notice
+in the software). This way, the license functions better than a template
+license. The BSD, MIT and UoI/NCSA licenses apply to unidentified software.
+
+* The AFL contains a complete copyright grant to the software. The BSD
+and Apache licenses are vague and incomplete in that respect.
+
+* The AFL contains a complete patent grant to the software. The BSD, MIT,
+UoI/NCSA and Apache licenses rely on an implied patent license and contain
+no explicit patent grant.
+
+* The AFL makes it clear that no trademark rights are granted to the
+licensor's trademarks. The Apache license contains such a provision, but the
+BSD, MIT and UoI/NCSA licenses do not.
+
+* The AFL includes the warranty by the licensor that it either owns the
+copyright or that it is distributing the software under a license. None of
+the other licenses contain that warranty. All other warranties are disclaimed,
+as is the case for the other licenses.
+
+* The AFL is itself copyrighted (with the right granted to copy and distribute
+without modification). This ensures that the owner of the copyright to the
+license will control changes. The Apache license contains a copyright notice,
+but the BSD, MIT and UoI/NCSA licenses do not.
--- dbus-glib-0.84.orig/debian/patches/01-CVE-2010-1172.patch
+++ dbus-glib-0.84/debian/patches/01-CVE-2010-1172.patch
@@ -0,0 +1,1208 @@
+Origin: based on aa4e373030ce7426a03c65fab22bc58fd75c73cd from Colin Walters
+Description: [PATCH] Respect property access flags for writing, allow disabling
+ for reads
+ .
+ Because DBus-GLib originally was designed as a generic "object mapping"
+ binding, the handler for org.freedesktop.DBus.Properties simply
+ allowed access (read or write) to any GObject property that was
+ exported.
+ .
+ Later, the (compile time) introspection XML was added, and while we only
+ listed "exported" properties in the dynamic introspection XML, we
+ still allowed Get or Set calls to any property that was valid.
+ .
+ With this patch, we deny writes to properties which aren't listed
+ in the XML, or are listed as read-only.
+ .
+ For backwards compatibility however, we still allow reads. A
+ service may disable this by calling
+ dbus_glib_global_set_disable_legacy_property_access().
+Bug: https://bugzilla.redhat.com/show_bug.cgi?id=585394
+Ubuntu-Bug: https://launchpad.net/bugs/616517
+
+diff -Nur -x '*.orig' -x '*~' dbus-glib-0.84//dbus/dbus-binding-tool-glib.c dbus-glib-0.84.new//dbus/dbus-binding-tool-glib.c
+--- dbus-glib-0.84//dbus/dbus-binding-tool-glib.c 2010-01-12 11:18:03.000000000 -0600
++++ dbus-glib-0.84.new//dbus/dbus-binding-tool-glib.c 2011-05-25 16:31:22.000000000 -0500
+@@ -38,6 +38,10 @@
+ #include
+ #include
+
++/* Remember to grep for ->format_version in the code if you change this,
++ * most changes should be in dbus-gobject.c. */
++#define FORMAT_VERSION 1
++
+ #define MARSHAL_PREFIX "dbus_glib_marshal_"
+
+ typedef struct
+@@ -466,14 +470,13 @@
+ {
+ GString *object_introspection_data_blob;
+ GIOChannel *channel;
+-
++
+ channel = data->channel;
+-
+- object_introspection_data_blob = g_string_new_len ("", 0);
+
++ object_introspection_data_blob = g_string_new_len ("", 0);
+ data->blob = object_introspection_data_blob;
+ data->count = 0;
+-
++
+ data->signal_blob = g_string_new_len ("", 0);
+ data->property_blob = g_string_new_len ("", 0);
+
+@@ -490,10 +493,9 @@
+ WRITE_OR_LOSE ("};\n\n");
+ /* Information about the object. */
+
+- if (!write_printf_to_iochannel ("const DBusGObjectInfo dbus_glib_%s_object_info = {\n",
+- channel, error, data->prefix))
++ if (!write_printf_to_iochannel ("const DBusGObjectInfo dbus_glib_%s_object_info = { %d,\n",
++ channel, error, data->prefix, FORMAT_VERSION))
+ goto io_lose;
+- WRITE_OR_LOSE (" 0,\n");
+ if (!write_printf_to_iochannel (" dbus_glib_%s_methods,\n", channel, error, data->prefix))
+ goto io_lose;
+ if (!write_printf_to_iochannel (" %d,\n", channel, error, data->count))
+@@ -753,13 +755,36 @@
+ for (tmp = properties; tmp != NULL; tmp = g_slist_next (tmp))
+ {
+ PropertyInfo *prop;
+-
+- prop = tmp->data;
++ PropertyAccessFlags access_flags;
++ const char *access_string;
++ char *uscored;
++
++ prop = tmp->data;
++
++ access_flags = property_info_get_access (prop);
++ if ((access_flags & PROPERTY_READ) && (access_flags & PROPERTY_WRITE))
++ access_string = "readwrite";
++ else if (access_flags & PROPERTY_READ)
++ access_string = "read";
++ else if (access_flags & PROPERTY_WRITE)
++ access_string = "write";
++ else
++ continue;
++
++ /* We append both in the blob so we have to malloc() less when processing
++ * properties */
++ uscored = _dbus_gutils_wincaps_to_uscore (property_info_get_name (prop));
++
++ g_string_append (data->property_blob, interface_info_get_name (interface));
++ g_string_append_c (data->property_blob, '\0');
++ g_string_append (data->property_blob, property_info_get_name (prop));
++ g_string_append_c (data->property_blob, '\0');
++ g_string_append (data->property_blob, uscored);
++ g_string_append_c (data->property_blob, '\0');
++ g_string_append (data->property_blob, access_string);
++ g_string_append_c (data->property_blob, '\0');
+
+- g_string_append (data->property_blob, interface_info_get_name (interface));
+- g_string_append_c (data->property_blob, '\0');
+- g_string_append (data->property_blob, property_info_get_name (prop));
+- g_string_append_c (data->property_blob, '\0');
++ g_free (uscored);
+ }
+ }
+ return TRUE;
+diff -Nur -x '*.orig' -x '*~' dbus-glib-0.84//dbus/dbus-glib.h dbus-glib-0.84.new//dbus/dbus-glib.h
+--- dbus-glib-0.84//dbus/dbus-glib.h 2010-01-27 12:46:40.000000000 -0600
++++ dbus-glib-0.84.new//dbus/dbus-glib.h 2011-05-25 16:31:22.000000000 -0500
+@@ -154,6 +154,8 @@
+ const char *exported_properties;
+ };
+
++void dbus_glib_global_set_disable_legacy_property_access (void);
++
+ void dbus_g_object_type_install_info (GType object_type,
+ const DBusGObjectInfo *info);
+
+diff -Nur -x '*.orig' -x '*~' dbus-glib-0.84//dbus/dbus-gobject.c dbus-glib-0.84.new//dbus/dbus-gobject.c
+--- dbus-glib-0.84//dbus/dbus-gobject.c 2010-01-12 11:18:03.000000000 -0600
++++ dbus-glib-0.84.new//dbus/dbus-gobject.c 2011-05-25 16:32:14.000000000 -0500
+@@ -42,6 +42,8 @@
+ } DBusGErrorInfo;
+
+ static GStaticRWLock globals_lock = G_STATIC_RW_LOCK_INIT;
++/* See comments in check_property_access */
++static gboolean disable_legacy_property_access = FALSE;
+ static GHashTable *marshal_table = NULL;
+ static GData *error_metadata = NULL;
+
+@@ -104,6 +106,23 @@
+ return object->data + method->data_offset;
+ }
+
++/* Ugly yes - but we have to accept strings from both formats */
++static gboolean
++compare_strings_ignoring_uscore_vs_dash (const char *a, const char *b)
++{
++ guint i;
++
++ for (i = 0; a[i] && b[i]; i++)
++ {
++ if ((a[i] == '-' && b[i] == '_')
++ || (a[i] == '_' && b[i] == '-'))
++ continue;
++ if (a[i] != b[i])
++ return FALSE;
++ }
++ return (a[i] == '\0') && (b[i] == '\0');
++}
++
+ static char *
+ object_error_domain_prefix_from_object_info (const DBusGObjectInfo *info)
+ {
+@@ -270,7 +289,7 @@
+ }
+
+ static const char *
+-propsig_iterate (const char *data, const char **iface, const char **name)
++signal_iterate (const char *data, const char **iface, const char **name)
+ {
+ *iface = data;
+
+@@ -280,6 +299,108 @@
+ return string_table_next (data);
+ }
+
++static const char *
++property_iterate (const char *data,
++ int format_version,
++ const char **iface,
++ const char **exported_name,
++ const char **name_uscored,
++ const char **access_type)
++{
++ *iface = data;
++
++ data = string_table_next (data);
++ *exported_name = data;
++
++ data = string_table_next (data);
++ if (format_version == 1)
++ {
++ *name_uscored = data;
++ data = string_table_next (data);
++ *access_type = data;
++ return string_table_next (data);
++ }
++ else
++ {
++ /* This tells the caller they need to compute it */
++ *name_uscored = NULL;
++ /* We don't know here, however note that we will still check against the
++ * readable/writable flags from GObject's metadata.
++ */
++ *access_type = "readwrite";
++ return data;
++ }
++}
++
++/**
++ * property_info_from_object_info:
++ * @object: introspection data
++ * @interface_name: (allow-none): Expected interface name, or %NULL for any
++ * @property_name: Expected property name (can use "-" or "_" as separator)
++ * @access_type: (out): Can be one of "read", "write", "readwrite"
++ *
++ * Look up property introspection data for the given interface/name pair.
++ *
++ * Returns: %TRUE if property was found
++ */
++static gboolean
++property_info_from_object_info (const DBusGObjectInfo *object,
++ const char *interface_name,
++ const char *property_name,
++ const char **access_type)
++{
++ const char *properties_iter;
++
++ properties_iter = object->exported_properties;
++ while (properties_iter != NULL && *properties_iter)
++ {
++ const char *cur_interface_name;
++ const char *cur_property_name;
++ const char *cur_uscore_property_name;
++ const char *cur_access_type;
++
++
++ properties_iter = property_iterate (properties_iter, object->format_version,
++ &cur_interface_name, &cur_property_name,
++ &cur_uscore_property_name, &cur_access_type);
++
++ if (interface_name && strcmp (interface_name, cur_interface_name) != 0)
++ continue;
++
++ /* This big pile of ugly is necessary to support the matrix resulting from multiplying
++ * (v0 data, v1 data) * (FooBar, foo-bar)
++ * In v1 data we have both forms of string, so we do a comparison against both without
++ * having to malloc.
++ * For v0 data, we need to reconstruct the foo-bar form.
++ *
++ * Adding to the complexity is that we *also* have to ignore the distinction between
++ * '-' and '_', because g_object_{get,set} does.
++ */
++ /* First, compare against the primary property name - no malloc required */
++ if (!compare_strings_ignoring_uscore_vs_dash (property_name, cur_property_name))
++ {
++ if (cur_uscore_property_name != NULL
++ && !compare_strings_ignoring_uscore_vs_dash (property_name, cur_uscore_property_name))
++ continue;
++ else
++ {
++ /* v0 metadata, construct uscore */
++ char *tmp_uscored;
++ gboolean matches;
++ tmp_uscored = _dbus_gutils_wincaps_to_uscore (cur_property_name);
++ matches = compare_strings_ignoring_uscore_vs_dash (property_name, tmp_uscored);
++ g_free (tmp_uscored);
++ if (!matches)
++ continue;
++ }
++ }
++
++ *access_type = cur_access_type;
++ return TRUE;
++ }
++ return FALSE;
++}
++
+ static GQuark
+ dbus_g_object_type_dbus_metadata_quark (void)
+ {
+@@ -290,9 +411,14 @@
+ return quark;
+ }
+
++/* Iterator function should return FALSE to stop iteration, TRUE to continue */
++typedef gboolean (*ForeachObjectInfoFn) (const DBusGObjectInfo *info,
++ GType gtype,
++ gpointer user_data);
++
+ static void
+ foreach_object_info (GObject *object,
+- GFunc callback,
++ ForeachObjectInfoFn callback,
+ gpointer user_data)
+ {
+ GType *interfaces, *p;
+@@ -305,7 +431,10 @@
+ {
+ info = g_type_get_qdata (*p, dbus_g_object_type_dbus_metadata_quark ());
+ if (info != NULL && info->format_version >= 0)
+- callback ((gpointer) info, user_data);
++ {
++ if (!callback (info, *p, user_data))
++ break;
++ }
+ }
+
+ g_free (interfaces);
+@@ -314,18 +443,23 @@
+ {
+ info = g_type_get_qdata (classtype, dbus_g_object_type_dbus_metadata_quark ());
+ if (info != NULL && info->format_version >= 0)
+- callback ((gpointer) info, user_data);
++ {
++ if (!callback (info, classtype, user_data))
++ break;
++ }
+ }
+
+ }
+
+-static void
+-lookup_object_info_cb (gpointer data,
+- gpointer user_data)
++static gboolean
++lookup_object_info_cb (const DBusGObjectInfo *info,
++ GType gtype,
++ gpointer user_data)
+ {
+ GList **list = (GList **) user_data;
+
+- *list = g_list_prepend (*list, data);
++ *list = g_list_prepend (*list, (gpointer) info);
++ return TRUE;
+ }
+
+ static GList *
+@@ -340,41 +474,51 @@
+
+ typedef struct {
+ const char *iface;
+- DBusGObjectInfo *info;
++ const DBusGObjectInfo *info;
++ gboolean fallback;
++ GType iface_type;
+ } LookupObjectInfoByIfaceData;
+
+-static void
+-lookup_object_info_by_iface_cb (gpointer data,
+- gpointer user_data)
++static gboolean
++lookup_object_info_by_iface_cb (const DBusGObjectInfo *info,
++ GType gtype,
++ gpointer user_data)
+ {
+- DBusGObjectInfo *info = (DBusGObjectInfo *) data;
+ LookupObjectInfoByIfaceData *lookup_data = (LookupObjectInfoByIfaceData *) user_data;
+
+- if (lookup_data->info)
+- return;
+-
+ /* If interface is not specified, choose the first info */
+- if (!lookup_data->iface || strlen (lookup_data->iface) == 0)
++ if (lookup_data->fallback && (!lookup_data->iface || strlen (lookup_data->iface) == 0))
+ {
+ lookup_data->info = info;
+- return;
++ lookup_data->iface_type = gtype;
+ }
+-
+- if (info->exported_properties && !strcmp (info->exported_properties, lookup_data->iface))
++ else if (info->exported_properties && !strcmp (info->exported_properties, lookup_data->iface))
++ {
+ lookup_data->info = info;
++ lookup_data->iface_type = gtype;
++ }
++
++ return !lookup_data->info;
+ }
+
+-static DBusGObjectInfo *
++static const DBusGObjectInfo *
+ lookup_object_info_by_iface (GObject *object,
+- const char *iface)
++ const char *iface,
++ gboolean fallback,
++ GType *out_iface_type)
+ {
+ LookupObjectInfoByIfaceData data;
+
+ data.iface = iface;
+ data.info = NULL;
++ data.fallback = fallback;
++ data.iface_type = 0;
+
+ foreach_object_info (object, lookup_object_info_by_iface_cb, &data);
+
++ if (out_iface_type && data.info)
++ *out_iface_type = data.iface_type;
++
+ return data.info;
+ }
+
+@@ -543,30 +687,43 @@
+
+ for (; properties; properties = properties->next)
+ {
++ const char *iface;
+ const char *propname;
++ const char *propname_uscore;
++ const char *access_type;
+ GParamSpec *spec;
+ char *dbus_type;
+ gboolean can_set;
+ gboolean can_get;
+ char *s;
+
+- propname = properties->data;
+ spec = NULL;
+
++ property_iterate (properties->data, object_info->format_version, &iface, &propname, &propname_uscore, &access_type);
++
+ s = _dbus_gutils_wincaps_to_uscore (propname);
+
+- spec = g_object_class_find_property (g_type_class_peek (data->gtype), s);
++ if (!propname_uscore)
++ {
++ char *s = _dbus_gutils_wincaps_to_uscore (propname);
++ spec = g_object_class_find_property (g_type_class_peek (data->gtype), s);
++ g_free (s);
++ }
++ else
++ {
++ spec = g_object_class_find_property (g_type_class_peek (data->gtype), propname_uscore);
++ }
+ g_assert (spec != NULL);
+- g_free (s);
+-
++
+ dbus_type = _dbus_gtype_to_signature (G_PARAM_SPEC_VALUE_TYPE (spec));
+ g_assert (dbus_type != NULL);
+-
+- can_set = ((spec->flags & G_PARAM_WRITABLE) != 0 &&
+- (spec->flags & G_PARAM_CONSTRUCT_ONLY) == 0);
+-
++
++ can_set = strcmp (access_type, "readwrite") == 0
++ && ((spec->flags & G_PARAM_WRITABLE) != 0
++ && (spec->flags & G_PARAM_CONSTRUCT_ONLY) == 0);
++
+ can_get = (spec->flags & G_PARAM_READABLE) != 0;
+-
++
+ if (can_set || can_get)
+ {
+ g_string_append_printf (xml, " \n");
+ }
+-
+ g_free (dbus_type);
+ }
+ g_slist_free (values->properties);
+@@ -654,7 +810,7 @@
+ const char *iface;
+ const char *signame;
+
+- propsig = propsig_iterate (propsig, &iface, &signame);
++ propsig = signal_iterate (propsig, &iface, &signame);
+
+ values = lookup_values (interfaces, iface);
+ values->signals = g_slist_prepend (values->signals, (gpointer) signame);
+@@ -665,13 +821,15 @@
+ {
+ const char *iface;
+ const char *propname;
++ const char *propname_uscore;
++ const char *access_type;
+
+- propsig = propsig_iterate (propsig, &iface, &propname);
++ propsig = property_iterate (propsig, info->format_version, &iface, &propname, &propname_uscore, &access_type);
+
+ values = lookup_values (interfaces, iface);
+- values->properties = g_slist_prepend (values->properties, (gpointer) propname);
++ values->properties = g_slist_prepend (values->properties, (gpointer)iface);
+ }
+-
++
+ memset (&data, 0, sizeof (data));
+ data.xml = xml;
+ data.gtype = G_TYPE_FROM_INSTANCE (object);
+@@ -898,24 +1056,14 @@
+ {
+ const char *prop_ifname;
+ const char *prop_name;
++ const char *prop_uscored;
++ const char *access_flags;
+ GParamSpec *pspec;
+ GType value_gtype;
+ GValue value = {0, };
+ gchar *variant_sig;
+
+- prop_ifname = p;
+-
+- while (*p != '\0')
+- p++;
+- p++;
+- if (*p == '\0') {
+- g_warning ("malformed exported_properties in object_info");
+- break;
+- }
+- prop_name = p;
+- while (*p != '\0')
+- p++;
+- p++;
++ p = property_iterate (p, object_info->format_version, &prop_ifname, &prop_name, &prop_uscored, &access_flags);
+
+ uscore_propname = _dbus_gutils_wincaps_to_uscore (prop_name);
+
+@@ -1574,6 +1722,70 @@
+ goto done;
+ }
+
++static gboolean
++check_property_access (DBusConnection *connection,
++ DBusMessage *message,
++ GObject *object,
++ const char *wincaps_propiface,
++ const char *requested_propname,
++ const char *uscore_propname,
++ gboolean is_set)
++{
++ const DBusGObjectInfo *object_info;
++ const char *access_type;
++ DBusMessage *ret;
++
++ if (!is_set && !disable_legacy_property_access)
++ return TRUE;
++
++ object_info = lookup_object_info_by_iface (object, wincaps_propiface, TRUE, NULL);
++ if (!object_info)
++ {
++ ret = dbus_message_new_error_printf (message,
++ DBUS_ERROR_ACCESS_DENIED,
++ "Interface \"%s\" isn't exported (or may not exist), can't access property \"%s\"",
++ wincaps_propiface,
++ requested_propname);
++ dbus_connection_send (connection, ret, NULL);
++ dbus_message_unref (ret);
++ return FALSE;
++ }
++
++ /* Try both forms of property names: "foo_bar" or "FooBar"; for historical
++ * reasons we accept both.
++ */
++ if (object_info
++ && !(property_info_from_object_info (object_info, wincaps_propiface, requested_propname, &access_type)
++ || property_info_from_object_info (object_info, wincaps_propiface, uscore_propname, &access_type)))
++ {
++ ret = dbus_message_new_error_printf (message,
++ DBUS_ERROR_ACCESS_DENIED,
++ "Property \"%s\" of interface \"%s\" isn't exported (or may not exist)",
++ requested_propname,
++ wincaps_propiface);
++ dbus_connection_send (connection, ret, NULL);
++ dbus_message_unref (ret);
++ return FALSE;
++ }
++
++ if (strcmp (access_type, "readwrite") == 0)
++ return TRUE;
++ else if (is_set ? strcmp (access_type, "read") == 0
++ : strcmp (access_type, "write") == 0)
++ {
++ ret = dbus_message_new_error_printf (message,
++ DBUS_ERROR_ACCESS_DENIED,
++ "Property \"%s\" of interface \"%s\" is not %s",
++ requested_propname,
++ wincaps_propiface,
++ is_set ? "settable" : "readable");
++ dbus_connection_send (connection, ret, NULL);
++ dbus_message_unref (ret);
++ return FALSE;
++ }
++ return TRUE;
++}
++
+ static DBusHandlerResult
+ object_registration_message (DBusConnection *connection,
+ DBusMessage *message,
+@@ -1585,7 +1797,7 @@
+ gboolean getter;
+ gboolean getall;
+ char *s;
+- const char *wincaps_propname;
++ const char *requested_propname;
+ const char *wincaps_propiface;
+ DBusMessageIter iter;
+ const DBusGMethodInfo *method;
+@@ -1607,7 +1819,8 @@
+ return invoke_object_method (object, object_info, method, connection, message);
+
+ /* If no metainfo, we can still do properties and signals
+- * via standard GLib introspection
++ * via standard GLib introspection. Note we do now check
++ * property access against the metainfo if available.
+ */
+ getter = FALSE;
+ setter = FALSE;
+@@ -1643,7 +1856,7 @@
+
+ if (getall)
+ {
+- object_info = lookup_object_info_by_iface (object, wincaps_propiface);
++ object_info = lookup_object_info_by_iface (object, wincaps_propiface, TRUE, NULL);
+ if (object_info != NULL)
+ ret = get_all_object_properties (connection, message, object_info, object);
+ else
+@@ -1656,13 +1869,19 @@
+ g_warning ("Property get or set does not have a property name string as second arg\n");
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+- dbus_message_iter_get_basic (&iter, &wincaps_propname);
++
++ dbus_message_iter_get_basic (&iter, &requested_propname);
+ dbus_message_iter_next (&iter);
+
+- s = _dbus_gutils_wincaps_to_uscore (wincaps_propname);
++ s = _dbus_gutils_wincaps_to_uscore (requested_propname);
+
+- pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (object),
+- s);
++ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (object), s);
++
++ if (!check_property_access (connection, message, object, wincaps_propiface, requested_propname, s, setter))
++ {
++ g_free (s);
++ return DBUS_HANDLER_RESULT_HANDLED;
++ }
+
+ g_free (s);
+
+@@ -1695,7 +1914,7 @@
+ {
+ ret = dbus_message_new_error_printf (message,
+ DBUS_ERROR_INVALID_ARGS,
+- "No such property %s", wincaps_propname);
++ "No such property %s", requested_propname);
+ }
+ }
+
+@@ -1837,8 +2056,8 @@
+ GClosure *closure;
+ char *s;
+
+- sigdata = propsig_iterate (sigdata, &iface, &signame);
+-
++ sigdata = signal_iterate (sigdata, &iface, &signame);
++
+ s = _dbus_gutils_wincaps_to_uscore (signame);
+
+ id = g_signal_lookup (s, gtype);
+@@ -2012,6 +2231,28 @@
+ */
+
+ /**
++ * dbus_glib_global_set_disable_legacy_property_access:
++ *
++ * For historical reasons, DBus-GLib will allow read-only
++ * access to every GObject property of an object exported
++ * to the bus, regardless of whether or not the property
++ * is listed in the type info installed with
++ * dbus_g_object_type_install_info(). (Write access is
++ * denied however).
++ *
++ * If you wish to restrict even read-only access, you
++ * can call this method to globally change the behavior
++ * for the entire process.
++ *
++ * Since: 0.88
++ */
++void
++dbus_glib_global_set_disable_legacy_property_access (void)
++{
++ disable_legacy_property_access = TRUE;
++}
++
++/**
+ * dbus_g_object_type_install_info:
+ * @object_type: #GType for the object
+ * @info: introspection data generated by #dbus-glib-tool
+@@ -2775,23 +3016,23 @@
+
+ sigdata = dbus_glib_internal_test_object_info.exported_signals;
+ g_assert (*sigdata != '\0');
+- sigdata = propsig_iterate (sigdata, &iface, &signame);
++ sigdata = signal_iterate (sigdata, &iface, &signame);
+ g_assert (!strcmp (iface, "org.freedesktop.DBus.Tests.MyObject"));
+ g_assert (!strcmp (signame, "Frobnicate"));
+ g_assert (*sigdata != '\0');
+- sigdata = propsig_iterate (sigdata, &iface, &signame);
++ sigdata = signal_iterate (sigdata, &iface, &signame);
+ g_assert (!strcmp (iface, "org.freedesktop.DBus.Tests.FooObject"));
+ g_assert (!strcmp (signame, "Sig0"));
+ g_assert (*sigdata != '\0');
+- sigdata = propsig_iterate (sigdata, &iface, &signame);
++ sigdata = signal_iterate (sigdata, &iface, &signame);
+ g_assert (!strcmp (iface, "org.freedesktop.DBus.Tests.FooObject"));
+ g_assert (!strcmp (signame, "Sig1"));
+ g_assert (*sigdata != '\0');
+- sigdata = propsig_iterate (sigdata, &iface, &signame);
++ sigdata = signal_iterate (sigdata, &iface, &signame);
+ g_assert (!strcmp (iface, "org.freedesktop.DBus.Tests.FooObject"));
+ g_assert (!strcmp (signame, "Sig2"));
+ g_assert (*sigdata == '\0');
+-
++
+
+ i = 0;
+ while (i < (int) G_N_ELEMENTS (name_pairs))
+diff -Nur -x '*.orig' -x '*~' dbus-glib-0.84//test/core/my-object.c dbus-glib-0.84.new//test/core/my-object.c
+--- dbus-glib-0.84//test/core/my-object.c 2010-01-12 11:18:03.000000000 -0600
++++ dbus-glib-0.84.new//test/core/my-object.c 2011-05-25 16:31:22.000000000 -0500
+@@ -11,7 +11,10 @@
+ enum
+ {
+ PROP_0,
+- PROP_THIS_IS_A_STRING
++ PROP_THIS_IS_A_STRING,
++ PROP_NO_TOUCHING,
++ PROP_SUPER_STUDLY,
++ PROP_SHOULD_BE_HIDDEN
+ };
+
+ enum
+@@ -53,7 +56,19 @@
+ g_free (mobject->this_is_a_string);
+ mobject->this_is_a_string = g_value_dup_string (value);
+ break;
+-
++
++ case PROP_NO_TOUCHING:
++ mobject->notouching = g_value_get_uint (value);
++ break;
++
++ case PROP_SUPER_STUDLY:
++ mobject->super_studly = g_value_get_double (value);
++ break;
++
++ case PROP_SHOULD_BE_HIDDEN:
++ mobject->should_be_hidden = g_value_get_boolean (value);
++ break;
++
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+@@ -75,7 +90,19 @@
+ case PROP_THIS_IS_A_STRING:
+ g_value_set_string (value, mobject->this_is_a_string);
+ break;
+-
++
++ case PROP_NO_TOUCHING:
++ g_value_set_uint (value, mobject->notouching);
++ break;
++
++ case PROP_SUPER_STUDLY:
++ g_value_set_double (value, mobject->super_studly);
++ break;
++
++ case PROP_SHOULD_BE_HIDDEN:
++ g_value_set_boolean (value, mobject->should_be_hidden);
++ break;
++
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+@@ -86,6 +113,7 @@
+ my_object_init (MyObject *obj)
+ {
+ obj->val = 0;
++ obj->notouching = 42;
+ }
+
+ static void
+@@ -107,6 +135,30 @@
+ _("Example of a string property"),
+ "default value",
+ G_PARAM_READWRITE));
++ g_object_class_install_property (gobject_class,
++ PROP_NO_TOUCHING,
++ g_param_spec_uint ("no_touching",
++ _("Don't touch"),
++ _("Example of a readonly property (for export)"),
++ 0, 100, 42,
++ G_PARAM_READWRITE));
++
++ g_object_class_install_property (gobject_class,
++ PROP_SUPER_STUDLY,
++ g_param_spec_double ("super-studly",
++ _("In Studly Caps"),
++ _("Example of a StudlyCaps property"),
++ 0, 256, 128,
++ G_PARAM_READWRITE));
++
++ g_object_class_install_property (gobject_class,
++ PROP_SHOULD_BE_HIDDEN,
++ g_param_spec_boolean ("should-be-hidden",
++ _("A non-exported property"),
++ _("Example of a property we don't want exported"),
++ FALSE,
++ G_PARAM_READWRITE));
++
+ signals[FROBNICATE] =
+ g_signal_new ("frobnicate",
+ G_OBJECT_CLASS_TYPE (mobject_class),
+@@ -760,6 +812,11 @@
+ g_idle_add ((GSourceFunc)do_async_error, data);
+ }
+
++void
++my_object_unsafe_disable_legacy_property_access (MyObject *obj)
++{
++ dbus_glib_global_set_disable_legacy_property_access ();
++}
+
+ extern GMainLoop *loop;
+
+diff -Nur -x '*.orig' -x '*~' dbus-glib-0.84//test/core/my-object.h dbus-glib-0.84.new//test/core/my-object.h
+--- dbus-glib-0.84//test/core/my-object.h 2010-01-12 11:18:03.000000000 -0600
++++ dbus-glib-0.84.new//test/core/my-object.h 2011-05-25 16:31:22.000000000 -0500
+@@ -13,7 +13,10 @@
+ {
+ GObject parent;
+ char *this_is_a_string;
++ guint notouching;
+ guint val;
++ gdouble super_studly;
++ gboolean should_be_hidden;
+ };
+
+ struct MyObjectClass
+@@ -107,4 +110,6 @@
+
+ void my_object_async_throw_error (MyObject *obj, DBusGMethodInvocation *context);
+
++void my_object_unsafe_disable_legacy_property_access (MyObject *obj);
++
+ #endif
+diff -Nur -x '*.orig' -x '*~' dbus-glib-0.84//test/core/test-dbus-glib.c dbus-glib-0.84.new//test/core/test-dbus-glib.c
+--- dbus-glib-0.84//test/core/test-dbus-glib.c 2010-01-27 12:46:40.000000000 -0600
++++ dbus-glib-0.84.new//test/core/test-dbus-glib.c 2011-05-25 16:31:22.000000000 -0500
+@@ -324,38 +324,48 @@
+ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
+ G_TYPE_INVALID,
+ DBUS_TYPE_G_MAP_OF_VARIANT, &hash, G_TYPE_INVALID))
+- lose_gerror ("Unexpected error for GetProperty call of base class interface\n", error);
++ lose_gerror ("Unexpected error for GetProperty call of base class interface", error);
+ g_clear_error (&error);
+
+ if (!hash)
+ {
+ lose ("%s: Unexpected NULL hash table returned for GetAll call of base "
+- "class interface\n", object_path);
++ "class interface", object_path);
+ }
+
+- if (g_hash_table_size (hash) != 1)
++ if (g_hash_table_size (hash) != 3)
+ {
+- lose ("%s: Unexpected hash table size %d (expected 1) returned for GetAll "
+- " call of base class interface\n", object_path, g_hash_table_size (hash));
++ lose ("%s: Unexpected hash table size %d (expected 3) returned for GetAll "
++ " call of base class interface", object_path, g_hash_table_size (hash));
+ }
+ value = g_hash_table_lookup (hash, "this_is_a_string");
+ if (!value)
+ {
+ lose ("%s: Unexpected missing 'this_is_a_string' property for GetAll "
+- "call of base class interface\n", object_path);
++ "call of base class interface", object_path);
+ }
+ if (!G_VALUE_HOLDS_STRING (value))
+ {
+ lose ("%s: Unexpected wrong type for 'this_is_a_string' property for "
+- "GetAll call of base class interface\n", object_path);
++ "GetAll call of base class interface", object_path);
+ }
+ foo = g_value_get_string (value);
+ if (!foo || strcmp (foo, expected_string_value))
+ {
+ lose ("%s: Unexpected value for 'this_is_a_string' property for GetAll "
+- "call of base class interface\n", object_path);
++ "call of base class interface", object_path);
+ }
+
++ value = g_hash_table_lookup (hash, "no-touching");
++ if (!value)
++ lose ("%s: Unexpected missing 'no-touching' property for GetAll "
++ "call of base class interface", object_path);
++ if (!G_VALUE_HOLDS_UINT (value))
++ lose ("%s: Unexpected wrong type for 'no-touching' property for "
++ "GetAll call of base class interface", object_path);
++ if (g_value_get_uint (value) != 42)
++ lose ("%s: Unexpected wrong value \"%d\" for 'no-touching' property for "
++ "GetAll call of base class interface", object_path, g_value_get_uint (value));
+ g_hash_table_destroy (hash);
+ hash = NULL;
+ }
+@@ -1972,9 +1982,10 @@
+ {
+ GSList *elt;
+ gboolean found_manyargs;
+-
++ gboolean found_no_touching = FALSE;
++
+ found_myobject = TRUE;
+-
++
+ found_manyargs = FALSE;
+ for (elt = interface_info_get_methods (iface); elt; elt = elt->next)
+ {
+@@ -1989,6 +2000,23 @@
+ }
+ if (!found_manyargs)
+ lose ("Missing method org.freedesktop.DBus.GLib.Tests.MyObject.ManyArgs");
++ for (elt = interface_info_get_properties (iface); elt; elt = elt->next)
++ {
++ PropertyInfo *prop = elt->data;
++
++ if (strcmp (property_info_get_name (prop), "no-touching") == 0)
++ {
++ if (property_info_get_access (prop) != PROPERTY_READ)
++ lose ("property no-touching had incorrect access %d", property_info_get_access (prop));
++ else
++ {
++ found_no_touching = TRUE;
++ break;
++ }
++ }
++ }
++ if (!found_no_touching)
++ lose ("didn't find property \"no-touching\" in org.freedesktop.DBus.GLib.Tests.MyObject");
+ }
+ else if (!found_fooobject && strcmp (interface_info_get_name (iface), "org.freedesktop.DBus.GLib.Tests.FooObject") == 0)
+ found_fooobject = TRUE;
+@@ -2004,6 +2032,8 @@
+
+ /* Properties tests */
+ property_proxy = dbus_g_proxy_new_from_proxy (proxy, DBUS_INTERFACE_PROPERTIES, NULL);
++ g_object_unref (proxy);
++ proxy = NULL;
+
+ g_print ("Calling GetProperty (1)\n");
+ {
+@@ -2032,6 +2062,48 @@
+ g_value_unset (&value);
+ }
+
++ g_print ("Calling GetProperty of read-only property\n");
++ {
++ GValue value = {0,};
++ if (!dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "no-touching",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose_gerror ("Failed to complete GetProperty no-touching call", error);
++ g_assert (G_VALUE_HOLDS (&value, G_TYPE_UINT));
++ g_assert (g_value_get_uint (&value) == 42);
++ g_value_unset (&value);
++ }
++
++ g_print ("Calling SetProperty (1)\n");
++ {
++ GValue value = {0,};
++ g_value_init (&value, G_TYPE_UINT);
++ g_value_set_uint (&value, 40);
++ if (dbus_g_proxy_call (property_proxy, "Set", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "no-touching",
++ G_TYPE_VALUE, &value, G_TYPE_INVALID, G_TYPE_INVALID))
++ lose ("Unexpected success from SetProperty call for read-only value \"no-touching\"");
++ g_clear_error (&error);
++ g_value_unset (&value);
++ }
++
++ g_print ("Calling GetProperty of read-only property (again)\n");
++ {
++ GValue value = {0,};
++ if (!dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "no-touching",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose_gerror ("Failed to complete GetProperty call", error);
++ g_assert (G_VALUE_HOLDS (&value, G_TYPE_UINT));
++ g_assert (g_value_get_uint (&value) == 42);
++ g_value_unset (&value);
++ }
++
+ g_print ("Calling GetProperty (2)\n");
+ {
+ GValue value = {0,};
+@@ -2046,7 +2118,46 @@
+ g_value_unset (&value);
+ }
+
+- g_print ("Calling GetProperty (3)\n");
++ g_print ("Calling GetProperty: SuperStudly\n");
++ {
++ GValue value = {0,};
++ if (!dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "SuperStudly",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose_gerror ("Failed to complete GetProperty call", error);
++ g_assert (G_VALUE_HOLDS (&value, G_TYPE_DOUBLE));
++ g_value_unset (&value);
++ }
++
++ g_print ("Calling GetProperty: super-studly\n");
++ {
++ GValue value = {0,};
++ if (!dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "super-studly",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose_gerror ("Failed to complete GetProperty call", error);
++ g_assert (G_VALUE_HOLDS (&value, G_TYPE_DOUBLE));
++ g_value_unset (&value);
++ }
++
++ g_print ("Calling GetProperty: super_studly\n");
++ {
++ GValue value = {0,};
++ if (!dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "super_studly",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose_gerror ("Failed to complete GetProperty call", error);
++ g_assert (G_VALUE_HOLDS (&value, G_TYPE_DOUBLE));
++ g_value_unset (&value);
++ }
++
++ g_print ("Calling GetProperty on unknown property\n");
+ {
+ GValue value = {0,};
+ if (dbus_g_proxy_call (property_proxy, "Get", &error,
+@@ -2054,13 +2165,68 @@
+ G_TYPE_STRING, "SomeUnknownProperty",
+ G_TYPE_INVALID,
+ G_TYPE_VALUE, &value, G_TYPE_INVALID))
+- lose_gerror ("Unexpected success for GetProperty call of unknown property", error);
++ lose ("Unexpected success for GetProperty call of unknown property");
+
+ g_clear_error (&error);
+ }
+
+- g_object_unref (property_proxy);
+- property_proxy = NULL;
++ /* These two are expected to pass unless we call disable_legacy_property_access */
++
++ g_print ("Calling GetProperty on not-exported property (legacy enabled)\n");
++ {
++ GValue value = {0,};
++ if (!dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "should-be-hidden",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose_gerror ("Failed GetProperty call of \"should-be-hidden\" property", error);
++ g_assert (G_VALUE_HOLDS_BOOLEAN (&value));
++ g_assert (g_value_get_boolean (&value) == FALSE);
++ g_value_unset (&value);
++ }
++
++ g_print ("Calling GetProperty on not-exported property (legacy enabled)\n");
++ {
++ GValue value = {0,};
++ if (!dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "ShouldBeHidden",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose_gerror ("Failed GetProperty call of \"ShouldBeHidden\" property", error);
++
++ g_value_unset (&value);
++ }
++
++ g_print ("Calling SetProperty on not-exported property (legacy enabled)\n");
++ {
++ GValue value = {0,};
++ g_value_init (&value, G_TYPE_BOOLEAN);
++ g_value_set_boolean (&value, TRUE);
++ if (dbus_g_proxy_call (property_proxy, "Set", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "should-be-hidden",
++ G_TYPE_VALUE, &value,
++ G_TYPE_INVALID, G_TYPE_INVALID))
++ lose ("Unexpected success from SetProperty call of \"should-be-hidden\" property");
++ g_value_unset (&value);
++ g_clear_error (&error);
++ }
++
++ g_print ("Calling GetProperty on not-exported property (legacy enabled)\n");
++ {
++ GValue value = {0,};
++ if (!dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "should-be-hidden",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose_gerror ("Failed GetProperty call of \"should-be-hidden\" property", error);
++ g_assert (G_VALUE_HOLDS_BOOLEAN (&value));
++ g_assert (g_value_get_boolean (&value) == FALSE);
++ g_value_unset (&value);
++ }
+
+ /* Test GetAll */
+ /* 'testing value' set earlier by the SetProperty tests */
+@@ -2080,6 +2246,64 @@
+ */
+ test_subclass_get_all (connection, "/org/freedesktop/DBus/GLib/Tests/MyTestObjectSubclass");
+
++ /* Now, call disable_legacy_property_access */
++
++ g_assert (proxy == NULL);
++ proxy = dbus_g_proxy_new_for_name_owner (connection,
++ "org.freedesktop.DBus.GLib.TestService",
++ "/org/freedesktop/DBus/GLib/Tests/MyTestObject",
++ "org.freedesktop.DBus.GLib.Tests.MyObject",
++ &error);
++
++ if (!dbus_g_proxy_call (proxy, "UnsafeDisableLegacyPropertyAccess", &error,
++ G_TYPE_INVALID, G_TYPE_INVALID))
++ lose_gerror ("Failed to invoke UnsafeDisableLegacyPropertyAccess", error);
++
++ g_object_unref (proxy);
++ proxy = NULL;
++
++ g_print ("Calling GetProperty on not-exported property (legacy *disabled*)\n");
++ {
++ GValue value = {0,};
++ if (dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "should-be-hidden",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose ("Unexpected success from GetProperty call of \"should-be-hidden\" property");
++ g_clear_error (&error);
++ }
++
++ g_print ("Calling GetProperty on not-exported property (legacy *disabled*)\n");
++ {
++ GValue value = {0,};
++ if (dbus_g_proxy_call (property_proxy, "Get", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "ShouldBeHidden",
++ G_TYPE_INVALID,
++ G_TYPE_VALUE, &value, G_TYPE_INVALID))
++ lose ("Unexpected success from GetProperty call of \"ShouldBeHidden\" property");
++ g_clear_error (&error);
++ }
++
++ g_print ("Calling SetProperty on not-exported property (legacy *disabled*)\n");
++ {
++ GValue value = {0,};
++ g_value_init (&value, G_TYPE_BOOLEAN);
++ g_value_set_boolean (&value, FALSE);
++ if (dbus_g_proxy_call (property_proxy, "Set", &error,
++ G_TYPE_STRING, "org.freedesktop.DBus.GLib.Tests.MyObject",
++ G_TYPE_STRING, "should-be-hidden",
++ G_TYPE_VALUE, &value,
++ G_TYPE_INVALID, G_TYPE_INVALID))
++ lose ("Unexpected success from SetProperty call of \"should-be-hidden\" property");
++ g_value_unset (&value);
++ g_clear_error (&error);
++ }
++
++ g_object_unref (property_proxy);
++ property_proxy = NULL;
++
+ test_terminate_proxy1 = dbus_g_proxy_new_for_name_owner (connection,
+ "org.freedesktop.DBus.GLib.TestService",
+ "/org/freedesktop/DBus/GLib/Tests/MyTestObject",
+diff -Nur -x '*.orig' -x '*~' dbus-glib-0.84//test/core/test-service-glib.xml dbus-glib-0.84.new//test/core/test-service-glib.xml
+--- dbus-glib-0.84//test/core/test-service-glib.xml 2010-01-12 11:18:03.000000000 -0600
++++ dbus-glib-0.84.new//test/core/test-service-glib.xml 2011-05-25 16:31:22.000000000 -0500
+@@ -3,6 +3,8 @@
+
+
+
++
++
+
+
+
+@@ -167,6 +169,9 @@
+
+
+
++
++
++
+
+
+