X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=meson.build;h=897b39386904a7e75b9dfeef374903b64c64a369;hb=607be850b9f67b061b3893939ab3874273e499b8;hp=1c583027f2fc674087d2bd9d8e7658be3a4dc2e3;hpb=5ea0da03d4944a2a5023ebfc295c4a837a048055;p=thirdparty%2Fsystemd.git diff --git a/meson.build b/meson.build index 1c583027f2f..897b3938690 100644 --- a/meson.build +++ b/meson.build @@ -66,9 +66,9 @@ summary({'build mode' : get_option('mode')}) ##################################################################### # Try to install the git pre-commit hook -add_git_hook_sh = find_program('tools/add-git-hook.sh', required : false) -if add_git_hook_sh.found() - git_hook = run_command(add_git_hook_sh, check : false) +git_setup_sh = find_program('tools/git-setup.sh', required : false) +if git_setup_sh.found() + git_hook = run_command(git_setup_sh, check : false) if git_hook.returncode() == 0 message(git_hook.stdout().strip()) endif @@ -232,6 +232,7 @@ conf.set_quoted('ENVIRONMENT_DIR', environmentdir) conf.set_quoted('INCLUDE_DIR', includedir) conf.set_quoted('LIBDIR', libdir) conf.set_quoted('LIBEXECDIR', libexecdir) +conf.set_quoted('KERNEL_INSTALL_DIR', kernelinstalldir) conf.set_quoted('MODPROBE_DIR', modprobedir) conf.set_quoted('MODULESLOAD_DIR', modulesloaddir) conf.set_quoted('PKGSYSCONFDIR', pkgsysconfdir) @@ -737,14 +738,15 @@ if not cc.has_header('sys/capability.h') error('POSIX caps headers not found') endif foreach header : ['crypt.h', + 'linux/ioprio.h', 'linux/memfd.h', + 'linux/time_types.h', 'linux/vm_sockets.h', 'sys/auxv.h', + 'sys/sdt.h', 'threads.h', 'valgrind/memcheck.h', 'valgrind/valgrind.h', - 'linux/time_types.h', - 'sys/sdt.h', ] conf.set10('HAVE_' + header.underscorify().to_upper(), @@ -761,17 +763,6 @@ if fallback_hostname == '' or fallback_hostname[0] == '.' or fallback_hostname[0 endif conf.set_quoted('FALLBACK_HOSTNAME', fallback_hostname) -default_hierarchy = get_option('default-hierarchy') -conf.set_quoted('DEFAULT_HIERARCHY_NAME', default_hierarchy, - description : 'default cgroup hierarchy as string') -if default_hierarchy == 'legacy' - conf.set('DEFAULT_HIERARCHY', 'CGROUP_UNIFIED_NONE') -elif default_hierarchy == 'hybrid' - conf.set('DEFAULT_HIERARCHY', 'CGROUP_UNIFIED_SYSTEMD') -else - conf.set('DEFAULT_HIERARCHY', 'CGROUP_UNIFIED_ALL') -endif - extra_net_naming_schemes = [] extra_net_naming_map = [] foreach scheme: get_option('extra-net-naming-schemes').split(',') @@ -1260,7 +1251,8 @@ foreach ident : ['crypt_set_metadata_size', 'crypt_reencrypt_init_by_passphrase', 'crypt_reencrypt', 'crypt_set_data_offset', - 'crypt_set_keyring_to_link'] + 'crypt_set_keyring_to_link', + 'crypt_resume_by_volume_key'] have_ident = have and cc.has_function( ident, prefix : '#include ', @@ -1381,16 +1373,19 @@ conf.set10('HAVE_BZIP2', libbzip2.found()) libxz = dependency('liblzma', required : get_option('xz')) conf.set10('HAVE_XZ', libxz.found()) +libxz_cflags = libxz.partial_dependency(includes: true, compile_args: true) liblz4 = dependency('liblz4', version : '>= 1.3.0', required : get_option('lz4')) conf.set10('HAVE_LZ4', liblz4.found()) +liblz4_cflags = liblz4.partial_dependency(includes: true, compile_args: true) libzstd = dependency('libzstd', version : '>= 1.4.0', required : get_option('zstd')) conf.set10('HAVE_ZSTD', libzstd.found()) +libzstd_cflags = libzstd.partial_dependency(includes: true, compile_args: true) conf.set10('HAVE_COMPRESSION', libxz.found() or liblz4.found() or libzstd.found()) @@ -1570,7 +1565,8 @@ conf.set10('ENABLE_IMPORTD', have) have = get_option('homed').require( conf.get('HAVE_OPENSSL') == 1 and conf.get('HAVE_LIBFDISK') == 1 and - conf.get('HAVE_LIBCRYPTSETUP') == 1, + conf.get('HAVE_LIBCRYPTSETUP') == 1 and + conf.get('HAVE_CRYPT_RESUME_BY_VOLUME_KEY') == 1, error_message : 'openssl, fdisk and libcryptsetup required').allowed() conf.set10('ENABLE_HOMED', have) @@ -1699,7 +1695,6 @@ if conf.get('BPF_FRAMEWORK') == 1 '-std=gnu11', '-fno-stack-protector', '-O2', - '-mkernel=5.2', '-mcpu=v3', '-mco-re', '-gbtf', @@ -1748,7 +1743,7 @@ if conf.get('BPF_FRAMEWORK') == 1 bpf_o_unstripped_cmd += ['-I.'] - if not meson.is_cross_build() and bpf_compiler == 'clang' + if not meson.is_cross_build() target_triplet_cmd = run_command('gcc', '-dumpmachine', check: false) if target_triplet_cmd.returncode() == 0 target_triplet = target_triplet_cmd.stdout().strip() @@ -1834,6 +1829,7 @@ conf.set10('ENABLE_UKIFY', want_ukify) ##################################################################### +check_efi_alignment_py = find_program('tools/check-efi-alignment.py') check_version_history_py = find_program('tools/check-version-history.py') elf2efi_py = find_program('tools/elf2efi.py') export_dbus_interfaces_py = find_program('tools/dbus_exporter.py') @@ -1853,13 +1849,22 @@ xml_helper_py = find_program('tools/xml_helper.py') ##################################################################### version_tag = get_option('version-tag') +if version_tag == '' + version_tag = meson.project_version() +endif + +conf.set_quoted('VERSION_TAG', version_tag) + +vcs_tag = get_option('vcs-tag') +command = ['sh', '-c', + vcs_tag and fs.exists(project_source_root / '.git') ? + 'echo "-g$(git -C . describe --abbrev=7 --match="" --always --dirty=^)"' : ':'] version_h = vcs_tag( input : 'src/version/version.h.in', output : 'version.h', - command: [project_source_root / 'tools/meson-vcs-tag.sh', - project_source_root, - version_tag, - ]) + fallback : '', + command : command, +) shared_lib_tag = get_option('shared-lib-tag') if shared_lib_tag == '' @@ -1880,7 +1885,7 @@ config_h = configure_file( userspace_c_args += ['-include', 'config.h'] -jinja2_cmdline = [meson_render_jinja2, config_h, version_h] +jinja2_cmdline = [meson_render_jinja2, config_h] userspace = declare_dependency( compile_args : userspace_c_args, @@ -1947,8 +1952,7 @@ libsystemd = shared_library( link_args : ['-shared', '-Wl,--version-script=' + libsystemd_sym_path], link_with : [libbasic, - libbasic_gcrypt, - libbasic_compress], + libbasic_gcrypt], link_whole : [libsystemd_static], dependencies : [librt, threads, @@ -1965,7 +1969,6 @@ install_libsystemd_static = static_library( libsystemd_sources, basic_sources, basic_gcrypt_sources, - basic_compress_sources, fundamental_sources, include_directories : libsystemd_includes, build_by_default : static_libsystemd != 'false', @@ -1977,12 +1980,12 @@ install_libsystemd_static = static_library( libcap, libdl, libgcrypt, - liblz4, + liblz4_cflags, libmount, libopenssl, librt, - libxz, - libzstd, + libxz_cflags, + libzstd_cflags, threads, userspace], c_args : libsystemd_c_args + (static_libsystemd_pic ? [] : ['-fno-PIC'])) @@ -2695,6 +2698,14 @@ if not meson.is_cross_build() command : [export_dbus_interfaces_py, '@OUTPUT@', dbus_programs]) endif +meson_extract_unit_files = find_program('tools/meson-extract-unit-files.py') +custom_target('installed-unit-files.txt', + output : 'installed-unit-files.txt', + capture : true, + install : want_tests != 'no' and install_tests, + install_dir : testdata_dir, + command : [meson_extract_unit_files, project_build_root]) + ##################################################################### alt_time_epoch = run_command('date', '-Is', '-u', '-d', '@@0@'.format(time_epoch), @@ -2746,9 +2757,8 @@ summary({ 'default LLMNR mode' : default_llmnr, 'default DNS servers' : dns_servers.split(' '), 'default NTP servers' : ntp_servers.split(' '), - 'default cgroup hierarchy' : default_hierarchy, - 'default net.naming-scheme value' : default_net_naming_scheme, - 'default KillUserProcesses value' : kill_user_processes, + 'default net.naming_scheme= value': default_net_naming_scheme, + 'default KillUserProcesses= value': kill_user_processes, 'default locale' : default_locale, 'default nspawn locale' : nspawn_locale, 'default status unit format' : status_unit_format_default,