]> git.ipfire.org Git - thirdparty/dbus.git/log
thirdparty/dbus.git
7 years agoAdd generating dbus.devhelp2 to cmake build system
Ralf Habacker [Fri, 16 Nov 2018 22:01:03 +0000 (23:01 +0100)] 
Add generating dbus.devhelp2 to cmake build system

7 years agoembedded tests: Make it easier to run a single test-case
Simon McVittie [Thu, 12 Jul 2018 16:38:04 +0000 (17:38 +0100)] 
embedded tests: Make it easier to run a single test-case

When running tests under "make check" or similar to take advantage
of facilities like AM_TESTS_ENVIRONMENT and AX_VALGRIND_CHECK, it's
more straightforward to set an environment variable than to pass a
command-line option.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/218

7 years agoUpdate NEWS
Simon McVittie [Fri, 16 Nov 2018 15:04:52 +0000 (15:04 +0000)] 
Update NEWS

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoMerge branch 'iso-varargs' into 'master'
Simon McVittie [Fri, 16 Nov 2018 11:41:32 +0000 (11:41 +0000)] 
Merge branch 'iso-varargs' into 'master'

internals: Assume compiler supports a subset of ISO varargs syntax

See merge request dbus/dbus!36

Reviewed-by: rhabacker
Reviewed-by: pwithnall
7 years agointernals: Assume compiler supports a subset of ISO varargs syntax
Simon McVittie [Thu, 15 Nov 2018 18:55:57 +0000 (18:55 +0000)] 
internals: Assume compiler supports a subset of ISO varargs syntax

We have considerable anecdotal evidence that every relevant compiler
supports at least the small part of ISO varargs syntax that we need
here, because tools/tool-common.h has contained

    #define VERBOSE(...) do {} while (0)

since dbus 1.9.2 (2014) and nobody has complained yet. With that in
mind, let's simplify.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoMerge branch 'dbus-va-copy-fixup' into 'master'
Simon McVittie [Thu, 15 Nov 2018 15:40:32 +0000 (15:40 +0000)] 
Merge branch 'dbus-va-copy-fixup' into 'master'

Refactor cmake checks for DBUS_VA_COPY and DBUS_VA_COPY_ARRAY

See merge request dbus/dbus!29

7 years agoRefactor cmake checks for DBUS_VA_COPY and DBUS_VA_COPY_ARRAY
Ralf Habacker [Thu, 25 Oct 2018 18:14:24 +0000 (20:14 +0200)] 
Refactor cmake checks for DBUS_VA_COPY and DBUS_VA_COPY_ARRAY

For test case execution, CheckCSourceCompiles is now used instead
of try_compile and the determination of DBUS_VA_AS_ARRAY is
performed with a separate test instead of evaluating the result
of HAVE_VA_COPY and HAVE___VA_COPY.

The tests are performed for all supported compilers. Since older
MSVC compilers (< 2013) do not support va_copy(), the macro
_DBUS_VA_ASSIGN(a1,a2) with the implementation { a1 = a2; } is used
as a fallback.

7 years agoMerge branch 'avc_open' into 'master'
Simon McVittie [Thu, 15 Nov 2018 15:17:47 +0000 (15:17 +0000)] 
Merge branch 'avc_open' into 'master'

Stop using avc_init() which is deprecated and use avc_open() instead. Also, use SELINUX_CB_POLICYLOAD instead of AVC_CALLBACK_RESET callback.

See merge request dbus/dbus!31

Reviewed-by: smcv
7 years agoUse SELINUX_CB_POLICYLOAD instead of AVC_CALLBACK_RESET callback
Laurent Bigonville [Wed, 30 May 2018 16:18:15 +0000 (18:18 +0200)] 
Use SELINUX_CB_POLICYLOAD instead of AVC_CALLBACK_RESET callback

Use SELINUX_CB_POLICYLOAD instead of AVC_CALLBACK_RESET callback as this
only seems necessary on policy reload and not if the enforcing mode is
changing.

See discussion at https://marc.info/?l=selinux&m=152173501930182&w=2

https://gitlab.freedesktop.org/dbus/dbus/issues/134

7 years agoStop using avc_init() which is deprecated
Laurent Bigonville [Sat, 3 Mar 2018 12:15:17 +0000 (13:15 +0100)] 
Stop using avc_init() which is deprecated

Stop using avc_init() and use avc_open() instead. With this commit
dbus-daemon will stop using a thread to monitor the avc netlink and will
poll it instead.

https://gitlab.freedesktop.org/dbus/dbus/issues/134

7 years agoMerge branch 'pc-file-trailing-slash-issue' into 'master'
Simon McVittie [Thu, 15 Nov 2018 13:39:31 +0000 (13:39 +0000)] 
Merge branch 'pc-file-trailing-slash-issue' into 'master'

Avoid double slashes in paths created by pkg-config

See merge request dbus/dbus!30

7 years agoAvoid double slashes in paths created by pkg-config
Ralf Habacker [Fri, 26 Oct 2018 13:12:29 +0000 (15:12 +0200)] 
Avoid double slashes in paths created by pkg-config

If in a .pc variable a path is created from another
variable, such as exec_prefix=${prefix}/lib, prefix
must not contain a trailing slash to avoid double
slashes in the generated path.

7 years agoMerge branch 'msvc-compile-fix' into 'master'
Simon McVittie [Thu, 15 Nov 2018 13:09:54 +0000 (13:09 +0000)] 
Merge branch 'msvc-compile-fix' into 'master'

Msvc compile fix

See merge request dbus/dbus!33

Reviewed-by: smcv
Reviewed-by: pwithnall
7 years agoWindows MSVC compile fix
Ralf Habacker [Thu, 8 Nov 2018 12:39:03 +0000 (13:39 +0100)] 
Windows MSVC compile fix

Do not use unistd.h with MSVC because this header file does not
exist for this compiler.

Fixup of commit b0c0652005ce6892dd359f1b098dbdec9fb7455f

7 years agoMerge branch '222-comm-whitespace' into 'master'
Simon McVittie [Thu, 1 Nov 2018 12:07:22 +0000 (12:07 +0000)] 
Merge branch '222-comm-whitespace' into 'master'

Fix whitespace and error behaviour for _dbus_command_from_pid()

Closes #222

See merge request dbus/dbus!28

Reviewed-by: pwithnall
7 years agotests: Assert that _dbus_command_for_pid() has correct error behaviour
Simon McVittie [Thu, 25 Oct 2018 15:58:15 +0000 (16:58 +0100)] 
tests: Assert that _dbus_command_for_pid() has correct error behaviour

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agosysdeps: Return an error for _dbus_command_for_pid on Windows
Simon McVittie [Thu, 25 Oct 2018 15:47:18 +0000 (16:47 +0100)] 
sysdeps: Return an error for _dbus_command_for_pid on Windows

If a function returns boolean for success/error, and returns a
DBusError, then it should set the DBusError if and only if it
returns FALSE.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agotests: Assert that dbus#222 has been fixed
Simon McVittie [Wed, 31 Oct 2018 15:22:30 +0000 (15:22 +0000)] 
tests: Assert that dbus#222 has been fixed

7 years agosysdeps: Remove trailing NUL from command lines from /proc
Simon McVittie [Thu, 25 Oct 2018 15:43:36 +0000 (16:43 +0100)] 
sysdeps: Remove trailing NUL from command lines from /proc

Resolves: https://gitlab.freedesktop.org/dbus/dbus/issues/222
Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agotests: Add a unit test for _dbus_command_for_pid()
Simon McVittie [Wed, 31 Oct 2018 15:21:12 +0000 (15:21 +0000)] 
tests: Add a unit test for _dbus_command_for_pid()

In particular this demonstrates that dbus#222 has been solved.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agotest_get_helper_executable: Add function
Simon McVittie [Wed, 31 Oct 2018 15:22:26 +0000 (15:22 +0000)] 
test_get_helper_executable: Add function

This is basically the same as get_test_exec() in dbus-spawn-test.c,
but GLib-flavoured.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agotest_incomplete: Add function
Simon McVittie [Wed, 31 Oct 2018 15:19:19 +0000 (15:19 +0000)] 
test_incomplete: Add function

This is a wrapper for g_test_incomplete(), which works around bugs in
that function prior to GLib 2.57.3. I originally wrote it for librsvg.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agotests: Build test-sleep-forever even if embedded tests are disabled
Simon McVittie [Thu, 25 Oct 2018 15:42:21 +0000 (16:42 +0100)] 
tests: Build test-sleep-forever even if embedded tests are disabled

It will be used as a long-running subprocess to test
_dbus_command_for_pid().

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agotests: Build installable helpers whenever any tests are enabled
Simon McVittie [Wed, 31 Oct 2018 15:09:24 +0000 (15:09 +0000)] 
tests: Build installable helpers whenever any tests are enabled

We might need these to run tests at build-time, so we should build them
whenever either modular or embedded tests are enabled, even if
installed-tests aren't.

We haven't noticed this bug until now because $(installable_helpers)
only contained test-apparmor-activation, which isn't normally needed at
build-time because the AppArmor test can only work when run as root.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoMerge branch '135-dbus-run-session-windows' into 'master'
Ralf Habacker [Thu, 25 Oct 2018 19:50:06 +0000 (19:50 +0000)] 
Merge branch '135-dbus-run-session-windows' into 'master'

Add windows implementation of dbus-run-session helper tool for cmake

See merge request dbus/dbus!22

7 years agoAdd Windows implementation of dbus-run-session tool
Ralf Habacker [Wed, 18 Nov 2015 22:35:46 +0000 (23:35 +0100)] 
Add Windows implementation of dbus-run-session tool

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/135
Signed-off-by: Ralf Habacker <ralf.habacker@freenet.de>
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoRevert "Refactor cmake checks for DBUS_VA_COPY and DBUS_VA_COPY_ARRAY"
Ralf Habacker [Thu, 25 Oct 2018 18:13:17 +0000 (20:13 +0200)] 
Revert "Refactor cmake checks for DBUS_VA_COPY and DBUS_VA_COPY_ARRAY"

This reverts commit bd6ece893a45e8103a696ee64adc1baa2096c422,
which was added without a final review.

7 years agoMerge branch 'cmake-ddlh' into 'master'
Simon McVittie [Thu, 25 Oct 2018 16:56:04 +0000 (16:56 +0000)] 
Merge branch 'cmake-ddlh' into 'master'

cmake: Install dbus-daemon-launch-helper even if tests are disabled

See merge request dbus/dbus!9
Reviewed-by: rhabacker
7 years agocmake: Install d-d-launch-helper to ${CMAKE_INSTALL_LIBEXECDIR}
Simon McVittie [Mon, 22 Oct 2018 09:20:37 +0000 (10:20 +0100)] 
cmake: Install d-d-launch-helper to ${CMAKE_INSTALL_LIBEXECDIR}

Instead of hard-coding the lib subdirectory of the installation prefix,
use the ${CMAKE_INSTALL_LIBEXECDIR} provided by the GNUInstallDirs
module, which defaults to the libexec subdirectory of the installation
prefix. This is consistent with the Autotools build system, which
installs to ${exec_prefix}/libexec unless modified with --libexecdir.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agocmake: Use non-deprecated install mechanism for d-d-launch-helper
Simon McVittie [Mon, 22 Oct 2018 09:15:44 +0000 (10:15 +0100)] 
cmake: Use non-deprecated install mechanism for d-d-launch-helper

As suggested by Ralf Habacker on !9.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agocmake: Install dbus-daemon-launch-helper even if tests are disabled
Simon McVittie [Wed, 3 Oct 2018 17:34:13 +0000 (18:34 +0100)] 
cmake: Install dbus-daemon-launch-helper even if tests are disabled

This is a long-standing bug, spotted while moving test code into
the test directory.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoMerge branch 'cleanup-cmake-source-dir-definitions' into 'master'
Simon McVittie [Thu, 25 Oct 2018 13:51:38 +0000 (13:51 +0000)] 
Merge branch 'cleanup-cmake-source-dir-definitions' into 'master'

Cleanup of the cmake definitions of source directories

See merge request dbus/dbus!27

Reviewed-by: smcv
7 years agoCleanup of the cmake definitions of source directories
Ralf Habacker [Tue, 23 Oct 2018 19:56:25 +0000 (21:56 +0200)] 
Cleanup of the cmake definitions of source directories

Since the cmake build system is located below the cmake/
subdirectory, references to the source files used such as
../../bus or ${CMAKE_SOURCE_DIR}/../dbus etc. are required.
To standardize and simplify this, a cmake variable is now
defined in each of the listed directories, which contains
the corresponding path.

7 years agoMerge branch '117-checks-from-configure-ac' into 'master'
Ralf Habacker [Wed, 24 Oct 2018 17:01:52 +0000 (17:01 +0000)] 
Merge branch '117-checks-from-configure-ac' into 'master'

Take cmake checks from configure.ac

See merge request dbus/dbus!18

7 years agoRemove todo(s) for cmake build system
Ralf Habacker [Sun, 21 Oct 2018 08:40:28 +0000 (10:40 +0200)] 
Remove todo(s) for cmake build system

Bug: https://gitlab.freedesktop.org/dbus/dbus/merge_requests/18

7 years agoAdd cmake support for HAVE_GNUC_VARARGS and HAVE_ISO_VARARGS
Ralf Habacker [Mon, 22 Oct 2018 15:03:52 +0000 (17:03 +0200)] 
Add cmake support for HAVE_GNUC_VARARGS and HAVE_ISO_VARARGS

Reviewed-by: Simon McVittie <smcv@collabora.com>
Bug: https://gitlab.freedesktop.org/dbus/dbus/merge_requests/18

7 years agoAdd cmake check for HAVE_DDFD
Ralf Habacker [Sun, 21 Oct 2018 09:36:16 +0000 (11:36 +0200)] 
Add cmake check for HAVE_DDFD

Reviewed-by: Simon McVittie <smcv@collabora.com>
Bug: https://gitlab.freedesktop.org/dbus/dbus/merge_requests/18

7 years agoAdd cmake check for HAVE_DIRFD
Ralf Habacker [Mon, 22 Oct 2018 11:27:46 +0000 (13:27 +0200)] 
Add cmake check for HAVE_DIRFD

Reviewed-by: Simon McVittie <smcv@collabora.com>
Bug: https://gitlab.freedesktop.org/dbus/dbus/merge_requests/18

7 years agoAdd cmake check for DBUS_USE_SYNC
Ralf Habacker [Sun, 21 Oct 2018 09:34:13 +0000 (11:34 +0200)] 
Add cmake check for DBUS_USE_SYNC

Reviewed-by: Simon McVittie <smcv@collabora.com>
Bug: https://gitlab.freedesktop.org/dbus/dbus/merge_requests/18

7 years agoRefactor cmake checks for DBUS_VA_COPY and DBUS_VA_COPY_ARRAY
Ralf Habacker [Sat, 20 Oct 2018 20:34:33 +0000 (22:34 +0200)] 
Refactor cmake checks for DBUS_VA_COPY and DBUS_VA_COPY_ARRAY

For test case execution, CheckCSourceCompiles is now used instead
of try_compile and the determination of DBUS_VA_AS_ARRAY is
performed with a separate test instead of evaluating the result
of HAVE_VA_COPY and HAVE___VA_COPY.

The tests are performed for all supported compilers. Since older
MSVC compilers (< 2013) do not support va_copy(), the macro
_DBUS_VA_ASSIGN(a1,a2) with the implementation { a1 = a2; } is used
as a fallback.

Reviewed-by: Simon McVittie <smcv@collabora.com>
Bug: https://gitlab.freedesktop.org/dbus/dbus/merge_requests/18

7 years agoAdd cmake support for DBUS_HAVE_LINUX_EPOLL
Ralf Habacker [Sat, 20 Oct 2018 20:22:20 +0000 (22:22 +0200)] 
Add cmake support for DBUS_HAVE_LINUX_EPOLL

Reviewed-by: Simon McVittie <smcv@collabora.com>
Bug: https://gitlab.freedesktop.org/dbus/dbus/merge_requests/18

7 years agoUse same name for DBUS_HAVE_LINUX_EPOLL cpp macro and Automake conditional
Ralf Habacker [Sat, 20 Oct 2018 20:25:06 +0000 (22:25 +0200)] 
Use same name for DBUS_HAVE_LINUX_EPOLL cpp macro and Automake conditional

Reviewed-by: Simon McVittie <smcv@collabora.com>
Bug: https://gitlab.freedesktop.org/dbus/dbus/merge_requests/18

7 years agoMerge branch 'pending-fd-timeout' into 'master'
Simon McVittie [Tue, 23 Oct 2018 19:21:58 +0000 (19:21 +0000)] 
Merge branch 'pending-fd-timeout' into 'master'

dbus-daemon test: Allow much longer for pending fd timeout

Reviewed-by: rhabacker
See merge request dbus/dbus!26

7 years agodbus-daemon test: Allow much longer for pending fd timeout
Simon McVittie [Tue, 23 Oct 2018 10:43:23 +0000 (11:43 +0100)] 
dbus-daemon test: Allow much longer for pending fd timeout

The timeout we're using here is 0.5s (500ms), but the actual time taken
is unbounded, because the OS scheduler might not schedule our process
for an arbitrary length of time after we become runnable.

We previously allowed up to 1 second, but in the CI jobs for dbus!9
and dbus!18 we've seen this take up to 3.4 seconds (presumably
because other tests, or other jobs running on the same shared
infrastructure, starved this process). Allow up to 10 seconds to guard
against spurious failures.

The timeout used in the production system.conf is 150 seconds (2½
minutes), and we're only using the shorter 500ms timeout here to make
the test complete more quickly, so ±10 seconds is relatively
insignificant: the main thing is that it's finite.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoMerge branch 'broken-poll' into 'master'
Simon McVittie [Mon, 22 Oct 2018 21:32:48 +0000 (21:32 +0000)] 
Merge branch 'broken-poll' into 'master'

build: Never use poll() on Darwin family (macOS, etc.) or Interix

Closes: #232
Reviewed-by: @rhabacker
See merge request dbus/dbus!19

7 years agobuild: Never use poll() on Darwin family (macOS, etc.) or Interix
Simon McVittie [Mon, 22 Oct 2018 10:45:45 +0000 (11:45 +0100)] 
build: Never use poll() on Darwin family (macOS, etc.) or Interix

Doing a runtime check in configure.ac (AC_RUN_IFELSE) has several
disadvantages:

* It doesn't work when cross-compiling. For example, if we build macOS
  binaries on a Linux system, we'd assume that poll() works, but in
  fact it won't.

* It checks the build system capabilities, but that is not necessarily
  appropriate if (for example) a macOS 10.10 user builds binaries that
  could be used by macOS 10.12 or macOS 10.9 users.

* It checks for one specific failure mode, but macOS seems to have a
  history of various implementation issues in poll().

* If we want it to work in CMake, we have to duplicate it in the CMake
  build system.

None of these is a showstopper on its own, but the combination of all
of them makes the current approach to avoiding the broken poll() on
macOS look unreliable. libcurl, a widely-portable library making
extensive use of sockets, specifically doesn't use poll() on Darwin
(macOS, iOS, etc.) or on Interix; let's follow their example here.

See also https://bugzilla.gnome.org/show_bug.cgi?id=302672 and
https://daniel.haxx.se/blog/2016/10/11/poll-on-mac-10-12-is-broken/
for some relevant history.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Resolves: https://gitlab.freedesktop.org/dbus/dbus/issues/232

7 years agoNEWS: Note cmake fixes that might be cherry-picked to dbus-1.12
Simon McVittie [Mon, 22 Oct 2018 14:17:15 +0000 (15:17 +0100)] 
NEWS: Note cmake fixes that might be cherry-picked to dbus-1.12

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agocmake: Fix incorrect header list separator in configure checks
Ralf Habacker [Mon, 22 Oct 2018 07:27:30 +0000 (09:27 +0200)] 
cmake: Fix incorrect header list separator in configure checks

CMake expects a semicolon-separated list of headers, not a
space-separated list. In particular, this meant we failed to detect
getpwnam_r() on Linux, and fell back to getpwnam().

Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoUpdate NEWS
Simon McVittie [Mon, 22 Oct 2018 11:59:05 +0000 (12:59 +0100)] 
Update NEWS

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoUpdate bug reporting URLs to use freedesktop.org Gitlab
Simon McVittie [Mon, 22 Oct 2018 11:47:53 +0000 (12:47 +0100)] 
Update bug reporting URLs to use freedesktop.org Gitlab

The README change reuses text from CONTRIBUTING.md.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoci: Clarify why we are running autogen.sh even for CMake builds
Simon McVittie [Mon, 22 Oct 2018 11:43:49 +0000 (12:43 +0100)] 
ci: Clarify why we are running autogen.sh even for CMake builds

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agocmake: Add comment to configure checks explaining why we are not specifying HAVE_SOCK...
Ralf Habacker [Tue, 16 Oct 2018 11:59:04 +0000 (13:59 +0200)] 
cmake: Add comment to configure checks explaining why we are not specifying HAVE_SOCKLEN_T

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/117
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoMove DBUS_USE_OUTPUT_DEBUG_STRING to config.h.cmake
Ralf Habacker [Tue, 16 Oct 2018 11:58:27 +0000 (13:58 +0200)] 
Move DBUS_USE_OUTPUT_DEBUG_STRING to config.h.cmake

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/117
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agotools/ci-build.sh: Add a note why we are running autogen.sh also on cmake builds
Ralf Habacker [Wed, 17 Oct 2018 12:52:49 +0000 (14:52 +0200)] 
tools/ci-build.sh: Add a note why we are running autogen.sh also on cmake builds

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/117
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoRemove duplicated HAVE_CONFIG_H definition in cmake build system
Ralf Habacker [Mon, 15 Oct 2018 18:05:36 +0000 (20:05 +0200)] 
Remove duplicated HAVE_CONFIG_H definition in cmake build system

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/117
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoAdd missing setup of DBUS_BUS_ENABLE_INOTIFY
Ralf Habacker [Tue, 16 Oct 2018 12:00:17 +0000 (14:00 +0200)] 
Add missing setup of DBUS_BUS_ENABLE_INOTIFY

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/117
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoMove DBUS_ENABLE_EMBEDDED_TESTS and BUS_ENABLE_MODULAR_TESTS to config.h.cmake
Ralf Habacker [Tue, 16 Oct 2018 10:43:16 +0000 (12:43 +0200)] 
Move DBUS_ENABLE_EMBEDDED_TESTS and BUS_ENABLE_MODULAR_TESTS  to config.h.cmake

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/117
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoKeep macro values in config.h.cmake synchronized with Autotools
Ralf Habacker [Tue, 16 Oct 2018 10:21:55 +0000 (12:21 +0200)] 
Keep macro values in config.h.cmake synchronized with Autotools

Autotools sets the value of HAVE_xxx macros in config.h to 1 if
the corresponding value exists. This has not been used consistently
in config.h.cmake so far.

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/117
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoconfigure.ac: Remove unused HAVE_V*PRINTF macros
Ralf Habacker [Tue, 16 Oct 2018 10:42:45 +0000 (12:42 +0200)] 
configure.ac: Remove unused HAVE_V*PRINTF macros

The corresponding functions are used unconditionally.

Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoMerge branch 'desktop-sections' into 'master'
Simon McVittie [Fri, 19 Oct 2018 11:26:31 +0000 (11:26 +0000)] 
Merge branch 'desktop-sections' into 'master'

Parse desktop file section names more like the Desktop Entry specification

Closes #208

See merge request dbus/dbus!17

Reviewed-by: David King (@amigadave)
7 years agodesktop-file: Treat backslashes in section names as literal
Simon McVittie [Thu, 18 Oct 2018 16:36:37 +0000 (17:36 +0100)] 
desktop-file: Treat backslashes in section names as literal

The Desktop Entry Specification doesn't give any special meaning to
backslashes in section names: a line "[\n]" starts a section whose
name is the two characters (backslash, n), not a section whose name
is a newline. GKeyFile in GLib matches this interpretation.

In practice, the only section used by dbus-daemon is "D-BUS Service",
only way this could make a difference is if someone had written it
as "D-BUS\sService". According to
https://codesearch.debian.net/search?q=%5C%5BD-BUS%5C%5CsService%5C%5D
there is no instance of that pattern in Debian.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agodesktop-file: Justify implementation of is_valid_section_name()
Simon McVittie [Thu, 18 Oct 2018 14:34:09 +0000 (15:34 +0100)] 
desktop-file: Justify implementation of is_valid_section_name()

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agodesktop-file test: Add to CMake build
Simon McVittie [Thu, 18 Oct 2018 13:00:06 +0000 (14:00 +0100)] 
desktop-file test: Add to CMake build

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agodesktop-file test: Expand coverage to include more corner-cases
Simon McVittie [Thu, 18 Oct 2018 12:57:13 +0000 (13:57 +0100)] 
desktop-file test: Expand coverage to include more corner-cases

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agois_valid_section_name: Fix logical expression
David King [Fri, 12 Oct 2018 12:58:43 +0000 (13:58 +0100)] 
is_valid_section_name: Fix logical expression

Group names in desktop files may contain all ASCII characters, except
control characters and '[' and ']'. Rather than accepting all values,
thanks to a logical operator confusion found by GCC warning
-Wlogical-op, instead explicitly reject the invalid values.

Signed-off-by: David King <dking@redhat.com>
Fixes: https://gitlab.freedesktop.org/dbus/dbus/issues/208
7 years agoAdd basic test coverage for the bus' desktop file parser
Simon McVittie [Thu, 18 Oct 2018 12:45:12 +0000 (13:45 +0100)] 
Add basic test coverage for the bus' desktop file parser

This doesn't cover backslash-escaping in values, or various other
corner cases, but it's a start.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoCONTRIBUTING.md: Update and rewrite
Simon McVittie [Tue, 16 Oct 2018 14:44:59 +0000 (15:44 +0100)] 
CONTRIBUTING.md: Update and rewrite

This file hadn't kept up with reality, and needs updating for Gitlab.
Take the opportunity to rewrite it.

Much of the text, particularly about commit messages, was taken from
Wayland's contributing guide (thanks to Ander Conselvan de Oliveira,
Bryce Harrington, Eric Engestrom, Pekka Paalanen and Daniel Stone).

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoCONTRIBUTING: Reformat as Markdown
Simon McVittie [Tue, 16 Oct 2018 14:02:29 +0000 (15:02 +0100)] 
CONTRIBUTING: Reformat as Markdown

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoCONTRIBUTING: Remove all trailing whitespace
Simon McVittie [Tue, 16 Oct 2018 14:01:04 +0000 (15:01 +0100)] 
CONTRIBUTING: Remove all trailing whitespace

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoUse separate bus configuration files for executing test cases with a temporary sessio...
Ralf Habacker [Mon, 31 Oct 2011 14:53:25 +0000 (15:53 +0100)] 
Use separate bus configuration files for executing test cases with a temporary session bus

Instead of the previous adaptation of the existing template
for the session bus, a separate template is now used, which
can be more easily adapted to the requirements of the test
applications.

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/57

7 years agodbus-launch: Fix unused variable warning when libX11 not present
Simon McVittie [Fri, 28 Sep 2018 14:50:43 +0000 (15:50 +0100)] 
dbus-launch: Fix unused variable warning when libX11 not present

Closes: https://gitlab.freedesktop.org/dbus/dbus/issues/228
Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agodbus-send: Avoid duplicated-branches warning
David King [Wed, 17 Oct 2018 07:33:25 +0000 (08:33 +0100)] 
dbus-send: Avoid duplicated-branches warning

Switch the order of the argument checks to avoid the
-Wduplicated-branches warning.

Signed-off-by: David King <dking@redhat.com>
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years ago_dbus_get_is_errno_eagain_or_ewouldblock: Avoid warning
David King [Fri, 12 Oct 2018 15:20:39 +0000 (16:20 +0100)] 
_dbus_get_is_errno_eagain_or_ewouldblock: Avoid warning

EAGAIN and EWOULDBLOCK are documented to possibly be numerically equal,
for instance in errno(3), and a simple logical OR check will trigger the
-Wlogical-op warning of GCC. The GCC developers consider the warning to
work as-designed in this case:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69602

Avoid such a warning by explicitly checking if the values are identical.

Fixes: https://gitlab.freedesktop.org/dbus/dbus/issues/225
Signed-off-by: David King <dking@redhat.com>
Reviewed-by: Simon McVittie <smcv@collabora.com>
7 years agoBuild dbus-run-session on non Windows platforms with cmake
Ralf Habacker [Mon, 11 Dec 2017 08:14:49 +0000 (09:14 +0100)] 
Build dbus-run-session on non Windows platforms with cmake

dbus-run-session is the preferred way to run a temporary D-Bus
session scoped to the lifetime of a process, for example
dbus-run-session -- make check.

Bug: https://gitlab.freedesktop.org/dbus/dbus/issues/193

7 years agocmake: Make Autotools consistency check work in out-of-srcdir builds
Simon McVittie [Tue, 4 Sep 2018 14:36:43 +0000 (07:36 -0700)] 
cmake: Make Autotools consistency check work in out-of-srcdir builds

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agocmake: Define HAVE_PRCTL, HAVE_RAISE according to existing checks
Simon McVittie [Tue, 4 Sep 2018 14:38:12 +0000 (07:38 -0700)] 
cmake: Define HAVE_PRCTL, HAVE_RAISE according to existing checks

Otherwise test-segfault will not be able to disable core dumps, making
it extremely slow and noisy to run the tests under cmake.
I added the missing checks in commit be55374f, but didn't add the
corresponding symbols to config.h.cmake.

Fixes: be55374f "cmake: check for the necessary symbols for test-segfault.c"
Closes: https://gitlab.freedesktop.org/dbus/dbus/issues/227
Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoUpdate NEWS
Simon McVittie [Fri, 5 Oct 2018 11:30:53 +0000 (12:30 +0100)] 
Update NEWS

7 years agoBelatedly add a NEWS entry for mingw-w64 printf fixes
Simon McVittie [Fri, 5 Oct 2018 11:33:05 +0000 (12:33 +0100)] 
Belatedly add a NEWS entry for mingw-w64 printf fixes

This was backported to dbus-1.12, so it needed a NEWS entry there,
at which point it seems odd for it not to have one here.

7 years agoci: Use a separate ccache for each CI job
Simon McVittie [Thu, 4 Oct 2018 17:41:29 +0000 (18:41 +0100)] 
ci: Use a separate ccache for each CI job

This should avoid them overwriting each other.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoci: Mark many Gitlab jobs to be run manually
Simon McVittie [Thu, 4 Oct 2018 16:26:42 +0000 (17:26 +0100)] 
ci: Mark many Gitlab jobs to be run manually

freedesktop.org Gitlab doesn't currently have enough test runners
available to run all of this every time. For higher-risk changes
(for example those that change the build system) we can run the
complete set through the web UI.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoci: Reshuffle mingw jobs so we test different combinations
Simon McVittie [Thu, 4 Oct 2018 16:04:41 +0000 (17:04 +0100)] 
ci: Reshuffle mingw jobs so we test different combinations

We test the combinations that we don't test on Travis-CI.

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoci: Use ccache to speed up repeated builds
Simon McVittie [Thu, 4 Oct 2018 09:50:37 +0000 (10:50 +0100)] 
ci: Use ccache to speed up repeated builds

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoci: Teach ci-install.sh to install wine on Debian 9 'stretch'
Simon McVittie [Wed, 3 Oct 2018 16:51:49 +0000 (17:51 +0100)] 
ci: Teach ci-install.sh to install wine on Debian 9 'stretch'

Signed-off-by: Simon McVittie <smcv@collabora.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=108177
Acked-by: Philip Withnall <withnall@endlessm.com>
7 years agoci: Explicitly install cmake
Simon McVittie [Wed, 3 Oct 2018 16:51:35 +0000 (17:51 +0100)] 
ci: Explicitly install cmake

Travis-CI workers have cmake preinstalled, but Gitlab-CI Docker images
typically don't.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=108177
Acked-by: Philip Withnall <withnall@endlessm.com>
7 years agoci: Add Gitlab-CI configuration
Simon McVittie [Wed, 3 Oct 2018 16:25:43 +0000 (17:25 +0100)] 
ci: Add Gitlab-CI configuration

This uses the same shell scripts as Travis-CI, with slightly different
settings. We use Docker containers for all our Gitlab-CI runs, so take
the opportunity to use Debian 9 'stretch' as our baseline, and
relegate Ubuntu 14.04 'trusty' to to a secondary build.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=108177
Acked-by: Philip Withnall <withnall@endlessm.com>
7 years agoUpdate NEWS
Simon McVittie [Thu, 30 Aug 2018 16:46:05 +0000 (17:46 +0100)] 
Update NEWS

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agobuild: Make --enable-relocation compatible with hard-coding directories
Simon McVittie [Wed, 29 Aug 2018 13:08:40 +0000 (14:08 +0100)] 
build: Make --enable-relocation compatible with hard-coding directories

Open Build Service RPMs for mingw32-dbus-1 hard-code all the
directories to make everything explicit, notably:

--prefix=/usr/i686-w64-mingw32/sys-root/mingw
--exec-prefix=/usr/i686-w64-mingw32/sys-root/mingw
...
--libdir=/usr/i686-w64-mingw32/sys-root/mingw/lib

Previously we didn't accept this as relocatable, but actually it's
fine: ${prefix} is still equivalent to ${libdir}/pkgconfig/../..,
so our relocation setup can work. Accept the result of expanding
"${prefix}" as an acceptable value for --exec-prefix, and accept the
results of expanding "${exec_prefix}/lib" etc. as acceptable values
for --libdir.

Note the use of single vs. double quotes here. A case statement that
matches '${prefix}' tests for the literal string «${prefix}»,
whereas a case that matches "${prefix}" tests for the string that is
the value of the variable named «prefix» that is set by the
--prefix command-line argument.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107662

7 years agobuild: Give better error messages if relocation is impossible
Simon McVittie [Wed, 29 Aug 2018 13:01:02 +0000 (14:01 +0100)] 
build: Give better error messages if relocation is impossible

There are two reasons why we might reject relocation: the exec_prefix
differing from the prefix, or the libdir not being a first-level
subdirectory named "lib" or "lib64" of the prefix. Make it clearer
which one failed and why.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107662

7 years agoUpdate NEWS
Simon McVittie [Thu, 30 Aug 2018 16:39:09 +0000 (17:39 +0100)] 
Update NEWS

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agocontainers: Share code for what happens when we lose a connection
Simon McVittie [Tue, 3 Jul 2018 19:26:33 +0000 (20:26 +0100)] 
containers: Share code for what happens when we lose a connection

This improves test coverage, because
bus_container_instance_lost_connection() was previously only called
when we failed to set up a connection with a server due to OOM, but
it is now also called (instead of being duplicated) when we are told
to clean up a connection because it has disconnected.

To make sure that connections from containers can never cheat their
way into being treated as uncontained, do not set their
contained_data_slot to NULL.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107739

7 years agoAdd more test coverage for config file parsing
Simon McVittie [Fri, 17 Aug 2018 16:02:45 +0000 (17:02 +0100)] 
Add more test coverage for config file parsing

minimal.conf is a valid config file added to make it obvious why
the new invalid config files are invalid.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107739

7 years agobus_config_parser_check_doctype: Remove, unused
Simon McVittie [Wed, 29 Aug 2018 17:33:01 +0000 (18:33 +0100)] 
bus_config_parser_check_doctype: Remove, unused

We have never checked the <!DOCTYPE> of busconfig XML since the libxml
parser was removed in 2013, and the libxml parser was broken before
that anyway. The recommended Expat parser (our only parser since 2013)
does not appear to have ever validated this, so now does not seem like
the time to start. Just ignore the <!DOCTYPE> if there is one.

(We never validated this particularly strictly anyway;
<!DOCTYPE busconfig SYSTEM "http://example.com/bees"> would have been
treated as perfectly valid.)

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107739

7 years agocontainers test: Exercise GetConnectionInstance() on dbus-daemon itself
Simon McVittie [Fri, 3 Aug 2018 14:33:08 +0000 (15:33 +0100)] 
containers test: Exercise GetConnectionInstance() on dbus-daemon itself

This is an easy bit of missing test coverage detected by running the
test suite with gcov.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107739

7 years agoBusConfigParser test: Check that all limits are equal, not just one
Simon McVittie [Fri, 17 Aug 2018 15:35:37 +0000 (16:35 +0100)] 
BusConfigParser test: Check that all limits are equal, not just one

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107739

7 years agobus_context_get_policy: Remove, unused
Simon McVittie [Fri, 17 Aug 2018 15:33:06 +0000 (16:33 +0100)] 
bus_context_get_policy: Remove, unused

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107739

7 years agobus_connections_get_context: Remove, unused
Simon McVittie [Fri, 17 Aug 2018 15:31:00 +0000 (16:31 +0100)] 
bus_connections_get_context: Remove, unused

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107739

7 years agobus_connections_foreach, bus_connections_foreach_active: Remove
Simon McVittie [Fri, 17 Aug 2018 15:30:23 +0000 (16:30 +0100)] 
bus_connections_foreach, bus_connections_foreach_active: Remove

These do not appear in code coverage statistics, and `git grep`
reveals that they are unused.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107739

7 years agodbus-cleanup-sockets: Mark functions noreturn as suggested by clang
Simon McVittie [Fri, 3 Aug 2018 14:21:53 +0000 (15:21 +0100)] 
dbus-cleanup-sockets: Mark functions noreturn as suggested by clang

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107739

7 years agoUpdate NEWS
Simon McVittie [Thu, 30 Aug 2018 16:33:16 +0000 (17:33 +0100)] 
Update NEWS

Signed-off-by: Simon McVittie <smcv@collabora.com>
7 years agoDo not apply __attribute__((__malloc__)) to dbus_realloc()
Simon McVittie [Thu, 23 Aug 2018 08:01:03 +0000 (09:01 +0100)] 
Do not apply __attribute__((__malloc__)) to dbus_realloc()

As noted in GLib commit c879f50f, gcc's interpretation of the malloc
attribute has become more strict over time, which could result in
miscompilation. The new definition is that in addition to assuming
that the returned memory block is newly-allocated, gcc now assumes
that it does not contain any valid pointers. This is OK for
uninitialized or zero-initialized memory returned by dbus_malloc()
or dbus_malloc0(), but not valid for dbus_realloc(), which might be
used for a dynamically-sized array of (structures containing)
valid pointers.

See https://gitlab.gnome.org/GNOME/glib/issues/1465

Signed-off-by: Simon McVittie <smcv@collabora.com>
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=107741