X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=meson.build;h=cdb4dedc880eabd2f0e5177cdac9894dd5b6be6a;hb=70140c4f0c80a9e51ed1ea51915ac2a6407d1a2b;hp=1526e665e4a6569c0d9c7da0210bcdf156803adf;hpb=8fec9b7d9cca15ff6517247c0c12d172a6c3ec8a;p=elogind.git diff --git a/meson.build b/meson.build index 1526e665e..cdb4dedc8 100644 --- a/meson.build +++ b/meson.build @@ -1,9 +1,7 @@ # SPDX-License-Identifier: LGPL-2.1+ -# -# Copyright 2017 Zbigniew Jędrzejewski-Szmek project('elogind', 'c', - version : '238', + version : '239', license : 'LGPLv2+', default_options: [ 'c_std=gnu99', @@ -11,17 +9,17 @@ project('elogind', 'c', 'sysconfdir=/etc', 'localstatedir=/var', ], - meson_version : '>= 0.41', + meson_version : '>= 0.44', ) #if 0 /// UNNEEDED by elogind - libudev is external -# libsystemd_version = '0.22.0' -# libudev_version = '1.6.10' +# libsystemd_version = '0.23.0' +# libudev_version = '1.6.11' #else libelogind_version = '0.22.0' #endif // 0 -# We need the same data in three different formats, ugh! +# We need the same data in two different formats, ugh! # Also, for hysterical reasons, we use different variable # names, sometimes. Not all variables are included in every # set. Ugh, ugh, ugh! @@ -37,8 +35,6 @@ substs.set('PACKAGE_URL', 'https://github.com/elogind/elogind') #endif // 0 substs.set('PACKAGE_VERSION', meson.project_version()) -m4_defines = [] - ##################################################################### #if 0 /// elogind does not need this # @@ -84,10 +80,8 @@ endif #if 0 /// UNNEEDED by elogind # sysvinit_path = get_option('sysvinit-path') # sysvrcnd_path = get_option('sysvrcnd-path') -# have = sysvinit_path != '' and sysvrcnd_path != '' -# conf.set10('HAVE_SYSV_COMPAT', have, +# conf.set10('HAVE_SYSV_COMPAT', sysvinit_path != '' and sysvrcnd_path != '', # description : 'SysV init scripts and rcN.d links are supported') -# m4_defines += have ? ['-DHAVE_SYSV_COMPAT'] : [] #endif // 0 # join_paths ignore the preceding arguments if an absolute component is @@ -168,6 +162,7 @@ modprobedir = join_paths(rootprefixdir, 'lib/modprobe.d') # systemdstatedir = join_paths(localstatedir, 'lib/systemd') # catalogstatedir = join_paths(systemdstatedir, 'catalog') # randomseeddir = join_paths(localstatedir, 'lib/systemd') +# profiledir = join_paths(rootlibexecdir, 'portable', 'profile') # # docdir = get_option('docdir') # if docdir == '' @@ -283,8 +278,8 @@ conf.set_quoted('ROOTLIBEXECDIR', rootlibexecdir) # conf.set_quoted('USER_KEYRING_PATH', join_paths(pkgsysconfdir, 'import-pubring.gpg')) # conf.set_quoted('DOCUMENT_ROOT', join_paths(pkgdatadir, 'gatewayd')) # conf.set('MEMORY_ACCOUNTING_DEFAULT', memory_accounting_default ? 'true' : 'false') +# conf.set_quoted('MEMORY_ACCOUNTING_DEFAULT_YES_NO', memory_accounting_default ? 'yes' : 'no') #endif // 0 -conf.set_quoted('MEMORY_ACCOUNTING_DEFAULT_YES_NO', memory_accounting_default ? 'yes' : 'no') conf.set_quoted('ABS_BUILD_DIR', meson.build_root()) conf.set_quoted('ABS_SRC_DIR', meson.source_root()) @@ -308,12 +303,14 @@ substs.set('rootlibexecdir', rootlibexecdir) substs.set('udevrulesdir', udevrulesdir) substs.set('udevlibexecdir', udevlibexecdir) #if 0 /// UNNEEDED by elogind +# substs.set('environmentdir', environmentdir) # substs.set('catalogdir', catalogdir) # substs.set('tmpfilesdir', tmpfilesdir) # substs.set('sysusersdir', sysusersdir) # substs.set('sysctldir', sysctldir) # substs.set('binfmtdir', binfmtdir) # substs.set('modulesloaddir', modulesloaddir) +# substs.set('modprobedir', modprobedir) # substs.set('systemgeneratordir', systemgeneratordir) # substs.set('usergeneratordir', usergeneratordir) # substs.set('systemenvgeneratordir', systemenvgeneratordir) @@ -365,57 +362,79 @@ endif fuzzer_build = false #endif // 0 -foreach arg : ['-Wextra', - '-Werror=undef', - '-Wlogical-op', - '-Wmissing-include-dirs', - '-Wold-style-definition', - '-Wpointer-arith', - '-Winit-self', - '-Wdeclaration-after-statement', - '-Wfloat-equal', - '-Wsuggest-attribute=noreturn', - '-Werror=missing-prototypes', - '-Werror=implicit-function-declaration', - '-Werror=missing-declarations', - '-Werror=return-type', - '-Werror=incompatible-pointer-types', - '-Werror=format=2', - '-Wstrict-prototypes', - '-Wredundant-decls', - '-Wmissing-noreturn', - '-Wimplicit-fallthrough=5', - '-Wshadow', - '-Wendif-labels', - '-Wstrict-aliasing=2', - '-Wwrite-strings', - '-Werror=overflow', - '-Wdate-time', - '-Wnested-externs', - '-ffast-math', - '-fno-common', - '-fdiagnostics-show-option', - '-fno-strict-aliasing', - '-fvisibility=hidden', - '-fstack-protector', - '-fstack-protector-strong', - '--param=ssp-buffer-size=4', - ] - if cc.has_argument(arg) - add_project_arguments(arg, language : 'c') - endif -endforeach +possible_cc_flags = [ + '-Wextra', + '-Werror=undef', + '-Wlogical-op', + '-Wmissing-include-dirs', + '-Wold-style-definition', + '-Wpointer-arith', + '-Winit-self', + '-Wfloat-equal', + '-Wsuggest-attribute=noreturn', + '-Werror=missing-prototypes', + '-Werror=implicit-function-declaration', + '-Werror=missing-declarations', + '-Werror=return-type', + '-Werror=incompatible-pointer-types', + '-Werror=format=2', + '-Wstrict-prototypes', + '-Wredundant-decls', + '-Wmissing-noreturn', + '-Wimplicit-fallthrough=5', + '-Wshadow', + '-Wendif-labels', + '-Wstrict-aliasing=2', + '-Wwrite-strings', + '-Werror=overflow', + '-Werror=shift-count-overflow', + '-Werror=shift-overflow=2', + '-Wdate-time', + '-Wnested-externs', + '-ffast-math', + '-fno-common', + '-fdiagnostics-show-option', + '-fno-strict-aliasing', + '-fvisibility=hidden', + '-fstack-protector', + '-fstack-protector-strong', + '--param=ssp-buffer-size=4', +] + +# --as-needed and --no-undefined are provided by meson by default, +# run mesonconf to see what is enabled +possible_link_flags = [ + '-Wl,-z,relro', + '-Wl,-z,now', +] # the oss-fuzz fuzzers are not built with -fPIE, so don't # enable it when we are linking against them if not fuzzer_build - if cc.has_argument('-fPIE') - add_project_arguments('-fPIE', language : 'c') - endif + possible_cc_flags += '-fPIE' + possible_link_flags += '-pie' +endif + +if cc.get_id() == 'clang' + possible_cc_flags += [ + '-Wno-typedef-redefinition', + '-Wno-gnu-variable-sized-type-not-at-end', + ] +endif + +if get_option('buildtype') != 'debug' + possible_cc_flags += [ + '-ffunction-sections', + '-fdata-sections', + ] + + possible_link_flags += '-Wl,--gc-sections' endif +add_project_arguments(cc.get_supported_arguments(possible_cc_flags), language : 'c') + # "negative" arguments: gcc on purpose does not return an error for "-Wno-" -# arguments, just emits a warnings. So test for the "positive" version instead. +# arguments, just emits a warning. So test for the "positive" version instead. foreach arg : ['unused-parameter', 'missing-field-initializers', 'unused-result', @@ -440,53 +459,18 @@ if cc.compiles(''' add_project_arguments('-Werror=shadow', language : 'c') endif -if cc.get_id() == 'clang' - foreach arg : ['-Wno-typedef-redefinition', - '-Wno-gnu-variable-sized-type-not-at-end', - ] - if cc.has_argument(arg) - add_project_arguments(arg, language : 'c') - endif - endforeach -endif - link_test_c = files('tools/meson-link-test.c') -# --as-needed and --no-undefined are provided by meson by default, -# run mesonconf to see what is enabled -foreach arg : ['-Wl,-z,relro', - '-Wl,-z,now', - '-pie', - ] - +foreach arg : possible_link_flags have = run_command(check_compilation_sh, cc.cmd_array(), '-x', 'c', arg, '-include', link_test_c).returncode() == 0 message('Linking with @0@ supported: @1@'.format(arg, have ? 'yes' : 'no')) - if have and (arg != '-pie' or not fuzzer_build) + if have add_project_link_arguments(arg, language : 'c') endif endforeach -if get_option('buildtype') != 'debug' - foreach arg : ['-ffunction-sections', - '-fdata-sections'] - if cc.has_argument(arg) - add_project_arguments(arg, language : 'c') - endif - endforeach - - foreach arg : ['-Wl,--gc-sections'] - have = run_command(check_compilation_sh, - cc.cmd_array(), '-x', 'c', arg, - '-include', link_test_c).returncode() == 0 - message('Linking with @0@ supported: @1@'.format(arg, have ? 'yes' : 'no')) - if have - add_project_link_arguments(arg, language : 'c') - endif - endforeach -endif - cpp = ' '.join(cc.cmd_array()) + ' -E' ##################################################################### @@ -813,18 +797,18 @@ getent_result = run_command('getent', 'passwd', '65534') if getent_result.returncode() == 0 name = getent_result.stdout().split(':')[0] if name != nobody_user - message('WARNING:\n' + - ' The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) + - ' Your build will result in an user table setup that is incompatible with the local system.') + warning('\n' + + 'The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) + + 'Your build will result in an user table setup that is incompatible with the local system.') endif endif id_result = run_command('id', '-u', nobody_user) if id_result.returncode() == 0 id = id_result.stdout().to_int() if id != 65534 - message('WARNING:\n' + - ' The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, id) + - ' Your build will result in an user table setup that is incompatible with the local system.') + warning('\n' + + 'The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, id) + + 'Your build will result in an user table setup that is incompatible with the local system.') endif endif @@ -832,24 +816,24 @@ getent_result = run_command('getent', 'group', '65534') if getent_result.returncode() == 0 name = getent_result.stdout().split(':')[0] if name != nobody_group - message('WARNING:\n' + - ' The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) + - ' Your build will result in an group table setup that is incompatible with the local system.') + warning('\n' + + 'The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) + + 'Your build will result in an group table setup that is incompatible with the local system.') endif endif id_result = run_command('id', '-g', nobody_group) if id_result.returncode() == 0 id = id_result.stdout().to_int() if id != 65534 - message('WARNING:\n' + - ' The local group with the configured group name "@0@" of the nobody group does not have UID 65534 (it has @1@).\n'.format(nobody_group, id) + - ' Your build will result in an group table setup that is incompatible with the local system.') + warning('\n' + + 'The local group with the configured group name "@0@" of the nobody group does not have UID 65534 (it has @1@).\n'.format(nobody_group, id) + + 'Your build will result in an group table setup that is incompatible with the local system.') endif endif if nobody_user != nobody_group and not (nobody_user == 'nobody' and nobody_group == 'nogroup') - message('WARNING:\n' + - ' The configured user name "@0@" and group name "@0@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) + - ' Please re-check that both "nobody-user" and "nobody-group" options are correctly set.') + warning('\n' + + 'The configured user name "@0@" and group name "@0@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) + + 'Please re-check that both "nobody-user" and "nobody-group" options are correctly set.') endif conf.set_quoted('NOBODY_USER_NAME', nobody_user) @@ -870,13 +854,8 @@ substs.set('TTY_GID', tty_gid) # endif # substs.set('USERS_GID', users_gid) # -# if get_option('adm-group') -# m4_defines += ['-DENABLE_ADM_GROUP'] -# endif -# -# if get_option('wheel-group') -# m4_defines += ['-DENABLE_WHEEL_GROUP'] -# endif +# conf.set10('ENABLE_ADM_GROUP', get_option('adm-group')) +# conf.set10('ENABLE_WHEEL_GROUP', get_option('wheel-group')) # # substs.set('DEV_KVM_MODE', get_option('dev-kvm-mode')) # substs.set('GROUP_RENDER_MODE', get_option('group-render-mode')) @@ -904,33 +883,32 @@ conf.set_quoted('GETTEXT_PACKAGE', meson.project_name()) # substs.set('DEBUGTTY', get_option('debug-tty')) #endif // 0 -debug = get_option('debug') enable_debug_hashmap = false enable_debug_mmap_cache = false #if 1 /// additional elogind debug mode enable_debug_elogind = false #endif // 1 -if debug != '' - foreach name : debug.split(',') - if name == 'hashmap' - enable_debug_hashmap = true - elif name == 'mmap-cache' - enable_debug_mmap_cache = true +foreach name : get_option('debug') + if name == 'hashmap' + enable_debug_hashmap = true + elif name == 'mmap-cache' + enable_debug_mmap_cache = true #if 1 /// additional elogind debug mode - elif name == 'elogind' - enable_debug_elogind = true + elif name == 'elogind' + enable_debug_elogind = true #endif // 1 - else - message('unknown debug option "@0@", ignoring'.format(name)) - endif - endforeach -endif + else + message('unknown debug option "@0@", ignoring'.format(name)) + endif +endforeach conf.set10('ENABLE_DEBUG_HASHMAP', enable_debug_hashmap) conf.set10('ENABLE_DEBUG_MMAP_CACHE', enable_debug_mmap_cache) #if 1 /// additional elogind debug mode conf.set10('ENABLE_DEBUG_ELOGIND', enable_debug_elogind) #endif // 1 +conf.set10('VALGRIND', get_option('valgrind')) + ##################################################################### threads = dependency('threads') @@ -963,7 +941,6 @@ endif libseccomp = [] #endif // 0 conf.set10('HAVE_SECCOMP', have) -m4_defines += have ? ['-DHAVE_SECCOMP'] : [] want_selinux = get_option('selinux') if want_selinux != 'false' and not fuzzer_build @@ -976,7 +953,6 @@ else libselinux = [] endif conf.set10('HAVE_SELINUX', have) -m4_defines += have ? ['-DHAVE_SELINUX'] : [] #if 0 /// UNNEEDED by elogind # want_apparmor = get_option('apparmor') @@ -992,12 +968,10 @@ m4_defines += have ? ['-DHAVE_SELINUX'] : [] libapparmor = [] #endif // 0 conf.set10('HAVE_APPARMOR', have) -m4_defines += have ? ['-DHAVE_APPARMOR'] : [] smack_run_label = get_option('smack-run-label') if smack_run_label != '' conf.set_quoted('SMACK_RUN_LABEL', smack_run_label) - m4_defines += ['-DHAVE_SMACK_RUN_LABEL'] endif want_polkit = get_option('polkit') @@ -1024,7 +998,6 @@ else libacl = [] endif conf.set10('HAVE_ACL', have) -m4_defines += have ? ['-DHAVE_ACL'] : [] want_audit = get_option('audit') if want_audit != 'false' and not fuzzer_build @@ -1074,7 +1047,6 @@ else libpam_misc = [] endif conf.set10('HAVE_PAM', have) -m4_defines += have ? ['-DHAVE_PAM'] : [] #if 0 /// UNNEEDED by elogind # want_microhttpd = get_option('microhttpd') @@ -1088,7 +1060,6 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # libmicrohttpd = [] # endif # conf.set10('HAVE_MICROHTTPD', have) -# m4_defines += have ? ['-DHAVE_MICROHTTPD'] : [] # # want_libcryptsetup = get_option('libcryptsetup') # if want_libcryptsetup != 'false' and not fuzzer_build @@ -1113,7 +1084,6 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # libcurl = [] # endif # conf.set10('HAVE_LIBCURL', have) -# m4_defines += have ? ['-DHAVE_LIBCURL'] : [] # # want_libidn = get_option('libidn') # want_libidn2 = get_option('libidn2') @@ -1130,7 +1100,6 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # libidn = [] # endif # conf.set10('HAVE_LIBIDN', have) -# m4_defines += have ? ['-DHAVE_LIBIDN'] : [] # if not have and want_libidn2 != 'false' and not fuzzer_build # # libidn is used for both libidn and libidn2 objects # libidn = dependency('libidn2', @@ -1140,7 +1109,6 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # have = false # endif # conf.set10('HAVE_LIBIDN2', have) -# m4_defines += have ? ['-DHAVE_LIBIDN2'] : [] # # want_libiptc = get_option('libiptc') # if want_libiptc != 'false' and not fuzzer_build @@ -1152,7 +1120,6 @@ m4_defines += have ? ['-DHAVE_PAM'] : [] # libiptc = [] # endif # conf.set10('HAVE_LIBIPTC', have) -# m4_defines += have ? ['-DHAVE_LIBIPTC'] : [] # # want_qrencode = get_option('qrencode') # if want_qrencode != 'false' and not fuzzer_build @@ -1331,6 +1298,29 @@ conf.set10('HAVE_DBUS', have) # 'DNSSEC_' + default_dnssec.underscorify().to_upper()) # substs.set('DEFAULT_DNSSEC_MODE', default_dnssec) # +# dns_over_tls = get_option('dns-over-tls') +# if dns_over_tls != 'false' +# have = conf.get('HAVE_GNUTLS') == 1 +# if dns_over_tls == 'true' and not have +# error('DNS-over-TLS support was requested, but dependencies are not available') +# endif +# else +# have = false +# endif +# conf.set10('ENABLE_DNS_OVER_TLS', have) +# +# default_dns_over_tls = get_option('default-dns-over-tls') +# if fuzzer_build +# default_dns_over_tls = 'no' +# endif +# if default_dns_over_tls != 'no' and conf.get('ENABLE_DNS_OVER_TLS') == 0 +# message('default-dns-over-tls cannot be set to opportunistic when DNS-over-TLS support is disabled. Setting default-dns-over-tls to no.') +# default_dns_over_tls = 'no' +# endif +# conf.set('DEFAULT_DNS_OVER_TLS_MODE', +# 'DNS_OVER_TLS_' + default_dns_over_tls.underscorify().to_upper()) +# substs.set('DEFAULT_DNS_OVER_TLS_MODE', default_dns_over_tls) +# # want_importd = get_option('importd') # if want_importd != 'false' # have = (conf.get('HAVE_LIBCURL') == 1 and @@ -1375,6 +1365,7 @@ foreach term : ['utmp', # 'hostnamed', # 'localed', # 'machined', +# 'portabled', # 'networkd', # 'timedated', # 'timesyncd', @@ -1402,9 +1393,12 @@ foreach term : ['utmp', have = get_option(term) name = 'ENABLE_' + term.underscorify().to_upper() conf.set10(name, have) - m4_defines += have ? ['-D' + name] : [] endforeach +#if 0 /// UNNEEDED by elogind +# conf.set10('ENABLE_TIMEDATECTL', get_option('timedated') or get_option('timesyncd')) +#endif // 0 + want_tests = get_option('tests') install_tests = get_option('install-tests') slow_tests = get_option('slow-tests') @@ -1452,15 +1446,19 @@ config_h = configure_file( output : 'config.h', configuration : conf) +meson_apply_m4 = find_program('tools/meson-apply-m4.sh') + includes = include_directories('src/basic', 'src/shared', 'src/systemd', #if 0 /// UNNEEDED by elogind # 'src/journal', +# 'src/journal-remote', +# 'src/nspawn', # 'src/resolve', # 'src/timesync', +# 'src/time-wait-sync', #endif // 0 - 'src/time-wait-sync', 'src/login', #if 0 /// UNNEEDED by elogind # 'src/udev', @@ -1539,6 +1537,41 @@ libelogind = shared_library( install : true, install_dir : rootlibdir) +static_libelogind = get_option('static-libelogind') +static_libelogind_pic = static_libelogind == 'true' or static_libelogind == 'pic' + +install_libelogind_static = static_library( + 'elogind', + libelogind_sources, +#if 0 /// No journald with elogind (And before you ask: NO!) +# journal_client_sources, +#endif // 0 + basic_sources, +#if 0 /// No gcrypt with elogind +# basic_gcrypt_sources, +#endif // 0 + include_directories : includes, + build_by_default : static_libelogind != 'false', + install : static_libelogind != 'false', + install_dir : rootlibdir, + pic : static_libelogind == 'true' or static_libelogind == 'pic', + dependencies : [threads, + librt, + libxz, + liblz4, + libcap, + libblkid, +#if 0 /// libmount isn't built with elogind (and absolutely not needed anyway.) +# libmount, +#endif // 0 + libselinux, +#if 0 /// No grypt with elogind +# libgcrypt], +#else + ], +#endif // 0 + c_args : libelogind_c_args + (static_libelogind_pic ? [] : ['-fno-PIC'])) + ############################################################ # binaries that have --help and are intended for use by humans, @@ -1565,6 +1598,7 @@ subdir('src/shared') # subdir('src/kernel-install') # subdir('src/locale') # subdir('src/machine') +# subdir('src/portable') # subdir('src/nspawn') # subdir('src/resolve') # subdir('src/timedate') @@ -1794,10 +1828,7 @@ test_dlopen = executable( # link_with : [libshared, # libbasic_gcrypt, # libsystemd_resolve_core], -# dependencies : [threads, -# libgpg_error, -# libm, -# libidn], +# dependencies : systemd_resolved_dependencies, # install_rpath : rootlibexecdir, # install : true, # install_dir : rootlibexecdir) @@ -1881,6 +1912,15 @@ test_dlopen = executable( # args : [pam_systemd.full_path()]) # path to dlopen must include a slash # endif # endif +# +# executable('systemd-user-runtime-dir', +# user_runtime_dir_sources, +# include_directories : includes, +# link_with : [libshared, liblogind_core], +# install_rpath : rootlibexecdir, +# install : true, +# install_dir : rootlibexecdir) +# #else executable('elogind', @@ -1915,13 +1955,6 @@ exe = executable('elogind-inhibit', install : true, install_dir : rootbindir) public_programs += [exe] -executable('elogind-user-runtime-dir', - user_runtime_dir_sources, - include_directories : includes, - link_with : [libshared, liblogind_core], - install_rpath : rootlibexecdir, - install : true, - install_dir : rootlibexecdir) if conf.get('HAVE_PAM') == 1 version_script_arg = join_paths(meson.current_source_dir(), pam_elogind_sym) @@ -1975,9 +2008,19 @@ endif # install : true) # public_programs += [exe] # +# +# if get_option('link-systemctl-shared') +# systemctl_link_with = [libshared] +# else +# systemctl_link_with = [libsystemd_static, +# libshared_static, +# libjournal_client, +# libbasic_gcrypt] +# endif +# # exe = executable('systemctl', 'src/systemctl/systemctl.c', # include_directories : includes, -# link_with : [libshared], +# link_with : systemctl_link_with, # dependencies : [threads, # libcap, # libselinux, @@ -1988,6 +2031,26 @@ endif # install_dir : rootbindir) # public_programs += [exe] # +# if conf.get('ENABLE_PORTABLED') == 1 +# executable('systemd-portabled', +# systemd_portabled_sources, +# include_directories : includes, +# link_with : [libshared], +# dependencies : [threads], +# install_rpath : rootlibexecdir, +# install : true, +# install_dir : rootlibexecdir) +# +# exe = executable('portablectl', 'src/portable/portablectl.c', +# include_directories : includes, +# link_with : [libshared], +# dependencies : [threads], +# install_rpath : rootlibexecdir, +# install : true, +# install_dir : rootlibexecdir) +# public_programs += [exe] +# endif +# # foreach alias : ['halt', 'poweroff', 'reboot', 'runlevel', 'shutdown', 'telinit'] # meson.add_install_script(meson_make_symlink, # join_paths(rootbindir, 'systemctl'), @@ -2130,12 +2193,15 @@ endif # install_rpath : rootlibexecdir, # install : true, # install_dir : rootlibexecdir) +# endif # +# if conf.get('ENABLE_TIMEDATECTL') == 1 # exe = executable('timedatectl', # 'src/timedate/timedatectl.c', # include_directories : includes, # install_rpath : rootlibexecdir, # link_with : [libshared], +# dependencies : [libm], # install : true) # public_programs += [exe] # endif @@ -2252,7 +2318,8 @@ endif # s_j_remote = executable('systemd-journal-remote', # systemd_journal_remote_sources, # include_directories : includes, -# link_with : [libshared], +# link_with : [libshared, +# libsystemd_journal_remote], # dependencies : [threads, # libmicrohttpd, # libgnutls, @@ -2717,12 +2784,10 @@ executable('elogind-cgroups-agent', # 'src/core/mount-setup.h', # 'src/core/loopback-setup.c', # 'src/core/loopback-setup.h', -# include_directories : [includes, include_directories('src/nspawn')], -# link_with : [libshared], -# dependencies : [libacl, -# libblkid, -# libseccomp, -# libselinux], +# include_directories : includes, +# link_with : [libnspawn_core, +# libshared], +# dependencies : [libblkid], # install_rpath : rootlibexecdir, # install : true) # public_programs += [exe] @@ -2826,17 +2891,30 @@ foreach tuple : tests endforeach #if 0 /// UNNEEDED by elogind -# test_libsystemd_sym = executable( +# exe = executable( # 'test-libsystemd-sym', # test_libsystemd_sym_c, # include_directories : includes, # link_with : [libsystemd], # install : install_tests, # install_dir : testsdir) -# test('test-libsystemd-sym', -# test_libsystemd_sym) +# test('test-libsystemd-sym', exe) +# +# exe = executable( +# 'test-libsystemd-static-sym', +# test_libsystemd_sym_c, +# include_directories : includes, +# link_with : [install_libsystemd_static], +# dependencies : [threads], # threads is already included in dependencies on the library, +# # but does not seem to get propagated. Add here as a work-around. +# build_by_default : static_libsystemd_pic, +# install : install_tests and static_libsystemd_pic, +# install_dir : testsdir) +# if static_libsystemd_pic +# test('test-libsystemd-static-sym', exe) +# endif # -# test_libudev_sym = executable( +# exe = executable( # 'test-libudev-sym', # test_libudev_sym_c, # include_directories : includes, @@ -2844,8 +2922,20 @@ endforeach # link_with : [libudev], # install : install_tests, # install_dir : testsdir) -# test('test-libudev-sym', -# test_libudev_sym) +# test('test-libudev-sym', exe) +# +# exe = executable( +# 'test-libudev-static-sym', +# test_libudev_sym_c, +# include_directories : includes, +# c_args : ['-Wno-deprecated-declarations'], +# link_with : [install_libudev_static], +# build_by_default : static_libudev_pic, +# install : install_tests and static_libudev_pic, +# install_dir : testsdir) +# if static_libudev_pic +# test('test-libudev-static-sym', exe) +# endif # # ############################################################ # @@ -2911,9 +3001,9 @@ subdir('man') subdir('shell-completion/bash') subdir('shell-completion/zsh') #if 0 /// UNNEEDED by elogind +# subdir('doc/sysvinit') +# subdir('doc/var-log') #endif // 0 -subdir('doc/sysvinit') -subdir('doc/var-log') # FIXME: figure out if the warning is true: # https://github.com/mesonbuild/meson/wiki/Reference-manual#install_subdir @@ -3027,9 +3117,8 @@ if git.found() 'tags', output : 'tags', command : [env, 'etags', '-o', '@0@/TAGS'.format(meson.current_source_dir())] + all_files) - custom_target( + run_target( 'ctags', - output : 'ctags', command : [env, 'ctags', '-o', '@0@/tags'.format(meson.current_source_dir())] + all_files) endif @@ -3129,6 +3218,7 @@ status = [ # 'symbolic gateway hostnames: @0@'.format(', '.join(gateway_hostnames)), # # 'default DNSSEC mode: @0@'.format(default_dnssec), +# 'default DNS-over-TLS mode: @0@'.format(default_dns_over_tls), # 'default cgroup hierarchy: @0@'.format(default_hierarchy), #endif // 0 'default KillUserProcesses setting: @0@'.format(kill_user_processes)] @@ -3216,6 +3306,7 @@ foreach tuple : [ # ['rfkill'], # ['logind'], # ['machined'], +# ['portabled'], # ['importd'], # ['hostnamed'], # ['timedated'], @@ -3223,6 +3314,7 @@ foreach tuple : [ # ['localed'], # ['networkd'], # ['resolve'], +# ['DNS-over-TLS'], # ['coredump'], #endif // 0 ['polkit'], @@ -3255,9 +3347,11 @@ foreach tuple : [ # ['adm group', get_option('adm-group')], # ['wheel group', get_option('wheel-group')], # ['gshadow'], -#else - ['debug elogind'], #endif // 0 + ['valgrind', conf.get('VALGRIND') == 1], +#if 1 /// Extra debugging for elogind + ['debug elogind'], +#endif // 1 ['debug hashmap'], ['debug mmap cache'], ] @@ -3284,9 +3378,11 @@ status += [ ''] message('\n '.join(status)) -if rootprefixdir != rootprefix_default - message('WARNING:\n' + - ' Note that the installation prefix was changed to "@0@".\n'.format(rootprefixdir) + - ' elogind used fixed names for unit file directories and other paths, so anything\n' + - ' except the default ("@0@") is strongly discouraged.'.format(rootprefix_default)) -endif +#if 0 /// Nicely enough this isn't true for elogind. :-) +# if rootprefixdir != rootprefix_default +# warning('\n' + +# 'Note that the installation prefix was changed to "@0@".\n'.format(rootprefixdir) + +# 'systemd used fixed names for unit file directories and other paths, so anything\n' + +# 'except the default ("@0@") is strongly discouraged.'.format(rootprefix_default)) +# endif +#endif // 0