blob: eab5982fbaa85a9df03788f2da135b05137332b0 [file] [log] [blame]
2006-11-09 John (J5) Palmieri <>
* Released 1.0.0
2006-11-09 John (J5) Palmieri <>
* AUTHORS: added Peter and Tor of windows porting fame
2006-11-08 Havoc Pennington <>
* doc/dbus-specification.xml: add a note about protocol stability
* doc/TODO: Remove "important for 1.0" section, replace with
"important for 1.2" section
2006-11-08 John (J5) Palmieri <>
* README: remove some of the out of date flags
* doc/TODO: Remove todo items which are done
2006-11-08 John (J5) Palmieri <>
* tools/dbus-monitor.c: Handle sigint so we flush stdout
(Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
2006-11-08 John (J5) Palmieri <>
* tools/dbus-monitor.1: update the manpage for dbus-monitor
(Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
2006-11-08 John (J5) Palmieri <>
* AUTHORS: Update with all people listed in the ChangeLog
2006-11-08 John (J5) Palmieri <>
* tools/dbus-monitor.c: add profiling tools to dbus-monitor
(Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
2006-11-07 Havoc Pennington <>
* HACKING: Update release instructions to include stuff about
stable releases, branching, etc. May not be totally correct,
please fix if needed, but keep instructions up-to-date so we do
each stable release consistently in the future.
2006-11-07 Havoc Pennington <>
* doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
documentation updates. Bump faq/spec versions (not to 1.0; I don't
think the spec will be "finished"/1.0 when we ship the 1.0 library).
2006-11-06 John (J5) Palmieri <>
* bus/bus.c: Missed patch - pass in the context to the directory watch
2006-11-02 John (J5) Palmieri <>
* Released D-Bus 1.0 RC 3(0.95)
2006-11-02 John (J5) Palmieri <>
* bus/activation.c (bus_activation_new): don't fail if we can not read
the directory as it may not exist
2006-11-02 John (J5) Palmieri <>
* bus/config-parser.c (service_dirs_find_dir): use
_dbus_list_get_next_link so we don't get stuck in an infinite loop
(start_busconfig_child): move processing of standard_session_servicedirs
tags here because they have no content
(bus_config_parser_content): check we don't have content in
standard_session_servicedirs tag
2006-11-02 John (J5) Palmieri <>
* tools/ Make sure the /var/lib/dbus directory is created
Packagers need to own this directory
2006-11-02 John (J5) Palmieri <>
* tools/ fixed script to replace the
<standard_session_servicedirs> tag with a <sevicedir> tag that
points to the test service directory
2006-11-02 John (J5) Palmieri <>
* Add a check for DIR *dirp->dd_fd
* dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use
DIR *dirp->dd_fd else use DIR *dirp->__dd_fd. This takes care
of both Solaris and Irix
2006-11-01 Havoc Pennington <>
* bus/ document standard_session_servicedirs
2006-11-01 John (J5) Palmieri <>
* bus/config-parser.c: add the standard_session_servicedirs element
to the parser
(bus_config_parser_content): process the standard_session_servicedirs
element by getting the standard directories from sysdeps and merging
them into the service directory list
(test_default_session_servicedirs): make sure we get what we expect
* bus/ replace the servicedir tag with the
standard_session_servicedirs tag
* dbus/dbus-list.h: remove the typedef of DBusList and place it in
dbus-sysdeps.h to avoid circular header dependencies
* dbus/dbus-sysdeps.h: add the typedef of DBusList
* dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
which takes a string of directories delimited by colons, parses them
out, appends a suffix and puts them in a list ignoring empty elements
(_dbus_get_standard_session_servicedirs): returns the standard
directories for a session bus to look for service activation files
on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and
DBUS_DATADIR directories
* test/data/valid-config-files/many-rules.conf: add the
standard_session_servicedirs tag to the valid config file tests
2006-10-30 Havoc Pennington <>
* tools/dbus-launch.1, doc/TODO: capture intent to change the
command line options of dbus-launch a bit post 1.0
2006-10-27 Havoc Pennington <>
* dbus/dbus-connection.c (dbus_connection_open_private): document
how to choose shared vs. private connections
2006-10-27 Havoc Pennington <>
* dbus/dbus-test.c: enclose more of the file in the
* dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
* dbus/dbus-connection.c (dbus_connection_get_unix_user): document
that it only works on the server side
* dbus/dbus-bus.c: add a global lock covering the BusData we
attach to each connection
(internal_bus_get): lock our access to the BusData
(dbus_bus_register): lock the entire registration process
with _DBUS_LOCK(bus_datas). If we get the lock and
registration is already complete, silently return (vs. previous
behavior of aborting).
(dbus_bus_set_unique_name): lock the BusData
(dbus_bus_get_unique_name): lock the BusData
2006-10-27 John (J5) Palmieri <>
* bus/config-parser.c (service_dirs_find_dir,
service_dirs_append_link_unique_or_free): New static methods
for only appending unique service directory names into
the service directory list
(merge_included, bus_config_parser_content): Only add unique
service directory names into the list
2006-10-27 Havoc Pennington <>
* dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
variables volatile, suggested by Thiago. Document struct fields.
(PTHREAD_CHECK): remove pthread error checking if assertions are
disabled, should reduce the no-assertions case to the bare
minimum code.
2006-10-26 Havoc Pennington <>
* dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
to be recursive
(_dbus_pthread_mutex_unlock): make it recursive
(_dbus_pthread_condvar_wait): save/restore the recursion count
(_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
2006-10-26 Havoc Pennington <>
* doc/dbus-specification.xml: clarify the UUID text slightly
* dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
pthread errors. Add DBusMutexPThread and DBusCondVarPThread
in preparation for being able to extend them for e.g. recursive
2006-10-26 Havoc Pennington <>
* dbus/dbus-threads.[hc]: Documentation improvements. Clarify how
condition variables relate to recursive mutexes.
* dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c,
dbus/dbus-threads.c: Split the platforms-specific thread
implementations into their own files.
* dbus/dbus-sysdeps-pthread.c
(_dbus_pthread_condvar_wait_timeout): invert the return value, it
was backward. Not that anything uses it.
2006-10-26 John (J5) Palmieri <>
* dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
LOCAL_CREDS vs CMSGCRED stuff a bit. Prefer CMSGCRED. This
needs to be cleaned up more.
* doc/TODO: Add a todo that *BSD hackers should look at cleaning
up the CREDS issue.
2006-10-26 John (J5) Palmieri <>
*, Check to see if thread methods
are in glibc or libpthread and add -lpthread to the link stage
if it is the latter
2006-10-26 Thiago Macieira <>
* dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
bug 8780: the connection lock is only required while recording
the shared connection, so protect only that code
section. Don't require connection_lookup_shared to return a
locked connection.
2006-10-26 Thiago Macieira <>
* tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
check if get_machine_uuid() returns NULL before proceeding any
further: we can't init the X atoms or create a session file
name if there is no machine ID.
This solves a crash reported by some users if
--exit-with-session was used without --autolaunch=<machine-id>
2006-10-26 John (J5) Palmieri <>
* tools/dbus-launch.c (main): run the dbus-daemon in the builddir
if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
before we run dbus-launch
* define TEST_BUS_BINARY to be the full path to
dbus-daemon in the build root
2006-10-25 Sjoerd Simons <>
* dbus/
* tools/
* toos/dbus-uuidgen.1:
Move the machine-id file to /var/lib/dbus
2006-10-24 David Zeuthen <>
* dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
_dbus_assert (thread_init_generation != _dbus_current_generation)
not _dbus_assert (thread_init_generation == _dbus_current_generation)
2006-10-24 Thiago Macieira <>
* dbus/dbus-sysdeps.h:
* dbus/dbus-sysdeps-unix.c: Add function
_dbus_make_file_world_readable that chmods a file to 0644.
* dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
Avoid writing to the static "argv" array, thereby avoiding a
COW on the child process.
* dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
call _dbus_make_file_world_readable on the created file.
2006-10-23 David Zeuthen <>
* dbus/dbus-memory.c: Use atomic variable to protect
n_blocks_outstanding otherwise OOM will be reported using SMP on
some arches
* bus/dispatch.c: Add missing end of line characters
* bus/desktop-file.c (parse_section_start, parse_key_value)
(bus_desktop_file_load): Propertly handle OOM
* dbus/dbus-threads.c (init_uninitialized_locks): Check that
thread_init_generation equals _dbus_current_generation, not 0
2006-10-22 Havoc Pennington <>
* dbus/dbus-connection-internal.h: move prototype of
_dbus_bus_notify_shared_connection_disconnected_unlocked() here so
it isn't in a public header and doesn't end up in the DBusBus
group in Doxygen
2006-10-21 Havoc Pennington <>
* (EXTRA_DIST): dist so it's in
the tarball if packagers want to run it
* Add a script which munges all the internal
API man pages out of the Doxygen output. This reduces the size of
the installed man pages from 7 to 2 megs, and avoids
namespace-polluting pages. Right now (like Doxygen) this script
isn't in the build, it's something packagers can do manually.
2006-10-21 Havoc Pennington <>
* dbus/dbus-connection.h: don't include the watch/timeout
functions in connection section
2006-10-21 Havoc Pennington <>
* Documentation! Whee! Doxygen now 100% silent. If you make it
angry again, you will be punished.
2006-10-21 Havoc Pennington <>
* More documentation - all public API now documented according to
2006-10-21 Havoc Pennington <>
* Document a bunch of undocumented stuff
2006-10-21 Havoc Pennington <>
* Clean up Doxygen group markers for public API so Doxygen finds
everything (not comprehensively fixed for private API).
Means all remaining Doxygen warnings are just about missing docs
and thus pretty simple to resolve.
2006-10-21 Havoc Pennington <>
* dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
* dbus/dbus-message.h: mark dbus_message_iter_get_array_len()
2006-10-21 Havoc Pennington <>
* Move all private API into the private Doxygen group sections of
the files, so they don't show up in the public API docs
2006-10-21 Havoc Pennington <>
* dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around
* throughout: documentation improvements.
2006-10-20 Havoc Pennington <>
* doc/TODO: remove the int64 thing from 1.0 since it doesn't
matter, and the message-loader-breaker thing since nobody is going
to do it. Add an item to 1.0 about supporting recursive locks
in dbus_threads_init_default() though, since it should be easy.
* dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
Fix this in the !dispatch case to avoid busy-looping after
* More misc docs improvements
2006-10-19 Havoc Pennington <>
* more Doxygen-related fixes (lots of moving things from the
public to internal section in dbus-connection.c)
2006-10-19 Havoc Pennington <>
* Fix a pile of Doxygen warnings and missing docs
2006-10-19 John (J5) Palmieri <>
* bus/dir-watch-default.c, bus/dir-watch-dnotify.c,
bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext
instead of a void *. kqueue uses this to get the context's loop
while the other modules ignore the parameter. This allows us to
avoid platform conditionals
* bus/bus.c (process_config_postinit): Pass in the context to the
2006-10-19 John (J5) Palmieri <>
* bus/, bus/ run dbus-uuidgen --ensure
when starting the system bus
2006-10-18 John (J5) Palmieri <>
* More fixups for cross compile (Patch from
Marco Pracucci <development at pracucci dot com>)
2006-10-17 Havoc Pennington <>
* tools/dbus-send.c (main): don't close shared connection, fix
from Timo Hoenig
2006-10-17 Havoc Pennington <>
* dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
since realistically it doesn't look like we'll be changing it
2006-10-17 Havoc Pennington <>
* dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
be used for return_if_fail type warnings; prefixes the pid, and
fatal by default.
2006-10-14 John (J5) Palmieri <>
* Released 1.0 RC 2(0.94)
Add check for -fPIC and enable it if available
2006-10-14 John (J5) Palmieri <>
* doc/TODO: Remove the check TODO item
2006-10-13 John (J5) Palmieri <>
* dbus-transport-socket.c (exchange_credentials):
Print out more detailed errors if reading or sending
credentials fail (Patch from Julio M. Merino Vidal
<jmmv at NetBSD dot org>)
2006-10-13 John (J5) Palmieri <>
* when checking for posix getpwnam_r assume true
for cross compiles
2006-10-13 John (J5) Palmieri <>
* Check for gethostbyname first before we check for it
in libnsl. On gnu systems it is implemeneted
2006-10-13 Havoc Pennington <>
* dbus/dbus-connection.c
(dbus_connection_send_with_reply_and_block): fix to handle closed
connections, from Tambet Ingo bug #8631
2006-10-11 John (J5) Palmieri <>
* use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
2006-10-11 John (J5) Palmieri <>
* test/name-test/ don't link against both libdbus and
2006-10-11 John (J5) Palmieri <>
* check for dirfd even if it is a macro
(Patch from Timothy Redaelli <drizzt at gufi dot org>)
2006-10-08 John (J5) Palmieri <>
* define _POSIX_PTHREAD_SEMANTICS on solaris
avoid using dirfd on systems that don't have dirfd
(Patch by Brian Cameron <brian dot cameron at sun dot com>)
2006-10-02 John (J5) Palmieir <>
* dbus/dbus-sysdeps.c (_dbus_abort): Remove from
#ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
* dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
#if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
macro because _dbus_abort calls it
* tools/ Add dbus-launch.h to the source list so distcheck
2006-10-02 John (J5) Palmieir <>
* dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
MAXNAMELEN for Mac OSX. (Patch from Jonas B <sanoix at gmail dot com>)
2006-10-02 Thiago Macieira <>
* tools/dbus-launch.c (main): make it complain and abort
execution in case an unknown option is given. Also, process
the '--' argument as the end of arguments.
2006-10-01 Havoc Pennington <>
* tools/dbus-launch.c (print_variables): if no syntax is given,
don't print something that's sort-of-half-sh-syntax, just print
a plain key-value pairs thing.
* tools/dbus-launch-x11.c: use machine ID rather than hostname for
the local machine representation (but still have the hostname in
the display). Remove the hostname from the display if it is
localhost. Change session files to be named
~/.dbus/session-bus/machine-display. Change X atoms to be
underscore-prefixed so nobody whines about ICCCM compliance.
Otherwise name them the same as the env variables.
Change session file format to include key-value pairs and an
explanatory comment. Keys are the same as the env variables.
(set_address_in_x11): X property format can't depend on
sizeof(pid_t) on a particular machine, fix to always be 32 bits
* tools/dbus-launch.c: make --autolaunch take a machine id
argument. If --autolaunch is used with a program to run, complain
for now (but add a FIXME). Also, don't look for existing bus if
there's a program to run (but add a FIXME).
* dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
just to get this, and avoids duplicating uuid-reading code).
* tools/dbus-launch.1: clarify various things
2006-10-01 Havoc Pennington <>
* test/test-service.c (path_message_func): remove broken extra
unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
* test/test-shell-service.c (path_message_func): same fix
* dbus/dbus-connection.c
(_dbus_connection_get_dispatch_status_unlocked): break up the
function a little for clarity and fix the notification of
dbus-bus.c to not require dispatch to be complete
* dbus/dbus-connection.c (dbus_connection_unref): improve the
warning when you try to finalize an open connection.
2006-10-01 Havoc Pennington <>
* dbus/dbus-bus.c
(internal_bus_get): only weak ref the connection; this means
_dbus_bus_notify_shared_connection_disconnected_unlocked can be
called safely in any context
(_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
* dbus/dbus-connection.c
(_dbus_connection_get_dispatch_status_unlocked): move
_dbus_bus_notify_shared_connection_disconnected_unlocked here
when queuing Disconnected instead of when the Disconnected message
arrives, so dbus_bus_get() won't return closed connections.
2006-10-01 Havoc Pennington <>
* dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref):
Add a hack to make DBusNewConnectionFunction work right.
* dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
the hack here. Also, fix the todo about refcount leak.
* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
and use the hack here
* dbus/dbus-connection.c: Kill the "shared" flag vs. the
"shareable" flag; this was completely broken, since it meant
dbus_connection_open() returned a connection of unknown
shared-ness. Now, we always hold a ref on anything opened
as shareable.
Move the call to notify dbus-bus.c into
connection_forget_shared_unlocked, so libdbus consistently forgets
all its knowledge of a connection at once. This exposed numerous
places where things were totally broken if we dropped a ref inside
get_dispatch_status_unlocked where
connection_forget_shared_unlocked was previously, so move
connection_forget_shared_unlocked into
_dbus_connection_update_dispatch_status_and_unlock. Also move the
exit_on_disconnect here.
(shared_connections_shutdown): this assumed weak refs to the
shared connections; since we have strong refs now, the assertion
was failing and stuff was left in the hash. Fix it to close
still-open shared connections.
* bus/dispatch.c: fixup to use dbus_connection_open_private on the
debug pipe connections
* dbus/dbus-connection.c (dbus_connection_dispatch): only notify
dbus-bus.c if the closed connection is in fact shared
(_dbus_connection_close_possibly_shared): rename from
(dbus_connection_close, dbus_connection_open,
dbus_connection_open_private): Improve docs to explain the deal
with when you should close or unref or both
* dbus/dbus-bus.c
(_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
from _dbus_bus_check_connection_and_unref_unlocked and modify to
loop over all connections
* test/test-utils.c (test_connection_shutdown): don't try to close
shared connections.
* test/name-test/test-threads-init.c (main): fix warnings in here
* dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
env variable to cause blocking waiting for gdb; drop
DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
* add -export-dynamic to libtool flags if assertions enabled
so _dbus_print_backtrace works.
* dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
instead of _dbus_verbose to print the backtrace, and diagnose lack
of -rdynamic/-export-dynamic
2006-09-30 Havoc Pennington <>
* dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get)
(internal_bus_get): fix screwy code formatting. whoever committed
that was not paying attention!
2006-09-30 Havoc Pennington <>
* (LT_CURRENT, LT_AGE): increment current and age to
reflect addition of interfaces.
* doc/dbus-specification.xml: describe a new
org.freedesktop.DBus.Peer.GetMachineId method
* dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
(_dbus_string_skip_white, _dbus_string_skip_blank): use new
DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
at end of skip_white
(_dbus_string_chop_white): new function
* bus/connection.c (bus_connections_setup_connection): call
* dbus/dbus-connection.c
(_dbus_connection_peer_filter_unlocked_no_update): modify to
support a GetMachineId method.
Also, support a new flag to let the bus pass peer methods through
to apps on the bus, which can be set with
Finally, handle and return an error for anything unknown on the
Peer interface, which will allow us to extend the Peer interface
in the future without fear that we're now intercepting something
apps were wanting to see.
* tools/dbus-uuidgen.c: a thin wrapper around the functions in
* dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
binary here, since most of the code is already in libdbus
* dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
uuid from the system config file
* dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode)
(_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
uuid-related functions, partly factored out from dbus-server.c
* dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
* dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
* tools/dbus-cleanup-sockets.1: explain what the point of this
thing is a bit more
* (run_configure): add --config-cache to default
configure args
* dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
error set/clear assertions when DBUS_DISABLE_CHECKS is defined
* tools/dbus-launch.c (main): if xdisplay hasn't been opened,
don't try to save address, fixes crash in make check
2006-09-30 Thiago Macieira <>
* add DBUS_BINDIR as a #define to C source code.
* tools/dbus-launch.c
* tools/dbus-launch.h
* tools/dbus-launch-x11.c:
* tools/dbus-launch.1: Add the --autolaunch option to
dbus-launch, which makes it scan for an existing session
started with --autolaunch. With that option, it also creates
an X11 window and saves the bus address and PID to it.
* dbus/dbus-sysdeps.h:
* dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
a function that runs "dbus-launch --autolaunch" to retrieve
the running D-Bus session address (or start one if none was running)
* dbus/dbus-transport.c: Add the handler for the "autolaunch:"
address protocol, which tries to get the running session from
* dbus/dbus-bus.c:
* dbus/dbus-internals.h: Make "autolaunch:" be the default
D-Bus session bus address.
* dbus/dbus-connection.c: Fix horrible typo in error message.
2006-09-18 John (J5) Palmieri <>
* tools/ use @EXPANDED_DATADIR@ instead of @DATADIRNAME@
2006-09-17 Havoc Pennington <>
* dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
fix so that if unix_user_function is set on windows, we still
do the default check that the auth identity matches the bus identity
2006-09-16 Havoc Pennington <>
* dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
to _dbus_transport_open_platform_specific,
and _dbus_transport_open_debug_pipe
* dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
2006-09-16 Havoc Pennington <>
Attempt auditing public API to remove all cases where a Unix
function returns weird emulated goo to Windows. This probably
breaks the bus daemon on Windows, to fix it again we may
need to stop processing unix-specific config options on Windows,
and may need to add Windows-specific public API or config options.
* (LT_CURRENT, LT_AGE): increment current and age,
to reflect added interfaces; should not break soname.
* dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
not invoke unix user function on Windows. Kind of a hacky fix, but
we don't want a "unix uid" leaking out on Windows.
* dbus/dbus-connection.c (dbus_connection_get_socket): add new API
to get the socket fd on Windows or UNIX
(dbus_connection_get_unix_fd): make this always fail on Windows
2006-09-16 Havoc Pennington <>
* dbus/dbus-server.c (dbus_server_listen): change how this works
to be able to delegate to a set of handlers that can succeed,
fail, or choose not to handle. Allows us to have
* dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
factor out the tcp socket stuff to be used on windows, leaving
unix domain socket only in dbus-socket-unix.c
* dbus/dbus-transport-socket.c
(_dbus_transport_new_for_tcp_socket): factor out the tcp socket
stuff to be used on windows, leaving unix domain socket only
in dbus-transport-unix.c
* dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
temporary hack to be sure this fails on windows
(dbus_connection_get_unix_process_id): ditto
2006-09-16 Havoc Pennington <>
* dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket)
(_dbus_open_unix_socket, _dbus_open_socket): change API for
_dbus_open_socket so the domain/type/protocol from system headers
are not required. This is kind of pointless though unless we move
part of _dbus_connect_tcp_socket into sysdeps.c instead of
sysdeps-unix.c, which would mean adding a wrapper around
Also, add DBusError to the socket-opening functions so they
don't require use of errno.
2006-09-16 Havoc Pennington <>
* dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
* dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter
Kümmel bug #8249 to make the sysdeps.h read/write/open/close
functions specifically for sockets only, and move generic
read/write/open/close into unix-specific code.
2006-09-14 Havoc Pennington <>
* dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
complaint about accessing revents when poll returns 0, from Julian Seward.
2006-09-14 John (J5) Palmieri <>
* Released 1.0 RC 1 (0.93)
2006-09-14 John (J5) Palmieri <>
* dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
use _dbus_close instead of close
2006-09-14 John (J5) Palmieri <>
* dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
credentials. Fixes "external" authentication under e.g. NetBSD
which does not support any other socket credentials mechanism.
(Patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
2006-09-14 John (J5) Palmieri <>
* dbus/dbus-threads.c: Allow recursive mutex's to be passed into
dbus_threads_init and be used by the dbus mutex functions to
avoid deadlocks.
* doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
2006-09-13 John (J5) Palmieri <>
* dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
use threadsafe readdir_r instead of readdir
2006-09-13 John (J5) Palmieri <>
* dbus-threads.c (dbus_threads_init_default): New method for
initializing the internal thread implementation (Patch from
Alexander Larsson <alexl at redhat dot com>)
2006-09-11 John (J5) Palmieri <>
* remove a bunch of todo items from the 1.0 list
2006-09-11 John (J5) Palmieri <>
* bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
key not found
2006-09-11 John (J5) Palmieri <>
* dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
complex debugging code
* dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
between the test suite ifdefs
(_dbus_verbose_bytes): return if verbosity is not enabled
2006-09-11 John (J5) Palmieri <>
* dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
remove DBusMark
2006-09-10 Havoc Pennington <>
patch mostly by Peter Kümmel, bug #8211
* dbus/dbus-sysdeps-unix.c: new file, which splits out
unix-specific stuff in dbus-sysdeps.c
* dbus/dbus-sysdeps.c: don't include any UNIX-only headers,
and move unix-specific stuff to dbus-sysdeps-unix.c
* check HAVE_ERRNO_H
2006-09-08 John (J5) Palmieri <>
* bus/test-main.c (main): Initialize threading during tests
* dbus/dbus-connection.c (_dbus_connection_new_for_transport):
Unlock connection on error
(generate_local_error_message): static method for generating
an error message when we don't have a message to reply to
(_dbus_connection_block_pending_call): Send a disconnect error
instead of just a timeout (NULL) when the bus gets disconnected
while blocking for a reply.
2006-09-08 John (J5) Palmieri <>
* dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
filters (Patch from Kimmo Hämäläinen
<kimmo dot hamalainen at nokia dot com>)
2006-09-07 John (J5) Palmieri <>
* dbus/dbus-connection-internal.h: Add prototype for
_dbus_connection_test_get_locks to remove warning
2006-09-07 John (J5) Palmieri <>
* dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
close child_err_report_pipe[WRITE_END] on exec (Patch from
Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
2006-09-07 John (J5) Palmieri <>
* Clean up close calls to use _dbus_close (Patch from
Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
2006-09-06 John (J5) Palmieri <>
* doc/TODO:
- Remove pending call locking todo item
- dbus_connection_open now holds hard ref. Remove todo item
- do proper locking on _dbus_bus_check_connection_and_unref
and handle DBUS_BUS_STARTER. Remove todo item
- Warn on closing of a shared connection. Remove todo item
* bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
dbus/dbus-connection.c: Use the dbus_connection_close_internal
so we don't get the warning when closing shared connections
* test/test-service.c, test/test-shell-service.c: Applications
don't close shared connections themselves so we unref instead of
* test/test-utils.c (test_connection_shutdown): Close the connection
* dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
_dbus_bus_check_connection_and_unref_unlocked since we only call this
method on a locked connection.
Make sure we call _dbus_connection_unref_unlocked instead of
dbus_connection_unref also.
Handle DBUS_BUS_STARTER correctly
* dbus/dbus-connection.c (connection_record_shared_unlocked):
Mark as shared and hard ref the connection
(connection_forget_shared_unlocked): Remove the hard ref from the
(_dbus_connection_close_internal_and_unlock): New internal function
which takes a locked connection and unlocks it after closing it
(_dbus_connection_close_internal): New internal function which acts
like the origonal dbus_connection_close method by grabbing a connection
lock and calling _dbus_connection_close_internal_and_unlock
(dbus_connection_close): Public close method, warns when the app
trys to close a shared connection
2006-09-06 John (J5) Palmieri <>
* bus/driver.c:
(bus_driver_generate_introspect_string): New method for populating
a DBusString with the introspect data
(bus_driver_handle_introspect): Move introspect generation code to
* bus/main.c:
(introspect): New function which prints out the intropect data and
(main): Add a --introspect switch
2006-09-06 John (J5) Palmieri <>
* doc/TODO: Removed dtd publishing item.
It seems the dtd has already been added at
2006-09-05 John (J5) Palmieri <>
* doc/TODO, various source files: Audited todo's and FIXME's and
prepended the ones we should be looking at with 1.0. Those
prepended with 1.0? need clerification or might not be needed
for 1.0
2006-09-05 John (J5) Palmieri <>
* dbus/dbus-pending-call.c: Add some checks so we don't crash on
NULL in the public API (Patch from Kimmo Hämäläinen
<kimmo dot hamalainen at nokia dot com>)
2006-09-05 John (J5) Palmieri <>
* Fix for OS-X compile time endian issues (patch from
Benjamin Reed <ranger at befunk dot com>)
2006-09-05 John (J5) Palmieri <>
* Check for no-common compiler flag (OS-X fix from
Benjamin Reed <ranger at befunk dot com>)
2006-09-01 John (J5) Palmieri <>
* tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
<fcrozat at mandriva dot com>)
2006-08-29 Havoc Pennington <>
* test/test-service.c (path_message_func): fix lack of return value
* dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
formatting, remove #ifdef, and fix docs. #ifdef doesn't make
any more sense than on anything else in this file.
(_dbus_get_tmpdir): add const to return value, and keep the
results of the various getenv around in a static variable.
2006-08-29 Havoc Pennington <>
* dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
2006-08-25 John (J5) Palmieri <>
* test/ change find to use syntax that works with non
gnu versions of find
2006-08-25 John (J5) Palmieri <>
* dbus/dbus-transport.c: fix invalid deref when checking if
a vtable method exists (Patch from Christian Ehrlicher
<ch dot ehrlicher at gmx dot de>)
2006-08-25 John (J5) Palmieri <>
*, dbus/, test/name-test/,
test/name-test/ Fixed some issues with getting get dbus
to build with builddir != srcdir (Taken from a patch by Bernard Leak
<bernard at brenda-arkle dot demon dot co dot uk>)
2006-08-25 John (J5) Palmieri <>
default case
2006-08-25 John (J5) Palmieri <>
*, bus/ Generalize kqueue support so that
it works on any system providing this interface, not only FreeBSD.
For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
2006-08-20 Havoc Pennington <>
* doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
the docs
2006-08-18 John (J5) Palmieri <>
* Released 0.92
2006-08-18 John (J5) Palmieri <>
* dbus/dbus-threads.c (dbus_threads_init): change the documentation
to reflect the init late change
* bus/bus.c (bus_context_new): Check user before we fork so we can
print out an error message a user will be able to see
2006-08-18 John (J5) Palmieri <>
Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
* dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
Add two more global locks for use on windows platforms. These are
unused on non-windows platforms but are not ifdefed out to avoid
potential bugs (i.e. the few bytes lost does not warrent the extra
maintanence and complexity that having seperate sets of locks would
2006-08-18 John (J5) Palmieri <>
* bus/services.c (bus_registry_acquire_service): Return an error
when an application tries to register the org.freedesktop.DBus Bus Name
* bus/services.c (bus_registry_release_service): Return an error
when an application tries to release the org.freedesktop.DBus Bus Name
2006-08-17 Alp Toker <>
* doc/dbus-specification.xml: Fix some minor typos.
2006-08-17 John (J5) Palmieri <>
* use $with_init_scripts instead of $operating_system
to determine where to store the pid since the init scripts manipulate
the pid file (patch from Marcelo Ricardo Leitner
<marcelo dot leitner at terra dot com dot br>.
2006-08-16 John (J5) Palmieri <>
* dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
static DBusList *uninitialized_condvar_list to support new late
initialization threading model. In this model threads can be initialized
even after the D-Bus API has been used but still needs to be initialized
before the second thread has been started. Mutexes and condvar addresses
are stored in the two static lists and are replaced with actuall locks
when threads are initalized.
(_dbus_mutex_new_at_location): New method for creating a mutex and placing
the location into the static list
(_dbus_mutex_free_at_location): New method for removing a mutex location
from the static list and freeing the mutex
(_dbus_condvar_new_at_location): New method for creating a conditional
variable and placing the location into the static list
(_dbus_condvar_free_at_location): New method for removing a conditional
variable location from the static list and freeing the conditional variable
(init_uninitialized_locks): Atomic method which goes through the static
lists of mutex and condvar location and updates them with actuall locks
(init_global_locks): changed to init_locks
* dbus/dbus-connection.c:
(_dbus_connection_test_get_locks): New method for tests to check connections
(_dbus_connection_new_for_transport): Use the new at_location mutex and
condvar API
(dbus_connection_allocate_data_slot): Pass in the global lock address
to _dbus_data_slot_allocator_alloc
* dbus/dbus-dataslot.c:
(_dbus_data_slot_allocator_alloc): Use the address of the mutex
instead of the mutex itself
* dbus/dbus-message.c:
(dbus_message_allocate_data_slot): Pass in the global lock address
to _dbus_data_slot_allocator_alloc
* dbus/dbus-pending-call.c:
(dbus_pending_call_allocate_data_slot): Pass in the global lock address
to _dbus_data_slot_allocator_alloc
* dbus/dbus-server.c:
(_dbus_server_init_base): Use the new at_location mutex API
(dbus_server_allocate_data_slot): Pass in the global lock address
to _dbus_data_slot_allocator_alloc
* test/name-test/test-threads-init.c: New test case for late thread
2006-08-14 John (J5) Palmieri <>
* dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
causes compile problems when asserts are turned off
Keeping _dbus_warn for printing out the message so even if
asserts are turned off the user gets the messages that something is
2006-08-14 John (J5) Palmieri <>
Patches by Kjartan Maraas <kmaraas at gnome dot org>
* bus/services.c (bus_service_list_queued_owners):
Add a pointer cast to fix compiler warning
* dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
return a NULL instead of FALSE since the return type
is not expecting a boolean
* dbus/dbus-marshal-basic.c (_dbus_marshal_test):
Remove unused variable
* dbus/dbus-marshal-recursive-util.c (node_new):
return a NULL instead of FALSE since the return type
is not expecting a boolean
* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
because we are expecting a pointer not a boolean
* dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
add void as the parameter so some compilers
don't complain
* dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
because we are expecting a pointer not a boolean
* test/shell-test.c (test_command_line):
cast the second argument to _dbus_list_append to avoid compiler
* test/test-names.c (main): remove unused variable
* test/test-service.c (check_hello_from_self_reply):
Initialize echo_message and echo_reply to NULL
* test/test-shell-service.c (handle_echo):
Remove unused variable and cast the third parameter passed to
dbus_connection_get_object_path_data to avoid compiler warrnings
* test/name-test/test-names.c (clear_message_queue):
Remove unused function
* test/name-test/test-pending-call-dispatch.c:
Fix format string in printf
2006-08-14 John (J5) Palmieri <>
* dbus/dbus-bus.c:
* test/name-test/test-names.c:
Remove test method dbus_bus_connection_get_unique_name because
we already have public method dbus_bus_get_unique_name that
does the exact same thing
2006-08-10 John (J5) Palmieri <>
* dbus/dbus-signature.c:
fix typos in Julio's previous patch which cause make check to fail
2006-08-10 John (J5) Palmieri <>
* dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
In any case it was wrong since this is a test checking to see if
address parsing is correct. There was no need to get the true
tmp directory.
2006-08-10 John (J5) Palmieri <>
* dbus/dbus-macros.h: Revert the addition of stddef.h
as we should not be adding it to library headers
2006-08-10 John (J5) Palmieri <>
* dbus/dbus-signature.c:
Fix the unit tests so that they work if assertions are not enabled.
(patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
2006-08-10 John (J5) Palmieri <>
* tools/
* test/name-test/
Remove bashisms (patch from Julio M. Merino Vidal
<jmmv at NetBSD dot org>)
2006-08-10 John (J5) Palmieri <>
* add a version (>= 2.6.0) check for libxml2
2006-08-10 John (J5) Palmieri <>
* make sure the compiler supports -Wfloat-equal
* bus/dir-watch-dnotify.c: move functional code after
variable declerations (C99 fix) (patches from Jens Granseuer
<jensgr at gmx dot net>
2006-08-10 John (J5) Palmieri <>
* dbus/dbus-macros.h:
add #include <stddef.h> so that Sun compilers don't complain about
the defining NULL
2006-08-10 John (J5) Palmieri <>
* dbus/dbus-sysdeps.c:
* dbus/dbus-address.c:
* bus/activation.c:
* test/shell-test.c:
don't hardcode tmp directory (patch from Dave Meikle
<dmk at davemeikle dot co dot uk>)
2006-08-09 John (J5) Palmieri <>
* dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
Change an assert to a detailed warning and abort.
When allocator->lock != mutex it indicates that the user has failed
to initalize threads before using the D-Bus library. This warning
helps the user identify the issue and fix their app.
2006-08-08 John (J5) Palmieri <>
These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
with cleanups of bugs found from Coverity reports:
* dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
close the file on error to avoid a leak
* bus/expirelist.c (bus_expire_list_test):
Check for NULL on dbus_new0
* bus/activation.c (update_directory):
remove dead code
* bus/config-parser.c (merge_service_context_hash, start_selinux_child):
Fix some leaks
* bus/bus.c (process_config_every_time):
Fixed a leak
* bus/desktop-file.c (parse_key_value):
Fixed leak
* bus/selinux.c (bus_selinux_id_table_insert):
Fixed leak
2006-08-08 John (J5) Palmieri <>
* dbus/dbus-object-tree.c (_dbus_object_subtree_new):
remove dead code
2006-08-08 John (J5) Palmieri <>
* tools/ use #!/bin/sh instead of
2006-08-08 John (J5) Palmieri <>
* fix the INPUT line so we can generate docs
when sourcedir != builddir (patch from Cygwin Ports maintainer
<yselkowitz at users dot sourceforge dot net>
2006-08-08 John (J5) Palmieri <>
* dbus/dbus-sysdeps.h:
* dbus/dbus-sysdeps.c:
* dbus/dbus-string.c:
s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
GLib's function which does the same thing
* bus/
* bus/dir-watch-default.c:
* bus/dir-watch-dnotify.c:
* bus/dir-watch-kqueue.c:
Add kqueue directory watching for freebsd and split the directory
watching code into seperate files per method/arch
(patches from Timothy Redaelli <drizzt at gufi dotorg>)
2006-08-08 John (J5) Palmieri <>
* tools/
* tools/dbus-launch.c:
* bus/
allow --with-dbus-daemondir switch to be used to make the
daemon install to a seperate bindir like /usr/libexec
(patch from Brian Cameron <brian dot cameron at sun dot com)
2006-08-08 John (J5) Palmieri <>
* bus/ (install-data-hook): removed the slash after
$(DESTDIR) so we don't get the double slash which does not work
in windows (patch from Andras Porjesz
<andras dot porjesz at siemens dot com>)
2006-08-08 John (J5) Palmieri <>
* dbus/dbus-sysdeps.h:
* dbus/dbus-sysdeps.c:
add _dbus_printf_length (patch from Peter Kümmel
<syntheticpp at gmx dot net>)
2006-08-08 John (J5) Palmieri <>
* dbus/dbus-internals.c: unistd.h is not used
(_dbus_verbose_real): only enable verbose printing
if DBUS_VERBOSE environment var is set to '1'
(patch from Peter Kümmel <syntheticpp at gmx dot net>)
2006-08-08 John (J5) Palmieri <>
* add a GCC flag check for -Wdeclaration-after-statement
so we still compile on older gcc (patch from Frederic Peters
<fpeters at 0d dot be>
2006-08-04 Havoc Pennington <>
* add -Wdeclaration-after-statement
* dbus/dbus-connection.c: change all the pending call stuff to
reflect the fact that pending call operations use the connection
* dbus/dbus-pending-call.c: add locking here
* dbus/dbus-errors.c (struct DBusRealError): don't make the name
field const consistent with how message field is done
2006-08-03 John (J5) Palmieri <>
* s/D-BUS/D-Bus/g
2006-08-03 John (J5) Palmieri <>
* dbus/dbus-object-tree.c: Patch by Benjamin Otte
<in7y118 at public.uni-hamburg dot de> - fix invalid
read/write reported by valgrind
2006-07-24 John (J5) Palmieri <>
* Released 0.91
2006-07-22 John (J5) Palmieri <>
* dbus/dbus-connection.c:
Make sure we set timeout_added on pending calls to FALSE when
we remove the timeout from the connection
2006-07-21 John (J5) Palmieri <>
* Removed some extra bindings stuff lingering around (thanks timo)
* dbus-pendingcall.c (_dbus_pending_call_new):
s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
when we tried to take a lock on an already locked connection
2006-07-17 John (J5) Palmieri <>
* Released 0.90
2006-07-17 Havoc Pennington <>
* dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
ints, reported by Owen Taylor
2006-07-17 John (J5) Palmieri <>
* doc/TODO:
* dbus/dbus-bus.c:
* dbus-errors.c:
* dbus/dbus-marshal-validate.c:
Removed TODO items which were fixed or are no longer relevent
2006-07-17 John (J5) Palmieri <>
Remove stray files from the stripped bindings
2006-07-16 Havoc Pennington <>
* dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
Improve the error message on reply timeout
2006-07-14 John (J5) Palmieri <>
* Remove all bindings
2006-07-13 John (J5) Palmieri <>
* dbus-connection.c (dbus_connection_send_with_reply): return TRUE
and set pending_reply out arg to NULL is connection is disconnected
(connection_timeout_and_complete_all_pending_calls_unlocked): New
static method for cleaning up pending calls on disconnect
(_dbus_connection_get_dispatch_status_unlocked): If we have pending
calls queued timeouts on disconnect
* dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
2006-07-13 Carlos Garcia Campos <>
* bus/activation.[ch] (bus_activation_list_services): new function to
get the list of services that can be activated
* bus/dispatch.c: test coverage for the new bus method
* bus/driver.c: new bus method ListActivatableNames to get the list of
services that can be activated
* doc/dbus-specification.xml: ListActivatableNames method documentation
2006-07-12 John (J5) Palmieri <>
* dbus/ add dbus-pending-call-internal.h to the list of
source files
2006-07-12 John (J5) Palmieri <>
* dbus/dbus-message-factory.c:
Fix index into an array (patch by Peter Kümmel <syntheticpp at>)
2006-07-12 John (J5) Palmieri <>
* dbus/dbus-connection-internal.h:
* dbus/dbus-connection.c:
* file dbus/dbus-pending-call.c:
* dbus/dbus-pending-call.h:
Make DBusPendingCall an opaque type even to D-Bus internals
2006-07-07 John (J5) Palmieri <>
* dbus/dbus-connection.h: remove connection_disconnect and replace with
* dbus/dbus-connection.c: include dbus-bus.h
(_dbus_connection_read_write_dispatch): make static
2006-07-07 John (J5) Palmieri <>
* dbus/dbus-connection.c (dbus_connection_close): removed deprecated
(dbus_connection_dispatch): On disconnect unref any shared connections
* dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
for cleaning up shared connections on disconnect
(internal_bus_get): get a hard refrence to shared connections when
they are created
* doc/TODO: Remove items which are no longer relevent or have been fixed
Split 1.0 todo items with a 0.90 freeze todo list
2006-06-14 Ross Burton <>
* glib/dbus-gobject.c:
Free a leaking GArray (surely not!) in dbus_g_method_return.
2006-06-14 Ross Burton <>
* tools/
* tools/dbus-monitor.c:
Don't use the GLib bindings in dbus-monitor (patch from Ralf
2006-06-14 Ross Burton <>
* tools/dbus-print-message.c:
Also print the object path when outputting signals or method calls.
2006-06-13 Thiago Macieira <>
* qt/src/ install the qdbus.h header.
This allows people to actually use the installed code.
2006-06-12 Ross Burton <>
* glib/dbus-gproxy.c:
Don't leak a GArray when firing signals (thank Rob Taylor for review).
2006-06-12 Thiago Macieira <>
* Released 0.62
2006-06-12 Thiago Macieira <>
* dbus/ Remove spurious semi-colons that
break pedantic builds. Closes bug 6043 (patch approved by
Havoc back in February).
2006-06-12 Thiago Macieira <>
* qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
that took a QDBusMessage parameter.
* qt/src/qdbusbus.h: Add a default flag for RequestName.
* qt/tools/dbus.cpp: Don't use automatic call because we might
be calling an async method: request a reply.
2006-06-11 Thiago Macieira <>
* test/qt/*: Update the testcases, including testing the new
functionality of sending null QByteArray and QString over the
bus. Add new headertest test and restore the old
qdbusxmlparser test.
2006-06-11 Thiago Macieira <>
* qt/tools/dbuscpp2xml.cpp: Compile on Windows.
* qt/tools/dbusidl2cpp.cpp: Add missing newline.
* qt/examples/
* qt/examples/chat.h: Use UI-generated files with the ui_*.h
* qt/src/qdbusmarshall.cpp: Allow sending of QString() and
QByteArray() (nulls) over the bus.
* qt/src/qdbusabstractinterface.cpp: Use the correct variable,
the one that has the signature suffix stripped.
* qt/src/qdbusreply.h: Make some methods const.
2006-06-09 Thiago Macieira <>
Patch from Timo Hoenig <>.
* qt/dbus/ New file. Fix "make dist", add all headers
required during build to EXTRA_DIST.
* qt/src/ Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
* qt/ Fix "make dist", add 'dbus' to DIST_SUBDIRS.
* Fix "make dist", take care that the Makefile for
qt/dbus is being generated.
2006-06-07 John (J5) Palmieri <>
* bus/bus.c: Fix eavesdropping on method calls
2006-06-07 John (J5) Palmieri <>
* dbus/dbus-userdb-util.c:
Add Solaris console owner patch from Artem Kachitchkine
2006-06-07 Thiago Macieira <>
* qt/
* qt/src/ Fix the EXTRA_DIST after the
reorganisation. Thanks to Timo Hoenig for pointing this out.
2006-06-06 Robert McQueen <>
* glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
call to dbus_g_type_get_struct.
2006-06-06 Robert McQueen <>
* glib/dbus-gvalue-utils.c: Fix the failing test where static string
pointers were put into a GPtrArray-based specialised collection, and
then freed along with the array. GValues which you add into
collections or maps which have the NOCOPY flag set are assumed to not
belong to the caller, so rather than the existing pointer-stealing
semantics, they are copied instead. Given that the main consumers of
this abstraction are the bindings themselves, I don't think this is
too bad, but others should watch their choice of take vs set_static.
2006-06-06 Robert McQueen <>
* glib/dbus-gvalue-utils.c: Spotted a warning about the return value
of g_slist_prepend not being used. Fixed copying of slist-based
specialised collections, then wrote a test case and found that it was
all broken. Went on to fix iterating and appending too. Good thing
nobody uses this code yet.
2006-06-06 Robert McQueen <>
* glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
the iterators use gvalue_take_ptrarray_value (the GValues themselves
are discarded without unsetting, so it makes no difference whether
we take or set_static). Remove cases for G_TYPE_POINTER because
there really is nothing useful we can do with them in our
specialised types - we *need* boxed copy/free functions at the very
2006-06-05 Thiago Macieira <>
* qt/dbus: Add directory. I had forgotten to add this
yesterday after the move...
* qt/examples/
* qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
* qt/tools/
* qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
Added feature to get and set properties.
Added validation of service, object path and interface names.
* qt/tools/dbusidl2cpp.cpp: Two new features:
1) Allow specifying both the header and the source file names,
by separating them with a colon.
2) Don't write an interface output if the -p switch wasn't
given, but the -a was.
* qt/src/*: Fix usage of Iterators and ConstIterators.
Fix shadowing of variables by other variables (-Wshadow).
Fix keyword-cleanliness in headers.
Fix ASCII-cast (QLatin1String, QLatin1Char).
Fix validation of member names.
Add extra checking of introspection data during XML parsing.
Various bug fixes.
2006-06-04 Thiago Macieira <>
* dbus/
* dbus/qdbus.h: Remove unnecessary file. This is mirrored into
qt/dbus/qdbus.h now.
2006-06-04 Thiago Macieira <>
* Make --disable-qt actually do
something. Patch inspired by Zack Rusin.
2006-06-04 Thiago Macieira <>
* qt/: Update to Subversion r548032.
This includes a big reorganisation of the files inside the
2006-05-30 Sjoerd Simons <>
* dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
"Failed to connect to socket <host>:<port> <error>" instead of
"Failed to connect to socket <host>: <error>:<port>"
* dbus/dbus-transport-unix.c: Fix crash when no host option is given
for a tcp transport.
2006-05-29 Thiago Macieira <>
* qt/*: Update the QtDBus bindings up to revision 546310 in
This adds the dbuscpp2xml tool, that parses a C++ header and
outputs a D-BUS Introspection XML.
2006-05-21 Havoc Pennington <>
* glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
is not NULL when it shouldn't be. Also a couple of possible fixes
for #4637 though I don't understand why the bug happens, to be
honest... also the object constructor has an assert name != NULL
and the name is only currently NULL for peer-to-peer proxies that
I don't think anyone uses? So it should be asserting.
Anyway, for now at least see if we get an earlier assertion failure.
* glib/dbus-gvalue-utils.c: Put in a couple of assertions for
apparently broken code to be sure the tests fail and someone
will fix them...
2006-05-07 Thiago Macieira <>
* qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
and arrays when they had a single element: has_next returns
false, even before you read the element. So, instead, check
the array length.
2006-05-06 Thiago Macieira <>
* qt/qdbusmessage.cpp:
* qt/qdbustypehelper_p.h:
* qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
the list is a const-reference
2006-05-03 John (J5) Palmieri <>
* Adding old doc patch that never got applied
* dbus/bus.c (dbus_bus_add_match): Add documentation
* doc/dbus-specification.xml: Add documentation for the match rules
and the AddMatch and RemoveMatch methods
2006-05-02 Thiago Macieira <>
* qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
call (r535506)
* qt/dbusidl2cpp.cpp:
* qt/qdbusabstractadaptor.cpp:
* qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
sibling of the QDBusAbstractAdaptor objects instead of the
parent. (r535848)
* qt/dbusidl2cpp.cpp:
* qt/qdbusabstractinterface.cpp:
* qt/qdbusabstractinterface.h:
* qt/qdbusabstractinterface_p.h:
* qt/qdbusinterface.cpp: Make properties in interfaces
actually work. The code that was generated would not compile,
due to moc calls to functions that did not exist. They now
shall. (r536571)
2006-04-30 Thiago Macieira <>
* Add a pkg-config file for libdbus-qt4-1.
Thanks to Brad Hards for providing the patch
2006-04-29 Thiago Macieira <>
* qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
call. (r535506)
2006-04-29 Thiago Macieira <>
* qt/examples/dbus.cpp: Enhance error messages and use
2006-04-29 Thiago Macieira <>
* qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
and disable the copy operators. (r533772, r534746)
* qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
* qt/qdbusabstractinterface.cpp:
* qt/qdbusabstractinterface.h: Change the default call mode to
not use the event loop. Add convenience call() methods that
take a CallMode parameter. (r534042)
* qt/qdbusconnection.h: Change the default call mode to not
use the event loop. (r534042)
* qt/qdbusinterface.cpp:
* qt/qdbusinterface.h: Add a method to tell us if the
interface is valid (since we don't return a null pointer
anymore) (r534099)
* qt/qdbusinterface_p.h: Don't crash if metaObject is 0
* qt/qdbusinternalfilters.cpp: Decouple the introspection
function in two so taht we get the chance to introspect
without having a QDBusMessage (r534102)
* qt/qdbusbus.h:
* qt/qdbusconnection.cpp:
* qt/qdbusconnection_p.h:
* qt/qdbusintegrator.cpp: Keep a list of our own names to
avoid a round-trip to the server when attempting to introspect
one of our own objects. Also make sure the filter functions
match the empty interface as well. (r534108)
Don't keep the connection names. Instead, trust the unique
connection name (r534111)
Remove event loop usage (r534112)
2006-04-29 Thiago Macieira <>
* qt/qdbusintegrator.cpp: Fix assertion failure spotted by
Brad Hards.
2006-04-28 Robert McQueen <>
* glib/dbus-gproxy.c: Fix properties so that they can be given in
any order, making it easier for people who inherit from this
2006-04-28 Robert McQueen <>
* glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
of memory from within pointer arrays and lists. Fixes bug #6300.
2006-04-28 Robert McQueen <>
* glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
generating struct signatures. Fixes bug #6083.
2006-04-28 Robert McQueen <>
* qt/ Tweak CLEANFILES from qdbusconnection.moc
to qdbusconnection_p.moc.
2006-04-24 John (J5) Palmieri <>
* README, INSTALL: Doc fixes
Patch from Brad Hards <bradh at>
2006-04-23 Thiago Macieira <>
* qt/examples/dbus.cpp: Use the new merged-interface mode for
the dynamic meta object. No need to guess which interface to
2006-04-23 Thiago Macieira <>
* qt/qdbusconnection_p.h:
* qt/qdbusmetaobject.cpp:
* qt/qdbusmetaobject_p.h:
* qt/qdbusintegrator.cpp: Use the new merged-interface mode
for the dynamic meta object. No need to guess which
interface to call.
* qt/qdbusabstractinterface_p.h:
* qt/qdbusconnection.cpp:
* qt/qdbusintegrator.cpp:
* qt/qdbusinterface.cpp:
* qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
Add a QDBusRef that looks and behaves like DCOPRef.
2006-04-23 Thiago Macieira <>
* dbus/dbus-connection.c: Interfaces are optional in method
calls, so don't give up if the interface parameter is NULL.
Patch reviewed by Havoc Pennington.
2006-04-23 Thiago Macieira <>
* qt/qdbusreply.h: Add default constructor and operator=
* qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
in public headers (r532952)
* qt/qdbusabstractinterface.cpp:
* qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
make it the default (r532951)
2006-04-19 John (J5) Palmieri <>
* dbus/dbus-connection.c: Fix asserts
Patch from Tim Moloney <t.moloney at>
2006-04-19 John (J5) Palmieri <>
* mono/Connection.cs, mono/Message.cs: Check Target type
Patch from Aaron Bockover (abockover at
2006-04-13 Thiago Macieira <>
* INSTALL: fine-tune the requirements for the Qt4 binding.
2006-04-16 Daniel P. Berrange <>
* tools/dbus-print-message.c: Added support for printing of all
remaining data types. Fixed logic for indentation of compound
data types.
2006-04-15 Daniel P. Berrange <>
* INSTALL: fill out content of file providing DBus specific
build installations, followed by generic Auto* INSTALL file
2006-04-13 Thiago Macieira <>
* qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
Patch by Stefan Eilers. (r529537)
2006-04-13 Thiago Macieira <>
* qt/qdbusinternalfilters.cpp: Don't show the parent's
contents (r528208)
2006-04-10 Thiago Macieira <>
* qt/ fix the dependency for
qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
not in qdbusconnection.cpp.
Thanks to Jakub Stachowski <> for
spotting this.
2006-04-10 Thiago Macieira <>
* qt/examples/listnames.cpp:
* qt/examples/ Three ways to list the names on the
2006-04-10 Thiago Macieira <>
* test/qt/tst_hal.cpp: Remove the waiting, since it's not
needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2006-04-10 Thiago Macieira <>
Merge from Subversion:
* qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
something that exists (r526315)
* qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
slots/signals (r526316)
* qt/qdbusinternalfilters.cpp: Fix the setProperty call and
also return an unknown-method error if the parameters don't
match for org.freedesktop.DBus.Properties. (r526842)
* qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
* qt/qdbusintegrator.cpp: Restore the proper order of
delivery: don't make method returns be delivered on priority
2006-03-28 Thiago Macieira <>
* qt/ add qt/examples
* qt/examples: Add QtDBus example programs:
- hello: Hello, World
- ping: Simple method-calling program
- pong: Simple object-exporting program (not using adaptors)
- complexping: Interactive method-calling program
(also gets and sets properties).
- complexpong: Sample program exporting methods, signals and
properties, using adaptors.
- dbus: Simple implementation of a generic method-calling
program, similar to 'dbus-send', but with semantics
similar to 'dcop'.
- chat: Simplistic chat program, implemented using signals
and the system bus. Looks like IRC.
2006-03-28 Thiago Macieira <>
* Detect QtGui (necessary for one of the
example programs). Note: this increases the minimum required
version of Qt to 4.1.3.
2006-03-28 Thiago Macieira <>
* test/qt/*: Sync with KDE Subversion revision 523647.
Update the testcases to the new API. Remove testcases for
classes that are no longer public or have been removed.
2006-03-28 Thiago Macieira <>
* qt/*:
* dbus/qdbus.h: Sync with KDE Subversion revision
523647. Hopefully, this will be the last of the
source-incompatible changes. Documentation has been improved;
support for QList<basic-types> has been added; QDBusObject is
gone; QDBus(Abstract)Interface is now a QObject with
auto-generated meta-object; QDBusIntrospection is marked
private, since QMetaObject can be used now; lots of bugfixes.
2006-03-16 John (J5) Palmieri <>
Patch from Milosz Derezynski <internalerror at>
Output the service directory in the configure summary
Add session_bus_services_dir
2006-03-10 Ross Burton <>
* tools/dbus-print-message.c:
Add support for object paths and signatures.
2006-03-06 Sjoerd Simons <>
* bus/bus.c: (bus_context_reload_config): Flush the user database cache on
config reload.
* bus/ Also note that SIGHUP flushes the user/group
information caches
* dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
* dbus/dbus-hash.h: Add function to remove all entries from a hash table
* dbus/dbus-userdb.c: (_dbus_user_database_flush):
* dbus/dbus-userdb.h: Add function to flush all user/group information
2006-03-06 Thiago Macieira <>
* qt/dbusidl2cpp.cpp:
* qt/ add the dbusidl2cpp tool, the replacement
for dcopidl2cpp, found in the KDE installations (or the more
modern kalyptus): generate Qt4 C++ code for the input XML
introspection. Currently no IDL parsing.
2006-03-06 Thiago Macieira <>
* test/qt/*: Update the self-tests.
2006-03-06 Thiago Macieira <>
* qt/*:
* dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
represents the first feature-complete version of the Qt4
bindings since I took ove maintainership.
2006-03-06 Thiago Macieira <>
* qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
dir. This is C++, so we can't use the DBus ones.
2006-03-02 John (J5) Palmieri <>
* python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
(Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2006-03-02 John (J5) Palmieri <>
* dbus/dbus-connection.c:
Check to see if our data has already been read off the connection
by another blocking pending call before we block in poll.
Code taken from _dbus_connection_block_pending_call - checks for
an already read reply and updates the dispatch if there is one.
* test/name-test/test-pending-call-dispatch.c:
New test for making sure we don't get stuck polling a
dbus connection which has no data on the socket when
blocking out of order on two or more pending calls.
2006-02-28 Thiago Macieira <>
* qt/ Patch by Sjoerd Simons. More .moc issues:
make/automake don't detect that we're talking about the same
.lo file if I specify the full path to the source files.
2006-02-26 Havoc Pennington <>
* bus/ improve the language in a couple spots I noticed
* dbus/dbus-bus.c (internal_bus_get): in the error message if the
session bus variable is unset, suggest "man dbus-launch" and "man
dbus-daemon" to figure out how to fix the problem
2006-02-25 Havoc Pennington <>
* glib/dbus-glib-tool.c (usage): fix up the usage message, someone
should make this thing use the new glib options parser
2006-02-25 Thiago Macieira <>
* qt/ Patch by Sjoerd Simons. Fix the path to the
.lo files taking moc sources.
2006-02-25 Havoc Pennington <>
* dbus/dbus.h, dbus/ add dbus-signature.h to dbus.h
and install it as a public header
2006-02-24 John (J5) Palmieri <>
* Released 0.61
2006-02-24 John (J5) Palmieri <>
* Fix the callchain
2006-02-24 John (J5) Palmieri <>
* patch from Sjoerd Simons <sjoerd at>:
* dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
* dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
call _dbus_group_info_free_allocated which causes infinite loop,
correctly call _dbus_group_info_free
2006-02-20 Thiago Macieira <>
* qt/qdbusinterface_p.h:
* qt/qdbusinterface.cpp: Use the standard
org.freedesktop.DBus.Method.NoReply annotation for the "async"
calls instead of creating one for us.
* qt/qdbusconnection_p.h:
* qt/qdbusintegrator.cpp: Remove debugging code.
* qt/qdbusintegrator.cpp:
* qt/qdbusmessage.cpp:
* qt/qdbusmessage_p.h:
* qt/qdbusmessage.h: Change the behaviour of automatic
reply-sending: now a reply is always sent, unless the caller
didn't request one or if the user slot has already sent one.
2006-02-16 Robert McQueen <>
* Patch from Debian packages by Sjoerd Simons
<> to add --with-qt-moc and --with-qt3-moc
arguments so it's possible to build both bindings in the
same tree.
* qt/ Fix truncated value so that make dist works.
2006-02-16 Robert McQueen <>
* acinclude.m4, Patch from Brad Hards
<> to avoid warnings from autoconf 1.9 by
improving quoting, re-ordering a few checks, and a few other
aesthetic tidy-ups.
2006-02-16 Robert McQueen <>
* dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
Patch from Rob Taylor <> to correct a bogus
assertion that the next element to read from the iter is fixed in
size. This is not the case when you are at the end of the iter,
because the next element type is INVALID.
* dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
a bogus assert which means that you may not initialise a 0-length
string unless you provide a non-NULL pointer. This prevented
you from marshalling messages containing zero-length arrays in
some cases.
* glib/dbus-gvalue.c (demarshal_collection_array): Another patch
from Rob to correct bogus asserts when trying to demarshal an
array and get_fixed_array got you 0 elements. Append nothing to
the GArray in this case.
* test/glib/test-dbus-glib.c: Add a test case for round-tripping
an empty array via the glib bindings. Without all of the above
patches, this new test fails.
2006-02-16 Robert McQueen <>
* glib/dbus-gmain.c: Make the previous commit compile.
* python/, python/ Patch from Ole Andre
Ravnaas <> to allow you to
specify sender_keyword="foo", path_keyword="bar" when adding
a signal listener, so that you can bind to signals generically
but still do something useful in your callback.
* python/dbus_bindings.pyx: Demarshal the byte type as unsigned
chars so that they're not cast to chars and made negative. Thanks
to Jakub Stachowski for reporting this and testing the fix.
2006-02-15 John (J5) Palmieri <>
* dbus/dbus-glib.h:
* glib/dbus-gmain.h:
(dbus_g_connection_open): new method for openning
a connection to an arbitrary address in the glib bindings
* ChangeLog: checkin last entry which doesn't seem to be commited
2006-02-13 John (J5) Palmieri <>
* tools/dbus-launch.c: Fixed sh syntax output
2006-02-13 Robert McQueen <>
* glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
Patch from Rob Taylor <> to add a big
missing piece of the glib bindings jigsaw puzzle. This modifies
the existing specialised types to have N type parameters (rather
than the current 1 or 2 for arrays and dictionaries respectively).
You can then use this to get a glib type to represent any arbitrary
D-Bus struct type using dbus_g_type_get_struct. The only
implementation of these types is with GValueArrays as before,
but it's now possible to store these in arrays, emit them in
signals, etc.
2006-02-10 John (J5) Palmieri <>
* dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
deal with nested arrays (Bug #5823) Patch by Thiago Macieira
<thiago.macieira at>
2006-02-10 John (J5) Palmieri <>
* mono/doc/ Fix parallel make problem with mono-doc
(Bug #4213) Patch from Doug Goldstein <cardoe at>
2006-02-10 John (J5) Palmieri <>
* bus/connection.c (bus_connections_expect_reply): Make
pending reply limit not common to all connections (Bug #5416)
Patch from Kimmo Hämäläinen <kimmo.hamalainen at>
2006-02-10 John (J5) Palmieri <>
* tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2006-02-10 John (J5) Palmieri <>
* gcj/ point to correct jar command (Bug #4529)
patch from Doug Goldstein <cardoe at>
2006-02-09 Joe Shaw <>
* mono/Arguments.cs: Fix a magic number in the mono bindings
that doesn't work on 64 bit arches. Patch from Peter Johanson.
2006-01-27 Robert McQueen <>
* glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
when generating the client-side methods, instead of overloading
CSymbol which broke everything horribly. My apologies.
2006-01-27 Robert McQueen <>
* glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
by me and Rob Taylor to add a simple_free function to D-Bus map
and collection types, which allows those types which can be freed
with a GDestroyNotify (such as GHashTables and GArrays, but not
GPtrArrays) to be stored as the values in hashtables.
* test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
Patch by Rob Taylor to add nested dicts to the glib tests to check
the above code works, and appears not to leak when called repeatedly.
2006-01-27 Robert McQueen <>
* glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
to free a D-Bus allocated string with dbus_free () instead of
g_free ().
2006-01-27 Iain Holmes <>
* glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
method from being called multiple times.
2006-01-19 Robert McQueen <>
* glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
<> to add support for generating bindings
to arrays that are represented as GPtrArrays rather than GArrays (ie
size-variable things, such as strings, objects, structs, etc).
2006-01-05 Robert McQueen <>
* dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
<> to make it possible to inherit from
DBusGProxy, by splitting the DBusGProxy struct into a public part and
a private part, and moving the setting of the DBusGProxyManager into a
connection property, allowing proper GObject construction.
2006-01-05 Robert McQueen <>
* glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
<> to make dbus-binding-tool heed C symbol name
annotations when generating glib client bindings.
2005-12-19 John (J5) Palmieri <>
* dbus/dbus-shared.h: Call it shared constants instead of shared macros
* dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2005-12-19 John (J5) Palmieri <>
* dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2005-12-19 John (J5) Palmieri <>
* dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2005-12-19 Ross Burton <>
* doc/dbus-tutorial.xml:
Document the Glib client-side bindings, and list all possible annotations.
2005-12-19 John (J5) Palmieri <>
* dbus/bus.c (dbus_bus_release_name): Add documentation
2005-12-06 Robert McQueen <>
* python/ s/sucessful/successful/ so we're allocating to
and reading from the same variable. Oops.
2005-11-30 John (J5) Palmieri <>
* Released 0.60
2005-11-30 John (J5) Palmieri <>
* test/qt/ build from srcdir
* qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
Note - this code is wrong and needs to be fixed by the Qt binding
developers. The flags should be treated as bitfields and not enums.
* qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2005-11-30 John (J5) Palmieri <>
* dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
in production code
2005-11-30 John (J5) Palmieri <>
* dbus/dbus-connection.c (dbus_connection_read_write): Add new
method for getting messages off the bus in the absence of a
mainloop. This method is much like
dbus_connection_read_write_dispatch except it does not dispatch
the messages to a registered filter function. Instead it
allows a developer to process messages by directly popping
them off the bus.
2005-11-30 John (J5) Palmieri <>
* bus/desktop-file.c (parse_key_value): Ignore locales allowing
the parser to continue instead of returning error
(bus_desktop_file_load): Do not free parser data when
parse_section_start or parse_key_value fails because it was
already freed by parser_free (patch from Carlos Garcia Campos
<carlosgc at>)
2005-11-30 John (J5) Palmieri <>
* dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
test/test-segfault.c, test/test-utils.c,
test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
Various cleanup of dead code and compiler warnings (patch from
Kjartan Maraas <kmaraas at>)
2005-11-30 John (J5) Palmieri <>
* glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
(patch from Carlos Garnacho Parro <carlosg at>
2005-11-27 Robert McQueen <>
* python/dbus_bindings.pyx: Repair my previous commit which reverted
part of the preceding one. Oops. Merge patch by Johan Hedberg
<> to fix marshalling of 16-bit integer values
on big-endian platforms.
* test/python/ Add some 16-bit integers to the test
2005-11-27 Carlos Garcia Campos <>
* glib/dbus-gobject.c: Append a GValue instead of a basic type in
method return message for property getters
2005-11-27 Robert McQueen <>
* python/dbus_bindings.pyx: Fix a bug where doing a strict append
with type v of an instance of dbus.Variant(foo, type='x') caused
it to be boxed twice before sending over the bus.
* python/dbus_bindings.pyx, python/,
test/python/ Update the constants for the new
request_name flags, and update comments/test cases now that queueing
is the default action.
2005-11-22 John (J5) Palmieri <>
- Change version to 0.60 for impending release
- upped the sonames because of ABI and API breakage
2005-11-22 John (J5) Palmieri <>
* Add test/name-test/Makefile to the generated
Makefile list
* dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
(#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
not to queue an ower if it can't be the primary owner
* bus/bus.h: Add new internal BusOwner struct
* bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
to bus_registry_ensure and don't set the prohibit_replacement flag
since they are now set per BusOwner and not per name.
(bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
that returns the list of connections in a name's connection queue
* bus/services.c (struct BusService): remove prohibit_replacement field
(struct BusOwner): new struct for keeping track of queued connections
and their associated flags for the queue
(struct BusRegistry): add a BusOwner memory pool
(bus_registry_new): initialize the BusOwner memory pool
(bus_registry_unref): free the BusOwner memory pool
(_bus_service_find_owner_link): new internal method for
searching the queue for a specific connection
(bus_owner_set_flags): new method for adding setting the flags on a
bus owner
(bus_owner_new): new method that creates a BusOwner object from the
pool and sets its flags
(bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
(bus_registry_ensure): Add the flags parameter
(bus_registry_acquire_service): Switch from using raw connections to
using the BusOwner struct
Add new state machine for dealing with the new set of flags
(bus_registry_set_service_context_table, struct OwnershipCancelData,
cancel_ownership, free_ownership_cancel_data,
add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
restore_ownership, free_ownership_restore_data,
add_restore_ownership_to_transaction): Switch to using BusOwner
instead of raw connections
(bus_service_add_owner): Add flags parameter
Switch to using BusOwner instead of raw connections
Add state machine for dealing with the new set of flags
(bus_service_swap_owner): Swaps the first and second owners in the
queue. Used to make sure proper signals are sent when a service looses
or gains primary ownership. We never insert an owner at the top of the
queue. Instead we insert it in the second position and then swap.
(bus_service_remove_owner): Remove the owner from the queue sending
out the NameLost and NameOwnerChanged signals if the we were the
primary owner
(bus_service_get_primary_owners_connection): New method that extracts
the connection from the primary owner
(bus_service_get_primary_owner): Returns the BusOwner instead of the
(bus_service_get_allow_replacement): Changed from the old
bus_service_get_prohibit_replacement method. Checks the flags of the
primary owner and returns if it can be replaced or not
(bus_service_set_prohibit_replacement): removed
(bus_service_has_owner): returns TRUE if and owner with
the specified connection exists in the queue
* dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
method that only compiles if tests are enabled. Allows us to get the
unique name of a connection so we can check it against the queue when
doing regression tests
* bus/activation.c (bus_activation_send_pending_auto_activate),
bus/dispatch.c (bus_dispatch),
bus/driver.c (bus_driver_handle_get_service_owner,
bus/signals.c (connection_is_primary_owner):
use bus_service_get_primary_owners_connection instead of
* dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
_dbus_listen_unix_socket): Calculate the length of the socket
path and use that instead of using a fixed length which was
causing socket names to contain many trailing Nul bytes.
* dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
(dbus_g_method_get_sender): New method for extracting the sender
from a DBusGMethodInvocation
(dbus_g_method_return_get_reply): changed name to
(dbus_g_method_return_send_reply): changed name to
dbus_g_method_send reply
* doc/dbus-specification.xml: New docs that describe how the new
queueing system works and talks about the changes to the how
we specify socket names
* glib/examples/example-service.c,
Changed the RequestName flags to the new system
* test/name-test/ (test-names.c,, New
regression test suite for testing various states of the new
queueing system
2005-11-15 Robert McQueen <>
* dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
Taylor to add two methods, dbus_g_method_return_get_reply and
dbus_g_method_return_send_reply, to allow you to get the reply
message from a DBusGMethodInvocation, append arbitrary stuff to it,
and send it. The GLib bindings can't marshal a return value of
something like a(s) if the array is empty - ultimately they should be
made to heed the signature of the out arguments as the Python bindings
now can, but this is a workable interim solution which might have
other applications.
2005-11-15 Robert McQueen <>
* bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
method to org.freedesktop.DBus to release a bus name or give up
waiting in the queue for it.
* dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
dbus_bus_release_name method to send the ReleaseName method calls.
Add constants for the return values to dbus/dbus-shared.h.
* doc/dbus-specification.xml: Document the new ReleaseName method
in the specification.
* python/dbus_bindings.pyx: Add a low-level python binding for the
release name method.
* python/, python/ Make freeing BusName
objects release the name. Add a NameExistsException, and fix a
bug with creating UnknownMethodException.
* test/python/ Add tests for freeing BusName
objects causing names to be released.
2005-11-14 Robert McQueen <>
* python/ Include the traceback in the error reply when we
send an exception over the bus. _BEST_ _PATCH_ _EVER_
2005-11-14 David Zeuthen <>
Patch from Timo Hoenig <>.
* bus/bus.c: I've recently investigated why the automatic reload
of configuration files does not work as expected.
Currently, reloading configuration files does only work when
running dbus-daemon with --nodaemon. If we are running as daemon
we're hitting a dnotify bug once we fork the process.
We're initializing the dnotify fds before calling fork(). Once
the child process forked it does still have the fds (and they
still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
getting SIGIO as changes are made to the configuration files.
The attached patch moves the initialization of the dnotify fds to
process_config_postinit(). This is safe for all current code
paths and solves the dnotify disfunction. If we're running
dbus-daemon as daemon the fds for dnotify are now being
initialized after fork() for the child process.
* The current check for dnotify probes
'x$target_os' for being 'xlinux-gnu'. I've changed the check to
match for 'xlinux', too. Additionally I have adapted the configure
option's style to match with the others.
2005-11-14 Robert McQueen <>
* python/, python/ Add a new argument to the
dbus.service.method decorator called sender_keyword, which if set,
specifies the name of an argument which will be provided the bus
name of the method caller.
* test/python/, test/python/ Add a
method and test to check the sender_keyword functionality.
2005-11-07 John (J5) Palmieri <>
* bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
empty reply so blocking calls don't block forever (Patch from Sjoerd
Simons <sjoerd at>)
* AUTHORS: Add Robert McQueen for his work on the Python
Bindings and other parts of D-Bus
2005-11-07 Robert McQueen <>
* python/ Change emit_signal function to use the
signature annotation of the signal when marhsalling the arguments from
the service. Fix a bug where the code checking signature length
against argument length referenced the wrong variable.
* python/ Avoid adding the type signature of
signal arguments to any methods which occur after them in the
introspection data (!) by making the parser a little more careful
about its current state.
* python/ Remove debug prints from last commit (again :D).
* test/python/, test/python/ Add test
signals with signature decorators to test the strict marshalling code
gives errors at the right time. Could do with checking the signals
actually get emitted too, given that the test does nothing with
signals at the moment...
2005-11-07 Robert McQueen <>
* python/ Add WeakReferenceDictionary cache of dbus.Bus
instances to stop madness of creating new instances representing
the same bus connection all the time, rendering any tracking of
match rules and bus names quite meaningless. Caught a bug where
the private argument to SessionBus() and friends was being passed
in as use_default_mainloop by mistake. Still some problems with
multiple dbus_binding.Connection instances representing the same
low-level connection (eg when you use both SessionBus() and
StarterBus() in same process), but it's a lot better now than it
* python/dbus_bindings.pyx: Add constants with the return values
for bus_request_name().
* python/ Store bus name instances in a per-dbus.Bus cache
and retrieve the same instances for the same name, so deletion can be
done with refcounting. Also now throws some kind of error if you
don't actually get the name you requested, unlike previously...
* test/python/ Add tests for instance caching of buses
and bus name objects.
2005-11-04 Robert McQueen <>
* python/dbus_bindings.pyx, test/python/ Fix
marshalling of boolean values. Add some booleans to the values in
the test client.
* python/, python/ Add an 'async_callbacks'
argument to the dbus.service.method decorator, which allows you to
name arguments to take two callback functions for replying with
return values or an exception.
* test/python/, test/python/ Add test
case using asynchronous method reply functions, both return values and
errors, and from within both the function itself and from a mainloop
* python/, python/ Perform checking that the
number of method/signal arguments matches the number of types in the
signature at class loading time, not when you first introspect the
* python/ Remove debug print left by the last commit.
2005-11-03 Robert McQueen <>
* python/ Heavy refactoring of method invocation, with
hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
in favour of a new _message_cb that uses seperate functions for
looking up the method to call, marshalling the return values, and
sending exceptions as errors, and is easier to follow as a
consequence. Fixes some corner cases about returning things that
don't match your declared out_signature, allows exceptions to define
_dbus_error_name and have it be sent over the bus as the error name,
and paves the way for cool stuff like heeding the message no reply
flag, asynchronous method implementations, informing the method of the
sender, and including backtraces in the error messages.
* test/python/ Catch and print exceptions thrown in the
async callback tests, rather than passing them to the low-level
bindings to be ignored in a noisy and frustrating manner.
2005-11-03 Robert McQueen <>
* python/, python/, python/ Add __repr__
functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
tweak others to be consistent.
* test/python/ Tweak output of testInheritance.
2005-10-29 Robert McQueen <>
* python/ Major changes to allow multiple inheritance
from classes that define D-Bus interfaces:
1. Create a new Interface class which is the parent class of
Object, and make the ObjectType metaclass into InterfaceType.
2. Patch written with Rob Taylor to replace use of method_vtable
with code that walks the class's __MRO__ (method resolution order)
to behave like Python does when invoking methods and allow
overriding as you'd expect. Code is quite tricky because
we have to find two methods, the one to invoke which has the
right name and isn't decorated with the /wrong/ interface,
and the one to pick up the signatures from which is decorated
with the right interface.
The same caveats apply as to normal multiple inheritance -
this has undefined behaviour if you try and inherit from two
classes that define a method with the same name but are
decorated with different interfaces. You should decorate
your overriding method with the interface you want.
3. Replace grungy introspection XML generation code in the metaclass
with dictionaries that cope correctly with multiple inheritance
and the overriding of methods. This also uses the signature
decorations to provide correct introspection data, including
the debut appearance of the types of your return values. :D
* test/python/, test/python/ Add a test
case to try invoking an method that overrides one inherited from a
D-Bus interface class.
2005-10-29 Robert McQueen <>
* python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
Add checking for the end of struct character when marshalling a
struct in MessageIter.append_strict.
* python/examples/,
python/examples/ Update to use gobject
mainloop directly rather than appearing to depend on gtk.
* python/test/, python/test/ Remove
obsolete and broken test scripts for old bindings. We have up to date
and working tests in test/python/.
2005-10-29 Robert McQueen <>
* python/ Add optional arguments to the method and
signal decorators to allow you to specify the signature of arguments
and return values. Preserve the doc strings of signal functions in the
decorated version, for pydoc and friends.
* python/dbus_bindings.pyx, python/ Replace the
parse_signature_block function with an iterable dbus.Signature()
type. Fix a bug in MessageIter.append_strict where you could append
anything by claiming it was a string.
* python/ Use the out_signature decoration on methods to
marshal return values, meaning you no longer require dbus.Array()
or dbus.Dictionary() to indicate the type when returning empty
arrays or dictionaries. Fix a bug where exceptions which are defined
in __main__ are not turned into error replies.
* test/python/, test/python/ Add test
for correct marshalling of return values according to out_signature.
Fix a bug in the async call test where the error_handler is missing a
self argument.
2005-10-29 Robert McQueen <>
* glib/, glib/examples/,
glib/examples/statemachine/ Merge patch from Ubuntu by
Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
* test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
* tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
from Ubuntu by Daniel Silverstone to allow specifying match rules on
the command line.
2005-10-27 Ross Burton <>
* dbus/dbus-marshal-header.c:
Remove dead code.
* glib/dbus-gobject.c:
Stop compiler warning.
2005-10-25 Ross Burton <>
* dbus/dbus-auth.c:
* dbus/dbus-server-unix.c:
* dbus/dbus-transport-unix.c:
* glib/dbus-gmain.c:
* glib/dbus-gobject.c:
Add some const keywords.
2005-10-25 Ross Burton <>
* doc/dbus-specification.xml:
Document the NoReply annotation.
* glib/dbus-binding-tool-glib.h:
* glib/dbus-binding-tool-glib.c:
Respect the NoReply annotation.
2005-10-24 Robert McQueen <>
* python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
derive from unicode instead of str, and encode/decode UTF-8 when
marshalling/unmarshalling bus messages
* python/ encode introspection data as UTF-8
before passing the buffer into libxml2
* test/python/ add unicode test strings
* test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
ignore generated python test files
2005-10-17 John (J5) Palmieri <>
* glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
(gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
* glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
when constructing struct signatures
* python/ (Bus): handle private connections using the
private keyword in the constructor. defaults to private=False
(Bus::close): new method to close a connection to the bus
* python/dbus_bindings.pyx (Connection::close): renamed method
was previously called disconnect
(bus_get): now supports getting a private connection
* python/ (ProxyMethod::__call__): check if ignore_reply
keyword is set to True. if it is, execute the method without waiting
for a reply
(ProxyObject::_introspect_execute_queue): new method for executing
all the pending methods that were waiting for the introspect to
finish. this is called when introspect either succeeds or fails
(ProxyObject::_introspect_error_handler): call queued methods
2005-10-14 John (J5) Palmieri <>
* python/dbus_bindings.pyx (MessageIter::append_strict): check for
STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
* python/ (Object::_message_cb): handle exceptions correctly
by sending them over the wire to the calling app. This makes sure
the client returns immediately instead of waiting the 15 seconds to
* test/python/ (TestDBusBindings::testBenchmarkIntrospect):
Add a test to benchmark how long it takes to introspect a service and
call a method which returns a large element (pretty fast)
* test/python/ (TestObject::GetComplexArray): new test
method which pushes a lot of data
2005-10-13 John (J5) Palmieri <>
* python/, _reflect_on_method):
reclaim memory outside of the loop and use del istead of just setting
the key to None
2005-10-13 John (J5) Palmieri <>
* python/ (ObjectType::_reflect_on_signal): Always close
signal tag even when there are no arguments
2005-10-13 John (J5) Palmieri <>
* Set mono, mono-docs and Qt3 to default
to no instead of auto when building. These bindings do not
have full time maintainers and will not be supported for the
1.0 release.
2005-10-12 John (J5) Palmieri <>
patches from Michael Krivoruchko <misha at>:
* dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
_dbus_connection_pop_message_link_unlocked): handle the case when path
is NULL when calling _dbus_verbose
* check for functions getpeerucred and getpeereid
* dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
Patch was only tested on Solaris 10 x86 so it might be issues
with other platforms (i.e. BSDs and MacOSX)
2005-10-05 John (J5) Palmieri <>
* glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
instead of marshal basic so we can handle recursive types in a variant
* test/glib/test-dbus-glib.c: Add test for marshaling recurive types
in variants
* test/glib/test-service-glib.c, test-service-glib.xml
(my_object_echo_variant [EchoVariant],
Add two test methods
* python/ New module for parsing introspect
* python/dbus_bindings.pyx:
(various places): when throwing errors fix to use errormsg instead
of message local variable because Pyrex can get confused with other
message variables (initial patch by Robert McQueen
<robert.mcqueen at>)
(MessageIter::parse_signature_block): new method for getting the next
block in a signiture.
(MessageIter::append_strict): new method for appending values strictly
using the passed in signature instead of guessing at the type
(MessageItter:: append_dict, append_struct, append_array): use
signatures to marshal children if the signature is available
* python/ (IntrospectionParserException): new exception
* python/ (ProxyMethod::__call__): Marshal args with
introspected signatures if available, else we fall back to the
old way of doing things.
(ProxyObject::_introspect_reply_handler ): parse introspection data
* python/ (ObjectType::_reflect_on_method): Properly
terminate <method> if there are no args in the reflection data
* test/python/ add tests for talking with the GLib
test server. This gives us better coverage for introspection since
python to python will always generate arguments as variants. It also
allows us to test the robustness of the GLib bindings and interlanguage
2005-10-03 John (J5) Palmieri <>
* bus/driver.c (bus_driver_handle_introspect): Add signals
to the introspect data. (patch from Daniel P. Berrange
<dan at>)
* bus/dispatch.c (check_existent_ping): Add testcase for Ping
* dbus/dbus-connection.c (_dbus_connection_peer_filter,
_dbus_connection_run_builtin_filters): Changed these to
be unlock_no_update functions and call
_dbus_connection_send_unlocked_no_update instead of
dbus_connection_send to avoid locking errors.
* doc/TODO: Removed the make Ping test TODO
2005-09-26 John (J5) Palmieri <>
* dbus/Python.pyx: Fixed memory leaks when throwing errors.
We now copy the message from a DBusError and then free
the error object befor throwing the error
* glib/dbus-glib-tool.c: removed extra comma at the end of the
DBusBindingOutputMode enum which was causing a warning.
#include <time.h> so using time_t is explicitly defined
2005-09-26 John (J5) Palmieri <>
* Integrate patches from Lennart Poettering <mzsqb at>:
- dbus/dbus-bus.c
(internal_bus_get): new method that take over the heavy lifting
of dbus_bus_get and adds the ability to get a private connection
to the bus
(dbus_bus_get): wrapper to internal_bus_get that provides the same
interface as in previous versions
(dbus_bus_get_private): new method that is a wrapper to
internal_bus_get to get a private connection to the bus
- dbus/dbus-bus.h
(dbus_bus_get_private): add as a public libdbus interface
- output system_bus_default_address and
sysconfdir variables so apps can use them when compiling
2005-09-23 Harald Fernengel <>
* dbus/qt: New Qt bindings
2005-09-12 Waldo Bastian <>
* dbus/dbus-marshal-validate.c,
doc/dbus-specification.xml, test/,
test/test-names.c: allow hyphens in bus names.
2005-09-11 Mark McLoughlin <>
* test/data/auth/fallback.auth-script: we don't
retry the EXTERNAL method when we know its going
to fail anymore.
2005-09-11 Mark McLoughlin <>
* dbus/dbus-connection-internal.h: rename
(add|remove|toggle)_(watch|timeout) to unlocked()
* dbus/dbus-connection.c: ditto.
* dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
Update some callers for the renaming.
2005-09-10 Mark McLoughlin <>
* dbus/dbus-auth.c: (record_mechanisms): don't
retry the first auth mechanism because we know
we're just going to get rejected again.
* dbus/dbus-keyring.c: (_dbus_keyring_reload):
Fix thinko ... and what a nasty little bugger to
track down you were ...
* dbus/dbus-connection.c:
(_dbus_connection_remove_watch): add note about
these needing the connection to be locked.
set status to DATA_REMAINS when we queue the
disconnected message.
* bus/dispatch.c:
(bus_dispatch): fix warning.
Expect ChildSignaled error too.
(check_existent_hello_from_self): fix another
couple of warnings.
2005-09-08 Joe Shaw <>
Patches from James Willcox <>
* mono/ Add Int16.cs and UInt16.cs
* mono/DBusType/Array.cs: Handle multidimensional arrays, and
support array "out" parameters.
* mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
for 16-bit int support.
2005-09-06 John (J5) Palmieri <>
* Released 0.50
* Patch from Steve Grubb:
- bus/activation.c (bus_activation_service_reload_test): clean up
some indentation
- dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
- dbus/dbus-message-factory.c (generate_special): fix a couple of
buffer overflows in the test suite. This is non critical because
it can not be exploited and this code is only run when doing a
make check.
* Patch from Yaakov Selkowitz: Build fixes for Cygwin
- Don't check and link against kdecore, only qt headers
- dbus/ Add -no-undefined to libdbus_1_la_LDFLAGS
- gcj/org/freedesktop/dbus/
add libdbus_gcj_1_la_LDFLAGS = -no-undefined
- glib/ Add -no-undefined to libdbus_glib_1_la_LDFLAGS
and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
- qt/ Add -no-undefined to libdbus_qt_1_la_LDFLAGS
- tools/ Add platform extentions to binaries
(i.e. .exe on windows)
- Make it so if no suitable version of python is found we only
disable building python instead of exiting the configure script
- Require version 2.4 of glib for glib bindings
- Up version to 0.50
* python/ Sync version with libdbus to (0,50,0)
2005-09-05 Olivier Andrieu <>
* dbus/dbus-object-tree.c (find_subtree_recurse):
a couple of optimizations (bug #710):
- do a binary search in the tree
- insert a new child at the right place directly, no need for
qsort anymore
- do the "double alloc" thing when allocating children
2005-08-31 John (J5) Palmieri <>
* python/ Break on pyrexc errors instead of ignoring them
* python/dbus_bindings.pyx: Memory management foo
(global): remove hacky _user_data_references global list
(GIL_safe_cunregister_function_handler): userdata now stuffed into
tuples. Unref user_data
(GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
(Connection::__del__): Remove and replace with __dealloc__ method
(Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
to keep tuple from being deallocated instead of the global var hack
(Connection::register_object_path): Stuff user_data into a tuple.
Use Py_INCREF to keep tuple from being deallocated instead of the
global var hack
(Connection::register_fallback): Stuff user_data into a tuple.
Use Py_INCREF to keep tuple from being deallocated instead of the
global var hack
(GIL_safe_pending_call_notification): Don't unref the message
because it gets unreffed when going out of scope. Py_XDECREF
the user_data
(PendingCall::__del__): Remove and replace with __dealloc__ method
(PendingCall::set_notify): ref the pending call because we will
need it to stick around for when the notify callback gets called
(Message::__del__): Remove and replace with __dealloc__ method
* python/dbus_glib_bindings.pyx (init_gthreads): Changed to
gthreads_init to match up with the dbus call
* python/ (init_threads): Changed to threads_init to match
up with gobject.threads_init(). init_threads is kept for backwards
compat but will most likely be deprecated in the future
* test/python/
- revamp to use Python's unittest functionality
- add async call tests
- setup threads in glib and dbus so we make sure locks are working
2005-08-30 John (J5) Palmieri <>
* python/dbus_bindings.pyx
(_pending_call_notification, cunregister_function_handler,
cmessage_function_handler): All callback functions have been rearranged
to workaround a bug in Pyrex when working with the GIL which is Python's
global lock when dealing with threads. They have been split into
a wrapper function (which assumes the name of the old function) and
a _GIL_safe_<function name> function which contains the functionality
of the old function. This ensures that Pyrex does not write code
the lock is released.
2005-08-30 John (J5) Palmieri <>
* python/dbus_bindings.pyx (_pending_call_notification): Obtain the
GIL global lock when calling back into Python
2005-08-29 John (J5) Palmieri <>
* Release 0.36.2
* Add Havoc's patch that never got applied to HEAD (Bug #2436):
* bus/policy.c (bus_policy_allow_user): change default "user is
allowed" to be "user has same uid as the bus itself"; any
allow/deny rules will override.
* bus/ don't allow all users, since now by default
the user that ran the bus can connect.
2005-08-26 Colin Walters <>
* tools/dbus-print-message.c (print_message): Flush stdout
after printing a message, so that redirecting to a file, then
hitting Ctrl-C works.
2005-08-25 John (J5) Palmieri <>
* python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
(EmptyMessage): new class that subclasses Message. This is a workaround
to a Pyrex bug that fails to call __del__ when the Message object goes out
of scope. For some reason subclassing Message fixes this bug
(Bus::send_with_reply_and_block): use EmptyMessage instead of Message
- s/Message(_create=0)/EmptyMessage everywhere else
* test/python/test-{server|client}.py: add the python/.libs directory
to the lookup path so dbus_bindings and dbus_glib_bindings don't
get picked up from the system
2005-08-25 Colin Walters <>
* glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
to Ryan Lortie for the suggestion.
2005-08-24 John (J5) Palmieri <>
* test/python: Add python regression test
* Add test/python/Makefile
* test/ Add the python directory to SUBDIRS
2005-08-24 John (J5) Palmieri <>
* Release 0.36.1
* python/
(Interface::connect_to_signal): propigate keywords for match on args
(Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
* python/ (ProxyObject::connect_to_signal):
propigate keywords for match on args
* point everything to pyexecdir since python borks
on multilib
2005-08-23 John (J5) Palmieri <>
* Release 0.36
2005-08-23 Colin Walters <>
* test/glib/ Don't multiply-define EXTRA_DIST.
2005-08-23 John (J5) Palmieri <>
* python/dbus_glib_bindings.pyx: reorder imports and c definitions
to fix some wranings. We now use dbus_bindings.DBusConnection instead
of defining DBusConnection ourselves.
2005-08-18 John (J5) Palmieri <>
* python/dbus.pth: New path file to fix up problems when installing
c libraries to lib64 and python files to lib.
* python/ install dbus.pth in the correct spot
2005-08-17 John (J5) Palmieri <>
* ChangeLog: clean up my last entry a bit
* doc/introspect.xsl: New stylesheet for converting introspection data
into browser renderable xhtml. Contributed by Lennart Poettering.
* doc/introspect.dtd: Fixups in the introspect format from Lennart
* doc/dbus-tutorial.xml:
- Add Colin Walter to the Authors section for authoring the GLib
- Add descriptions of the new signature and type functionality
in the Python complex type mapping section
- Add a sidenote on the new args matching functionality in
the Python bindings
- Fixed up some of the examples to use the gobject.MainLoop
instead of gtk.main
* python/
(Bus::_create_args_dict): New. Converts a hash of arg matches
to a more useable format
(Bus::add_signal_receiver): add a **keywords parameter for catching
arg match parameters
(Bus::remove_signal_receiver): add a **keywords parameter for catching
arg match parameters
* python/
(MatchTree::exec_matches): Check for arg matches
(SignalMatchRule::add_args_match): New method
(SignalMatchRule::execute): Added args_list parameter as an optimization
so we don't have to marshal the args more than once
(SignalMatchRule::match_args_from_list): New method that checks to see
if the rule's arg matches match an argument list. Only arguments
set in the rule are checked.
(SignalMatchRule::match_args_from_rule): New method that checks to see
if the rule's arg matches match another rule's. All args have to match
in order for this method to return true. If either rule has more args
then it is not a match.
(SignalMatchRule::is_match): Add args match
(SignalMatchRule::repr): Add args to the final output if they exist
2005-08-17 Ross Burton <>
* glib/dbus-gproxy.c:
(dbus_g_proxy_call_no_reply): unref the message once sent.
(dbus_g_proxy_call): protect against NULL proxy.
2005-08-16 John (J5) Palmieri <>
* python/ Version updated (0, 43, 0)
* python/dbus_bindings.pyx:
- Fixed type objects to have self passed into __init__
- Added the Variant type
- Add the ability to specify types or signatures for Array, Variant
and Dictionary
(Connection::send_with_reply_handlers): return a PendingCall object
(_pending_call_notification): handle the case when an error is returned
without an error message in the body
(MessageIter::get_boolean): return True or False instead of an integer
(MessageIter::python_value_to_dbus_sig): add direct checking of types
and add checks for objects with embeded signatures or types (Array,
Variant and Dictionary)
(MessageIter::append_byte): handle case when the value is a dbus.Byte
(MessageIter::append_dict): handle embeded types or signatures
(MessageIter::append_array): handle embeded types or signatures
(MessageIter::append_variant): new method
* python/
(DeferedMethod): New. Dummy executable object used when queuing calls
blocking on introspection data
(ProxyMethod::__call__): add the timeout keyword for specifying longer
or shorter timeouts for method calls
(ProxyObject): Add first pass at an introspection state machine
(ProxyObject::__init__): Add introspect keyword for turing off an on
(ProxyObject::_Introspect): Internal Introspect call that bypasses
the usual mechanisms for sending messages. This is to avoid a deadlock
where the Intospect call would be queued waiting for the Introspect
call to finish ;-)
(ProxyObject::_introspect_reply_handler): New. This method is called
when introspection returns with no error
(ProxyObject::_introspect_error_handler): New. This method is called
when introspection encounters an error
(ProxyObject::__getattr__): Code to handle different introspection
states. Queue async calls or block blocking calls if we are
introspecting. Pass through as normal if we are not or are done with
* python/ Import signal and method from
* python/ Add Variant type
2005-08-16 Colin Walters <>
* glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
DBusError message is NULL.
2005-08-09 Havoc Pennington <>
* dbus/dbus-errors.c: apply patch from Timo Teras to make a
malloc'd copy of the name parameter
2005-08-09 Havoc Pennington <>
* dbus/dbus-message.c (dbus_message_set_reply_serial): print
warning if the reply serial is set to 0
2005-08-04 Colin Walters <>
* glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
(dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
(dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
(dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
(dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
(dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
(dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
* glib/dbus-gvalue.h (dbus_g_value_types_init)
(dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
(dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
Prefix name with _ to ensure they're not exported. All callers
* glib/dbus-gvalue.c (typecode_to_gtype)
(dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
(dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
Move to dbus-gsignature.c.
* glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
(dbus_binding_tool_output_glib_client): Ditto.
* glib/ (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
and dbus-gsignature.h
* test/glib/test-service-glib.c (my_object_rec_arrays): Delete
unused variable.
2005-08-03 Colin Walters <>
* glib/dbus-gobject.c: Add tests on hardcoded object info; this should
catch any incompatible changes accidentally made.
2005-08-03 Havoc Pennington <>
* dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
typo, from Julien Puydt
* bus/connection.c (bus_connection_disconnected): we were always
doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2005-08-01 Colin Walters <>
Patch from Joe Markus Clarke:
* glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2005-08-01 Colin Walters <>
Patch from Joe Markus Clarke:
* tools/dbus-send.c (main):
Don't use C99 style initializers (bug #3933).
2005-08-01 Colin Walters <>
Patch from Joe Markus Clarke:
* glib/dbus-gvalue.c (dbus_g_value_types_init):
* glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
* glib/dbus-gobject.c (write_interface):
Don't use C99 style initializers (bug #3933).
2005-07-31 Havoc Pennington <>
* tools/dbus-viewer.c (load_child_nodes): fix invocation of
dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2005-07-30 Havoc Pennington <>
* fix a bunch of Doxygen warnings and mistakes
2005-07-30 Havoc Pennington <>
* dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
DBUS_BUILD_TESTS since it's now used in production code
2005-07-29 Havoc Pennington <>
* test/glib/test-profile.c (write_junk): initialize the junk
buffer so valgrind doesn't have a breakdown
2005-07-29 Havoc Pennington <>
* bus/signals.c (bus_signals_test): add match_rule_equal() tests
(match_rule_matches): remove unused arg
(test_matching): add tests for match_rule_matches()
* bus/signals.c (bus_match_rule_parse_arg_match): add ability to
do arg0='foo' arg5='bar' in the match rules
(match_rule_matches): don't match if the arg0='foo' doesn't match.
* dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2005-07-29 Ross Burton <>
* dbus/dbus-connection.c:
Don't create a DBusCondVar which is never used.
2005-07-27 Ross Burton <>
* dbus/dbus-message.c:
Reduce the size of the maximum cached message to 10K.
2005-07-25 Ross Burton <>
* glib/dbus-gproxy.c:
Remove matches when all proxies are unregistered.
2005-07-24 Colin Walters <>
* glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
typedata; recursive arrays won't have it.
* test/glib/test-dbus-glib.c:
* test/glib/test-service-glib.c:
* test/glib/test-service-glib.xml: Add recursive arrays tests.
2005-07-20 John (J5) Palmieir <>
* python/,,,,, Cleanup of code after running it through the
pyflakes code checker mostly dealing with undefined names.
(Bug #3828, Patch from Anthony Baxter <>)
2005-07-17 John (J5) Palmieri <>
* NEWS: Update to 0.35.2
2005-07-17 John (J5) Palmieri <>
* python/ Remove import of the
module as it no longer exists (patch from Dimitur Kirov)
* python/ (Object::__init__): Fixed typo
s/name/bus_name (patch from Dimitur Kirov)
* python/examples/ import dbus.glib
to get the main loop and use glib mainloop instead of gtk so
X doesn't have to be running.
* python/examples/ import dbus.glib
to get the main loop and use glib mainloop instead of gtk so
X doesn't have to be running. Import the decorators module
* test/glib/ Added DIST_EXTRA files that distcheck
didn't pick up on but are needed to build
* upped version to 0.35.2
* bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
added Colin Walters' SELinux API rename patch from head
s/unix sercurity context/selinux security context/
2005-07-16 John (J5) Palmieri <>
* python/ should be included
in EXTRA_DIST not dbus_binding.pxd
fix up $(srcdir) hopefully for the last time
* NEWS: Update to 0.35.1
2005-07-16 Colin Walters <>
* bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
from bus_driver_handle_get_connection_unix_security_context. Update for
error usage.
(message_handlers): Update for renames.
* bus/selinux.c (bus_selinux_allows_send): Handle OOM on
_dbus_string_init failure correctly.
(bus_selinux_append_context): Convert SID to context. Append it
as a byte array.
(bus_selinux_shutdown): Handle the case where bus_selinux_full_init
hasn't been called.
* bus/selinux.h: Update prototype.
2005-07-15 Colin Walters <>
* doc/TODO: Add note about convenience wrappers.
2005-07-15 John (J5) Palmieri <>
* NEWS: Update to 0.35
2005-07-15 John (J5) Palmieri <>
* glib/ Add to EXTRA_DIST
so distcheck doesn't fail
* glib/examples/ Add example-service.xml and
example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
* glib/examples/statemachine/ Add statemachine.xml and
statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
* python/ Preprend $(srcdir)/ to source files so the
compiler looks in the right places during distcheck
2005-07-15 John (J5) Palmieri <>
* glib/example/ Fix a typo which cause make distcheck
to fail
2005-07-15 John (J5) Palmieri <>
* python/examples/,
python/examples/ Fixed up examples
for API changes
2005-07-15 John (J5) Palmieri <>
* python/ Upped to version (0,42,0) because of
the API change
2005-07-15 John (J5) Palmieri <>
* ChangeLog: fix date in last entry
*, bus/ add the ability to configure
the system bus user at compiletime with the --with-dbus-user flag
(patch from Kristof Vansant)
2005-07-15 John (J5) Palmieri <>
* bus/dispatch.c, test/test-service.c: Add testcase
for sending messages to oneself (TODO item).
* python/ (class Object): Swap ordering of bus_name
and object_path parameters to better support inheritance.
* doc/dbus-tutorial.xml: change Python docs to reflect change
in parameter ordering and fix the inheritance section.
* doc/TODO: remove sending message to oneself TODO item
2005-07-15 Ross Burton <>
* glib/dbus-gproxy.c:
Fix a leak when calling methods via the proxy.
2005-07-15 Colin Walters <>
* bus/selinux.c (bus_selinux_append_context): Wrap in
2005-07-14 John (J5) Palmieri <>
* python/ (Bus::remove_signal_receiver):
don't add a callback to the match if none has been passed in
* python/ (SignalMatchTree::remove): if the rule
being matched does not have a callback treat it as a wildcard
fix matching logic
* doc/dbus-tutorial.xml: Add Python tutorial
2005-07-14 Colin Walters <>
* bus/driver.c
(bus_driver_handle_get_connection_unix_security_context): New function.
(message_handlers): Add.
* bus/selinux.c (bus_selinux_append_context): New function; appends
security context to message.
* bus/selinux.h: Prototype.
2005-07-14 John (J5) Palmieri <>
* bus/activation.c: clean up all tabs to be 8 spaces
(bus_activation_activate_service): make sure we clean up
if activation fails
* bus/dispatch.c: clean up all tabs to be 8 spaces
(check_shell_fail_service_auto_start): New function
tests to make sure we get fail properly when trying to auto start a service
with a faulty command line
(check_shell_service_success_auto_start): New function tests to make sure
auto started services get the arguments on the command line
* test/test-shell-service.c: Added service for testing auto-starting with
command line arguments
* test/data/valid-service-files/,
Added service files for testing auto-starting with command line arguments
* */.cvsignore: added a bunch of generated files to various .cvsignore files
2005-07-14 Rodrigo Moya <>
* dbus/dbus-shell.[ch]: copy/pasted code from GLib.
* dbus/ added new files to build.
* bus/activation.c (bus_activation_activate_service): support
activation commands with parameters.
* test/shell-test.c: added test program for the shell parsing
2005-07-13 David Zeuthen <>
* tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
64 bit signed and unsigned parameters
2005-07-13 John (J5) Palmieri <>
* python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
* python/ (class Name): renamed BusName to make it clearer
what the object is for (a name on the bus)
* python/examples/,
python/examples/ change the Name object to
2005-07-12 Colin Walters <>
Patch from Jim Gettys <>.
* tools/dbus-launch.c: Include sys/select.h.
2005-07-12 John (J5) Palmieri <>
* python/ removed
* python/dbus_bindings.pyx: Added.
- Fixed some memleaks (patch from
Sean Meiners <>)
- Broke out the #include "dbus_h_wrapper.h" and put it in its
own pxd file (Pyrex definition)
- Broke out glib dependancies into its own pyx module
* python/dbus_bindings.pdx: Added.
- Defines C class Connection for exporting to other modules
* python/dbus_glib_bindings.pyx: Added.
- New module to handle lowlevel dbus-glib mainloop integration
* python/ Added.
- Registers the glib mainloop when you import this module
* python/ Removed (renamed to
* python/ Added.
- (class Server): renamed Name
* python/ Bump ro version (0,41,0)
-don't import the decorators or service module
by default. These now reside in the dbus.service namespace
* python/ (Bus::__init__): Add code run the main loop
setup function on creation
* python/examples/,
python/examples/ update examples
* python/examples/,
python/examples/ TODO fix these up
* doc/TODO: Addition
- Added a Python Bindings 1.0 section
- added "Add match on args or match on details to match rules"
2005-07-12 Colin Walters <>
* glib/examples/statemachine/ (statemachine-server-glue.h)
* glib/examples/ (example-service-glue.h)
* glib/ (dbus-glib-error-switch.h):
Add libtool --mode=execute so we use the built library instead
of any installed one.
2005-07-11 Colin Walters <>
* glib/dbus-gvalue.c (struct _DBusGValue): Delete.
(dbus_g_value_types_init): Remove assertion.
(dbus_g_value_get_g_type, dbus_g_value_open)
(dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
(dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
functions related to DBusGValue. Now we marshal/demarshal
structures as GValueArray.
(dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
(signature_iter_to_g_type_array): Don't call
(signature_iter_to_g_type_struct): Delete.
(dbus_gvalue_to_signature): Delete.
(dbus_gvalue_to_signature): New function with same name as other
one; we can convert structures to signatures.
(demarshal_valuearray): New function.
(get_type_demarshaller): Use it.
(demarshal_recurse): Delete.
(marshal_proxy): New function.
(marshal_map): Warn if we can't determine signature from type.
(marshal_collection_ptrarray): Ditto.
(marshal_collection_array): Ditto.
(get_type_marshaller): Use marshal_valuearray.
(marshal_recurse): Delete.
(_dbus_gvalue_test): Add some tests.
* dbus/dbus-glib.h (struct _DBusGValueIterator):
(dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
(dbus_g_value_open, dbus_g_value_iterator_get_value)
(dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
(dbus_g_value_free): Remove prototypes.
* glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
* glib/examples/example-service.c:
* glib/examples/example-client.c: Implement GetTuple.
* test/glib/test-dbus-glib.c:
* test/glib/test-service-glib.c:
* test/glib/test-service-glib.xml: Add structure tests.
2005-07-10 Colin Walters <>
* doc/TODO: Knock off some GLib items with this patch.
* glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
(_dbus_gvalue_signals_error): New functions.
* glib/dbus-gvalue-utils.h: Prototype them.
* glib/dbus-gobject.c (arg_iterate): Update to handle return vals
and change to not output const/retval flags for input args. All
callers updated.
(invoke_object_method): Refactor to handle return values. Add
some more comments in various places. Remove debug g_print.
* glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
* glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
(compute_gsignature): New function; refactored from code from
compute_marshaller and compute_marshaller_name. Enhance to
handle return values and async ops more cleanly. Update for
async ops returning NONE instead of BOOLEAN.
(compute_marshaller, compute_marshaller_name): Call compute_gsignature
and output appropriate string.
(generate_glue): Handle return value annotation. Also don't dump
constness flag for input arguments.
* glib/ (DBUS_GLIB_INTERNALS): New variable; contains
files shared between installed library and utilities.
(libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
(libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
binding tool can access gtype utility functions.
* test/glib/test-service-glib.c:
* test/glib/test-service-glib.xml:
* test/glib/test-dbus-glib.c: Add some tests for return values.
2005-07-09 Colin Walters <>
* glib/dbus-gparser.c (parse_annotation): Add annotations to
argument if available, not method.
* glib/dbus-gobject.c (arg_iterate): More verbose warnings.
(invoke_object_method): First, remove some redundant
GValues (object_value, error_value) in favor of working on
array directly. Second, rework constness to be less buggy.
Now we iterate directly over the argument metadata instead
of parallel iterating over output signature and metadata.
* glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
* glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
annotation on input args.
2005-07-09 Colin Walters <>
* glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
* glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
* glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
(method_dir_signature_from_object_info): Handle arg_iterate change.
(write_interface): Ditto.
(lookup_object_info): Don't barf if format_version is > 0.
(invoke_object_method): Handle arg constness.
* glib/dbus-gidl.c (struct ArgInfo): Add annotations.
(arg_info_new): Create.
(arg_info_unref): Destroy.
(arg_info_get_annotations, arg_info_get_annotation)
(arg_info_add_annotation): New functions.
* glib/dbus-gidl.h: Prototype them.
* glib/dbus-gparser.c (parse_annotation): Allow annotations in
args, disallow them in properties.
(parse_annotation): Handle arg annotations.
* test/glib/test-service-glib.xml:
* test/glib/test-service-glib.c: Update to make some methods
2005-07-08 Colin Walters <>
* test/glib/test-service-glib.xml:
* test/glib/test-service-glib.c:
* test/glib/test-dbus-glib.c: Test a{sv}.
* glib/examples/statemachine/statemachine.c:
* glib/examples/statemachine/statemachine-server.c:
* glib/examples/statemachine/statemachine-client.c: Fix some bugs,
add progress bar, etc.
* glib/dbus-gvalue.c (register_array, register_dict): Delete; not
needed anymore due to generic array/map marshalling.
(dbus_g_value_types_init): Don't register basic arrays or the
string/string hash.
(dbus_gtype_from_signature_iter): Don't try to recurse into
(dbus_gtype_to_signature): Check collection/map before type
(demarshal_garray_basic): Renamed to demarshal_collection_array.
(demarshal_ghashtable): Renamed to demarshal_map; fix to use new
generic map creation/append functions instead of hash table
(get_type_demarshaller): Handle maps.
(demarshal_collection): Dispatch on collection type to either
demarshal_collection_ptrarray or demarshal_collection_array.
(get_type_marshaller): Handle maps.
(marshal_collection): Dispatch collection type to either
marshal_collection_ptrarray or marshal_collection_array.
(_dbus_gvalue_test): New test.
* glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
(hash_free_from_gtype): Use it to free GValues.
(hashtable_append): New function.
(ptrarray_append): Fix prototype.
(slist_append): Ditto.
(_dbus_gvalue_utils_test): Extend tests.
* glib/dbus-gtype-specialized.c
(dbus_g_type_specialized_init_append): Renamed from
dbus_g_type_specialized_collection_init_append. Remove const from
value, since we steal it.
(dbus_g_type_specialized_map_append): New function.
* glib/dbus-gtype-specialized.h: Update prototypes.
Add DBusGTypeSpecializedMapAppendFunc.
* glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
* glib/dbus-gtest.h: Prototype it.
2005-07-08 Ross Burton <>
* dbus/dbus-glib.h:
Add DBysGAsyncData for the async bindings.
* glib/dbus-binding-tool-glib.c:
Re-enable the async bindings.
* test/glib/test-dbus-glib.c:
Add a test for the generated async bindings.
2005-07-08 Colin Walters <>
* doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
connection concept.
2005-07-08 Colin Walters <>
* tools/ Kill of print-introspect in favor of using
dbus-send --print-reply=literal.
* test/glib/test-service-glib.xml:
* test/glib/test-service-glib.c (my_object_get_objs): New test
for "ao".
* test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
(main): Test GetObjs.
* glib/examples/statemachine/
* glib/examples/statemachine/sm-marshal.list:
* glib/examples/statemachine/statemachine-client.c:
* glib/examples/statemachine/statemachine-server.c:
* glib/examples/statemachine/statemachine-server.xml:
* glib/examples/statemachine/statemachine.c:
* glib/examples/statemachine/statemachine.h:
* glib/examples/statemachine/statemachine.xml:
New example.
* glib/examples/example-service.c (main): Move invocation
of dbus_g_object_type_install_info earlier, to emphasize it
should only be done once.
* glib/examples/example-signal-emitter.c (main): Ditto.
* glib/examples/ (SUBDIRS): Include statemachine.
* glib/dbus-gvalue.h (dbus_gtype_to_signature)
(dbus_gvalue_marshal): Update prototypes.
* glib/dbus-gvalue.c: Update all marshalling functions to take
const GValue instead of GValue.
(signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
(dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
(dbus_gtype_to_signature): Handle generic collecitons and maps.
Return a newly-allocated string.
(demarshal_proxy, demarshal_object_path, demarshal_object)
(demarshal_strv, demarshal_ghashtable): Set error, don't assert if
we get the wrong types from message.
(get_type_demarshaller): New function, extracted from
(demarshal_collection): New function, demarshals generic
(dbus_gvalue_demarshal): Just invoke result of
get_type_demarshaller. Throw error if we don't have one.
(marshal_garray_basic): Abort on OOM.
(get_type_marshaller): New function, extracted from
(collection_marshal_iterator, marshal_collection): New functions;
implements generic marshalling for an iteratable specialized
(dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
* glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
(ptrarray_value_from_gvalue): Ditto.
(ptrarray_append, ptrarray_free): New functions.
(slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
(slist_append, slist_end_append, slist_free): New functions.
(dbus_g_type_specialized_builtins_init): Add append fuctions
for GPtrArray and GSList. Register GSList.
(test_specialized_hash, _dbus_gvalue_utils_test): New functions.
* glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
(dbus_g_type_specialized_collection_end_append): Prototype.
(DBusGTypeSpecializedCollectionVtable): Add append_func and
* glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
(dbus_g_type_specialized_collection_end_append): New functions.
(dbus_g_type_map_value_iterate): Take const GValue.
(dbus_g_type_collection_value_iterate): Ditto.
* glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
* glib/dbus-gtest.h: Prototype it.
* glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
using uninitialized owner_list.
(dbus_g_proxy_begin_call_internal): Move return_if_fail to
public API.
(dbus_g_proxy_end_call_internal): Update to use error set
from dbus_gvalue_demarshal instead of setting it here.
(dbus_g_proxy_begin_call): Move return_if_fail here.
* glib/dbus-gobject.c (write_interface): Update for
dbus_gtype_to_signature returning new string.
* Add glib/examples/statemachine.
2005-07-08 Joe Shaw <>
* Add a configure option, --with-console-auth-dir
* dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
new setting. Patch from Kay Sievers.
2005-07-06 Colin Walters <>
* dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
(DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
(dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
(dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
Delete in favor of dbus_g_proxy_begin_call and
(DBusGProxyCall, DBusGProxyCallNotify): New.
(dbus_g_proxy_begin_call): Change prototype to take callback, user
data, and destroy function. This replaces
(dbus_g_proxy_cancel_call): Prototype.
(DBusGAsyncData): Delete, shouldn't be needed anymore.
* glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
pending_calls map.
(struct _DBusGProxyManager): Add bus_proxy member, which is an
internal proxy for calls to the bus. Remove
pending_nameowner_calls, now the internal proxy keeps track.
(dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
(got_name_owner_cb): Update prototype, and use
(got_name_owner_cb): Remove reference to pending_nameowner_calls.
(dbus_g_proxy_manager_register): Delete directly libdbus code in
favor of using internal proxy.
(dbus_g_proxy_manager_unregister): Update to use
dbus_g_proxy_cancel_call for any pending GetNameOwner call.
(dbus_g_proxy_init): Initialize pending calls map.
(dbus_g_proxy_constructor): New.
(dbus_g_proxy_class_init): Add get/set property functions,
constructor, and add NAME, PATH, and INTERFACE properties.
(cancel_pending_call): New function.
(dbus_g_proxy_dispose): Iterate over any outstanding calls and
cancel them.
(dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
(GPendingNotifyClosure): New structure.
(d_pending_call_notify, d_pending_call_free): Moved here from
(DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
(manager_begin_bus_call): New internal function for talking to
internal bus proxy.
(dbus_g_proxy_new): Construct object using GObjet properties.
(dbus_g_proxy_begin_call_internal): Update to take user data, etc.
Create closure of same, and insert call into map of pending calls.
(dbus_g_proxy_end_call_internal): Take call id instead of pending
call. Look up pending call in current set. Remove it when we've
(dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
(dbus_g_proxy_begin_call): Change API to take callback, user data,
and destroy function directly.
(dbus_g_proxy_end_call): Update to take DBusGProxyCall.
(dbus_g_proxy_call): Invoke with NULL callback.
(dbus_g_proxy_cancel_call): New function, replaces
* glib/dbus-gparser.c (validate_signature): Fix call to
* glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
New quark for attaching metadata to GType.
(info_hash): Delete.
(lookup_object_info): Look up using quark.
(dbus_g_object_type_install_info): Check that a type is classed,
not that it's an object. Also just install type data using quark
instead of using global hash.
* glib/dbus-glib.c (dbus_g_pending_call_ref)
(dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
(GPendingNotifyClosure): Delete.
(d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
(dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
* glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
client method generation until we can fix it...
* tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
(load_from_service_thread_func): Ditto.
* tools/dbus-names-model.c (struct NamesModel): Hold
(have_names_notify): Update prototype, use
(names_model_reload): Update for new dbus_g_proxy_begin_call API.
* tools/dbus-monitor.c (filter_func): Update for print_message
API change.
* test/glib/test-dbus-glib.c: Add more tests for async
invocations. Update many begin_call/end_call pairs to just use
* tools/dbus-send.c (main): Add --print-reply=literal mode. This
allows us to dump print-introspect.c.
* tools/dbus-print-message.h (print_message): Add literal argument
to print_message which is intended to allow printing arguments without
metadata like "string=".
* tools/dbus-print-message.c (print_iter): Add literal argument.
(print_message): Allow printing string messages literally.
2005-07-05 Colin Walters <>
* glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
Remove value refcount leak, original patch from Jorn Baayen
<>. Also remove useless extra value in favor
of prepending to value array directly.
2005-07-02 Colin Walters <>
* glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2005-07-01 Colin Walters <>
Patch from Jonathan Matthew <>
* glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
(dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2005-06-30 Colin Walters <>
* test/glib/test-dbus-glib.c:
* test/glib/test-service-glib.c:
* test/glib/test-service-glib.xml: Update tests for new error
setting bits, also add async tests (patch from Ross Burton).
* test/glib/ (test_service_glib_LDADD): Add
* glib/dbus-gproxy.c (get_name_owner)
(dbus_g_pending_call_end_valist): Ditto.
* glib/dbus-gobject.c (error_metadata): New mapping from GError
domain (GQuark) to DBusGErrorInfo.
(gerror_domaincode_to_dbus_error_name): Attempt to look up error
quark in error_metadata. Take message interface as default
error message interface.
(gerror_to_dbus_error_message): Pass message interface.
(dbus_set_g_error): Resurrected.
(dbus_g_error_info_free): New function.
(dbus_g_object_type_install_info): Use g_type_class_ref instead
of _peek to actually create the object class if it hasn't been
created yet.
(dbus_g_error_domain_register): New function.
* glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
* glib/dbus-gparser.c (validate_signature): Ditto.
* dbus/dbus-glib.h (dbus_g_error_set): Delete.
(dbus_g_error_domain_register): Prototype.
* glib/dbus-glib.c (dbus_g_error_set): Delete.
Update tests.
2005-06-29 Colin Walters <>
* dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
* glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
(dbus_g_object_path_get_g_type): New function.
(dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
to DBUS_TYPE_G_OBJECT_PATH by default.
(demarshal_proxy): Remove unused name variable.
(demarshal_object_path, marshal_object_path): New functions.
(demarshal_proxy_array, marshal_proxy_array): Delete.
* glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
(dbus_g_type_get_lookup_function): Map builtin
* test/glib/test-dbus-glib.c
* test/glib/test-service-glib.c (my_object_objpath):
Adapt tests to new object path marshalling.
2005-06-29 John (J5) Palmieri <>
* force check for Python >= 2.4
2005-06-29 Colin Walters <>
Patch from Ross Burton <>
* glib/dbus-gobject.c (invoke_object_method): Unset object
value in all cases, not only in async case.
2005-06-29 Colin Walters <>
* glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
name_call for keeping track of any outgoing GetNameOwner call.
Also add for_owner and associated.
(struct _DBusGProxyManager): Add owner_names, which is hash table
that maps a base name to a list of names it owns (that we're
interested in). Add pending_nameowner_calls which is a list of
all outstanding GetNameOwner; avoids us having to iterate over
every proxy. Add unassociated_proxies which keeps track of name
proxies with no associated name owner.
(dbus_g_proxy_manager_unref): Destroy owner_names.
(struct DBusGProxyNameOwnerInfo): New struct for keeping track of
name refcounts.
(find_name_in_info, name_owner_foreach)
(dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
(unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
New functions; they manipulate the owner_names mapping.
(got_name_owner_cb): New function.
(get_name_owner): New function, extracted from
(dbus_g_proxy_manager_register): For now we need to keep track of
all NameOwnerChanged. Also if the proxy is for a name, if we
don't already know the name owner, queue a new GetNameOwner
request and add it to our list of unassociated proxies. Otherwise
inc the refcount.
(dbus_g_proxy_manager_unregister): If this proxy is for a name,
cancel any pending GetNameOwner call, etc.
(dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
the owner_names mapping to look up the current names for the
signal source, and dispatch to any proxies for that name.
(dbus_g_proxy_new): Initialize new members.
(dbus_g_proxy_new_for_name): Delete unused proxy variable.
(dbus_g_proxy_new_for_name_owner): Use get_name_owner.
(dbus_g_pending_call_end_valist): New function, extracted from
dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
but want to use the GLib infrastructure. Also note how many
arguments in reply were over.
(dbus_g_pending_call_end): New function, just call
(dbus_g_proxy_end_call_internal): Just call
* glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
of builtin marshaller for STRING_STRING_STRING.
* test/glib/test-dbus-glib.c:
* test/glib/test-service-glib.c:
* test/glib/test-service-glib.xml:
Extend tests to cover name proxies, destruction of owner proxies,
* glib/examples/example-signal-recipient.c
(dbus_g_proxy_new_for_name_owner): Create a name proxy.
* tools/dbus-send.c (main): Print D-BUS error name in addition
to message.
2005-06-28 John (J5) Palmieri <>
* python/ (cunregister_function_handler,
cmessage_function_handler): Patch from
Anthony Baxter <> fixes threading problems
by using the Py_GILState_Ensure/Release to synchronize with the
python runtime.
2005-06-28 Ray Strode <>
* dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
babysitter helper process on last unref, bug #2813.
2005-06-27 Colin Walters <>
* test/glib/test-dbus-glib.c:
* test/glib/test-service-glib.c:
* test/glib/test-service-glib.xml:
Test hash table signal emitting.
* glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
types to their fundamental basis types, since this is what
marshallers operate on. Also add an entry for VOID__BOXED.
(dbus_g_object_register_marshaller_array): Convert to fundamental.
2005-06-26 Havoc Pennington <>
* doc/dbus-tutorial.xml: fix names of interface/service/path, fix
from Don Park
2005-06-26 Colin Walters <>
* glib/dbus-glib.c (dbus_set_g_error): Delete.
(dbus_g_error_set): New public function from its ashes; used by
both service-side method implementation and GLib bindings