X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=meson.build;h=d719160a1f4cc4719f0efcedfdfc0ca57313b7bd;hb=550f3ba68dc23b417f9ae4383dff3931ebe4b6c1;hp=0c0e1343c175f5957458d2d90334dd886868aff4;hpb=bd190899bba3f1d24663168f2e15e8697b7c4db9;p=thirdparty%2Fsystemd.git diff --git a/meson.build b/meson.build index 0c0e1343c17..d719160a1f4 100644 --- a/meson.build +++ b/meson.build @@ -14,7 +14,7 @@ project('systemd', 'c', ) 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 @@ -38,6 +38,9 @@ relative_source_path = run_command('realpath', 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 @@ -198,7 +201,7 @@ endif 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') @@ -209,7 +212,7 @@ conf.set_quoted('SYSTEM_CONFIG_UNIT_DIR', join_paths(pkgsysc 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()) @@ -227,6 +230,7 @@ conf.set_quoted('SYSTEMCTL_BINARY_PATH', join_paths(rootbin 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')) @@ -295,7 +299,7 @@ substs.set('CERTIFICATEROOT', get_option('certif 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')) @@ -676,17 +680,17 @@ conf.set_quoted('DEFAULT_NET_NAMING_SCHEME', default_net_naming_scheme) time_epoch = get_option('time-epoch') if time_epoch == -1 - source_date_epoch = run_command('sh', ['-c', 'echo "$SOURCE_DATE_EPOCH"']).stdout().strip() - if source_date_epoch != '' - time_epoch = source_date_epoch.to_int() - elif git.found() and run_command('test', '-e', '.git').returncode() == 0 + time_epoch = run_command('sh', ['-c', 'echo "$SOURCE_DATE_EPOCH"']).stdout().strip() + if time_epoch == '' and git.found() and run_command('test', '-e', '.git').returncode() == 0 # If we're in a git repository, use the creation time of the latest git tag. latest_tag = run_command('git', 'describe', '--abbrev=0', '--tags').stdout().strip() - time_epoch = run_command('git', 'log', '-1', '--format=%at', latest_tag).stdout().to_int() - else + time_epoch = run_command('git', 'log', '-1', '--format=%at', latest_tag).stdout() + endif + if time_epoch == '' NEWS = files('NEWS') - time_epoch = run_command(stat, '-c', '%Y', NEWS).stdout().to_int() + time_epoch = run_command(stat, '-c', '%Y', NEWS).stdout() endif + time_epoch = time_epoch.to_int() endif conf.set('TIME_EPOCH', time_epoch) @@ -791,7 +795,7 @@ tty_gid = get_option('tty-gid') 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) @@ -878,6 +882,17 @@ libm = cc.find_library('m') libdl = cc.find_library('dl') libcrypt = cc.find_library('crypt') +crypt_header = conf.get('HAVE_CRYPT_H') == 1 ? '''#include ''' : '''#include ''' +foreach ident : [ + ['crypt_ra', crypt_header], + ['crypt_preferred_method', 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 @@ -890,6 +905,7 @@ libmount = dependency('mount', 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 @@ -1414,42 +1430,43 @@ 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) @@ -1623,8 +1640,16 @@ install_libsystemd_static = static_library( 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') ############################################################ @@ -1766,7 +1791,7 @@ public_programs += executable( libmount, libblkid], install_rpath : rootlibexecdir, - install : get_option('analyze')) + install : conf.get('ENABLE_ANALYZE')) executable( 'systemd-journald', @@ -1799,11 +1824,11 @@ public_programs += executable( include_directories : includes, link_with : [libshared], dependencies : [threads, - libqrencode, + libdl, libxz, liblz4, - libpcre2, - libzstd], + libzstd, + libdl], install_rpath : rootlibexecdir, install : true, install_dir : rootbindir) @@ -1898,8 +1923,7 @@ if conf.get('HAVE_BLKID') == 1 include_directories : includes, link_with : [libshared], install_rpath : rootlibexecdir, - install : true, - install_dir : rootlibexecdir) + install : true) endif if conf.get('ENABLE_RESOLVE') == 1 @@ -2174,8 +2198,7 @@ if conf.get('ENABLE_HOMED') == 1 link_with : [libshared], dependencies : [threads, libcrypt, - libopenssl, - libpwquality], + libopenssl], install_rpath : rootlibexecdir, install : true, install_dir : rootlibexecdir) @@ -2190,7 +2213,7 @@ if conf.get('ENABLE_HOMED') == 1 libopenssl, libp11kit, libfido2, - libpwquality], + libdl], install_rpath : rootlibexecdir, install : true, install_dir : rootbindir) @@ -2261,8 +2284,8 @@ executable( 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()) @@ -2286,7 +2309,6 @@ if conf.get('HAVE_LIBCRYPTSETUP') == 1 'src/cryptsetup/cryptsetup-generator.c', include_directories : includes, link_with : [libshared], - dependencies : [libcryptsetup], install_rpath : rootlibexecdir, install : true, install_dir : systemgeneratordir) @@ -2306,7 +2328,6 @@ if conf.get('HAVE_LIBCRYPTSETUP') == 1 'src/veritysetup/veritysetup-generator.c', include_directories : includes, link_with : [libshared], - dependencies : [libcryptsetup], install_rpath : rootlibexecdir, install : true, install_dir : systemgeneratordir) @@ -2661,13 +2682,13 @@ if conf.get('ENABLE_REPART') == 1 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', @@ -2743,7 +2764,6 @@ executable('systemd-growfs', 'src/partition/growfs.c', include_directories : includes, link_with : [libshared], - dependencies : [libcryptsetup], install_rpath : rootlibexecdir, install : true, install_dir : rootlibexecdir) @@ -3329,12 +3349,6 @@ run_target( ############################################################ -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') @@ -3500,6 +3514,7 @@ watchdog_opt = service_watchdog == '' ? 'disabled' : service_watchdog 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), @@ -3682,7 +3697,7 @@ foreach tuple : [ ['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