1 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
3 * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
5 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): the API
6 contract says sitter_p can be NULL, so let's check it (FDO Bug #12919)
8 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
10 * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
12 * dbus/dbus-spawn.c (read_ints, read_pid): use correct ssize_t type
13 instead of size_t (FDO Bug #12862)
15 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
17 * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
19 * dbus/dbus-errors.c (dbus_set_error): make sure to call va_end if we
20 hit an OOM error inside va_start (FDO Bug #12846)
22 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
24 * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
26 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
27 fix possible crash if pending_return is NULL (FDO Bug #12673)
29 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
31 * portions of patch submitted by Tim Mooney
32 <enchanter at users dot sourceforge dot net>
34 * configure.in: never auto-select libxml (FDO Bug #12479)
36 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
38 * patches by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
40 * dbus/dbus-sysdeps-unix (_dbus_get_autolaunch_address): handle OOM
43 * dbus/dbus-uuidgen.c (return_uuid): handle OOM (FDO Bug #12928)
45 * dbus/dbus-misc.c (dbus_get_local_machine_id): handle OOM, fix return
46 value to return NULL not FALSE (FDO Bug #12946)
48 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
50 * bus/bus.c (bus_context_check_security_policy): rewrite selinux error
51 handling to not abort due to a NULL read and to set the error only if
52 it is not already set (Based off of FDO Bug #12430)
54 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
56 * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
58 * dbus/dbus-internals.c (_dbus_read_uuid_file_without_creating,
59 _dbus_create_uuid_file_exclusively): add OOM handling (FDO Bug #12952)
61 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
63 * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
65 * dbus/dbus-spawn.c (babysit, babysitter_iteration): add error
66 handling when polling (FDO Bug #12954)
68 2008-01-15 John (J5) Palmieri <johnp@redhat.com>
70 * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
72 * bus/config-parser.c (locate_attributes): remove dead code which
73 always evaluated to TRUE
75 * dbus/dbus-shell.c (_dbus_shell_quote): remove unused code
77 2008-01-14 John (J5) Palmieri <johnp@redhat.com>
79 * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
81 * bus/connection.c (bus_connection_complete): plug a possible
82 BusClientPolicy leak (FDO Bug #13242)
84 2008-01-14 John (J5) Palmieri <johnp@redhat.com>
86 * patch by Frederic Crozat <fcrozat at mandriva dot com> (FDO Bz#
91 * bus/Makefile.am: add inotify module to the build
93 * bus/dir-watch-inotify.c: inotify module based off the dnotify and
96 * configure.in: add checks and switch for inotify
97 also add a printout at the end of configure if inotify and kqueue
98 support is being built in (dnotify already had this)
100 2008-01-14 John (J5) Palmieri <johnp@redhat.com>
102 * patch by Frederic Crozat <fcrozat at mandriva dot com>
104 * bus/dir-watch-dnotify.c (bus_watch_directory): watch for file
107 2008-01-14 John (J5) Palmieri <johnp@redhat.com>
109 * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
111 * dbus/dbus-transport-socket.c(do_reading): return message
112 loader buffer in case of OOM (FDO Bug#12666)
114 2008-01-14 John (J5) Palmieri <johnp@redhat.com>
116 * configure.in: add warning to output when libxml is selected since
117 we don't have a libxml maintainer and expat works perfectly fine
118 for what we need an xml parser for
120 2008-01-14 John (J5) Palmieri <johnp@redhat.com>
122 * Patch by Andrea Luzzardi <scox at sig11 dot org>: creates a
123 _dbus_geteuid function to fix EXTERNAL authentication in setuid
126 * dbus/dbus-sysdeps-unix.c (_dbus_geteuid): used to get the effective
127 uid of the running program
128 (_dbus_credentials_add_from_current_process): use geteuid instead of
130 (_dbus_append_user_from_current_process): use geteuid instead of
133 * dbus/dbus-sysdeps-util-unix.c (_dbus_change_to_daemon_user): use
134 geteuid instead of getuid
135 (_dbus_unix_user_is_at_console): use geteuid instead of getuid
137 * dbus/dbus-sysdeps-win.c (_dbus_geteuid): add a windows equivilant
138 that returns DBUS_UID_UNSET
140 2007-12-18 Havoc Pennington <hp@redhat.com>
142 * dbus/dbus-connection.c (_dbus_connection_block_pending_call):
143 fix location of curly braces
145 2007-11-23 Sjoerd Simons <sjoerd@luon.net>
147 * tools/dbus-launch.c: let both a normal dbus-launch and an
148 autolaunched bus save their parameters in X11 if possible. This makes
149 the autolaunch and non-autolaunch behaviour more similar. With the
150 exception that on a normal launch there will always be a new session
151 bus and not being able to save parameters is not fatal. This also
152 enables to launch programs directly with autolaunch (not very usefull
155 2007-10-31 Havoc Pennington <hp@redhat.com>
157 * bus/selinux.c (log_audit_callback): rewrite to use
158 _dbus_string_copy_to_buffer_with_nul()
160 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): change to NOT
161 nul-terminate the buffer; fail an assertion if there is not enough
162 space in the target buffer. This fixes two bugs where
163 copy_to_buffer was used to copy the binary bytes in a UUID, where
164 nul termination did not make sense. Bug reported by David Castelow.
165 (_dbus_string_copy_to_buffer_with_nul): new function that always
166 nul-terminates the buffer, and fails an assertion if there is not
167 enough space in the buffer.
169 2007-10-23 Havoc Pennington <hp@redhat.com>
171 * bus/bus.c (bus_context_new): use the new name here
173 * bus/selinux.c (bus_selinux_audit_init): rename from audit_init()
174 to avoid possible libc conflict, and declare it in .h file to
177 2007-10-19 Havoc Pennington <hp@redhat.com>
179 * bus/bus.c (bus_context_new): put audit_init() in HAVE_SELINUX
181 2007-10-19 Havoc Pennington <hp@redhat.com>
183 * bus/bus.c (bus_context_new): put the audit_init() in here
184 instead, which I believe ends up being the same as where it was
185 before, though I'm not sure I understand why it goes here.
187 * dbus/dbus-sysdeps-util-unix.c (_dbus_change_to_daemon_user):
188 remove audit_init() from here, this file can't depend on code in
191 2007-10-16 Simon McVittie <simon.mcvittie@collabora.co.uk>
193 * configure.in: *Actually* fix detection of i486 atomic ops -
194 my previous attempt at a fix would always enable them due to wrong
195 quoting. Patch from Colin Walters <walters@verbum.org>
197 2007-10-11 Simon McVittie <simon.mcvittie@collabora.co.uk>
199 * configure.in: enable Autoconf's AC_C_INLINE to avoid compilation
200 failure with gcc -ansi
201 * dbus/dbus-macros.h, dbus/dbus-arch-deps.h.in: Use new macro
202 _DBUS_GNUC_EXTENSION (the same as G_GNUC_EXTENSION) to avoid -ansi
203 warnings about use of "long long".
204 * dbus/dbus-server-socket.c: remove unused variable when assertions
206 * dbus/dbus-marshal-validate.c: avoid empty statements by removing
208 * tools/dbus-launch.c: convert C++-style comment to C-style, add {}
210 * .gitignore: ignore vi swapfiles
211 * dbus/dbus-errors.h, dbus/dbus-errors.c: Add DBUS_ERROR_INIT macro,
212 equivalent to calling dbus_error_init() on an uninitialized DBusError
213 * dbus/dbus-address.c, dbus/dbus-auth-script.c, dbus/dbus-auth-util.c,
214 dbus/dbus-connection.c, dbus/dbus-internals.c, dbus/dbus-keyring.c,
215 dbus/dbus-message-util.c, dbus/dbus-server.c, dbus/dbus-sha.c,
216 dbus/dbus-spawn-win.c, dbus/dbus-spawn.c,
217 dbus/dbus-sysdeps-util-win.c, dbus/dbus-transport-socket.c,
218 dbus/dbus-transport.c, dbus/dbus-userdb.c: use that macro instead of
219 calling dbus_error_init() where it's clearly equivalent
220 * configure.in, dbus/dbus-sysdeps.h, dbus/dbus-sysdeps-unix.c: Fix
221 detection of i486 atomic ops. Previously, the attempts to determine
222 support at compile-time on Darwin were causing the i486 atomic ops to
223 be used on *all* i386 or x86-64 GCC builds (AH_VERBATIM can't be
224 conditionalized like we were trying to).
226 2007-10-10 Simon McVittie <simon.mcvittie@collabora.co.uk>
228 * dbus/dbus-errors.c, dbus/dbus-protocol.h: Add new error
229 org.freedesktop.DBus.Error.ObjectPathInUse
230 * dbus/dbus-object-tree.h, dbus/dbus-object-tree.c,
231 dbus/dbus-connection.c, dbus/dbus-connection.h: add new functions
232 dbus_connection_try_register_object_path and
233 dbus_connection_try_register_fallback, which raise ObjectPathInUse
234 rather than asserting, to make object path registration less painful
236 * .gitignore: add various things that weren't in .cvsignore because
237 CVS implicitly ignored them; generally bring up to date
239 2007-10-09 John (J5) Palmieri <johnp@redhat.com>
241 * tools/run-with-tmp-session-bus.sh: Fix env exports for better
243 * tools/dbus-send.1: Document syntax for container types in dbus-send
244 man file (#9553) - patch from Jack Spaar <jspaar at
245 users.sourceforge.net>
247 [Both OK for MIT/X11 relicensing -smcv]
249 2007-10-09 Simon McVittie <simon.mcvittie@collabora.co.uk>
251 * doc/dbus-specification.xml: Specifically forbid empty structs (#7969)
252 * doc/dbus-specification.xml: Patches from Kristoffer Lundén to clarify
253 description of DBUS_COOKIE_SHA1 (#10184) and allowable contents of a
254 variant (#10185, amended as per Havoc's comments)
256 [All of the above are OK for MIT/X11 licensing]
258 2007-10-03 John (J5) Palmieri <johnp@redhat.com>
260 * dbus/dbus-internals.h: fd.o bug #11678 Don't error out if compiler
261 does not support vararg macros. _dbus_verbose is the only function
262 that does this so make it a noop if vararg macros are not supported
263 * bus/selinux.c, dbus/dbus-sysdeps-util-unix.c: fd.o bug #12429
264 Reverse check to setpcap and only init audit if we were root
265 (patch by Dan Walsh <dwalsh@redhat.com>,
266 https://bugs.freedesktop.org/show_bug.cgi?id=12429). Reverse
267 we_were_root check to setpcap if we were root. Also only init audit
268 if we were root. So error dbus message will not show up when policy
269 reload happens. dbus -session will no longer try to send audit
270 message, only system will.
271 * configure.in: fd.o bug #11872 improve linker test for --gc-sections.
272 Patch by Tim Mooney <enchanter at users.sourceforge.net>
273 * configure.in, dbus/dbus-sysdeps.c: fd.o bug #11872 fix clearenv for
274 systems that do not have it. Patch from Brian Cameron <brian.cameron
276 * tools/dbus-launch.c: fd.o bug #12547 remove superfluous if.
277 Also convert tabs to spaces
278 * configure.in, bus/Makefile.am, dbus/Makefile.am: Correctly implement
279 -fPIC and -fPIE. For security reasons we want possition independent
280 code for libraries and possition independent executable for
281 executables. Before we were just enabling -fPIC. Now we correctly
282 enable -fPIC and -PIE for libdbus and the bus respectively. Proper
283 LD_FLAGS are set for each also.
285 2007-09-20 Ryan Lortie <desrt@desrt.ca>
287 Add argument path matching support. Bug #11066.
289 * dbus/signals.c (struct DBusMatchRule, bus_match_rule_new,
290 bus_match_rule_set_arg, bus_match_rule_parse_arg_match,
291 match_rule_matches): Add support for parsing and matching on
292 arg0path='/some/path' type rules.
294 * dbus/signals.h (bus_match_rule_set_arg): change to take const
295 DBusString instead of const char * for the string to match against.
297 * dbus/dbus-bus.c: add a quick note to dbus_bus_add_match
298 documentation about the path matching.
300 * doc/dbus-specification.xml: add a more detailed description of the
303 2007-09-19 Ryan Lortie <desrt@desrt.ca>
305 Add support for compacting DBusStrings to release wasted memory.
307 * dbus/dbus-string.[ch] (compact, _dbus_string_compact,
308 _dbus_string_lock): new compact function to free up allocated memory
309 that is no longer used.
311 * dbus/dbus-message.c (load_message): call _dbus_string_compact on the
312 message loader buffer.
314 * dbus/dbus-transport-socket.c (do_reading, do_writing): call
315 _dbus_string_compact on the incoming/outgoing "encoded" buffers.
317 * dbus/dbus-string-util.c (_dbus_string_test): add a few tests for
320 2007-09-13 Ryan Lortie <desrt@desrt.ca>
322 * HACKING: add more explicit git branch/tag instructions
324 2007-09-13 Ryan Lortie <desrt@desrt.ca>
326 migrate from cvs to git (cvs2svn -> git-svnimport).
328 * HACKING: update release/branch/tag instructions
329 * */.cvsignore: rename to .gitignore
331 also, clean up tags and branch names to conform to HACKING
333 2007-08-17 William Jon McCann <mccann@jhu.edu>
335 * update-dbus-docs.sh: upload DTD to server
337 2007-08-17 Havoc Pennington <hp@redhat.com>
339 * tools/dbus-launch-x11.c (set_address_in_x11): fix from Michael
340 Lorenz to use long not int with XChangeProperty format 32
342 * dbus/dbus-sysdeps-util-unix.c
343 (_dbus_write_pid_to_file_and_pipe): factor this out, and use the
344 same code in _dbus_become_daemon (where the parent writes the pid
345 file and to the pid pipe) and in bus_context_new (where the daemon
346 writes its own pid file and to its own pid pipe)
348 * bus/bus.c (bus_context_new): close the pid pipe after we print
349 to it. Also, don't write the pid to the pipe twice when we fork,
350 someone reported this bug a long time ago.
352 2007-08-03 Havoc Pennington <hp@redhat.com>
354 * configure.in: add major/minor/micro version number AC_SUBST
356 * dbus/dbus-arch-deps.h.in (DBUS_MAJOR_VERSION,
357 DBUS_MINOR_VERSION, DBUS_MICRO_VERSION, DBUS_VERSION_STRING,
358 DBUS_VERSION): collection of macros to get version of library we
359 are compiled against.
361 * dbus/dbus-misc.c (dbus_get_version): new function, to get
362 version of library we are linked against at runtime.
364 2007-07-30 Havoc Pennington <hp@redhat.com>
366 * bus/activation-helper.c (check_bus_name): don't use
367 _dbus_check_valid_bus_name() which is only around with
368 --enable-checks, instead use _dbus_validate_bus_name().
369 Bug #11766 from Diego <diego@pemas.net>
371 2007-07-27 Havoc Pennington <hp@redhat.com>
373 * configure.in: post-release version bump
375 2007-07-27 Havoc Pennington <hp@redhat.com>
379 2007-07-26 Havoc Pennington <hp@redhat.com>
381 * bus/config-parser-trivial.c (check_return_values): disable a
382 test that hardcoded the bus user's name
384 * bus/dispatch.c (bus_dispatch_test_conf): remove the "if
385 (!use_launcher)" around the tests, they were only failing because
386 we didn't pass through all the expected errors from the helper.
388 * bus/activation-exit-codes.h
389 (BUS_SPAWN_EXIT_CODE_CHILD_SIGNALED): add a code for child segfaulting
390 (BUS_SPAWN_EXIT_CODE_GENERIC_FAILURE): make "1" be a generic
391 failure code, so if a third party launch helper were written it
392 could just always return 1 on failure.
394 2007-07-24 Daniel P. Berrange <dan@berrange.com>
396 * bus/dbus-daemon.1: Add docs on new syntax options for the bus
399 * dbus/dbus-address.c: Allow * in addresses (for binding to all
402 * dbus/dbus-sysdeps.h:
403 * dbus/dbus-sysdeps-unix.c: Re-write to use getaddrinfo instead
404 of gethostbyname to enable protocol independant name lookup,
407 * dbus/dbus-server-socket.h:
408 * dbus/dbus-server-socket.c: Add support for 'family' in the
409 address string to specify ipv4 vs ipv6. Use a port string to
410 allow for service resolution. Allow for binding to multiple
411 sockets at once in case of dual IPv4 & IPv6 stacks.
413 * dbus/dbus-server-unix.c: Pass in an array of file descriptors
414 instead of a single one.
416 * dbus/dbus-transport-socket.h:
417 * dbus/dbus-transport-socket.c: Add support for 'family' in the
418 address string to specify ipv4 vs ipv6. Use a port string to
419 allow for service resolution.
421 2007-07-24 Havoc Pennington <hp@redhat.com>
423 * configure.in: add AM_PROG_CC_C_O to allow per-target CPPFLAGS
425 * bus/dispatch.c (bus_dispatch_test_conf): Fix up setting
426 TEST_LAUNCH_HELPER_CONFIG to include the full path, and enable
427 test shell_fail_service_auto_start when use_launcher==TRUE
429 * bus/activation-helper-bin.c (convert_error_to_exit_code): pass
430 through the INVALID_ARGS error so the test suite works
432 * bus/activation.c (handle_activation_exit_error): return
433 DBUS_ERROR_NO_MEMORY if we get BUS_SPAWN_EXIT_CODE_NO_MEMORY
435 * dbus/dbus-spawn.c (_dbus_babysitter_get_child_exit_status):
436 return only the exit code of the child, not the entire thingy from
437 waitpid(), and make the return value indicate whether the child
438 exited normally (with a status code)
440 * bus/bus.c (process_config_first_time_only): _dbus_strdup works
441 on NULL so no need to check
442 (process_config_every_time): move servicehelper init here, so we
443 reload it on HUP or config file change
445 * bus/Makefile.am (install-data-hook): remove comment because
446 Emacs make mode seems to be grumpy about it
448 2007-07-24 Richard Hughes <richard@hughsie.com>
451 * bus/test-system.c: (die), (check_memleaks), (test_pre_hook),
452 (test_post_hook), (main):
453 Add back the test-system.c file - not sure now this got ignored in the
456 2007-07-24 Richard Hughes <richard@hughsie.com>
459 Use ustar to generate the tarball; this fixes the make distcheck
460 problem when the data files do not fit in the archive:
461 tar: dbus-1.1.2/test/data/valid-service-files/org.freedesktop.DBus.
462 TestSuiteShellEchoServiceFail.service.in: file name is too
463 long (max 99); not dumped
465 We have to have the 'long' names as the service helper matches by
466 filename rather than by the name in the service file.
468 2007-07-24 Richard Hughes <richard@hughsie.com>
472 * test/data/invalid-service-files-system/org.freedesktop.DBus.TestS
473 uiteNoExec.service.in:
474 * test/data/invalid-service-files-system/org.freedesktop.DBus.TestS
475 uiteNoService.service.in:
476 * test/data/invalid-service-files-system/org.freedesktop.DBus.TestS
477 uiteNoUser.service.in:
478 * test/data/valid-config-files-system/debug-allow-all-fail.conf.in:
479 * test/data/valid-config-files-system/debug-allow-all-pass.conf.in:
480 * test/data/valid-config-files/debug-allow-all-sha1.conf.in:
481 * test/data/valid-config-files/debug-allow-all.conf.in:
482 * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
483 teEchoService.service.in:
484 * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
485 teSegfaultService.service.in:
486 * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
487 teShellEchoServiceFail.service.in:
488 * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
489 teShellEchoServiceSuccess.service.in:
490 * test/data/valid-service-files/debug-echo.service.in:
491 * test/data/valid-service-files/debug-segfault.service.in:
492 * test/data/valid-service-files/debug-shell-echo-fail.service.in:
493 * test/data/valid-service-files/debug-shell-echo-success.service.in:
494 * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoS
496 * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfa
497 ultService.service.in:
498 * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShell
499 EchoServiceFail.service.in:
500 * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShell
501 EchoServiceSuccess.service.in:
502 Add the data files needed by the system activation unit checks.
504 2007-07-24 Richard Hughes <richard@hughsie.com>
506 * bus/dispatch.c: (check_segfault_service_no_auto_start),
507 (check_launch_service_file_missing),
508 (check_launch_service_user_missing),
509 (check_launch_service_exec_missing),
510 (check_launch_service_service_missing), (bus_dispatch_test_conf),
511 (bus_dispatch_test_conf_fail), (bus_dispatch_test):
512 Add unit tests for system activation. Most are copied from the
513 session activation tests, but some didn't apply when using a laucher.
515 2007-07-24 Richard Hughes <richard@hughsie.com>
517 * bus/activation.c: (bus_activation_activate_service):
518 If the bus uses a service-laucher, then use the setuid laucher.
520 2007-07-24 Richard Hughes <richard@hughsie.com>
523 Add the needed library exports for the new laucher.
525 2007-07-24 Richard Hughes <richard@hughsie.com>
528 Check for -Wl,--gc-sections so we can really reduce the size of the
531 2007-07-24 Richard Hughes <richard@hughsie.com>
533 * bus/activation.c: (handle_activation_exit_error),
534 (babysitter_watch_callback):
535 Map the child exit status integer to a proper dbus error.
537 2007-07-24 Richard Hughes <richard@hughsie.com>
539 * bus/bus.c: (process_config_first_time_only),
540 (process_config_every_time), (bus_context_unref),
541 (bus_context_get_servicehelper):
543 Add the concept of a service-helper and allow it's value to be read.
545 2007-07-24 Richard Hughes <richard@hughsie.com>
547 * bus/activation.c: (bus_activation_entry_unref),
548 (update_desktop_file_entry):
549 Add the concept of, and read the value of user from the desktop file.
550 The user string is not required unless we are using system activation.
552 2007-07-24 Richard Hughes <richard@hughsie.com>
555 * bus/desktop-file.h:
556 Move the defines into the header file, as we use these in the lauch
557 helper as well as the desktop file parsing.
559 2007-07-24 Richard Hughes <richard@hughsie.com>
562 Add the autogenerated binary files.
564 2007-07-24 Richard Hughes <richard@hughsie.com>
568 Add the build glue for the lauch helper, and also add the launch-helper
569 OOM checks into make check. I've probably broken the build, give me 2.
571 2007-07-24 Richard Hughes <richard@hughsie.com>
573 * bus/test-launch-helper.c: (die), (check_memleaks),
574 (test_post_hook), (bus_activation_helper_oom_test), (main):
575 Add a test wrapper to allow OOM checks on the launch helper.
577 2007-07-24 Richard Hughes <richard@hughsie.com>
579 * bus/activation-helper-bin.c: (convert_error_to_exit_code),
581 * bus/activation-helper.c: (desktop_file_for_name),
582 (clear_environment), (check_permissions), (check_service_name),
583 (get_parameters_for_service), (switch_user),
584 (exec_for_correct_user), (check_bus_name), (get_correct_parser),
585 (launch_bus_name), (check_dbus_user), (run_launch_helper):
586 * bus/activation-helper.h:
587 Add the initial launch-helper. This is split into a main section and a
588 binary loader that allows us to lauch the main section in another test
589 harness to do stuff like OOM testing. No build glue yet.
591 2007-07-24 Richard Hughes <richard@hughsie.com>
594 * bus/config-parser.c: (bus_config_parser_unref),
595 (start_busconfig_child), (bus_config_parser_end_element),
596 (servicehelper_path), (bus_config_parser_content),
597 (bus_config_parser_finished),
598 (bus_config_parser_get_servicehelper),
599 (test_default_session_servicedirs),
600 (test_default_system_servicedirs), (bus_config_parser_test):
601 * bus/config-parser.h:
602 Make the config-parser code use the common config code.
603 Also add the session and systemdirs stuff, and make the config parser
604 aware of the servicehelper field.
606 2007-07-24 Richard Hughes <richard@hughsie.com>
608 * bus/system.conf.in:
609 Add new servicehelper fields to the default system.conf file.
611 2007-07-24 Richard Hughes <richard@hughsie.com>
613 * bus/config-parser-trivial.c: (service_dirs_find_dir),
614 (service_dirs_append_link_unique_or_free), (bus_config_parser_new),
615 (bus_config_parser_unref), (bus_config_parser_start_element),
616 (bus_config_parser_end_element), (bus_config_parser_content),
617 (bus_config_parser_finished), (bus_config_parser_get_user),
618 (bus_config_parser_get_type), (bus_config_parser_get_service_dirs),
619 (check_return_values), (do_load), (check_loader_oom_func),
620 (process_test_valid_subdir), (make_full_path), (check_file_valid),
621 (bus_config_parser_trivial_test):
622 * bus/config-parser-trivial.h:
623 Add a security sensitive stripped down config parser for the setuid
624 launcher. This file only reads what it needs, and doesn't try to do
625 anything remotely clever like including external files.
626 It is not intended to validate the config file; it is expected that
627 config-parser will do that before the setuid program tries to read it.
629 2007-07-24 Richard Hughes <richard@hughsie.com>
631 * bus/config-parser-common.c:
632 (bus_config_parser_element_name_to_type),
633 (bus_config_parser_element_type_to_name):
634 * bus/config-parser-common.h:
635 We don't want to run the whole config parser with all it's deps in the
636 setuid program. We need to implement a stripped down config parser just
637 for the launcher, and to do so I need some common functions and
638 defines; add them here.
640 2007-07-24 Richard Hughes <richard@hughsie.com>
642 * dbus/dbus-sysdeps-unix.c:
643 (_dbus_get_standard_system_servicedirs):
644 * dbus/dbus-sysdeps-win.c:
645 Provide a way to get the standard system servicedirs, just like we do
646 for the session service dirs. These should be seporate, as there may
647 be a security issue starting up some session stuff as root.
648 The use-case for the same binary starting up per-system _and_
649 per-session is also not valid.
651 2007-07-24 Richard Hughes <richard@hughsie.com>
653 * bus/dbus-daemon.1.in:
654 Add standard_system_servicedirs and servicehelper into the man file
655 and explain what each does.
657 2007-07-24 Richard Hughes <richard@hughsie.com>
660 Add servicehelper into the dtd, it will soon be a valid part of the
663 2007-07-24 Richard Hughes <richard@hughsie.com>
665 * dbus/dbus-spawn.c: (read_data),
666 (_dbus_babysitter_get_child_exit_status):
668 Add a function so we can get access to the exit status of the launch
670 By providing the return code and not the error we can leave the
671 'what does this mean?' to the bus launch code and not include it in the
674 2007-07-24 Richard Hughes <richard@hughsie.com>
676 * bus/activation-exit-codes.h:
677 Add defines which specify the output codes of the launch helper.
678 We have to use exit codes as this is the only way we can return failure
679 type without going grotty things like redirecting possibly-nonsecure
680 stderr into the error.
682 2007-07-24 Richard Hughes <richard@hughsie.com>
684 * dbus/dbus-protocol.h:
685 Add new error names needed for the launch helper.
687 2007-07-24 Richard Hughes <richard@hughsie.com>
689 * dbus/dbus-sysdeps.c: (_dbus_clearenv):
690 * dbus/dbus-sysdeps.h:
691 Add a wrapper for clearenv.
693 2007-07-24 Richard Hughes <richard@hughsie.com>
695 * doc/system-activation.txt:
696 Add design document for the system activation parts. I'll shortly be
697 committing many patches that add system activation using a setuid
698 launcher into CVS, so expect things to be broken for a few hours.
700 2007-07-19 Ralf Habacker <ralf.habacker@freenet.de>
702 * cmake/modules/FindKDEWIN.cmake: fixed comment
703 * cmake/modules/FindKDEWIN32.cmake: removed obsolate cmake module
705 2007-07-18 Havoc Pennington <hp@redhat.com>
707 * dbus/dbus-message.c (dbus_message_get_cached)
708 (dbus_message_cache_or_finalize): don't mess with message from
709 message cache outside of the cache lock. Bug #9164 from Jonathan
712 2007-07-13 Havoc Pennington <hp@redhat.com>
714 * Add indent-tabs-mode: nil to all file headers.
716 2007-07-12 Havoc Pennington <hp@redhat.com>
718 * dbus/dbus-sysdeps-util.c (_dbus_sysdeps_test): invert the test
719 for parsing hex as double to be sure it fails to work
721 * dbus/dbus-sysdeps.c (_dbus_string_parse_double): don't allow hex numbers.
723 2007-07-10 Havoc Pennington <hp@redhat.com>
725 * dbus/dbus-connection.c (struct DBusConnection): Fix from Olivier
726 Hochreutiner to avoid trying to protect individual bits in a word
727 with different locks (make dispatch_acquired and io_path_acquired
728 dbus_bool_t rather than bitfields)
730 2007-07-09 Ralf Habacker <ralf.habacker@freenet.de>
732 * dbus/dbus-sysdeps-win.c,dbus-sysdeps-win.h,dbus-sysdeps-win-util.c,
733 dbus-sysdeps-spawn-win.c: synced with windbus sources
735 2007-07-07 Ralf Habacker <ralf.habacker@freenet.de>
737 * dbus/dbus-sysdeps-win.c
738 (_dbus_getsid): remove unused jump label
739 (_dbus_read_credentials_socket): _dbus_string_init could fail,
741 (_dbus_get_working_dir, _dbus_init_working_dir): remove unused
744 2007-07-04 Ralf Habacker <ralf.habacker@freenet.de>
746 * cmake/modules/FindKDEWIN.cmake: search in <program files dir>\win32libs
747 for windows supplementary packages too
749 2007-06-30 Ralf Habacker <ralf.habacker@freenet.de>
751 * cmake/dbus/CMakeLists.txt: handle userdb as unix file
753 2007-06-30 Ralf Habacker <ralf.habacker@freenet.de>
755 * dbus/dbus-sysdeps-win.c,dbus/dbus-sysdeps-win.h: removed obsolate
758 2007-06-30 Ralf Habacker <ralf.habacker@freenet.de>
760 * dbus/dbus-sysdeps-win.c (_dbus_daemon_init): reduced compiler warnings
762 2007-06-23 Ralf Habacker <ralf.habacker@freenet.de>
764 * dbus/dbus-auth-script.c (_dbus_auth_script_run): added UNIX_ONLY and
765 WIN_ONLY commands for auth scripts
766 * test/data/auth/external-root.auth-script: limit execution to unix
768 2007-06-21 Havoc Pennington <hp@redhat.com>
770 * dbus/dbus-tranport.c (auth_via_default_rules): made the verbose spam
773 2007-06-21 Havoc Pennington <hp@redhat.com>
775 * dbus/dbus-watch.c (dbus_watch_get_fd): 1) its behavior should
776 not be the same as before, the ABI has never been declared stable
777 on Windows and 2) do not commit to cross-platform files without
778 posting the exact patch to the mailing list
780 * dbus/dbus-sysdeps-util.c (_dbus_sysdeps_test): as I have pointed
781 out before, either 0xff needs to work on both platforms, or none
782 of the dbus code can rely on it working. That means the options
783 are 1) audit the code for anywhere that relies on 0xff working, if
784 none found ideally add a test that it *doesn't* work and make unix
785 reject it explicitly, but in any case this test would go away or
786 2) make it work on Windows also, then we don't have to figure out
787 whether we rely on it.
789 And in either case, post the exact patch to the mailing list and
792 2007-06-21 Ralf Habacker <ralf.habacker@freenet.de>
794 * cmake/CMakeLists.txt: added VERSION_PATCH to be able to
795 distinguish win32 binary release from dbus versioning
797 2007-06-21 Ralf Habacker <ralf.habacker@freenet.de>
799 * dbus/dbus-sysdeps-win.c: deleted local DBusCredentials structure
800 (_dbus_getsid): new function
801 (_dbus_read_credentials_socket): used correct function
802 (_dbus_append_user_from_current_process,
803 _dbus_credentials_add_from_current_process): added real
805 (_dbus_credentials_parse_and_add_desired,_dbus_parse_uid):
808 2007-06-21 Ralf Habacker <ralf.habacker@freenet.de>
810 * dbus/dbus-sysdeps-util.c (_dbus_sysdeps_test): don't check
811 0xff as floating point, this isn't supported on win32 math
814 2007-06-21 Ralf Habacker <ralf.habacker@freenet.de>
816 * dbus/dbus-sysdeps-win.c (_dbus_homedir_from_username,
817 _dbus_homedir_from_current_process, _dbus_append_desired_identity):
818 removed obsolate functions
820 2007-06-21 Ralf Habacker <ralf.habacker@freenet.de>
822 * dbus/dbus-sysdeps-win.c, dbus/dbus-sysdeps-util-win.c,
823 dbus/dbus-sysdeps-win.h: disabled uid/sid conversation stuff
824 implementation by Peter Kuemmel
826 2007-06-21 Ralf Habacker <ralf.habacker@freenet.de>
828 * dbus/dbus-watch.c (dbus_watch_get_fd): this function is
829 deprecated and its behavior should be as before until all
830 client code is migrated.
832 2007-06-19 Ralf Habacker <ralf.habacker@freenet.de>
834 * dbus/dbus-sysdeps-util-win.c, tools/dbus-launch-win.c:
835 msvc7.1 fixes by Jaroslaw Staniek tested with mingw
837 2007-06-19 Ralf Habacker <ralf.habacker@freenet.de>
839 * dbus/dbus-sysdeps-win.c, dbus/dbus-sysdeps-spawn-win.c,
840 dbus/dbus-sysdeps-win.h: disabled DBusSocket implementation
843 2007-06-18 Ralf Habacker <ralf.habacker@freenet.de>
845 * dbus-win.patch: removed obsolate patches
847 2007-06-18 Havoc Pennington <hp@redhat.com>
849 * configure.in: bump version to 1.1.2 so CVS is higher than last
850 release (this is not the 1.1.2 release)
852 2007-06-18 Havoc Pennington <hp@redhat.com>
856 2007-06-18 Havoc Pennington <hp@redhat.com>
858 * doc/dbus-specification.xml: document org.freedesktop.DBus.GetId()
860 * bus/driver.c (bus_driver_handle_get_id): implement org.freedesktop.DBus.GetId()
862 * bus/bus.c (bus_context_new): generate a unique ID for each bus context
864 * dbus/dbus-connection.c (dbus_connection_get_server_id): new function
866 * dbus/dbus-bus.c (dbus_bus_get_id): new function
868 * dbus/dbus-server.c (dbus_server_get_id): new function
870 2007-06-18 Havoc Pennington <hp@redhat.com>
872 * dbus/dbus-sysdeps-unix.c (_dbus_read_credentials_socket): clean
873 this up a little bit, to try and understand why telnet'ing to a
874 server and sending a non-nul byte didn't disconnect immediately;
875 now it seems that it does disconnect immediately as it should,
876 though I don't understand what has changed.
878 2007-06-18 Havoc Pennington <hp@redhat.com>
880 * dbus/dbus-watch.c (dbus_watch_get_socket)
881 (dbus_watch_get_unix_fd): new API to match DBusConnection
882 (dbus_watch_get_fd): deprecate this
884 Throughout: just s/dbus_watch_get_fd/dbus_watch_get_socket/g for
885 now since all the transports use sockets anyway
887 2007-06-16 Ralf Habacker <ralf.habacker@freenet.de>
889 * dbus/dbus-macros.h, dbus/dbus-message.c,
890 dbus/dbus-message.h: renamed DBUS_GNUC_DEPRECATED
891 to DBUS_DEPRECATED and extended to msvc compiler
893 2007-06-15 Ralf Habacker <ralf.habacker@freenet.de>
895 * cmake/CMakeLists.txt: use local include header first
897 * dbus/dbus-sysdeps-win.c: mingw fix of DBusCredential struct
899 2007-06-15 Ralf Habacker <ralf.habacker@freenet.de>
901 * cmake/ConfigureChecks.cmake,cmake/config.h.cmake:
902 added check for HAVE_ERRNO_H
904 * cmake/dbus/CMakeLists.txt: added missing files
906 * dbus/dbus-transport-win.c/.h: new files
908 * dbus/dbus-sysdeps-win.c,.h: added required _unix functions
909 to make dbus compilable on win32
911 * dbus/dbus-sysdeps-win-utils.c,.h: moved some functions to
914 * dbus-win.patch: removed applied or obsolate patches
916 Note: dbus-win32 is now compilable, no guarantee that it runs
919 2007-06-15 Havoc Pennington <hp@redhat.com>
921 * dbus/dbus-sysdeps-unix.c (_dbus_append_session_config_file)
922 (_dbus_append_system_config_file): new functions
924 * bus/main.c (main): use _dbus_append_system_config_file() and
925 _dbus_append_session_config_file()
927 * dbus/Makefile.am (INCLUDES): move DBUS_SYSTEM_CONFIG_FILE and
928 DBUS_SESSION_CONFIG_FILE into this makefile
930 2007-06-15 Havoc Pennington <hp@redhat.com>
932 * dbus/dbus-sysdeps.c (_dbus_set_errno_to_zero)
933 (_dbus_get_is_errno_nonzero, _dbus_get_is_errno_eintr)
934 (_dbus_strerror_from_errno): family of functions to abstract
935 errno, though these are somewhat bogus (really we should make our
936 socket wrappers not use errno probably - the issue is that any
937 usage of errno that isn't socket-related probably is not
938 cross-platform, so should either be in a unix-only file that can
939 use errno directly, or is a bug - these general errno wrappers
940 hide issues of this nature in non-socket code, while
941 socket-specific API changes would not since sockets are allowed
944 2007-06-14 Havoc Pennington <hp@redhat.com>
946 * bus/dispatch.c (check_get_connection_unix_process_id): mop up
947 getpid() (noticed by Peter Kümmel) and adapt the test to
948 expect a "pid unknown" error when running on Windows.
950 2007-06-14 Havoc Pennington <hp@redhat.com>
952 * dbus/dbus-sysdeps-unix.c (_dbus_credentials_parse_and_add_user):
953 delete this function since it was effectively the same as
954 _dbus_credentials_add_from_username()
956 2007-06-14 Havoc Pennington <hp@redhat.com>
958 * dbus/dbus-auth.c: adapt to keyring changes
960 * dbus/dbus-keyring.c: change to avoid using user ID and home
961 directory directly; instead use a
962 keyring-location-from-credentials function in dbus-sysdeps
964 * fix to use _dbus_append_user_from_current_process() instead of
965 _dbus_username_from_current_process() or _dbus_append_desired_identity().
967 2007-06-14 Ralf Habacker <ralf.habacker@freenet.de>
969 * reverted global rename of function _dbus_username_from_current_process.
970 It needs too much tests to verify that the change does not break anything.
971 I had overseen that the signatures are different and requires non
973 This is one *major* disadvantage of emulating oop functionality with c.
974 You are responsible for cleaning every object on every function return point
975 which could be a nightmare if you are not working with dbus all the days.
977 2007-06-14 Ralf Habacker <ralf.habacker@freenet.de>
979 * dbus/dbus-auth.c (handle_client_initial_response_cookie_sha1_mech):
980 fixed usage of _dbus_append_desired_identity()
982 * dbus/dbus-sysdeps.h (_dbus_username_from_current_process): removed prototype
984 2007-06-14 Ralf Habacker <ralf.habacker@freenet.de>
986 * dbus/dbus-sysdeps.c: moved global lock system_users from dbus-userdb.c
988 2007-06-14 Ralf Habacker <ralf.habacker@freenet.de>
990 * global rename of function _dbus_username_from_current_process
991 to _dbus_append_desired_identity.
992 Approved by Havoc Pennington
994 2007-06-14 Ralf Habacker <ralf.habacker@freenet.de>
996 * dbus/dbus-sysdeps-win.c: disabled DBusUserInfo related code
997 (_dbus_append_desired_identity, _dbus_windows_user_is_process_owner):
998 new win32 functions as counterpart of unix related
999 (_dbus_send_credentials_socket,_dbus_read_credentials_socket):
1000 renamed from ..._unix_socket
1001 (_dbus_send_credentials_unix_socket): removed obsolate function
1003 * dbus/dbus-sysdeps-win-util.c: disabled DBusGroupInfo related code
1004 (_dbus_verify_daemon_user,_dbus_change_to_daemon_user):
1005 new win32 functions as counterpart of unix related
1007 2007-06-14 Simon McVittie <simon.mcvittie@collabora.co.uk>
1009 * doc/dbus-specification.xml: say the protocol version is 1 instead of
1010 0 (patch from Kristoffer Lundén, fd.o#10033) and remove the FIXME
1011 about removing protocol version from messages (as per Havoc's comment
1014 2007-06-14 Ralf Habacker <ralf.habacker@freenet.de>
1016 * dbus/dbus-sysdeps-win.c (_dbus_pid_for_log,_dbus_flush_caches):
1017 new win32 functions as counterpart of unix related
1019 2007-06-14 Ralf Habacker <ralf.habacker@freenet.de>
1021 * cmake/modules/FindKDEWIN.cmake,
1022 cmake/modules/FindKDEWIN_Packager.cmake,
1023 cmake/modules/Win32Macros.cmake: new files from the
1025 * cmake/CMakeLists.txt: cleaned support for kdewin installer and
1026 win32 explorer wrapper
1028 2007-06-13 Havoc Pennington <hp@redhat.com>
1030 * dbus/dbus-message.c (dbus_message_iter_open_container): Fix
1031 broken return_if_fail (kind of scary that test suite does not
1034 2007-06-13 Havoc Pennington <hp@redhat.com>
1036 * dbus/dbus-server-socket.c (_dbus_server_listen_socket): support
1037 all_interfaces=true|false for tcp servers
1039 * dbus/dbus-sysdeps-unix.c (_dbus_listen_tcp_socket): support
1042 * bus/selinux.c: fix some missing includes
1044 * dbus/dbus-server-socket.c (_dbus_server_listen_socket): allow
1045 port to simply be omitted in addition to specifying 0
1047 2007-06-13 Havoc Pennington <hp@redhat.com>
1049 * configure.ac, bus/selinux.c, dbus/dbus-sysdeps-unix-util.c: add
1050 libaudit support, no clue what this means really but now we have
1051 it. Patches from Fedora package.
1053 * bus/bus.c (bus_context_new): move selinux initialization after
1054 changing to daemon user, patch from Fedora package
1056 * dbus/dbus-transport.c (auth_via_unix_user_function): fix a typo
1058 2007-06-12 Havoc Pennington <hp@redhat.com>
1060 * dbus/dbus-message.c (dbus_message_iter_open_container): improve
1061 the checks/warnings for contained_signature a bit
1063 2007-06-12 Havoc Pennington <hp@redhat.com>
1065 * dbus/dbus-marshal-recursive.c (write_or_verify_typecode):
1066 improve the warning a bit if you write extra data into a message
1068 2007-06-12 Havoc Pennington <hp@redhat.com>
1070 * dbus/dbus-auth.c (sha1_handle_second_client_response)
1071 (handle_server_data_anonymous_mech): add the process ID from
1072 socket credentials, if available, even if not using EXTERNAL
1074 * dbus/dbus-transport.c (auth_via_default_rules): support
1075 allow_anonymous flag
1077 * dbus/dbus-connection.c (dbus_connection_get_is_anonymous)
1078 (dbus_connection_set_allow_anonymous): new API for controlling
1081 2007-06-09 Havoc Pennington <hp@redhat.com>
1083 * dbus/dbus-string.c (_dbus_string_pop_line): fix this not to
1084 think an empty line is the end of the file.
1085 Also, fix some whitespace.
1087 * dbus/dbus-string-util.c: add more tests for
1088 _dbus_string_pop_line() revealing that it thinks an empty line is
1089 the end of the file, which broke dbus-auth-script.c so
1090 it didn't really run the scripts
1092 * dbus/dbus-auth.c: add ANONYMOUS mechanism
1094 * dbus/dbus-auth-script.c (_dbus_auth_script_run): fix to detect
1095 an empty/no-op auth script; add commands to check that we have or
1096 don't have the expected credentials
1098 2007-06-09 Havoc Pennington <hp@redhat.com>
1100 * bus/policy.c (bus_policy_create_client_policy): gracefully
1101 continue if the connection has no unix user - just don't apply
1102 any unix user dependent rules.
1104 * bus/config-parser.c: remove dbus-userdb.h usage
1106 * bus/bus.c: remove dbus-userdb.h usage
1108 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1109 support Windows user function; also, fix the logic for checking
1110 auth as root in the default auth code (broken in the previous
1113 * dbus/dbus-connection.c
1114 (dbus_connection_set_windows_user_function): new function
1115 (dbus_connection_get_windows_user): new function
1117 2007-06-09 Havoc Pennington <hp@redhat.com>
1119 * bus/dispatch.c (check_get_connection_unix_process_id): adapt
1120 since sysdeps-unix.h stuff isn't included anymore
1122 * bus/bus.c (bus_context_new): use more abstract functions to
1123 change user, so they can be no-ops on Windows
1125 * dbus/dbus-credentials.c, dbus/dbus-credentials.h,
1126 dbus/dbus-credentials-util.c: new files containing a fully opaque
1127 DBusCredentials data type to replace the old not opaque one.
1129 * configure.in (DBUS_UNIX): define DBUS_UNIX to match DBUS_WIN on
1132 * dbus/dbus-userdb.h: prohibit on Windows, next step is to clean
1133 up the uses of it in bus/*.c and factor out the parts of
1134 cookie auth that depend on it
1136 2007-06-07 Havoc Pennington <hp@redhat.com>
1138 * dbus/dbus-message.c: improve some docs related to reading values
1141 2007-06-02 Ralf Habacker <ralf.habacker@freenet.de>
1143 * cmake: added cygwin compile support
1145 2007-06-01 Ralf Habacker <ralf.habacker@freenet.de>
1147 * tools/dbus-launch-win.c: new file, replaces script wrapper on win32.
1149 * cmake/dbus-launch.bat.cmake: removed obsolate file
1151 2007-05-31 Ralf Habacker <ralf.habacker@freenet.de>
1153 * bus/main.c (main): uses _dbus_get_config_file_name() to detect
1154 session.conf location on win32.
1156 * dbus-sysdeps-win.h (_dbus_get_config_file_name,_dbus_file_exists):
1157 new prototyp, undefined interface after including windows.h because
1158 it makes trouble when a paramater is named interface.
1160 * dbus-sysdeps-win.c (_dbus_get_install_root,
1161 _dbus_get_config_file_name,_dbus_file_exists): new functions.
1163 2007-05-27 Ralf Habacker <ralf.habacker@freenet.de>
1165 * bus/policy.c,dbus/dbus-internals.c: fixed inconsistant line endings
1166 as reported by Peter Kümmel.
1168 2007-05-25 John (J5) Palmieri <johnp@redhat.com>
1172 2007-05-25 John (J5) Palmieri <johnp@redhat.com>
1174 * Split NEWS and ChangeLog into a .pre-1-0 file as per HACKING
1175 We forgot to do this during the 1.0 release and it makes sense
1176 now as we get ready to release the first 1.1.0 development tarball
1178 2007-05-25 John (J5) Palmieri <johnp@redhat.com>
1180 * create directory test/data/valid-config-files/session.d so that
1183 2007-05-25 John (J5) Palmieri <johnp@redhat.com>
1185 * INSTALL: remove dependancies for bindings since they no longer
1188 2007-05-25 Ralf Habacker <ralf.habacker@freenet.de>
1190 * dbus/dbus-server-win.c,dbus/dbus-server-win.h: new file
1191 with empty function _dbus_server_listen_platform_specific().
1193 * dbus/dbus-server.c (listen_funcs): uses
1194 _dbus_server_listen_platform_specific on any platform.
1196 2007-05-25 Ralf Habacker <ralf.habacker@freenet.de>
1198 * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): not getting
1199 user info from a domain controller isn't an error, the computer
1200 may run in a non domain context.
1202 2007-05-25 Ralf Habacker <ralf.habacker@freenet.de>
1204 * dbus/dbus-sysdeps-win.c (_dbus_full_duplex_pipe): fixed assertation.
1206 2007-05-24 Simon McVittie <simon.mcvittie@collabora.co.uk>
1208 * bus/config-parser.c (test_service_dir_matches): fixed ordering for unix.
1210 * bus/config-parser.c (test_default_session_servicedirs): made allocation
1211 of _progs platform independent.
1213 2007-05-23 Havoc Pennington <hp@redhat.com>
1215 * bus/Makefile.am (install-data-hook): create session.d
1217 * bus/session.conf.in: add session.d for the session bus, so
1218 security policy can be extended
1220 2007-05-22 Ralf.Habacker <ralf.habacker@freenet.de>
1222 * cmake/CMakeLists.txt: fixed creating of TEST_..._BINARY to make
1223 bus-test able to find the binaries.
1225 2007-05-21 Simon McVittie <simon.mcvittie@collabora.co.uk>
1227 * acinclude.m4, configure.in: In recent autotools, ${datadir} is
1228 defined in terms of ${datarootdir}, so EXPANDED_DATADIR needs to be
1229 expanded recursively. Rather than fixing configure.in to do this, I
1230 grabbed the AS_AC_EXPAND macro from autostars.sf.net, which seems to be
1233 2007-05-21 Simon McVittie <simon.mcvittie@collabora.co.uk>
1235 * update-dbus-docs.sh: Assorted improvements:
1236 - Default user if $FDUSER is not set is the ssh default
1237 (set in ~/.ssh/config or based on the local username), not a
1239 - Temporary checkout directory is created securely (preventing symlink
1240 attacks), if mktemp(1) is available
1241 - Use make -C rather than cd && make && cd ..
1243 2007-05-21 Simon McVittie <simon.mcvittie@collabora.co.uk>
1245 * HACKING: Point to correct mailing list
1247 2007-05-21 Simon McVittie <simon.mcvittie@collabora.co.uk>
1249 * doc/dbus-specification.xml: explicitly specify that STRING cannot
1250 contain embedded NULs.
1252 2007-05-20 Ralf.Habacker <ralf.habacker@freenet.de>
1254 * dbus/dbus-internal.c: fix inline problem on win32.
1256 2007-05-20 Ralf.Habacker <ralf.habacker@freenet.de>
1258 * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir): not reaching
1259 domain controller isn't an error, converted error message to verbose
1262 2007-05-19 Ralf.Habacker <ralf.habacker@freenet.de>
1264 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): disabled
1265 tests not running on wince.
1267 2007-05-19 Ralf.Habacker <ralf.habacker@freenet.de>
1269 * dbus/dbus-internals.c (_dbus_verbose_init): win32 requires 'varname='
1270 to unset a environment variable.
1272 2007-05-19 Ralf.Habacker <ralf.habacker@freenet.de>
1274 * dbus/dbus-sysdeps.c (_dbus_setenv): win32 requires 'varname='
1275 to unset a environment variable.
1277 2007-05-19 Ralf.Habacker <ralf.habacker@freenet.de>
1279 * bus/policy.c (bus_policy_create_client_policy):
1280 win32 temporary fix until the userdb stuff is ported completly.
1282 2007-05-19 Ralf.Habacker <ralf.habacker@freenet.de>
1284 * dbus/dbus-server.c (listen_funcs):
1285 _dbus_server_listen_platform_specific is empty on win32,
1286 limited to unix only.
1288 * dbus/dbus-server.c (valid_addresses): limit unix
1289 only addresses to unix.
1291 2007-05-18 Havoc Pennington <hp@redhat.com>
1293 * doc/dbus-specification.xml: add a GetAll to the Properties
1296 2007-05-17 Ralf.Habacker <ralf.habacker@freenet.de>
1298 * bus\config-parser.c (test_default_session_servicedirs):
1301 2007-05-17 Ralf.Habacker <ralf.habacker@freenet.de>
1303 * configure.in: define constant DBUS_UNIX.
1305 2007-05-14 Ralf Habacker <ralf.habacker@freenet.de>
1307 * dbus/dbus-sysdeps-win.c (_dbus_printf_string_upper_bound):
1308 compile fix for MS Platform SDK 6
1309 patch from Michael Luschas <mluschas@gmail.com>
1311 2007-05-10 John (J5) Palmieri <johnp@redhat.com>
1313 * dbus-1.pc.in: add daemondir to pc file
1314 patch from Brian Cameron <brian.cameron at sun.com>
1316 2007-05-04 Simon McVittie <simon.mcvittie@collabora.co.uk>
1318 * doc/dbus-specification.xml: mention the reserved o.fd.DBus.Local
1319 interface and the corresponding /o/fd/DBus/Local object path;
1320 describe them as reserved and forbid using them in a sent message,
1321 mentioning that in the reference implementation this will cause the
1322 connection to be dropped. Patch approved by Havoc.
1324 2007-04-28 Ralf Habacker <ralf.habacker@freenet.de>
1326 * cmake/: don't install test applications and service files,
1327 moved CMAKE_DEBUG_POSTFIX to top level CMakeLists.txt
1329 2007-04-27 Havoc Pennington <hp@redhat.com>
1331 * dbus/dbus-sysdeps-unix.c (_dbus_open_socket): fix #10781 from
1332 Tobias Nygren, checking pointer to fd vs. 0 rather than checking
1335 2007-04-26 Ralf Habacker <ralf.habacker@freenet.de>
1337 * cmake/: added debug postfixes to debug exe's for
1339 * dbus\dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
1340 print error code in case no string message is available.
1342 2007-04-06 Simon McVittie <simon.mcvittie@collabora.co.uk>
1344 * dbus/dbus-message-util.c, dbus/dbus-message.c,
1345 dbus/dbus-message.h: Add API to convert a DBusMessage to/from a
1346 byte array. Patch from Dafydd Harries <dafydd.harries@collabora.co.uk>,
1347 approved by Havoc Pennington.
1349 2007-04-03 Timo Hoenig <thoenig@suse.de>
1351 * dbus/dbus-address.c (dbus_parse_address): Do not accept zero-
1353 * dbus/dbus-address.c (_dbus_address_test): Add test for zero-
1356 2007-03-25 Ralf.Habacker <ralf.habacker@freenet.de>
1358 * cmake/dbus/CMakeLists.txt: debug postfix also for mingw.
1360 2007-03-16 Ralf.Habacker <ralf.habacker@freenet.de>
1362 * cmake/modules/FindExpat.cmake: fix package detection on win32.
1364 * README.win: update install instructions.
1366 2007-03-16 Ralf.Habacker <ralf.habacker@freenet.de>
1368 * dbus/dbus-sysdeps.h (_dbus_split_paths_and_append):
1370 (_DBUS_PATH_SEPARATOR): new macro.
1372 * dbus/dbus-sysdeps.c (_dbus_split_paths_and_append): merged
1373 from dbus/dbus-sysdeps-unix.c and dbus/dbus-sysdeps-win.c.
1375 2007-03-15 Ralf.Habacker <ralf.habacker@freenet.de>
1377 * bus/config-parser.c, bus/policy.c,
1378 bus/policy.h, bus/dbus-daemon.1.in,
1379 bus/session.conf.in: added eavesdrop support
1380 for replies - patch by olli.salli at collabora.co.uk
1381 approved by Havoc Pennington.
1383 2007-03-15 Ralf.Habacker <ralf.habacker@freenet.de>
1385 * dbus\dbus-sysdeps-win-thread.c: renamed to
1386 dbus-sysdeps-thread-win.c, it is a platform depending file
1387 similar to dbus-sysdeps-pthread.c.
1389 2007-03-15 Ralf.Habacker <ralf.habacker@freenet.de>
1391 * cmake\doc\CMakeLists.txt: added prelimary xml doc
1392 support, needs cmake Find script.
1394 2007-03-14 Ralf.Habacker <ralf.habacker@freenet.de>
1396 * cmake: add doxygen support
1398 2007-03-14 Ralf.Habacker <ralf.habacker@freenet.de>
1400 * cmake/config.h.cmake: WINCE fixes, defined DBUS_UNIX.
1402 2007-03-13 Ralf.Habacker <ralf.habacker@freenet.de>
1404 * dbus/dbus-sysdeps-util-win.c (dbus_become_daemon):
1407 2007-03-13 Ralf.Habacker <ralf.habacker@freenet.de>
1409 * dbus-win.patch: removed obsolate patches.
1411 2007-03-13 Ralf.Habacker <ralf.habacker@freenet.de>
1413 * dbus/dbus-sysdeps-win.c: added zero byte sending
1414 and receiving after connection start up
1416 2007-03-11 Havoc Pennington <hp@redhat.com>
1418 * tools/dbus-launch.c (do_close_stderr): fix C89 problem and
1421 * Mostly fix the DBusPipe mess.
1422 - put line break after function return types
1423 - put space before parens
1424 - do not pass structs around by value
1425 - don't use dbus_strerror after calling supposedly cross-platform
1427 - don't name pipe variables "fd"
1428 - abstract special fd numbers like -1 and 1
1430 2007-03-12 Ralf Habacker <ralf.habacker@freenet.de>
1432 * dbus/dbus-sysdeps-win.h, dbus/dbus-sysdeps-win.c,
1433 dbus/dbus-sysdeps-util-win.c: renamed functions
1434 _dbus_xxx_file() to _dbus_file_xxx() to reflect
1435 struct name DBusFile.
1437 2007-03-12 Ralf Habacker <ralf.habacker@freenet.de>
1439 * dbus/dbus-sysdeps-util-unix.c (_dbus_become_daemon):
1440 fix _dbus_pid_fd check.
1442 2007-03-10 Ralf Habacker <ralf.habacker@freenet.de>
1444 * tools/dbus-print-message.c (print_message):
1445 added printing of the reply serial to method returns and
1446 errors, so you can actually figure out the message/reply
1447 pairs - patch by olli.salli at collabora.co.uk.
1449 2007-03-10 Ralf Habacker <ralf.habacker@freenet.de>
1451 * dbus-win.patch: removed committed patches.
1453 2007-03-10 Ralf Habacker <ralf.habacker@freenet.de>
1455 * bus/bus.c, bus/bus.h, bus/main.c, bus/test.c,
1456 dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-util-unix.c,
1457 dbus/dbus-sysdeps-util-win.c, dbus/dbus-sysdeps-win.c,
1458 dbus/dbus-sysdeps.h: renamed _dbus_xxx_pipe to _dbus_pipe_xxx,
1459 completed _dbus_pipe support.
1461 2007-03-10 Ralf Habacker <ralf.habacker@freenet.de>
1463 * dbus/dbus-sysdeps.h (_dbus_listen_tcp_socket):
1464 changed type or port to pointer, because the port is given back.
1466 * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1467 implemented returning tcp port. Skipping port parameter
1468 and non integer port values in config <listen> statement
1471 * dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps-win.c
1472 (_dbus_listen_tcp_socket): return the real used tcp port.
1474 * bus/dbus-daemon.1.in: added <listen> tcp examples
1476 2007-03-09 Ralf Habacker <ralf.habacker@freenet.de>
1478 * cmake/config.h.cmake: win32 msvc bug fix
1480 2007-03-09 Ralf Habacker <ralf.habacker@freenet.de>
1482 * cmake/config.h.cmake: fixed DBUS_WINxx defines,
1483 using _WINCE does not work.
1485 2007-03-08 Ralf Habacker <ralf.habacker@freenet.de>
1487 * dbus-win.patch: removed _dbus_write_pipe() patch, it is now
1490 2007-03-08 Ralf Habacker <ralf.habacker@freenet.de>
1492 * bus/bus.c, dbus/dbus-sysdeps-unix.c, dbus/dbus-sysdeps.h:
1493 rename pipe related write() function calls to _dbus_write_pipe().
1495 2007-03-08 Ralf Habacker <ralf.habacker@freenet.de>
1497 * dbus-win.patch: added bus/config-loader-libexpat.c patch,
1498 uses DBUS_WIN for alls win32 related #ifdefs,
1501 2007-03-08 Ralf Habacker <ralf.habacker@freenet.de>
1503 * dbus-win.patch: updated patch for bus/dispatch.c.
1505 2007-03-08 Ralf Habacker <ralf.habacker@freenet.de>
1507 * dbus-win.patch: dbus-connection.c (dbus_connection_get_unix_user,
1508 dbus_connection_get_unix_process_id): Let return them valid user id's,
1509 otherwise bus-test fails. How to replace on win32 ?.
1511 * dbus/dbus-sysdeps-win.c (fill_win_user_info_homedir):
1514 2007-03-08 Ralf Habacker <ralf.habacker@freenet.de>
1516 * dbus/dbus-sysdeps-win.c (_dbus_win_set_error_from_win_error):
1517 use dbus friendly error name.
1518 (fill_win_user_info_homedir): print user name in error case too.
1520 2007-03-08 Ralf Habacker <ralf.habacker@freenet.de>
1522 * cmake/ConfigureChecks.cmake: fixed socketpair check
1524 2007-03-08 Ralf Habacker <ralf.habacker@freenet.de>
1526 * bus/dispatch.c: disabled segfault test on win32 for now
1528 2007-03-08 Ralf Habacker <ralf.habacker@freenet.de>
1530 * configure.in, cmake/ConfigureChecks.cmake: added check
1532 * test/test-segfault.c: only include setrlimit stuff only
1535 2007-03-07 Ralf Habacker <ralf.habacker@freenet.de>
1537 * test/test-segfault.c: unix compile fix.
1538 * dbus-win.patch: removed obsolate patches.
1540 2007-03-07 Ralf Habacker <ralf.habacker@freenet.de>
1542 * bus/activation.c: removed obsolate include header.
1543 * test/test-segfault.c: win32 compile fix, rlimit
1544 isn't available on win32.
1545 * dbus-win.patch: removed some more patches, they
1546 are applied or obsolate
1548 2007-03-06 Ralf Habacker <ralf.habacker@freenet.de>
1550 * bus-win.patch: fixes unix listen problems, dbus-test
1553 2007-03-06 Ralf Habacker <ralf.habacker@freenet.de>
1555 * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
1556 cmake/CMakeLists.txt: win32 compile fix
1558 2007-03-04 Ralf Habacker <ralf.habacker@freenet.de>
1560 * dbus-win.patch, README.win: added available win32
1561 patches from windbus project (http://sf.net/projects/windbus)
1563 2007-03-04 Ralf Habacker <ralf.habacker@freenet.de>
1565 * bus/activation.c: (bus_activation_activate_service):
1566 fixed call to _dbus_spawn_async_with_babysitter().
1568 2007-03-04 Ralf Habacker <ralf.habacker@freenet.de>
1570 * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
1571 added environment pointer as function parameter, used on win32.
1573 * test/spawn-test.c: fixed call to above mentioned function.
1575 2007-03-04 Ralf Habacker <ralf.habacker@freenet.de>
1577 * configure.in,test/test-sleep-forever.c,test/test-names.c:
1578 added configure check for unistd.h.
1580 2007-03-04 Ralf Habacker <ralf.habacker@freenet.de>
1582 * test/Makefile.am: fixed test data copy problem in
1583 out of source build, when sources came from svn or cvs.
1585 2007-03-03 Ralf Habacker <ralf.habacker@freenet.de>
1587 * dbus/*-win.*,bus/*-win.*: added win32 platform related
1588 files. These files are only added to the cmake build system.
1589 The missing dbus-win.patch file will be added later.
1591 2007-03-03 Ralf Habacker <ralf.habacker@freenet.de>
1593 * cmake: new directory, contains cmake build support.
1594 See http://www.cmake.org for more informations.
1595 Currently only unix will be buildable because some
1596 win32 required files are still missing.
1598 2007-03-03 Thiago Macieira <thiago@kde.org>
1600 * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
1601 output and add it to the DBusError message we return.
1603 * tools/dbus-launch.1:
1604 * tools/dbus-launch.c: Add option --close-stderr to, well,
1605 close stderr before starting dbus-daemon.
1607 2007-01-31 Havoc Pennington <hp@redhat.com>
1609 * bus/dbus-daemon.1.in: write a section in the man page on running
1610 a test daemon for debugging purposes
1612 2007-01-26 Havoc Pennington <hp@redhat.com>
1614 * bus/session.conf.in: override all the default limits with much
1615 higher limits on the session bus, there is no reason the session
1616 bus should have low limits
1618 * bus/config-parser.c (bus_config_parser_new): increase default
1619 limits so they are less likely to be hit; in particular the max
1620 replies per connection was way too low
1622 2006-01-25 Simon McVittie <simon.mcvittie@collabora.co.uk>
1624 * doc/dbus-tutorial.xml: Replace Python section of tutorial with
1625 a pointer to the tutorial maintained as part of dbus-python
1627 2006-12-31 Ralf Habacker <ralf.habacker@freenet.de>
1629 * dbus/dbus-sysdeps-unix.c: unix compile fix, moved
1630 atomic_exchange_and_add() from dbus/dbus-sysdeps.c
1631 to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
1633 2006-12-31 Ralf Habacker <ralf.habacker@freenet.de>
1635 * tools/dbus-monitor.c: gettimeofday() is not available
1636 on windows so we have to provide our own. It's taken from
1637 lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
1639 2006-12-31 Ralf Habacker <ralf.habacker@freenet.de>
1641 * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec()
1642 from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec()
1643 is in dbus-sysdeps-win.c (not in this patch).
1645 * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit
1646 with InterlockedInc/Decrement.
1647 - Patches from Christian Ehrlicher
1649 2006-12-31 Ralf Habacker <ralf.habacker@freenet.de>
1651 * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
1653 2006-12-31 Ralf Habacker <ralf.habacker@freenet.de>
1655 * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
1656 fix mispaced const statement. - Patch from Peter Kümmel
1658 2006-12-19 Ray Strode <rstrode@redhat.com>
1660 * bus/bus.c (process_config_every_time):
1661 don't overwrite existing bus context activation object
1662 until after we've checked that the new activation is
1666 (signal_handler), (handle_reload_watch):
1667 don't call exit() on failure, instead make do and keep
1669 (close_reload_pipe): new function to turn off
1670 hangup-causes-config-reload behavior if an unexpected
1673 2006-12-13 Ralf Habacker <ralf.habacker@freenet.de>
1675 * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
1676 correctness fix. - Patch from Christian Ehrlicher
1678 2006-12-13 Ralf Habacker <ralf.habacker@freenet.de>
1680 * dbus/dbus-internals.h: msvc also knows about __FUNCTION__,
1681 we should also use it. - Patch from Christian Ehrlicher
1683 2006-12-13 Ralf Habacker <ralf.habacker@freenet.de>
1685 * dbus-sysdeps-util.c: added win32 related tests
1687 2006-12-12 Ralf Habacker <ralf.habacker@freenet.de>
1689 * dbus/dbus-string.c (_dbus_string_pop_line),
1690 bus/desktop-file.c (parse_section_start,
1691 parse_comment_or_blank,parse_key_value,): uses
1692 _dbus_string_find_eol() to support platform independent eol style.
1694 2006-12-12 Ralf Habacker <ralf.habacker@freenet.de>
1696 * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function.
1697 * dbus/dbus-string-util.c (_dbus_string_test): added testcases for
1698 _dbus_string_find_eol().
1699 Approved by: Havoc Pennington.
1701 2006-12-12 Tim Dijkstra <tim@famdijkstra.org>
1703 * configure.in: Added switch to disable user_database caching.
1705 * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
1706 be able disable user_dabase caching.
1708 2006-12-12 Tim Dijkstra <tim@famdijkstra.org>
1710 * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext
1711 struct. It is unnecessary we have a global one already. Also remove
1712 bus_context_get_user_database function, it is no longer needed.
1713 Flush the global database on reload.
1715 * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups
1716 with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
1718 * dbus/dbus-userdb.c, dbus/dbus-userdb.h:
1719 Add _dbus_user_database_flush_system.
1720 Make more functions DBUS_USERDB_INCLUDES_PRIVATE.
1721 Small unrelated change in _dbus_is_a_number: change
1722 _dbus_string_parse_int to _dbus_string_parse_uint.
1724 * bus/connection.c: Change call to _dbus_user_database_get_groups to
1725 _dbus_groups_from_uid.
1727 * bus/policy.c, bus/policy.h: Change call to
1728 _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove
1729 DBusUserDatabase from bus_policy_allow_user prototype, it no longer
1732 2006-12-12 John (J5) Palmieri <johnp@redhat.com>
1734 * bus/signal.c: Fix match_rule_equal errata
1735 (CVE-2006-6107 - Patch from Kimmo Hämäläinen
1736 <kimmo.hamalainen@nokia.com>)
1738 2006-11-19 Thiago Macieira <thiago@kde.org>
1740 * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
1741 _dbus_pthread_condvar_wait,
1742 _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
1743 pthread_self() after coming back from a conditional variable
1744 wait as well as in one codepath where it was forgotten.
1745 Approved by: Havoc Pennington.
1747 2006-11-17 Havoc Pennington <hp@redhat.com>
1749 * update-dbus-docs.sh: allow setting fd.org username via env
1750 variable. Make it run autogen with --enable-xml-docs=yes
1751 --enable-doxygen-docs=yes so configure will fail if the required
1754 2006-11-17 Havoc Pennington <hp@redhat.com>
1756 * doc/dbus-faq.xml: minor FAQ tweaks
1758 2006-11-14 Havoc Pennington <hp@redhat.com>
1760 * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
1761 dbus_get_local_machine_id() to its own file, no substantive
1762 changes. There are a couple other things we might want to add that
1763 are "misc" so moving out of dbus-connection.[hc] which is big
1766 2006-11-14 Havoc Pennington <hp@redhat.com>
1768 * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
1769 UUID had the timestamp last, but the implementation had it first;
1770 move it to last since I think it's a tiny bit nicer (easier to
1771 compare at a glance, faster to sort, less code), and will not
1772 cause any practical compatibility problems. Also, always convert
1773 the timestamp to big endian.
1775 * doc/dbus-specification.xml: Clean up the docs on the UUID.
1777 * tools/dbus-uuidgen.1: more prominently say it is not suitable
1778 as a replacement for regular uuidgen/RFC4122.
1780 2006-11-14 John (J5) Palmieri <johnp@redhat.com>
1782 * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
1783 the correct value so we don't assert when initalizing recursive threads
1785 * test/name-test/test-thread-init.c: call dbus_threads_init_default
1786 instead of _dbus_threads_init_debug since it is more of a real world