project('systemd', 'c',
- version : '234',
+ version : '235',
license : 'LGPLv2+',
default_options: [
'c_std=gnu99',
meson_version : '>= 0.40',
)
+libsystemd_version = '0.19.0'
+libudev_version = '1.6.6'
+
# We need the same data in three different formats, ugh!
# Also, for hysterical reasons, we use different variable
# names, sometimes. Not all variables are included in every
#####################################################################
+# Try to install the git pre-commit hook
+git_hook = run_command(join_paths(meson.source_root(), 'tools/add-git-hook.sh'))
+if git_hook.returncode() == 0
+ message(git_hook.stdout().strip())
+endif
+
+#####################################################################
+
rootprefixdir = get_option('rootprefix')
if get_option('split-usr')
conf.set('HAVE_SPLIT_USR', true)
varlogdir = join_paths(localstatedir, 'log')
xinitrcdir = join_paths(sysconfdir, 'X11/xinit/xinitrc.d')
rpmmacrosdir = get_option('rpmmacrosdir')
+modprobedir = join_paths(prefixdir, 'lib/modprobe.d')
# Our own paths
pkgdatadir = join_paths(datadir, 'systemd')
foreach arg : ['unused-parameter',
'missing-field-initializers',
'unused-result',
- 'format-signedness']
+ 'format-signedness',
+ 'error=nonnull', # work-around for gcc 7.1 turning this on on its own
+ ]
if cc.has_argument('-W' + arg)
add_project_arguments('-Wno-' + arg, language : 'c')
endif
decl_headers = '''
#include <uchar.h>
#include <linux/ethtool.h>
+#include <linux/fib_rules.h>
'''
# FIXME: key_serial_t is only defined in keyutils.h, this is bound to fail
'char32_t',
'key_serial_t',
'struct ethtool_link_settings',
+ 'struct fib_rule_uid_range',
]
# We get -1 if the size cannot be determined
['IFLA_BR_VLAN_DEFAULT_PVID', 'linux/if_link.h'],
['NDA_IFINDEX', 'linux/neighbour.h'],
['IFA_FLAGS', 'linux/if_addr.h'],
+ ['FRA_UID_RANGE', 'linux/fib_rules.h'],
['LO_FLAGS_PARTSCAN', 'linux/loop.h'],
]
prefix = decl.length() > 2 ? decl[2] : ''
#include <keyutils.h>'''],
['copy_file_range', '''#include <sys/syscall.h>
#include <unistd.h>'''],
+ ['bpf', '''#include <sys/syscall.h>
+ #include <unistd.h>'''],
['explicit_bzero' , '''#include <string.h>'''],
]
############################################################
conf.set_quoted('FALLBACK_HOSTNAME', get_option('fallback-hostname'))
+conf.set10('ENABLE_COMPAT_GATEWAY_HOSTNAME', get_option('compat-gateway-hostname'))
+gateway_hostnames = ['_gateway'] + (conf.get('ENABLE_COMPAT_GATEWAY_HOSTNAME') == 1 ? ['gateway'] : [])
default_hierarchy = get_option('default-hierarchy')
conf.set_quoted('DEFAULT_HIERARCHY_NAME', default_hierarchy,
endif
libmount = dependency('mount',
- version : '>= 2.27')
+ version : '>= 2.30')
want_seccomp = get_option('seccomp')
if want_seccomp != 'false'
error('libidn and libidn2 cannot be requested simultaneously')
endif
-if want_libidn2 != 'false' and want_libidn != 'true'
- libidn = dependency('libidn2',
- required : want_libidn2 == 'true')
- # libidn is used for both libidn and libidn2 objects
+if want_libidn != 'false' and want_libidn2 != 'true'
+ libidn = dependency('libidn',
+ required : want_libidn == 'true')
if libidn.found()
- conf.set('HAVE_LIBIDN2', true)
- m4_defines += ['-DHAVE_LIBIDN2']
+ conf.set('HAVE_LIBIDN', true)
+ m4_defines += ['-DHAVE_LIBIDN']
endif
else
libidn = []
endif
-if not conf.get('HAVE_LIBIDN2', false) and want_libidn != 'false'
- libidn = dependency('libidn',
- required : want_libidn == 'true')
+if not conf.get('HAVE_LIBIDN', false) and want_libidn2 != 'false'
+ # libidn is used for both libidn and libidn2 objects
+ libidn = dependency('libidn2',
+ required : want_libidn2 == 'true')
if libidn.found()
- conf.set('HAVE_LIBIDN', true)
- m4_defines += ['-DHAVE_LIBIDN']
+ conf.set('HAVE_LIBIDN2', true)
+ m4_defines += ['-DHAVE_LIBIDN2']
endif
endif
libqrencode = []
endif
+want_gcrypt = get_option('gcrypt')
+if want_gcrypt != 'false'
+ libgcrypt = cc.find_library('gcrypt', required : want_gcrypt == 'true')
+ libgpg_error = cc.find_library('gpg-error', required : want_gcrypt == 'true')
+
+ have_deps = libgcrypt.found() and libgpg_error.found()
+ conf.set('HAVE_GCRYPT', have_deps)
+ if not have_deps
+ # link to neither of the libs if one is not found
+ libgcrypt = []
+ libgpg_error = []
+ endif
+else
+ libgcrypt = []
+ libgpg_error = []
+endif
+
want_gnutls = get_option('gnutls')
if want_gnutls != 'false'
libgnutls = dependency('gnutls',
liblz4 = []
endif
+want_xkbcommon = get_option('xkbcommon')
+if want_xkbcommon != 'false'
+ libxkbcommon = dependency('xkbcommon',
+ version : '>= 0.3.0',
+ required : want_xkbcommon == 'true')
+ conf.set('HAVE_XKBCOMMON', libxkbcommon.found())
+else
+ libxkbcommon = []
+endif
+
want_glib = get_option('glib')
if want_glib != 'false'
libglib = dependency('glib-2.0',
libgio = []
endif
-want_xkbcommon = get_option('xkbcommon')
-if want_xkbcommon != 'false'
- libxkbcommon = dependency('xkbcommon',
- version : '>= 0.3.0',
- required : want_xkbcommon == 'true')
- conf.set('HAVE_XKBCOMMON', libxkbcommon.found())
-else
- libxkbcommon = []
-endif
-
want_dbus = get_option('dbus')
if want_dbus != 'false'
libdbus = dependency('dbus-1',
libdbus = []
endif
-want_gcrypt = get_option('gcrypt')
-if want_gcrypt != 'false'
- libgcrypt = cc.find_library('gcrypt', required : want_gcrypt == 'true')
- libgpg_error = cc.find_library('gpg-error', required : want_gcrypt == 'true')
-
- have_deps = libgcrypt.found() and libgpg_error.found()
- conf.set('HAVE_GCRYPT', have_deps)
- if not have_deps
- # link to neither of the libs if one is not found
- libgcrypt = []
- libgpg_error = []
- endif
-else
- libgcrypt = []
- libgpg_error = []
-endif
-
default_dnssec = get_option('default-dnssec')
if default_dnssec != 'no' and not conf.get('HAVE_GCRYPT', false)
message('default-dnssec cannot be set to yes or allow-downgrade when gcrypt is disabled. Setting default-dnssec to no.')
['rfkill', 'ENABLE_RFKILL'],
['ldconfig', 'ENABLE_LDCONFIG'],
['efi', 'ENABLE_EFI'],
- ['tpm', 'SD_BOOT_LOG_TPM'],
+ ['tpm', 'ENABLE_TPM'],
['ima', 'HAVE_IMA'],
['smack', 'HAVE_SMACK'],
['gshadow', 'ENABLE_GSHADOW'],
install_tests = get_option('install-tests')
tests = []
+conf.set10('SYSTEMD_SLOW_TESTS_DEFAULT', get_option('slow-tests'))
+
#####################################################################
if get_option('efi')
'src/libsystemd/sd-netlink',
'src/libsystemd/sd-network',
'src/libsystemd-network',
+ '.',
)
add_project_arguments('-include', 'config.h', language : 'c')
'systemd',
libsystemd_internal_sources,
journal_internal_sources,
- version : '0.19.0',
+ version : libsystemd_version,
include_directories : includes,
link_args : ['-shared',
'-Wl,--version-script=' + libsystemd_sym_path],
install_rpath : rootlibexecdir,
install : true,
install_dir : rootlibexecdir)
-endif
-exe = executable('networkctl',
- networkctl_sources,
- include_directories : includes,
- link_with : [libsystemd_network,
+ exe = executable('networkctl',
+ networkctl_sources,
+ include_directories : includes,
+ link_with : [libsystemd_network,
libshared],
- install_rpath : rootlibexecdir,
- install : true,
- install_dir : rootbindir)
-public_programs += [exe]
-
+ install_rpath : rootlibexecdir,
+ install : true,
+ install_dir : rootbindir)
+ public_programs += [exe]
+endif
############################################################
foreach tuple : tests
install_dir : xinitrcdir)
install_data('system-preset/90-systemd.preset',
install_dir : systempresetdir)
+install_data('modprobe.d/systemd.conf',
+ install_dir : modprobedir)
install_data('README',
'NEWS',
'CODING_STYLE',
if git.found()
all_files = run_command(
git,
- ['--git-dir=@0@/.git'.format(meson.source_root()),
+ ['--git-dir=@0@/.git'.format(meson.current_source_dir()),
'ls-files',
':/*.[ch]'])
all_files = files(all_files.stdout().split())
- run_target(
+ custom_target(
'tags',
- input : all_files,
- command : ['env', 'etags', '-o', '@0@/TAGS'.format(meson.source_root())] + all_files)
- run_target(
+ output : 'tags',
+ command : ['env', 'etags', '-o', '@0@/TAGS'.format(meson.current_source_dir())] + all_files)
+ custom_target(
'ctags',
- input : all_files,
- command : ['env', 'ctags', '-o', '@0@/tags'.format(meson.source_root())] + all_files)
+ output : 'ctags',
+ command : ['env', 'ctags', '-o', '@0@/tags'.format(meson.current_source_dir())] + all_files)
endif
if git.found()
if git.found()
git_head = run_command(
git,
- ['--git-dir=@0@/.git'.format(meson.source_root()),
+ ['--git-dir=@0@/.git'.format(meson.current_source_dir()),
'rev-parse', 'HEAD']).stdout().strip()
git_head_short = run_command(
git,
- ['--git-dir=@0@/.git'.format(meson.source_root()),
+ ['--git-dir=@0@/.git'.format(meson.current_source_dir()),
'rev-parse', '--short=7', 'HEAD']).stdout().strip()
run_target(
'git-snapshot',
command : ['git', 'archive',
- '-o', '@0@/systemd-@1@.tar.gz'.format(meson.source_root(),
+ '-o', '@0@/systemd-@1@.tar.gz'.format(meson.current_source_dir(),
git_head_short),
'--prefix', 'systemd-@0@/'.format(git_head),
'HEAD'])
'PAM modules dir: @0@'.format(pamlibdir),
'PAM configuration dir: @0@'.format(pamconfdir),
'RPM macros dir: @0@'.format(rpmmacrosdir),
+ 'modprobe.d dir: @0@'.format(modprobedir),
'D-Bus policy dir: @0@'.format(dbuspolicydir),
'D-Bus session dir: @0@'.format(dbussessionservicedir),
'D-Bus system dir: @0@'.format(dbussystemservicedir),
'nobody user name: @0@'.format(get_option('nobody-user')),
'nobody group name: @0@'.format(get_option('nobody-group')),
'fallback hostname: @0@'.format(get_option('fallback-hostname')),
+ 'symbolic gateway hostnames: @0@'.format(', '.join(gateway_hostnames)),
'default DNSSEC mode: @0@'.format(default_dnssec),
'default cgroup hierarchy: @0@'.format(default_hierarchy),
endforeach
status += [
+ '',
'enabled features: @0@'.format(', '.join(found)),
- 'disabled features: @0@'.format(', '.join(missing))]
+ '',
+ 'disabled features: @0@'.format(', '.join(missing)),
+ '']
message('\n '.join(status))