Commit graph

6102 commits

Author SHA1 Message Date
Simon McVittie
aaa515f47d sysdeps: Document _dbus_daemon_unpublish_session_bus_address
Signed-off-by: Simon McVittie <smcv@collabora.com>
2021-12-15 11:55:06 +00:00
Simon McVittie
84a6147f80 sysdeps: Make some functions Windows-specific
_dbus_daemon_publish_session_bus_address had an empty implementation
but was never actually called on Unix, and
_dbus_daemon_is_session_bus_address_published wasn't even implemented.
Move them to the Windows-specific header to indicate that interface
changes here would only affect other Windows-specific code.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2021-12-15 11:55:06 +00:00
Simon McVittie
53085931a4 Merge branch 'offsetof' into 'master'
internals: Use Standard C offsetof macro if available

See merge request dbus/dbus!237
2021-12-13 12:44:08 +00:00
Simon McVittie
a24cf746e2 internals: Use Standard C offsetof macro if available
clang 13 fails to compile our current implementation with:

.../dbus/dbus-message.c:2070:3: error: variable length array folded to constant array as an extension [-Werror,-Wgnu-folding-constant]
  _DBUS_STATIC_ASSERT (_DBUS_ALIGNOF (DBusMessageRealIter) <=
  ^
.../dbus/dbus-internals.h:460:25: note: expanded from macro '_DBUS_STATIC_ASSERT'
  typedef struct { char _assertion[(expr) ? 1 : -1]; } \

This appears to be because the "traditional" definition of
offsetof(), which we're hard-coding here, does not qualify as a constant
expression under C rules due to its use of pointer casts.

Modern compilers like gcc and clang have a built-in implementation
of offsetof that *is* a constant expression.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2021-12-13 12:36:35 +00:00
Simon McVittie
83232393ef Update NEWS
Since we're heading for a 1.14.x branch (dbus#350), also draft the
summary of what has changed since 1.12.x.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2021-12-10 17:10:12 +00:00
Simon McVittie
4e2f4d87d3 Merge branch 'disable-containers' into 'master'
Disable the Containers interface

See merge request dbus/dbus!236
2021-12-10 17:04:55 +00:00
Simon McVittie
9d60676ae0 Disable the Containers interface
We've had a request for a 1.14.x stable-branch, but the Containers
interface is only partially implemented, not yet described in the
D-Bus Specification, and not ready to be part of our API guarantees.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2021-12-10 16:48:51 +00:00
Simon McVittie
67f1a01f7b Merge branch 'cmake-verbose-config' into 'master'
cmake: add option ENABLE_VERBOSE_CONFIG

See merge request dbus/dbus!230
2021-12-10 14:23:34 +00:00
Ralf Habacker
77375263f5 cmake: add option ENABLE_VERBOSE_CONFIG
Checking the filenames of generated configuration files is now optionally
possible with this cmake option. They are no longer displayed by default
to avoid unnecessarily flooding the output.
2021-12-10 14:16:52 +00:00
Simon McVittie
203e8a4d75 Merge branch 'cmake-fix-warnings-flags' into 'master'
cmake: Make gcc builds use similar compiler warnings to autotools

Closes #356

See merge request dbus/dbus!227
2021-12-10 14:16:39 +00:00
Ralf Habacker
8e2f0f588e cmake: add configure option 'ENABLE_WERROR' to keep in sync with autotools 2021-12-10 13:36:28 +00:00
Ralf Habacker
667b153dce cmake: Make gcc builds use similar compiler warnings to autotools
Fixes #356
2021-12-10 13:36:28 +00:00
Ralf Habacker
40c9655e91 cmake: use the string 'append' command to add compiler flags for convenience
The minimum version of cmake has been increased because the mentioned
string command has been added with cmake 3.4.
2021-12-10 13:36:28 +00:00
Simon McVittie
78c18f400f Merge branch 'fix-issue-362' into 'master'
Fix `test applications do not display invalid test selection`

Closes #362

See merge request dbus/dbus!233
2021-12-10 12:46:13 +00:00
Ralf Habacker
0d0649145f In _dbus_test_main() check if a specified test name is available
Fixes #362
2021-12-10 10:36:37 +01:00
Ralf Habacker
febafd863e test/test-utils.c: Add command line option --list-tests to test applications
With this command line option a list of available tests is printed to
stdout.
2021-12-10 10:36:28 +01:00
Ralf Habacker
3432cd938d test/test-utils.c: Add command line option --help to test applications 2021-12-10 10:21:35 +01:00
Simon McVittie
6ba6f5e870 Merge branch 'fix-issue-360' into 'master'
Fix  test-bus related memory leaks on Windows

Closes #360

See merge request dbus/dbus!232
2021-12-09 15:34:07 +00:00
Ralf Habacker
3a2e0ba5fe Avoid assertation in bus_activation_reload()
In the mentioned function a local DBusError instance is now used to
fulfill the requirement of dbus_error_has_name() that the parameter
'error' must not be null.

See #360
2021-12-09 12:54:22 +01:00
Ralf Habacker
5b804ed77d Fix memory leaks in Windows variant of _dbus_directory_open()
If the memory is not sufficient, the created DBusString instance must be
released. This belongs to the mentioned function and
_dbus_string_init_from_string().

Fixes #360
2021-12-09 12:53:18 +01:00
Simon McVittie
1877922b80 Merge branch 'fix-test-dbus-daemon-windows' into 'master'
tools/ci-build.sh: Double maximum test time when running tests on Windows

Closes #320 and #359

See merge request dbus/dbus!231
2021-12-07 13:07:30 +00:00
Ralf Habacker
19d6954b05 tools/ci-build.sh: Double maximum test time when running tests on Windows
The currently timeout of 60 seconds is too short for test-dbus-daemon on
Windows, depending on the load of the CI system.

Fixes #359
2021-12-06 23:52:01 +01:00
Simon McVittie
475a4b78a7 Merge branch 'fix-issue-357' into 'master'
test-spawn-oom: Fix regression with recent Windows refactoring

Closes #357 and #279

See merge request dbus/dbus!228
2021-12-06 13:02:31 +00:00
Ralf Habacker
9a1f2608ee Add returning oom error in _dbus_spawn_program() when building for WINCE 2021-12-06 10:09:20 +00:00
Ralf Habacker
0d37aeb41b Adjust _dbus_spawn_async_with_babysitter() on Windows to follow Unix like OOM behavior
That way, the spawn-oom unit test could expect OOM on Windows to behave
the same as OOM on Unix, raising DBUS_ERROR_NO_MEMORY.
2021-12-06 10:09:20 +00:00
Ralf Habacker
d9dc2a74aa _dbus_decrement_fail_alloc_counter(): Enable out of memory testing on Windows 2021-12-06 10:09:20 +00:00
Ralf Habacker
4e4d932fd9 Fix memory leak in protect_argv() in case of memory shortage 2021-12-06 10:09:20 +00:00
Ralf Habacker
b9a7744310 protect_argv(): Only set return variable in success case
This avoids overwriting the variable even if there is no result.
2021-12-06 10:09:20 +00:00
Ralf Habacker
649f46642b Merge branch 'windows-error-oom' into 'master'
_dbus_win_set_error_from_last_error: Always set the error

See merge request dbus/dbus!229
2021-12-06 10:08:59 +00:00
Simon McVittie
0d40cd2385 _dbus_win_set_error_from_last_error: Always set the error
If we run out of memory while setting an error, we need to recover by
setting the error to "out of memory" instead of the original error.
Otherwise, the error indicator would be unset, breaking the rules of
our error model.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2021-12-03 15:55:59 +00:00
Ralf Habacker
e8b34b419e Fix gcc compile error: redundant redeclaration of ‘environ’ [-Werror=redundant-decls]
Cherry picked from dbus/dbus!227
2021-11-30 14:35:01 +01:00
Ralf Habacker
05cc895444 Merge branch 'issue-355' into 'master'
Fix MinGW build error

Closes #355

See merge request dbus/dbus!226
2021-11-30 09:31:49 +00:00
Ralf Habacker
63f6530750 Fix MinGW build error: cast between incompatible function types from 'FARPROC' [-Werror=cast-function-type]'
The build error occurred in 'dbus/dbus-sysdeps-win.c:129:43:

Fixes #355
2021-11-29 15:20:10 +00:00
Ralf Habacker
acb9ca7422 tools/ci-*.sh: Show used command line for CI build scripts
This makes it much easier to determine the command line used for the
purpose of reproducing the build.
2021-11-29 15:20:10 +00:00
Simon McVittie
0873ca6fb9 Merge branch 'dbus-run-session-refactor' into 'master'
_dbus_spawn_program(): Add additional parameter to return error

See merge request dbus/dbus!223
2021-11-29 14:45:13 +00:00
Ralf Habacker
f93d85408e dbus-spawn-win.c: Refactoring compose_string() and related functions to use DBusString
Since the code to compose strings is already used multiple times the
refactoring results in a new function _dbus_string_append_strings().
2021-11-29 13:07:04 +01:00
Ralf Habacker
0eef54ea1b _dbus_spawn_program(): Add additional parameter to return error
By specifying an error instance via the additional parameter, errors that
occur in it are transported to the caller in a coordinated manner.

This eliminates the need to query GetLastError() outside the function,
which can return an incorrect value if the implementation changes.
2021-11-29 13:07:04 +01:00
Ralf Habacker
ba1dc32667 _dbus_spawn_program() now returns #NULL for unification in case of error 2021-11-29 13:07:04 +01:00
Ralf Habacker
15e1285a11 Add _DBUS_GNUC_PRINTF annotation to _dbus_win_set_error_from_last_error()
This makes printf like format string related issues visible.
2021-11-29 13:07:04 +01:00
Ralf Habacker
d2bab84329 Remove build: prefix from jobs to make labels more visible in pipeline page
The length if the displayed jobs is limited on the gitlab CI pipeline page
and is occupied partly be the prefix.

Cherry-picked from dbus/dbus/!192
2021-11-29 13:04:08 +01:00
Simon McVittie
f517a67017 Merge branch 'master' into 'master'
autotools: use pkg-config instead of AC_PATH_XTRA

See merge request dbus/dbus!212
2021-11-26 14:57:58 +00:00
SCOTT-HAMILTON
6bfaea0707 autotools: use pkg-config instead of AC_PATH_XTRA 2021-11-26 15:38:10 +01:00
Simon McVittie
3a04abdebf Merge branch 'issue-354' into 'master'
dbus-run-session: also catches a server-exit under Windows

Closes #354

See merge request dbus/dbus!225
2021-11-25 15:55:42 +00:00
Ralf Habacker
fe84e9b0e5 dbus-run-session: also catches a server-exit under Windows
If the dbus-daemon fails before the --ready-event-handle is signalled,
then dbus-run-session now detects that, and exit unsuccessfully.

Fixes #354
2021-11-25 16:46:27 +01:00
Ralf Habacker
42e2dd56b4 Fix printf format string in _dbus_win_event_create_inheritable()
Fixup for commit 3f7c36f4.
2021-11-25 09:46:06 +01:00
Ralf Habacker
de3b653bd7 Merge branch 'clarify-doc-win-code' into 'master'
Clarify NULL vs. INVALID_HANDLE_VALUE in _dbus_win_event_free()

Closes #352

See merge request dbus/dbus!224
2021-11-24 07:08:30 +00:00
Ralf Habacker
f9e568ba14 Clarify NULL vs. INVALID_HANDLE_VALUE in _dbus_win_event_free()
Fixes dbus/dbus#352
2021-11-24 07:58:29 +01:00
Simon McVittie
d4203c3ee5 Merge branch 'dbus-run-session-add-delay' into 'master'
tools/dbus-run-session: fix race between manual and automatically started dbus-daemon on Windows

Closes #297

See merge request dbus/dbus!195
2021-11-23 14:04:22 +00:00
Ralf Habacker
2334307fbd tools/dbus-run-session.c: use _dbus_win_set_error_from_last_error() on remaining locations
The previously used function _dbus_win_stderr_win_error() has been removed
because it is no longer used.
2021-11-23 08:38:14 +01:00
Ralf Habacker
79df3d2811 tools/dbus-run-session: fix race between manual and automatically started dbus-daemon on Windows
dbus-run-session starts a dbus-daemon before the client application.
We must avoid letting the application try to connect before the
dbus-daemon's DBusServer is listening for connections.

In the Unix implementation, we already achieved this via the
--print-address option. If the client tried to connect too soon,
the server would not yet be listening and the client would fail.

In the Windows implementation, we communicate the bus address to
the client application as an autolaunch: address, so if the client
tried to connect too soon, it would autolaunch a new dbus-daemon
instead of using the one that it was intended to use.

We can avoid this by using a new option to pass in a Windows event
object, which will be set when the server has started and is ready
to process connections.

Fixes #297
2021-11-23 08:38:14 +01:00