)
libsystemd_version = '0.29.0'
-libudev_version = '1.6.18'
+libudev_version = '1.7.0'
# We need the same data in two different formats, ugh!
# Also, for hysterical reasons, we use different variable
project_source_root).stdout().strip()
conf.set_quoted('RELATIVE_SOURCE_PATH', relative_source_path)
+conf.set10('DEVELOPER_MODE', get_option('mode') == 'developer',
+ description : 'enable additional checks only suitable in development')
+
want_ossfuzz = get_option('oss-fuzz')
want_libfuzzer = get_option('llvm-fuzz')
if want_ossfuzz + want_libfuzzer > 1
pamconfdir = get_option('pamconfdir')
if pamconfdir == ''
- pamconfdir = join_paths(sysconfdir, 'pam.d')
+ pamconfdir = join_paths(prefixdir, 'lib/pam.d')
endif
memory_accounting_default = get_option('memory-accounting-default')
conf.set_quoted('SYSTEM_DATA_UNIT_PATH', systemunitdir)
conf.set_quoted('SYSTEM_SYSVINIT_PATH', sysvinit_path)
conf.set_quoted('SYSTEM_SYSVRCND_PATH', sysvrcnd_path)
-conf.set_quoted('RC_LOCAL_SCRIPT_PATH_START', get_option('rc-local'))
+conf.set_quoted('RC_LOCAL_PATH', get_option('rc-local'))
conf.set('ANSI_OK_COLOR', 'ANSI_' + get_option('ok-color').underscorify().to_upper())
conf.set_quoted('SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH', join_paths(rootbindir, 'systemd-tty-ask-password-agent'))
conf.set_quoted('SYSTEMD_STDIO_BRIDGE_BINARY_PATH', join_paths(bindir, 'systemd-stdio-bridge'))
conf.set_quoted('ROOTPREFIX', rootprefixdir)
+conf.set_quoted('ROOTPREFIX_NOSLASH', rootprefixdir_noslash)
conf.set_quoted('RANDOM_SEED_DIR', randomseeddir)
conf.set_quoted('RANDOM_SEED', join_paths(randomseeddir, 'random-seed'))
conf.set_quoted('SYSTEMD_CRYPTSETUP_PATH', join_paths(rootlibexecdir, 'systemd-cryptsetup'))
substs.set('RANDOM_SEED', join_paths(randomseeddir, 'random-seed'))
substs.set('SYSTEM_SYSVINIT_PATH', sysvinit_path)
substs.set('SYSTEM_SYSVRCND_PATH', sysvrcnd_path)
-substs.set('RC_LOCAL_SCRIPT_PATH_START', get_option('rc-local'))
+substs.set('RC_LOCAL_PATH', get_option('rc-local'))
substs.set('MEMORY_ACCOUNTING_DEFAULT', memory_accounting_default ? 'yes' : 'no')
substs.set('STATUS_UNIT_FORMAT_DEFAULT', status_unit_format_default)
substs.set('HIGH_RLIMIT_NOFILE', conf.get('HIGH_RLIMIT_NOFILE'))
conf.set('TTY_GID', tty_gid)
substs.set('TTY_GID', tty_gid)
-# Ensure provided GID argument is numeric, otherwise fallback to default assignment
+# Ensure provided GID argument is numeric, otherwise fall back to default assignment
users_gid = get_option('users-gid')
substs.set('USERS_GID', users_gid < 0 ? '-' : users_gid)
libdl = cc.find_library('dl')
libcrypt = cc.find_library('crypt')
+crypt_header = conf.get('HAVE_CRYPT_H') == 1 ? '''#include <crypt.h>''' : '''#include <unistd.h>'''
+foreach ident : [
+ ['crypt_ra', crypt_header],
+ ['crypt_gensalt_ra', crypt_header]]
+
+ have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE',
+ dependencies : libcrypt)
+ conf.set10('HAVE_' + ident[0].to_upper(), have)
+endforeach
+
libcap = dependency('libcap', required : false)
if not libcap.found()
# Compat with Ubuntu 14.04 which ships libcap w/o .pc file
want_libfdisk = get_option('fdisk')
if want_libfdisk != 'false' and not skip_deps
libfdisk = dependency('fdisk',
+ version : '>= 2.33',
required : want_libfdisk == 'true')
have = libfdisk.found()
else
endif
conf.set10('ENABLE_REMOTE', have)
-foreach term : ['utmp',
- 'hibernate',
- 'environment-d',
+foreach term : ['analyze',
+ 'backlight',
'binfmt',
'coredump',
- 'pstore',
- 'resolve',
- 'logind',
+ 'efi',
+ 'environment-d',
+ 'firstboot',
+ 'gshadow',
+ 'hibernate',
'hostnamed',
+ 'hwdb',
+ 'idn',
+ 'ima',
+ 'initrd',
+ 'ldconfig',
'localed',
+ 'logind',
'machined',
- 'portabled',
- 'userdb',
'networkd',
- 'timedated',
- 'timesyncd',
- 'firstboot',
- 'randomseed',
- 'backlight',
- 'vconsole',
+ 'nss-myhostname',
+ 'nss-systemd',
+ 'portabled',
+ 'pstore',
'quotacheck',
+ 'randomseed',
+ 'resolve',
+ 'rfkill',
+ 'smack',
'sysusers',
+ 'timedated',
+ 'timesyncd',
'tmpfiles',
- 'hwdb',
- 'rfkill',
- 'xdg-autostart',
- 'ldconfig',
- 'efi',
'tpm',
- 'ima',
- 'smack',
- 'gshadow',
- 'idn',
- 'initrd',
- 'nss-myhostname',
- 'nss-systemd']
+ 'userdb',
+ 'utmp',
+ 'vconsole',
+ 'xdg-autostart']
have = get_option(term)
name = 'ENABLE_' + term.underscorify().to_upper()
conf.set10(name, have)
libgcrypt],
c_args : libsystemd_c_args + (static_libsystemd_pic ? [] : ['-fno-PIC']))
-# Generate autosuspend rules
+############################################################
+
+autosuspend_update_sh = find_program('tools/autosuspend-update.sh')
+hwdb_update_sh = find_program('tools/hwdb-update.sh')
make_autosuspend_rules_py = find_program('tools/make-autosuspend-rules.py')
+make_directive_index_py = find_program('tools/make-directive-index.py')
+make_man_index_py = find_program('tools/make-man-index.py')
+syscall_names_update_sh = find_program('tools/syscall-names-update.sh')
+xml_helper_py = find_program('tools/xml_helper.py')
+update_dbus_docs_py = find_program('tools/update-dbus-docs.py')
############################################################
libmount,
libblkid],
install_rpath : rootlibexecdir,
- install : get_option('analyze'))
+ install : conf.get('ENABLE_ANALYZE'))
executable(
'systemd-journald',
include_directories : includes,
link_with : [libshared],
dependencies : [threads,
- libqrencode,
+ libdl,
libxz,
liblz4,
- libpcre2,
- libzstd],
+ libzstd,
+ libdl],
install_rpath : rootlibexecdir,
install : true,
install_dir : rootbindir)
include_directories : includes,
link_with : [libshared],
install_rpath : rootlibexecdir,
- install : true,
- install_dir : rootlibexecdir)
+ install : true)
endif
if conf.get('ENABLE_RESOLVE') == 1
link_with : [libshared],
dependencies : [threads,
libcrypt,
- libopenssl,
- libpwquality],
+ libopenssl],
install_rpath : rootlibexecdir,
install : true,
install_dir : rootlibexecdir)
libopenssl,
libp11kit,
libfido2,
- libpwquality],
+ libdl],
install_rpath : rootlibexecdir,
install : true,
install_dir : rootbindir)
if conf.get('HAVE_LIBCRYPTSETUP') == 1
systemd_cryptsetup_sources = files('''
src/cryptsetup/cryptsetup-pkcs11.h
- src/cryptsetup/cryptsetup-util.c
- src/cryptsetup/cryptsetup-util.h
+ src/cryptsetup/cryptsetup-keyfile.c
+ src/cryptsetup/cryptsetup-keyfile.h
src/cryptsetup/cryptsetup.c
'''.split())
'src/cryptsetup/cryptsetup-generator.c',
include_directories : includes,
link_with : [libshared],
- dependencies : [libcryptsetup],
install_rpath : rootlibexecdir,
install : true,
install_dir : systemgeneratordir)
'src/veritysetup/veritysetup-generator.c',
include_directories : includes,
link_with : [libshared],
- dependencies : [libcryptsetup],
install_rpath : rootlibexecdir,
install : true,
install_dir : systemgeneratordir)
include_directories : includes,
link_with : [libshared],
dependencies : [threads,
- libcryptsetup,
libblkid,
libfdisk,
libopenssl],
install_rpath : rootlibexecdir,
install : true,
install_dir : rootbindir)
+ public_programs += exe
if want_tests != 'false'
test('test-repart',
'src/partition/growfs.c',
include_directories : includes,
link_with : [libshared],
- dependencies : [libcryptsetup],
install_rpath : rootlibexecdir,
install : true,
install_dir : rootlibexecdir)
############################################################
-make_directive_index_py = find_program('tools/make-directive-index.py')
-make_man_index_py = find_program('tools/make-man-index.py')
-xml_helper_py = find_program('tools/xml_helper.py')
-hwdb_update_sh = find_program('tools/hwdb-update.sh')
-autosuspend_update_sh = find_program('tools/autosuspend-update.sh')
-
subdir('sysctl.d')
subdir('sysusers.d')
subdir('tmpfiles.d')
status = [
'@0@ @1@'.format(meson.project_name(), meson.project_version()),
+ 'build mode: @0@'.format(get_option('mode')),
'split /usr: @0@'.format(split_usr),
'split bin-sbin: @0@'.format(split_bin),
'prefix directory: @0@'.format(prefixdir),
['link-networkd-shared', get_option('link-networkd-shared')],
['link-timesyncd-shared', get_option('link-timesyncd-shared')],
['kernel-install', get_option('kernel-install')],
- ['systemd-analyze', get_option('analyze')],
+ ['systemd-analyze', conf.get('ENABLE_ANALYZE') == 1],
]
if tuple.length() >= 2