mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-20 04:30:10 +01:00
Merge branch 'no-hard-coded-tmpdir' into 'main'
build: Don't use build-time TMPDIR, TEMP, TMP as socket directory Closes #551 See merge request dbus/dbus!522
This commit is contained in:
commit
5035f4bda6
4 changed files with 34 additions and 40 deletions
|
|
@ -562,24 +562,10 @@ if(MSVC_IDE)
|
|||
file(REMOVE ${PROJECT_BINARY_DIR}/data/dbus-1/services)
|
||||
endif()
|
||||
|
||||
#### Find socket directories
|
||||
set(DBUS_SESSION_SOCKET_DIR "" CACHE STRING "Default directory for session socket")
|
||||
if(UNIX)
|
||||
if (CMAKE_CROSSCOMPILING)
|
||||
if (NOT DBUS_SESSION_SOCKET_DIR)
|
||||
message(FATAL_ERROR "cannot autodetect session socket directory "
|
||||
"when crosscompiling, pass -DDBUS_SESSION_SOCKET_DIR=...")
|
||||
endif()
|
||||
elseif(NOT $ENV{TMPDIR} STREQUAL "")
|
||||
set(DBUS_SESSION_SOCKET_DIR $ENV{TMPDIR})
|
||||
elseif(NOT $ENV{TEMP} STREQUAL "")
|
||||
set(DBUS_SESSION_SOCKET_DIR $ENV{TEMP})
|
||||
elseif(NOT $ENV{TMP} STREQUAL "")
|
||||
set(DBUS_SESSION_SOCKET_DIR $ENV{TMP})
|
||||
else()
|
||||
set(DBUS_SESSION_SOCKET_DIR /tmp)
|
||||
endif()
|
||||
if(UNIX AND NOT DBUS_SESSION_SOCKET_DIR)
|
||||
set(DBUS_SESSION_SOCKET_DIR /tmp)
|
||||
endif()
|
||||
set(DBUS_SESSION_SOCKET_DIR "${DBUS_SESSION_SOCKET_DIR}" CACHE STRING "Default directory for session socket on Unix")
|
||||
|
||||
# Not used on Windows, where there is no system bus
|
||||
set(DBUS_SYSTEM_PID_FILE ${DBUS_RUNSTATEDIR}/dbus/pid)
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#cmakedefine DBUS_PREFIX "@DBUS_PREFIX@"
|
||||
#cmakedefine DBUS_SYSTEM_CONFIG_FILE "@DBUS_SYSTEM_CONFIG_FILE@"
|
||||
#cmakedefine DBUS_SESSION_CONFIG_FILE "@DBUS_SESSION_CONFIG_FILE@"
|
||||
#cmakedefine DBUS_SESSION_SOCKET_DIR "@DBUS_SESSION_SOCKET_DIR@"
|
||||
#cmakedefine DBUS_DAEMON_NAME "@DBUS_DAEMON_NAME@"
|
||||
#cmakedefine DBUS_SYSTEM_BUS_DEFAULT_ADDRESS "@DBUS_SYSTEM_BUS_DEFAULT_ADDRESS@"
|
||||
#cmakedefine DBUS_SESSION_BUS_CONNECT_ADDRESS "@DBUS_SESSION_BUS_CONNECT_ADDRESS@"
|
||||
|
|
@ -227,8 +226,6 @@
|
|||
#cmakedefine DBUS_USER "@DBUS_USER@"
|
||||
#cmakedefine DBUS_TEST_USER "@DBUS_TEST_USER@"
|
||||
#cmakedefine DBUS_TEST_EXEC "@DBUS_TEST_EXEC@"
|
||||
/* Where to put test sockets */
|
||||
#define DBUS_TEST_SOCKET_DIR "@TEST_SOCKET_DIR@"
|
||||
|
||||
// system type defines
|
||||
#if defined(_WIN32) || defined(_WIN64) || defined (_WIN32_WCE)
|
||||
|
|
@ -244,6 +241,12 @@
|
|||
# define DBUS_UNIX
|
||||
#endif
|
||||
|
||||
#ifdef DBUS_UNIX
|
||||
#cmakedefine DBUS_SESSION_SOCKET_DIR "@DBUS_SESSION_SOCKET_DIR@"
|
||||
/* Where to put test sockets */
|
||||
#define DBUS_TEST_SOCKET_DIR "@TEST_SOCKET_DIR@"
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
// mingw mode_t
|
||||
# ifdef HAVE_STDIO_H
|
||||
|
|
|
|||
43
meson.build
43
meson.build
|
|
@ -1070,29 +1070,29 @@ endif
|
|||
data_config.set('SYSCONFDIR_FROM_PKGDATADIR', sysconfdir_from_pkgdatadir)
|
||||
data_config.set('DATADIR_FROM_PKGSYSCONFDIR', datadir_from_pkgsysconfdir)
|
||||
|
||||
#### Find socket directories
|
||||
values = run_command(python, '-c',
|
||||
'import os; [print(os.getenv(e, "")) for e in ["TMPDIR", "TEMP", "TMP"]]',
|
||||
check: true,
|
||||
).stdout()
|
||||
values += '/tmp'
|
||||
default_socket_dir = values.strip().split('\n')[0]
|
||||
if platform_unix
|
||||
session_socket_dir = get_option('session_socket_dir')
|
||||
|
||||
test_socket_dir = get_option('test_socket_dir')
|
||||
if test_socket_dir == ''
|
||||
test_socket_dir = default_socket_dir
|
||||
if session_socket_dir == ''
|
||||
session_socket_dir = '/tmp'
|
||||
endif
|
||||
|
||||
config.set_quoted('DBUS_SESSION_SOCKET_DIR', session_socket_dir)
|
||||
|
||||
test_socket_dir = get_option('test_socket_dir')
|
||||
|
||||
if test_socket_dir == ''
|
||||
test_socket_dir = session_socket_dir
|
||||
endif
|
||||
|
||||
config.set_quoted('DBUS_TEST_SOCKET_DIR', test_socket_dir)
|
||||
test_listen = 'unix:tmpdir=' + test_socket_dir
|
||||
else
|
||||
test_listen = 'tcp:host=localhost'
|
||||
endif
|
||||
test_listen = platform_unix ? 'unix:tmpdir=' + test_socket_dir : 'tcp:host=localhost'
|
||||
config.set_quoted('TEST_LISTEN', test_listen)
|
||||
config.set_quoted('DBUS_TEST_SOCKET_DIR', test_socket_dir)
|
||||
data_config.set('TEST_LISTEN', test_listen)
|
||||
|
||||
session_socket_dir = get_option('session_socket_dir')
|
||||
if session_socket_dir == ''
|
||||
session_socket_dir = default_socket_dir
|
||||
endif
|
||||
config.set_quoted('DBUS_SESSION_SOCKET_DIR', session_socket_dir)
|
||||
|
||||
# This must be a listening address. It doesn't necessarily need to be an
|
||||
# address you can connect to - it can be something vague like
|
||||
# "nonce-tcp:".
|
||||
|
|
@ -1395,9 +1395,14 @@ summary_dict += {
|
|||
'System bus user': dbus_user,
|
||||
'Session bus services dir':
|
||||
get_option('prefix') / get_option('datadir') / 'dbus-1' / 'services',
|
||||
'Tests socket dir': test_socket_dir,
|
||||
}
|
||||
|
||||
if platform_unix
|
||||
summary_dict += {
|
||||
'Tests socket dir': test_socket_dir,
|
||||
}
|
||||
endif
|
||||
|
||||
if host_os.contains('solaris')
|
||||
summary_dict += {
|
||||
'Console owner file': console_owner_file,
|
||||
|
|
|
|||
|
|
@ -247,7 +247,7 @@ option(
|
|||
option(
|
||||
'test_socket_dir',
|
||||
type: 'string',
|
||||
description: 'Where to put sockets for make check'
|
||||
description: 'Where to put sockets for automated tests'
|
||||
)
|
||||
|
||||
option(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue