From: Peter A. Bigot Date: Wed, 21 Mar 2018 11:42:04 +0000 (-0500) Subject: time-sync-wait: add service (#8494) X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=59b298150232d73634d70c24509c0bf14672cc24;p=elogind.git time-sync-wait: add service (#8494) This one-shot service waits until the kernel time has been set to synchronized. --- diff --git a/man/elogind-time-wait-sync.service.xml b/man/elogind-time-wait-sync.service.xml new file mode 100644 index 000000000..79c9dff9c --- /dev/null +++ b/man/elogind-time-wait-sync.service.xml @@ -0,0 +1,91 @@ + + + + + + + + + elogind-time-wait-sync.service + elogind + + + + Developer + Peter + Bigot + pab@pabigot.com + + + + + + elogind-time-wait-sync.service + 8 + + + + elogind-time-wait-sync.service + elogind-time-wait-sync + Wait Until Kernel Time Synchronized + + + + elogind-time-wait-sync.service + /usr/lib/elogind/elogind-time-wait-sync + + + + Description + + elogind-time-wait-sync is a system service that delays the start of units that depend on + time-sync.target until elogind-timesyncd.service or something else has + set the system time and marked it as synchronized. Reaching this state generally requires synchronization with an + external source, such as an NTP server. + + When this unit is not enabled the time-sync.target synchronization point may be reached + as soon as the system time is advanced by elogind-timesyncd.service to the time stored at the + last shutdown. That time may not meet the expectations of dependent services that require an accurate + clock. + + + + + Notes + + This service works correctly with a time synchronization service like + elogind-timesyncd.service that uses the same protocol as NTP to set the time from a + synchronized source. When used with time synchronization services that follow a different protocol the event of + setting synchronized time may not be detected in which case this service will not complete. + + + + See Also + + elogind1, + elogind.special7, + elogind-timesyncd.service8, + + + + diff --git a/man/rules/meson.build b/man/rules/meson.build index 29ab3ec8d..e33dc4393 100644 --- a/man/rules/meson.build +++ b/man/rules/meson.build @@ -1,12 +1,110 @@ # Do not edit. Generated by make-man-rules.py. manpages = [ -['elogind-rc-local-generator', '8', [], ''], - ['elogind', '8', [], ''], - ['loginctl', '1', [], ''], - ['logind.conf', '5', [], ''], ['pam_elogind', '8', [], 'HAVE_PAM'], +['binfmt.d', '5', [], 'ENABLE_BINFMT'], + ['bootctl', '1', [], 'ENABLE_EFI'], + ['bootup', '7', [], ''], + ['busctl', '1', [], ''], + ['coredump.conf', '5', ['coredump.conf.d'], 'ENABLE_COREDUMP'], + ['coredumpctl', '1', [], 'ENABLE_COREDUMP'], + ['crypttab', '5', [], 'HAVE_LIBCRYPTSETUP'], + ['daemon', '7', [], ''], + ['dnssec-trust-anchors.d', + '5', + ['elogind.negative', 'elogind.positive'], + 'ENABLE_RESOLVE'], + ['environment.d', '5', [], 'ENABLE_ENVIRONMENT_D'], + ['file-hierarchy', '7', [], ''], + ['halt', '8', ['poweroff', 'reboot'], ''], + ['hostname', '5', [], ''], + ['hostnamectl', '1', [], 'ENABLE_HOSTNAMED'], + ['hwdb', '7', [], 'ENABLE_HWDB'], + ['journal-remote.conf', '5', ['journal-remote.conf.d'], 'HAVE_MICROHTTPD'], + ['journal-upload.conf', '5', ['journal-upload.conf.d'], 'HAVE_MICROHTTPD'], + ['journalctl', '1', [], ''], + ['journald.conf', '5', ['journald.conf.d'], ''], + ['kernel-command-line', '7', [], ''], + ['kernel-install', '8', [], ''], + ['libudev', '3', [], ''], + ['loader.conf', '5', [], 'ENABLE_EFI'], + ['locale.conf', '5', [], ''], + ['localectl', '1', [], 'ENABLE_LOCALED'], + ['localtime', '5', [], ''], + ['loginctl', '1', [], 'ENABLE_LOGIND'], + ['logind.conf', '5', ['logind.conf.d'], 'ENABLE_LOGIND'], + ['machine-id', '5', [], ''], + ['machine-info', '5', [], ''], + ['machinectl', '1', [], 'ENABLE_MACHINED'], + ['modules-load.d', '5', [], 'HAVE_KMOD'], + ['networkctl', '1', [], 'ENABLE_NETWORKD'], + ['networkd.conf', '5', ['networkd.conf.d'], 'ENABLE_NETWORKD'], + ['nss-myhostname', '8', ['libnss_myhostname.so.2'], 'ENABLE_MYHOSTNAME'], + ['nss-mymachines', '8', ['libnss_mymachines.so.2'], 'ENABLE_MACHINED'], + ['nss-resolve', '8', ['libnss_resolve.so.2'], 'ENABLE_RESOLVE'], + ['nss-elogind', '8', ['libnss_elogind.so.2'], 'ENABLE_NSS_SYSTEMD'], + ['os-release', '5', [], ''], + ['resolved.conf', '5', ['resolved.conf.d'], 'ENABLE_RESOLVE'], + ['runlevel', '8', [], 'ENABLE_UTMP'], + ['sd-boot', '7', [], 'ENABLE_EFI'], + ['sd-bus-errors', + '3', + ['SD_BUS_ERROR_ACCESS_DENIED', + 'SD_BUS_ERROR_ADDRESS_IN_USE', + 'SD_BUS_ERROR_AUTH_FAILED', + 'SD_BUS_ERROR_BAD_ADDRESS', + 'SD_BUS_ERROR_DISCONNECTED', + 'SD_BUS_ERROR_FAILED', + 'SD_BUS_ERROR_FILE_EXISTS', + 'SD_BUS_ERROR_FILE_NOT_FOUND', + 'SD_BUS_ERROR_INCONSISTENT_MESSAGE', + 'SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED', + 'SD_BUS_ERROR_INVALID_ARGS', + 'SD_BUS_ERROR_INVALID_SIGNATURE', + 'SD_BUS_ERROR_IO_ERROR', + 'SD_BUS_ERROR_LIMITS_EXCEEDED', + 'SD_BUS_ERROR_MATCH_RULE_INVALID', + 'SD_BUS_ERROR_MATCH_RULE_NOT_FOUND', + 'SD_BUS_ERROR_NAME_HAS_NO_OWNER', + 'SD_BUS_ERROR_NOT_SUPPORTED', + 'SD_BUS_ERROR_NO_MEMORY', + 'SD_BUS_ERROR_NO_NETWORK', + 'SD_BUS_ERROR_NO_REPLY', + 'SD_BUS_ERROR_NO_SERVER', + 'SD_BUS_ERROR_PROPERTY_READ_ONLY', + 'SD_BUS_ERROR_SERVICE_UNKNOWN', + 'SD_BUS_ERROR_TIMEOUT', + 'SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN', + 'SD_BUS_ERROR_UNKNOWN_INTERFACE', + 'SD_BUS_ERROR_UNKNOWN_METHOD', + 'SD_BUS_ERROR_UNKNOWN_OBJECT', + 'SD_BUS_ERROR_UNKNOWN_PROPERTY'], + ''], ['sd-bus', '3', [], ''], + ['sd-daemon', + '3', + ['SD_ALERT', + 'SD_CRIT', + 'SD_DEBUG', + 'SD_EMERG', + 'SD_ERR', + 'SD_INFO', + 'SD_NOTICE', + 'SD_WARNING'], + ''], ['sd-event', '3', [], ''], + ['sd-id128', + '3', + ['SD_ID128_CONST_STR', + 'SD_ID128_FORMAT_STR', + 'SD_ID128_FORMAT_VAL', + 'SD_ID128_MAKE', + 'SD_ID128_MAKE_STR', + 'SD_ID128_NULL', + 'sd_id128_equal', + 'sd_id128_is_null', + 'sd_id128_t'], + ''], + ['sd-journal', '3', [], ''], ['sd-login', '3', [], 'HAVE_PAM'], ['sd_booted', '3', [], ''], ['sd_bus_add_match', @@ -90,6 +188,7 @@ manpages = [ ['SD_BUS_ERROR_END', 'SD_BUS_ERROR_MAP', 'sd_bus_error_map'], ''], ['sd_bus_get_fd', '3', [], ''], + ['sd_bus_get_n_queued_read', '3', ['sd_bus_get_n_queued_write'], ''], ['sd_bus_is_open', '3', ['sd_bus_is_ready'], ''], ['sd_bus_message_append', '3', ['sd_bus_message_appendv'], ''], ['sd_bus_message_append_array', @@ -110,6 +209,7 @@ manpages = [ ['sd_bus_message_get_realtime_usec', 'sd_bus_message_get_seqnum'], ''], ['sd_bus_message_read_basic', '3', [], ''], + ['sd_bus_message_set_destination', '3', ['sd_bus_message_set_sender'], ''], ['sd_bus_negotiate_fds', '3', ['sd_bus_negotiate_creds', 'sd_bus_negotiate_timestamp'], @@ -258,6 +358,88 @@ manpages = [ 'sd_is_socket_unix', 'sd_is_special'], ''], + ['sd_journal_add_match', + '3', + ['sd_journal_add_conjunction', + 'sd_journal_add_disjunction', + 'sd_journal_flush_matches'], + ''], + ['sd_journal_enumerate_fields', + '3', + ['SD_JOURNAL_FOREACH_FIELD', 'sd_journal_restart_fields'], + ''], + ['sd_journal_get_catalog', '3', ['sd_journal_get_catalog_for_message_id'], ''], + ['sd_journal_get_cursor', '3', ['sd_journal_test_cursor'], ''], + ['sd_journal_get_cutoff_realtime_usec', + '3', + ['sd_journal_get_cutoff_monotonic_usec'], + ''], + ['sd_journal_get_data', + '3', + ['SD_JOURNAL_FOREACH_DATA', + 'sd_journal_enumerate_data', + 'sd_journal_get_data_threshold', + 'sd_journal_restart_data', + 'sd_journal_set_data_threshold'], + ''], + ['sd_journal_get_fd', + '3', + ['SD_JOURNAL_APPEND', + 'SD_JOURNAL_INVALIDATE', + 'SD_JOURNAL_NOP', + 'sd_journal_get_events', + 'sd_journal_get_timeout', + 'sd_journal_process', + 'sd_journal_reliable_fd', + 'sd_journal_wait'], + ''], + ['sd_journal_get_realtime_usec', '3', ['sd_journal_get_monotonic_usec'], ''], + ['sd_journal_get_usage', '3', [], ''], + ['sd_journal_has_runtime_files', '3', ['sd_journal_has_persistent_files'], ''], + ['sd_journal_next', + '3', + ['SD_JOURNAL_FOREACH', + 'SD_JOURNAL_FOREACH_BACKWARDS', + 'sd_journal_next_skip', + 'sd_journal_previous', + 'sd_journal_previous_skip'], + ''], + ['sd_journal_open', + '3', + ['SD_JOURNAL_CURRENT_USER', + 'SD_JOURNAL_LOCAL_ONLY', + 'SD_JOURNAL_OS_ROOT', + 'SD_JOURNAL_RUNTIME_ONLY', + 'SD_JOURNAL_SYSTEM', + 'sd_journal', + 'sd_journal_close', + 'sd_journal_open_directory', + 'sd_journal_open_directory_fd', + 'sd_journal_open_files', + 'sd_journal_open_files_fd'], + ''], + ['sd_journal_print', + '3', + ['SD_JOURNAL_SUPPRESS_LOCATION', + 'sd_journal_perror', + 'sd_journal_printv', + 'sd_journal_send', + 'sd_journal_sendv'], + ''], + ['sd_journal_query_unique', + '3', + ['SD_JOURNAL_FOREACH_UNIQUE', + 'sd_journal_enumerate_unique', + 'sd_journal_restart_unique'], + ''], + ['sd_journal_seek_head', + '3', + ['sd_journal_seek_cursor', + 'sd_journal_seek_monotonic_usec', + 'sd_journal_seek_realtime_usec', + 'sd_journal_seek_tail'], + ''], + ['sd_journal_stream_fd', '3', [], ''], ['sd_listen_fds', '3', ['SD_LISTEN_FDS_START', 'sd_listen_fds_with_names'], @@ -325,6 +507,289 @@ manpages = [ 'sd_uid_get_sessions', 'sd_uid_is_on_seat'], 'HAVE_PAM'], - ['sd_watchdog_enabled', '3', [], ''] + ['sd_watchdog_enabled', '3', [], ''], + ['shutdown', '8', [], ''], + ['sysctl.d', '5', [], ''], + ['systemctl', '1', [], ''], + ['elogind-analyze', '1', [], ''], + ['elogind-ask-password-console.service', + '8', + ['elogind-ask-password-console.path', + 'elogind-ask-password-wall.path', + 'elogind-ask-password-wall.service'], + ''], + ['elogind-ask-password', '1', [], ''], + ['elogind-backlight@.service', '8', ['elogind-backlight'], 'ENABLE_BACKLIGHT'], + ['elogind-binfmt.service', '8', ['elogind-binfmt'], 'ENABLE_BINFMT'], + ['elogind-cat', '1', [], ''], + ['elogind-cgls', '1', [], ''], + ['elogind-cgtop', '1', [], ''], + ['elogind-coredump', + '8', + ['elogind-coredump.socket', 'elogind-coredump@.service'], + 'ENABLE_COREDUMP'], + ['elogind-cryptsetup-generator', '8', [], 'HAVE_LIBCRYPTSETUP'], + ['elogind-cryptsetup@.service', + '8', + ['elogind-cryptsetup'], + 'HAVE_LIBCRYPTSETUP'], + ['elogind-debug-generator', '8', [], ''], + ['elogind-delta', '1', [], ''], + ['elogind-detect-virt', '1', [], ''], + ['elogind-environment-d-generator', + '8', + ['30-elogind-environment-d-generator'], + 'ENABLE_ENVIRONMENT_D'], + ['elogind-escape', '1', [], ''], + ['elogind-firstboot', '1', ['elogind-firstboot.service'], 'ENABLE_FIRSTBOOT'], + ['elogind-fsck@.service', + '8', + ['elogind-fsck', 'elogind-fsck-root.service'], + ''], + ['elogind-fstab-generator', '8', [], ''], + ['elogind-getty-generator', '8', [], ''], + ['elogind-gpt-auto-generator', '8', [], ''], + ['elogind-halt.service', + '8', + ['elogind-kexec.service', + 'elogind-poweroff.service', + 'elogind-reboot.service', + 'elogind-shutdown'], + ''], + ['elogind-hibernate-resume-generator', '8', [], 'ENABLE_HIBERNATE'], + ['elogind-hibernate-resume@.service', + '8', + ['elogind-hibernate-resume'], + 'ENABLE_HIBERNATE'], + ['elogind-hostnamed.service', '8', ['elogind-hostnamed'], 'ENABLE_HOSTNAMED'], + ['elogind-hwdb', '8', [], 'ENABLE_HWDB'], + ['elogind-importd.service', '8', ['elogind-importd'], 'ENABLE_IMPORTD'], + ['elogind-inhibit', '1', [], ''], + ['elogind-initctl.service', + '8', + ['elogind-initctl', 'elogind-initctl.socket'], + ''], + ['elogind-journal-gatewayd.service', + '8', + ['elogind-journal-gatewayd', 'elogind-journal-gatewayd.socket'], + 'HAVE_MICROHTTPD'], + ['elogind-journal-remote', '8', [], 'HAVE_MICROHTTPD'], + ['elogind-journal-upload', '8', [], 'HAVE_MICROHTTPD'], + ['elogind-journald.service', + '8', + ['elogind-journald', + 'elogind-journald-audit.socket', + 'elogind-journald-dev-log.socket', + 'elogind-journald.socket'], + ''], + ['elogind-localed.service', '8', ['elogind-localed'], 'ENABLE_LOCALED'], + ['elogind.service', '8', ['elogind'], 'ENABLE_LOGIND'], + ['elogind-machine-id-commit.service', '8', [], ''], + ['elogind-machine-id-setup', '1', [], ''], + ['elogind-machined.service', '8', ['elogind-machined'], 'ENABLE_MACHINED'], + ['elogind-makefs@.service', + '8', + ['elogind-growfs', + 'elogind-growfs@.service', + 'elogind-makefs', + 'elogind-makeswap@.service'], + ''], + ['elogind-modules-load.service', '8', ['elogind-modules-load'], 'HAVE_KMOD'], + ['elogind-mount', '1', ['elogind-umount'], ''], + ['elogind-networkd-wait-online.service', + '8', + ['elogind-networkd-wait-online'], + 'ENABLE_NETWORKD'], + ['elogind-networkd.service', '8', ['elogind-networkd'], 'ENABLE_NETWORKD'], + ['elogind-notify', '1', [], ''], + ['elogind-nspawn', '1', [], ''], + ['elogind-path', '1', [], ''], + ['elogind-quotacheck.service', + '8', + ['elogind-quotacheck'], + 'ENABLE_QUOTACHECK'], + ['elogind-random-seed.service', + '8', + ['elogind-random-seed'], + 'ENABLE_RANDOMSEED'], + ['elogind-rc-local-generator', '8', [], ''], + ['elogind-remount-fs.service', '8', ['elogind-remount-fs'], ''], + ['elogind-resolve', '1', ['resolvconf'], 'ENABLE_RESOLVE'], + ['elogind-resolved.service', '8', ['elogind-resolved'], 'ENABLE_RESOLVE'], + ['elogind-rfkill.service', + '8', + ['elogind-rfkill', 'elogind-rfkill.socket'], + 'ENABLE_RFKILL'], + ['elogind-run', '1', [], ''], + ['elogind-sleep.conf', '5', ['sleep.conf.d'], ''], + ['elogind-socket-activate', '1', [], ''], + ['elogind-socket-proxyd', '8', [], ''], + ['elogind-suspend.service', + '8', + ['elogind-hibernate.service', + 'elogind-hybrid-sleep.service', + 'elogind-suspend-to-hibernate.service', + 'elogind-sleep'], + ''], + ['elogind-sysctl.service', '8', ['elogind-sysctl'], ''], + ['elogind-system-update-generator', '8', [], ''], + ['elogind-system.conf', + '5', + ['system.conf.d', 'elogind-user.conf', 'user.conf.d'], + ''], + ['elogind-sysusers', '8', ['elogind-sysusers.service'], ''], + ['elogind-sysv-generator', '8', [], 'HAVE_SYSV_COMPAT'], + ['elogind-time-wait-sync.service', '8', ['elogind-time-wait-sync'], 'ENABLE_TIMESYNCD'], + ['elogind-timedated.service', '8', ['elogind-timedated'], 'ENABLE_TIMEDATED'], + ['elogind-timesyncd.service', '8', ['elogind-timesyncd'], 'ENABLE_TIMESYNCD'], + ['elogind-tmpfiles', + '8', + ['elogind-tmpfiles-clean.service', + 'elogind-tmpfiles-clean.timer', + 'elogind-tmpfiles-setup-dev.service', + 'elogind-tmpfiles-setup.service'], + ''], + ['elogind-tty-ask-password-agent', '1', [], ''], + ['elogind-udevd.service', + '8', + ['elogind-udevd', + 'elogind-udevd-control.socket', + 'elogind-udevd-kernel.socket'], + ''], + ['elogind-update-done.service', '8', ['elogind-update-done'], ''], + ['elogind-update-utmp.service', + '8', + ['elogind-update-utmp', 'elogind-update-utmp-runlevel.service'], + 'ENABLE_UTMP'], + ['elogind-user-sessions.service', '8', ['elogind-user-sessions'], 'HAVE_PAM'], + ['elogind-vconsole-setup.service', + '8', + ['elogind-vconsole-setup'], + 'ENABLE_VCONSOLE'], + ['elogind-veritysetup-generator', '8', [], 'HAVE_LIBCRYPTSETUP'], + ['elogind-veritysetup@.service', + '8', + ['elogind-veritysetup'], + 'HAVE_LIBCRYPTSETUP'], + ['elogind-volatile-root.service', '8', ['elogind-volatile-root'], ''], + ['elogind', '1', ['init'], ''], + ['elogind.automount', '5', [], ''], + ['elogind.device', '5', [], ''], + ['elogind.dnssd', '5', [], 'ENABLE_RESOLVE'], + ['elogind.environment-generator', '7', [], 'ENABLE_ENVIRONMENT_D'], + ['elogind.exec', '5', [], ''], + ['elogind.generator', '7', [], ''], + ['elogind.journal-fields', '7', [], ''], + ['elogind.kill', '5', [], ''], + ['elogind.link', '5', [], ''], + ['elogind.mount', '5', [], ''], + ['elogind.netdev', '5', [], 'ENABLE_NETWORKD'], + ['elogind.network', '5', [], 'ENABLE_NETWORKD'], + ['elogind.nspawn', '5', [], ''], + ['elogind.offline-updates', '7', [], ''], + ['elogind.path', '5', [], ''], + ['elogind.preset', '5', [], ''], + ['elogind.resource-control', '5', [], ''], + ['elogind.scope', '5', [], ''], + ['elogind.service', '5', [], ''], + ['elogind.slice', '5', [], ''], + ['elogind.socket', '5', [], ''], + ['elogind.special', '7', [], ''], + ['elogind.swap', '5', [], ''], + ['elogind.target', '5', [], ''], + ['elogind.time', '7', [], ''], + ['elogind.timer', '5', [], ''], + ['elogind.unit', '5', [], ''], + ['sysusers.d', '5', [], 'ENABLE_SYSUSERS'], + ['telinit', '8', [], ''], + ['timedatectl', '1', [], 'ENABLE_TIMEDATED'], + ['timesyncd.conf', '5', ['timesyncd.conf.d'], 'ENABLE_TIMESYNCD'], + ['tmpfiles.d', '5', [], ''], + ['udev', '7', [], ''], + ['udev.conf', '5', [], ''], + ['udev_device_get_syspath', + '3', + ['udev_device_get_action', + 'udev_device_get_devnode', + 'udev_device_get_devnum', + 'udev_device_get_devpath', + 'udev_device_get_devtype', + 'udev_device_get_driver', + 'udev_device_get_is_initialized', + 'udev_device_get_parent', + 'udev_device_get_parent_with_subsystem_devtype', + 'udev_device_get_subsystem', + 'udev_device_get_sysname', + 'udev_device_get_sysnum', + 'udev_device_get_udev'], + ''], + ['udev_device_has_tag', + '3', + ['udev_device_get_devlinks_list_entry', + 'udev_device_get_properties_list_entry', + 'udev_device_get_property_value', + 'udev_device_get_sysattr_list_entry', + 'udev_device_get_sysattr_value', + 'udev_device_get_tags_list_entry', + 'udev_device_set_sysattr_value'], + ''], + ['udev_device_new_from_syspath', + '3', + ['udev_device_new_from_device_id', + 'udev_device_new_from_devnum', + 'udev_device_new_from_environment', + 'udev_device_new_from_subsystem_sysname', + 'udev_device_ref', + 'udev_device_unref'], + ''], + ['udev_enumerate_add_match_subsystem', + '3', + ['udev_enumerate_add_match_is_initialized', + 'udev_enumerate_add_match_parent', + 'udev_enumerate_add_match_property', + 'udev_enumerate_add_match_sysattr', + 'udev_enumerate_add_match_sysname', + 'udev_enumerate_add_match_tag', + 'udev_enumerate_add_nomatch_subsystem', + 'udev_enumerate_add_nomatch_sysattr'], + ''], + ['udev_enumerate_new', + '3', + ['udev_enumerate_ref', 'udev_enumerate_unref'], + ''], + ['udev_enumerate_scan_devices', + '3', + ['udev_enumerate_add_syspath', + 'udev_enumerate_get_list_entry', + 'udev_enumerate_get_udev', + 'udev_enumerate_scan_subsystems'], + ''], + ['udev_list_entry', + '3', + ['udev_list_entry_get_by_name', + 'udev_list_entry_get_name', + 'udev_list_entry_get_next', + 'udev_list_entry_get_value'], + ''], + ['udev_monitor_filter_update', + '3', + ['udev_monitor_filter_add_match_subsystem_devtype', + 'udev_monitor_filter_add_match_tag', + 'udev_monitor_filter_remove'], + ''], + ['udev_monitor_new_from_netlink', + '3', + ['udev_monitor_ref', 'udev_monitor_unref'], + ''], + ['udev_monitor_receive_device', + '3', + ['udev_monitor_enable_receiving', + 'udev_monitor_get_fd', + 'udev_monitor_get_udev', + 'udev_monitor_set_receive_buffer_size'], + ''], + ['udev_new', '3', ['udev_ref', 'udev_unref'], ''], + ['udevadm', '8', [], ''], + ['vconsole.conf', '5', [], 'ENABLE_VCONSOLE'] ] # Really, do not edit. diff --git a/meson.build b/meson.build index b8e653298..554267aff 100644 --- a/meson.build +++ b/meson.build @@ -16,7 +16,7 @@ # along with elogind; If not, see . project('elogind', 'c', - version : '238.1', + version : '238', license : 'LGPLv2+', default_options: [ 'c_std=gnu99', @@ -296,8 +296,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_ON_OFF', memory_accounting_default ? 'on' : 'off') #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()) @@ -457,7 +457,8 @@ if cc.get_id() == 'clang' foreach arg : ['-Wno-typedef-redefinition', '-Wno-gnu-variable-sized-type-not-at-end', ] - if cc.has_argument(arg) + if cc.has_argument(arg, + name : '@0@ is supported'.format(arg)) add_project_arguments(arg, language : 'c') endif endforeach @@ -481,24 +482,11 @@ foreach arg : ['-Wl,-z,relro', endif endforeach -# Check if various sanitizers are supported -sanitizers = [] -foreach arg : ['address'] - - have = run_command(check_compilation_sh, - cc.cmd_array(), '-x', 'c', - '-fsanitize=@0@'.format(arg), - '-include', link_test_c).returncode() == 0 - message('@0@ sanitizer supported: @1@'.format(arg, have ? 'yes' : 'no')) - if have - sanitizers += arg - endif -endforeach - if get_option('buildtype') != 'debug' foreach arg : ['-ffunction-sections', '-fdata-sections'] - if cc.has_argument(arg) + if cc.has_argument(arg, + name : '@0@ is supported'.format(arg)) add_project_arguments(arg, language : 'c') endif endforeach @@ -685,8 +673,9 @@ endforeach #if 0 /// unneeded by elogind # conf.set_quoted('TELINIT', get_option('telinit-path')) +# # if run_command('ln', '--relative', '--help').returncode() != 0 -# error('ln does not support --relative') +# error('ln does not support --relative (added in coreutils 8.16)') # endif #endif // 0 @@ -910,6 +899,7 @@ substs.set('TTY_GID', tty_gid) kill_user_processes = get_option('default-kill-user-processes') conf.set10('KILL_USER_PROCESSES', kill_user_processes) +conf.set_quoted('KILL_USER_PROCESSES_YES_NO', kill_user_processes ? 'yes' : 'no') substs.set('KILL_USER_PROCESSES', kill_user_processes ? 'yes' : 'no') #if 0 /// UNNEEDED by elogind @@ -972,8 +962,7 @@ endif #if 0 /// UNNEEDED by elogind # libmount = dependency('mount', -# version : '>= 2.30', -# required : not fuzzer_build) +# version : fuzzer_build ? '>= 0' : '>= 2.30') # # want_seccomp = get_option('seccomp') # if want_seccomp != 'false' and not fuzzer_build @@ -1486,6 +1475,7 @@ includes = include_directories('src/basic', # 'src/resolve', # 'src/timesync', #endif // 0 + 'src/time-wait-sync', 'src/login', #if 0 /// UNNEEDED by elogind # 'src/udev', @@ -1840,6 +1830,10 @@ test_dlopen = executable( # install_rpath : rootlibexecdir, # install : true) # public_programs += [exe] +# +# meson.add_install_script(meson_make_symlink, +# join_paths(bindir, 'systemd-resolve'), +# join_paths(rootsbindir, 'resolvconf')) # endif # # if conf.get('ENABLE_LOGIND') == 1 @@ -2160,6 +2154,14 @@ endif # install_rpath : rootlibexecdir, # install : true, # install_dir : rootlibexecdir) +# +# executable('systemd-time-wait-sync', +# 'src/time-wait-sync/time-wait-sync.c', +# include_directories : includes, +# link_with : [libshared], +# install_rpath : rootlibexecdir, +# install : true, +# install_dir : rootlibexecdir) # endif # # if conf.get('ENABLE_MACHINED') == 1 @@ -2675,6 +2677,7 @@ executable('elogind-cgroups-agent', # systemd_shutdown_sources, # include_directories : includes, # link_with : [libshared], +# dependencies : [libmount], # install_rpath : rootlibexecdir, # install : true, # install_dir : rootlibexecdir) @@ -2963,49 +2966,57 @@ endforeach ############################################################ #if 0 /// fuzz regression tests are not supported by elogind -# prev = '' -# foreach p : fuzz_regression_tests -# a = p.split('/')[-3] -# b = p.split('/')[-2] -# c = p.split('/')[-1] -# -# if a == 'address' -# build = sanitize_address -# else -# error('unknown sanitizer @0@'.format(a)) -# endif -# -# name = '@1@:@0@'.format(a, b) -# -# if name != prev -# if want_tests == 'false' -# message('Not compiling @0@ because tests is set to false'.format(name)) -# elif not sanitizers.contains(a) -# message('Not compiling @0@ because @1@ sanitizer is not available'.format(name, a)) -# elif slow_tests -# exe = custom_target( -# name, -# output : name, -# depends : build, -# command : [env, 'ln', '-fs', -# join_paths(build.full_path(), b), -# '@OUTPUT@'], -# build_by_default : true) -# else -# message('Not compiling @0@ because slow-tests is set to false'.format(name)) -# endif -# endif -# prev = name -# -# if want_tests != 'false' and slow_tests -# test(c, env, args : [exe.full_path(), -# join_paths(meson.source_root(), -# 'test/fuzz-regressions', -# p)]) +# # Enable tests for all supported sanitizers +# foreach tuple : sanitizers +# sanitizer = tuple[0] +# build = tuple[1] +# +# have = run_command(check_compilation_sh, +# cc.cmd_array(), '-x', 'c', +# '-fsanitize=@0@'.format(sanitizer), +# '-include', link_test_c).returncode() == 0 +# message('@0@ sanitizer supported: @1@'.format(sanitizer, have ? 'yes' : 'no')) +# +# if have +# prev = '' +# foreach p : fuzz_regression_tests +# b = p.split('/')[-2] +# c = p.split('/')[-1] +# +# name = '@0@:@1@'.format(b, sanitizer) +# +# if name != prev +# if want_tests == 'false' +# message('Not compiling @0@ because tests is set to false'.format(name)) +# elif slow_tests +# exe = custom_target( +# name, +# output : name, +# depends : build, +# command : [env, 'ln', '-fs', +# join_paths(build.full_path(), b), +# '@OUTPUT@'], +# build_by_default : true) +# else +# message('Not compiling @0@ because slow-tests is set to false'.format(name)) +# endif +# endif +# prev = name +# +# if want_tests != 'false' and slow_tests +# test('@0@:@1@:@2@'.format(b, c, sanitizer), +# env, +# args : [exe.full_path(), +# join_paths(meson.source_root(), +# 'test/fuzz-regressions', +# p)]) +# endif +# endforeach # endif # endforeach #endif // 0 + ############################################################ if git.found()