summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.vimrc20
-rw-r--r--.ycm_extra_conf.py67
-rw-r--r--LICENSE.MIT19
-rw-r--r--Makefile-man.am1166
-rw-r--r--Makefile.am1654
-rw-r--r--README4
-rwxr-xr-xautogen.sh56
-rw-r--r--coccinelle/free_and_replace.cocci15
-rw-r--r--configure.ac906
l---------docs/Makefile1
l---------docs/gtk-doc.make1
-rw-r--r--m4/arch.m413
-rw-r--r--m4/attributes.m4289
-rw-r--r--m4/ax_normalize_path.m4115
-rw-r--r--m4/gtk-doc.m488
l---------man/Makefile1
-rw-r--r--man/meson.build218
-rw-r--r--man/rules/meson.build5
-rw-r--r--meson.build2847
-rw-r--r--meson_options.txt306
-rw-r--r--po/LINGUAS3
-rw-r--r--po/POTFILES.in7
-rw-r--r--po/ca.po525
-rw-r--r--po/cs.po546
-rw-r--r--po/hr.po2
-rw-r--r--po/hu.po110
-rw-r--r--po/meson.build12
-rw-r--r--po/pl.po58
-rw-r--r--po/pt_BR.po240
-rw-r--r--po/sk.po556
-rw-r--r--po/sv.po197
l---------shell-completion/Makefile1
l---------shell-completion/bash/Makefile1
-rw-r--r--shell-completion/bash/meson.build54
l---------shell-completion/zsh/Makefile1
-rw-r--r--shell-completion/zsh/meson.build51
-rw-r--r--src/Makefile28
l---------src/basic/Makefile1
-rw-r--r--src/basic/errno-to-name.awk9
-rwxr-xr-xsrc/basic/generate-errno-list.sh4
-rwxr-xr-xsrc/basic/generate-gperfs.py16
-rw-r--r--src/basic/meson.build424
l---------src/cgroups-agent/Makefile1
l---------src/core/Makefile1
-rw-r--r--src/core/meson.build248
l---------src/libelogind/Makefile1
-rw-r--r--src/libelogind/meson.build144
l---------src/libelogind/sd-bus/Makefile1
l---------src/libelogind/sd-daemon/Makefile1
l---------src/libelogind/sd-event/Makefile1
l---------src/libelogind/sd-id128/Makefile1
l---------src/libelogind/sd-login/Makefile1
l---------src/login/Makefile1
-rw-r--r--src/login/meson.build181
l---------src/shared/Makefile1
-rw-r--r--src/shared/meson.build198
l---------src/sleep/Makefile1
-rw-r--r--src/sleep/meson.build4
l---------src/systemd/Makefile1
-rw-r--r--src/systemd/meson.build75
l---------src/test/Makefile1
-rwxr-xr-xsrc/test/generate-sym-test.py23
-rw-r--r--src/test/meson.build975
-rw-r--r--src/test/test-hashmap-ordered.awk11
l---------src/update-utmp/Makefile1
-rw-r--r--src/update-utmp/meson.build4
-rwxr-xr-xtools/make-directive-index.py89
-rwxr-xr-xtools/make-man-index.py25
-rwxr-xr-xtools/make-man-rules.py98
-rwxr-xr-xtools/meson-check-compilation.sh3
-rwxr-xr-xtools/meson-check-help.sh20
-rwxr-xr-xtools/meson-get-cg-controller.sh18
-rwxr-xr-xtools/meson-git-contrib.sh8
-rw-r--r--tools/meson-link-test.c1
-rwxr-xr-xtools/meson-make-symlink.sh11
-rwxr-xr-xtools/xml_helper.py1
76 files changed, 7946 insertions, 4842 deletions
diff --git a/.vimrc b/.vimrc
deleted file mode 100644
index 284bf8849..000000000
--- a/.vimrc
+++ /dev/null
@@ -1,20 +0,0 @@
-" 'set exrc' in ~/.vimrc will read .vimrc from the current directory
-" Warning: Enabling exrc is dangerous! You can do nearly everything from a
-" vimrc configuration file, including write operations and shell execution.
-" You should consider setting 'set secure' as well, which is highly
-" recommended!
-
-" Note that we set a line width of 119 for .c and XML files, but for everything
-" else (such as journal catalog files, unit files, README files) we stick to a
-" more conservative 79 characters.
-
-" NOTE: If you update this file make sure to update .dir-locals.el and
-" .editorconfig, too.
-
-set tabstop=8
-set shiftwidth=8
-set expandtab
-set makeprg=GCC_COLORS=\ make
-set tw=79
-au BufRead,BufNewFile *.xml set tw=119 shiftwidth=2 smarttab
-au FileType c set tw=119
diff --git a/.ycm_extra_conf.py b/.ycm_extra_conf.py
deleted file mode 100644
index 4edd3c8a7..000000000
--- a/.ycm_extra_conf.py
+++ /dev/null
@@ -1,67 +0,0 @@
-import itertools
-import os
-import subprocess
-
-def GetFlagsFromMakefile(varname):
- return subprocess.check_output([
- "make", "-s", "print-%s" % varname]).decode().split()
-
-
-def Flatten(lists):
- return list(itertools.chain.from_iterable(lists))
-
-
-def DirectoryOfThisScript():
- return os.path.dirname(os.path.abspath(__file__))
-
-
-def MakeRelativePathsInFlagsAbsolute(flags, working_directory):
- if not working_directory:
- return flags
- new_flags = []
- make_next_absolute = False
- path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
- for flag in flags:
- new_flag = flag
-
- if make_next_absolute:
- make_next_absolute = False
- if not flag.startswith('/'):
- new_flag = os.path.join(working_directory, flag)
-
- for path_flag in path_flags:
- if flag == path_flag:
- make_next_absolute = True
- break
-
- if flag.startswith(path_flag):
- path = flag[ len(path_flag): ]
- new_flag = path_flag + os.path.join(working_directory, path)
- break
-
- if new_flag:
- new_flags.append(new_flag)
- return new_flags
-
-
-def FlagsForFile(filename):
- relative_to = DirectoryOfThisScript()
-
- return {
- 'flags': MakeRelativePathsInFlagsAbsolute(flags, relative_to),
- 'do_cache': True
- }
-
-flags = Flatten(map(GetFlagsFromMakefile, [
- 'AM_CPPFLAGS',
- 'CPPFLAGS',
- 'AM_CFLAGS',
- 'CFLAGS',
-]))
-
-# these flags cause crashes in libclang, so remove them
-flags.remove('-Wlogical-op')
-flags.remove('-Wsuggest-attribute=noreturn')
-flags.remove('-Wdate-time')
-
-# vim: set et ts=2 sw=2:
diff --git a/LICENSE.MIT b/LICENSE.MIT
deleted file mode 100644
index fd44f736e..000000000
--- a/LICENSE.MIT
+++ /dev/null
@@ -1,19 +0,0 @@
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation files
-(the "Software"), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
-BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/Makefile-man.am b/Makefile-man.am
deleted file mode 100644
index 2355ff8a6..000000000
--- a/Makefile-man.am
+++ /dev/null
@@ -1,1166 +0,0 @@
-# Do not edit. Generated by make-man-rules.py.
-# To regenerate:
-# 1. Create, update, or remove source .xml files in man/
-# 2. Run 'make update-man-list'
-# 3. Run 'make man' to generate manpages
-#
-# To make a man page conditional on a configure switch add
-# attribute conditional="ENABLE_WHAT" or conditional="WITH_WHAT"
-# to <refentry> element.
-MANPAGES += \
- man/elogind.8 \
- man/loginctl.1 \
- man/logind.conf.5 \
- man/sd-bus.3 \
- man/sd-event.3 \
- man/sd_booted.3 \
- man/sd_bus_add_match.3 \
- man/sd_bus_creds_get_pid.3 \
- man/sd_bus_creds_new_from_pid.3 \
- man/sd_bus_default.3 \
- man/sd_bus_error.3 \
- man/sd_bus_error_add_map.3 \
- man/sd_bus_get_fd.3 \
- man/sd_bus_message_append.3 \
- man/sd_bus_message_append_array.3 \
- man/sd_bus_message_append_basic.3 \
- man/sd_bus_message_append_strv.3 \
- man/sd_bus_message_read_basic.3 \
- man/sd_bus_negotiate_fds.3 \
- man/sd_bus_new.3 \
- man/sd_bus_process.3 \
- man/sd_bus_request_name.3 \
- man/sd_bus_track_add_name.3 \
- man/sd_bus_track_new.3 \
- man/sd_event_add_child.3 \
- man/sd_event_add_defer.3 \
- man/sd_event_add_io.3 \
- man/sd_event_add_signal.3 \
- man/sd_event_add_time.3 \
- man/sd_event_exit.3 \
- man/sd_event_new.3 \
- man/sd_event_now.3 \
- man/sd_event_run.3 \
- man/sd_event_set_watchdog.3 \
- man/sd_event_source_get_event.3 \
- man/sd_event_source_get_pending.3 \
- man/sd_event_source_set_description.3 \
- man/sd_event_source_set_enabled.3 \
- man/sd_event_source_set_prepare.3 \
- man/sd_event_source_set_priority.3 \
- man/sd_event_source_set_userdata.3 \
- man/sd_event_source_unref.3 \
- man/sd_event_wait.3 \
- man/sd_id128_get_machine.3 \
- man/sd_id128_randomize.3 \
- man/sd_id128_to_string.3 \
- man/sd_is_fifo.3 \
- man/sd_listen_fds.3 \
- man/sd_machine_get_class.3 \
- man/sd_notify.3 \
- man/sd_watchdog_enabled.3
-MANPAGES_ALIAS += \
- man/SD_BUS_ERROR_END.3 \
- man/SD_BUS_ERROR_MAKE_CONST.3 \
- man/SD_BUS_ERROR_MAP.3 \
- man/SD_BUS_ERROR_NULL.3 \
- man/SD_EVENT_ARMED.3 \
- man/SD_EVENT_EXITING.3 \
- man/SD_EVENT_FINISHED.3 \
- man/SD_EVENT_INITIAL.3 \
- man/SD_EVENT_OFF.3 \
- man/SD_EVENT_ON.3 \
- man/SD_EVENT_ONESHOT.3 \
- man/SD_EVENT_PENDING.3 \
- man/SD_EVENT_PREPARING.3 \
- man/SD_EVENT_PRIORITY_IDLE.3 \
- man/SD_EVENT_PRIORITY_IMPORTANT.3 \
- man/SD_EVENT_PRIORITY_NORMAL.3 \
- man/SD_EVENT_RUNNING.3 \
- man/SD_LISTEN_FDS_START.3 \
- man/sd_bus_creds_get_audit_login_uid.3 \
- man/sd_bus_creds_get_audit_session_id.3 \
- man/sd_bus_creds_get_augmented_mask.3 \
- man/sd_bus_creds_get_cgroup.3 \
- man/sd_bus_creds_get_cmdline.3 \
- man/sd_bus_creds_get_comm.3 \
- man/sd_bus_creds_get_description.3 \
- man/sd_bus_creds_get_egid.3 \
- man/sd_bus_creds_get_euid.3 \
- man/sd_bus_creds_get_exe.3 \
- man/sd_bus_creds_get_fsgid.3 \
- man/sd_bus_creds_get_fsuid.3 \
- man/sd_bus_creds_get_gid.3 \
- man/sd_bus_creds_get_mask.3 \
- man/sd_bus_creds_get_owner_uid.3 \
- man/sd_bus_creds_get_ppid.3 \
- man/sd_bus_creds_get_selinux_context.3 \
- man/sd_bus_creds_get_session.3 \
- man/sd_bus_creds_get_sgid.3 \
- man/sd_bus_creds_get_slice.3 \
- man/sd_bus_creds_get_suid.3 \
- man/sd_bus_creds_get_supplementary_gids.3 \
- man/sd_bus_creds_get_tid.3 \
- man/sd_bus_creds_get_tid_comm.3 \
- man/sd_bus_creds_get_tty.3 \
- man/sd_bus_creds_get_uid.3 \
- man/sd_bus_creds_get_unique_name.3 \
- man/sd_bus_creds_get_unit.3 \
- man/sd_bus_creds_get_user_slice.3 \
- man/sd_bus_creds_get_user_unit.3 \
- man/sd_bus_creds_get_well_known_names.3 \
- man/sd_bus_creds_has_bounding_cap.3 \
- man/sd_bus_creds_has_effective_cap.3 \
- man/sd_bus_creds_has_inheritable_cap.3 \
- man/sd_bus_creds_has_permitted_cap.3 \
- man/sd_bus_creds_ref.3 \
- man/sd_bus_creds_unref.3 \
- man/sd_bus_creds_unrefp.3 \
- man/sd_bus_default_system.3 \
- man/sd_bus_default_user.3 \
- man/sd_bus_error_copy.3 \
- man/sd_bus_error_free.3 \
- man/sd_bus_error_get_errno.3 \
- man/sd_bus_error_has_name.3 \
- man/sd_bus_error_is_set.3 \
- man/sd_bus_error_map.3 \
- man/sd_bus_error_set.3 \
- man/sd_bus_error_set_const.3 \
- man/sd_bus_error_set_errno.3 \
- man/sd_bus_error_set_errnof.3 \
- man/sd_bus_error_set_errnofv.3 \
- man/sd_bus_error_setf.3 \
- man/sd_bus_message_append_array_iovec.3 \
- man/sd_bus_message_append_array_memfd.3 \
- man/sd_bus_message_append_array_space.3 \
- man/sd_bus_message_appendv.3 \
- man/sd_bus_negotiate_creds.3 \
- man/sd_bus_negotiate_timestamp.3 \
- man/sd_bus_open.3 \
- man/sd_bus_open_system.3 \
- man/sd_bus_open_system_machine.3 \
- man/sd_bus_open_system_remote.3 \
- man/sd_bus_open_user.3 \
- man/sd_bus_ref.3 \
- man/sd_bus_release_name.3 \
- man/sd_bus_track_add_sender.3 \
- man/sd_bus_track_contains.3 \
- man/sd_bus_track_count.3 \
- man/sd_bus_track_count_name.3 \
- man/sd_bus_track_count_sender.3 \
- man/sd_bus_track_first.3 \
- man/sd_bus_track_get_bus.3 \
- man/sd_bus_track_get_recursive.3 \
- man/sd_bus_track_get_userdata.3 \
- man/sd_bus_track_next.3 \
- man/sd_bus_track_ref.3 \
- man/sd_bus_track_remove_name.3 \
- man/sd_bus_track_remove_sender.3 \
- man/sd_bus_track_set_recursive.3 \
- man/sd_bus_track_set_userdata.3 \
- man/sd_bus_track_unref.3 \
- man/sd_bus_track_unrefp.3 \
- man/sd_bus_unref.3 \
- man/sd_bus_unrefp.3 \
- man/sd_event.3 \
- man/sd_event_add_exit.3 \
- man/sd_event_add_post.3 \
- man/sd_event_child_handler_t.3 \
- man/sd_event_default.3 \
- man/sd_event_dispatch.3 \
- man/sd_event_get_exit_code.3 \
- man/sd_event_get_iteration.3 \
- man/sd_event_get_state.3 \
- man/sd_event_get_tid.3 \
- man/sd_event_get_watchdog.3 \
- man/sd_event_handler_t.3 \
- man/sd_event_io_handler_t.3 \
- man/sd_event_loop.3 \
- man/sd_event_prepare.3 \
- man/sd_event_ref.3 \
- man/sd_event_signal_handler_t.3 \
- man/sd_event_source.3 \
- man/sd_event_source_get_child_pid.3 \
- man/sd_event_source_get_description.3 \
- man/sd_event_source_get_enabled.3 \
- man/sd_event_source_get_io_events.3 \
- man/sd_event_source_get_io_fd.3 \
- man/sd_event_source_get_io_revents.3 \
- man/sd_event_source_get_priority.3 \
- man/sd_event_source_get_signal.3 \
- man/sd_event_source_get_time.3 \
- man/sd_event_source_get_time_accuracy.3 \
- man/sd_event_source_get_time_clock.3 \
- man/sd_event_source_get_userdata.3 \
- man/sd_event_source_ref.3 \
- man/sd_event_source_set_io_events.3 \
- man/sd_event_source_set_io_fd.3 \
- man/sd_event_source_set_time.3 \
- man/sd_event_source_set_time_accuracy.3 \
- man/sd_event_source_unrefp.3 \
- man/sd_event_time_handler_t.3 \
- man/sd_event_unref.3 \
- man/sd_event_unrefp.3 \
- man/sd_id128_from_string.3 \
- man/sd_id128_get_boot.3 \
- man/sd_id128_get_invocation.3 \
- man/sd_id128_get_machine_app_specific.3 \
- man/sd_is_mq.3 \
- man/sd_is_socket.3 \
- man/sd_is_socket_inet.3 \
- man/sd_is_socket_sockaddr.3 \
- man/sd_is_socket_unix.3 \
- man/sd_is_special.3 \
- man/sd_listen_fds_with_names.3 \
- man/sd_machine_get_ifindices.3 \
- man/sd_notifyf.3 \
- man/sd_pid_notify.3 \
- man/sd_pid_notify_with_fds.3 \
- man/sd_pid_notifyf.3
-man/SD_BUS_ERROR_END.3: man/sd_bus_error_add_map.3
-man/SD_BUS_ERROR_MAKE_CONST.3: man/sd_bus_error.3
-man/SD_BUS_ERROR_MAP.3: man/sd_bus_error_add_map.3
-man/SD_BUS_ERROR_NULL.3: man/sd_bus_error.3
-man/SD_EVENT_ARMED.3: man/sd_event_wait.3
-man/SD_EVENT_EXITING.3: man/sd_event_wait.3
-man/SD_EVENT_FINISHED.3: man/sd_event_wait.3
-man/SD_EVENT_INITIAL.3: man/sd_event_wait.3
-man/SD_EVENT_OFF.3: man/sd_event_source_set_enabled.3
-man/SD_EVENT_ON.3: man/sd_event_source_set_enabled.3
-man/SD_EVENT_ONESHOT.3: man/sd_event_source_set_enabled.3
-man/SD_EVENT_PENDING.3: man/sd_event_wait.3
-man/SD_EVENT_PREPARING.3: man/sd_event_wait.3
-man/SD_EVENT_PRIORITY_IDLE.3: man/sd_event_source_set_priority.3
-man/SD_EVENT_PRIORITY_IMPORTANT.3: man/sd_event_source_set_priority.3
-man/SD_EVENT_PRIORITY_NORMAL.3: man/sd_event_source_set_priority.3
-man/SD_EVENT_RUNNING.3: man/sd_event_wait.3
-man/SD_LISTEN_FDS_START.3: man/sd_listen_fds.3
-man/sd_bus_creds_get_audit_login_uid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_audit_session_id.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_augmented_mask.3: man/sd_bus_creds_new_from_pid.3
-man/sd_bus_creds_get_cgroup.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_cmdline.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_comm.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_description.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_egid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_euid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_exe.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_fsgid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_fsuid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_gid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_mask.3: man/sd_bus_creds_new_from_pid.3
-man/sd_bus_creds_get_owner_uid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_ppid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_selinux_context.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_session.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_sgid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_slice.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_suid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_supplementary_gids.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_tid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_tid_comm.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_tty.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_uid.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_unique_name.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_unit.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_user_slice.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_user_unit.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_get_well_known_names.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_has_bounding_cap.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_has_effective_cap.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_has_inheritable_cap.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_has_permitted_cap.3: man/sd_bus_creds_get_pid.3
-man/sd_bus_creds_ref.3: man/sd_bus_creds_new_from_pid.3
-man/sd_bus_creds_unref.3: man/sd_bus_creds_new_from_pid.3
-man/sd_bus_creds_unrefp.3: man/sd_bus_creds_new_from_pid.3
-man/sd_bus_default_system.3: man/sd_bus_default.3
-man/sd_bus_default_user.3: man/sd_bus_default.3
-man/sd_bus_error_copy.3: man/sd_bus_error.3
-man/sd_bus_error_free.3: man/sd_bus_error.3
-man/sd_bus_error_get_errno.3: man/sd_bus_error.3
-man/sd_bus_error_has_name.3: man/sd_bus_error.3
-man/sd_bus_error_is_set.3: man/sd_bus_error.3
-man/sd_bus_error_map.3: man/sd_bus_error_add_map.3
-man/sd_bus_error_set.3: man/sd_bus_error.3
-man/sd_bus_error_set_const.3: man/sd_bus_error.3
-man/sd_bus_error_set_errno.3: man/sd_bus_error.3
-man/sd_bus_error_set_errnof.3: man/sd_bus_error.3
-man/sd_bus_error_set_errnofv.3: man/sd_bus_error.3
-man/sd_bus_error_setf.3: man/sd_bus_error.3
-man/sd_bus_message_append_array_iovec.3: man/sd_bus_message_append_array.3
-man/sd_bus_message_append_array_memfd.3: man/sd_bus_message_append_array.3
-man/sd_bus_message_append_array_space.3: man/sd_bus_message_append_array.3
-man/sd_bus_message_appendv.3: man/sd_bus_message_append.3
-man/sd_bus_negotiate_creds.3: man/sd_bus_negotiate_fds.3
-man/sd_bus_negotiate_timestamp.3: man/sd_bus_negotiate_fds.3
-man/sd_bus_open.3: man/sd_bus_default.3
-man/sd_bus_open_system.3: man/sd_bus_default.3
-man/sd_bus_open_system_machine.3: man/sd_bus_default.3
-man/sd_bus_open_system_remote.3: man/sd_bus_default.3
-man/sd_bus_open_user.3: man/sd_bus_default.3
-man/sd_bus_ref.3: man/sd_bus_new.3
-man/sd_bus_release_name.3: man/sd_bus_request_name.3
-man/sd_bus_track_add_sender.3: man/sd_bus_track_add_name.3
-man/sd_bus_track_contains.3: man/sd_bus_track_add_name.3
-man/sd_bus_track_count.3: man/sd_bus_track_add_name.3
-man/sd_bus_track_count_name.3: man/sd_bus_track_add_name.3
-man/sd_bus_track_count_sender.3: man/sd_bus_track_add_name.3
-man/sd_bus_track_first.3: man/sd_bus_track_add_name.3
-man/sd_bus_track_get_bus.3: man/sd_bus_track_new.3
-man/sd_bus_track_get_recursive.3: man/sd_bus_track_new.3
-man/sd_bus_track_get_userdata.3: man/sd_bus_track_new.3
-man/sd_bus_track_next.3: man/sd_bus_track_add_name.3
-man/sd_bus_track_ref.3: man/sd_bus_track_new.3
-man/sd_bus_track_remove_name.3: man/sd_bus_track_add_name.3
-man/sd_bus_track_remove_sender.3: man/sd_bus_track_add_name.3
-man/sd_bus_track_set_recursive.3: man/sd_bus_track_new.3
-man/sd_bus_track_set_userdata.3: man/sd_bus_track_new.3
-man/sd_bus_track_unref.3: man/sd_bus_track_new.3
-man/sd_bus_track_unrefp.3: man/sd_bus_track_new.3
-man/sd_bus_unref.3: man/sd_bus_new.3
-man/sd_bus_unrefp.3: man/sd_bus_new.3
-man/sd_event.3: man/sd_event_new.3
-man/sd_event_add_exit.3: man/sd_event_add_defer.3
-man/sd_event_add_post.3: man/sd_event_add_defer.3
-man/sd_event_child_handler_t.3: man/sd_event_add_child.3
-man/sd_event_default.3: man/sd_event_new.3
-man/sd_event_dispatch.3: man/sd_event_wait.3
-man/sd_event_get_exit_code.3: man/sd_event_exit.3
-man/sd_event_get_iteration.3: man/sd_event_wait.3
-man/sd_event_get_state.3: man/sd_event_wait.3
-man/sd_event_get_tid.3: man/sd_event_new.3
-man/sd_event_get_watchdog.3: man/sd_event_set_watchdog.3
-man/sd_event_handler_t.3: man/sd_event_add_defer.3
-man/sd_event_io_handler_t.3: man/sd_event_add_io.3
-man/sd_event_loop.3: man/sd_event_run.3
-man/sd_event_prepare.3: man/sd_event_wait.3
-man/sd_event_ref.3: man/sd_event_new.3
-man/sd_event_signal_handler_t.3: man/sd_event_add_signal.3
-man/sd_event_source.3: man/sd_event_add_io.3
-man/sd_event_source_get_child_pid.3: man/sd_event_add_child.3
-man/sd_event_source_get_description.3: man/sd_event_source_set_description.3
-man/sd_event_source_get_enabled.3: man/sd_event_source_set_enabled.3
-man/sd_event_source_get_io_events.3: man/sd_event_add_io.3
-man/sd_event_source_get_io_fd.3: man/sd_event_add_io.3
-man/sd_event_source_get_io_revents.3: man/sd_event_add_io.3
-man/sd_event_source_get_priority.3: man/sd_event_source_set_priority.3
-man/sd_event_source_get_signal.3: man/sd_event_add_signal.3
-man/sd_event_source_get_time.3: man/sd_event_add_time.3
-man/sd_event_source_get_time_accuracy.3: man/sd_event_add_time.3
-man/sd_event_source_get_time_clock.3: man/sd_event_add_time.3
-man/sd_event_source_get_userdata.3: man/sd_event_source_set_userdata.3
-man/sd_event_source_ref.3: man/sd_event_source_unref.3
-man/sd_event_source_set_io_events.3: man/sd_event_add_io.3
-man/sd_event_source_set_io_fd.3: man/sd_event_add_io.3
-man/sd_event_source_set_time.3: man/sd_event_add_time.3
-man/sd_event_source_set_time_accuracy.3: man/sd_event_add_time.3
-man/sd_event_source_unrefp.3: man/sd_event_source_unref.3
-man/sd_event_time_handler_t.3: man/sd_event_add_time.3
-man/sd_event_unref.3: man/sd_event_new.3
-man/sd_event_unrefp.3: man/sd_event_new.3
-man/sd_id128_from_string.3: man/sd_id128_to_string.3
-man/sd_id128_get_boot.3: man/sd_id128_get_machine.3
-man/sd_id128_get_invocation.3: man/sd_id128_get_machine.3
-man/sd_id128_get_machine_app_specific.3: man/sd_id128_get_machine.3
-man/sd_is_mq.3: man/sd_is_fifo.3
-man/sd_is_socket.3: man/sd_is_fifo.3
-man/sd_is_socket_inet.3: man/sd_is_fifo.3
-man/sd_is_socket_sockaddr.3: man/sd_is_fifo.3
-man/sd_is_socket_unix.3: man/sd_is_fifo.3
-man/sd_is_special.3: man/sd_is_fifo.3
-man/sd_listen_fds_with_names.3: man/sd_listen_fds.3
-man/sd_machine_get_ifindices.3: man/sd_machine_get_class.3
-man/sd_notifyf.3: man/sd_notify.3
-man/sd_pid_notify.3: man/sd_notify.3
-man/sd_pid_notify_with_fds.3: man/sd_notify.3
-man/sd_pid_notifyf.3: man/sd_notify.3
-man/SD_BUS_ERROR_END.html: man/sd_bus_error_add_map.html
- $(html-alias)
-
-man/SD_BUS_ERROR_MAKE_CONST.html: man/sd_bus_error.html
- $(html-alias)
-
-man/SD_BUS_ERROR_MAP.html: man/sd_bus_error_add_map.html
- $(html-alias)
-
-man/SD_BUS_ERROR_NULL.html: man/sd_bus_error.html
- $(html-alias)
-
-man/SD_EVENT_ARMED.html: man/sd_event_wait.html
- $(html-alias)
-
-man/SD_EVENT_EXITING.html: man/sd_event_wait.html
- $(html-alias)
-
-man/SD_EVENT_FINISHED.html: man/sd_event_wait.html
- $(html-alias)
-
-man/SD_EVENT_INITIAL.html: man/sd_event_wait.html
- $(html-alias)
-
-man/SD_EVENT_OFF.html: man/sd_event_source_set_enabled.html
- $(html-alias)
-
-man/SD_EVENT_ON.html: man/sd_event_source_set_enabled.html
- $(html-alias)
-
-man/SD_EVENT_ONESHOT.html: man/sd_event_source_set_enabled.html
- $(html-alias)
-
-man/SD_EVENT_PENDING.html: man/sd_event_wait.html
- $(html-alias)
-
-man/SD_EVENT_PREPARING.html: man/sd_event_wait.html
- $(html-alias)
-
-man/SD_EVENT_PRIORITY_IDLE.html: man/sd_event_source_set_priority.html
- $(html-alias)
-
-man/SD_EVENT_PRIORITY_IMPORTANT.html: man/sd_event_source_set_priority.html
- $(html-alias)
-
-man/SD_EVENT_PRIORITY_NORMAL.html: man/sd_event_source_set_priority.html
- $(html-alias)
-
-man/SD_EVENT_RUNNING.html: man/sd_event_wait.html
- $(html-alias)
-
-man/SD_LISTEN_FDS_START.html: man/sd_listen_fds.html
- $(html-alias)
-
-man/sd_bus_creds_get_audit_login_uid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_audit_session_id.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_augmented_mask.html: man/sd_bus_creds_new_from_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_cgroup.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_cmdline.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_comm.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_description.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_egid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_euid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_exe.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_fsgid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_fsuid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_gid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_mask.html: man/sd_bus_creds_new_from_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_owner_uid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_ppid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_selinux_context.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_session.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_sgid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_slice.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_suid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_supplementary_gids.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_tid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_tid_comm.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_tty.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_uid.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_unique_name.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_unit.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_user_slice.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_user_unit.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_get_well_known_names.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_has_bounding_cap.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_has_effective_cap.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_has_inheritable_cap.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_has_permitted_cap.html: man/sd_bus_creds_get_pid.html
- $(html-alias)
-
-man/sd_bus_creds_ref.html: man/sd_bus_creds_new_from_pid.html
- $(html-alias)
-
-man/sd_bus_creds_unref.html: man/sd_bus_creds_new_from_pid.html
- $(html-alias)
-
-man/sd_bus_creds_unrefp.html: man/sd_bus_creds_new_from_pid.html
- $(html-alias)
-
-man/sd_bus_default_system.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_default_user.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_error_copy.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_free.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_get_errno.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_has_name.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_is_set.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_map.html: man/sd_bus_error_add_map.html
- $(html-alias)
-
-man/sd_bus_error_set.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_set_const.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_set_errno.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_set_errnof.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_set_errnofv.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_error_setf.html: man/sd_bus_error.html
- $(html-alias)
-
-man/sd_bus_message_append_array_iovec.html: man/sd_bus_message_append_array.html
- $(html-alias)
-
-man/sd_bus_message_append_array_memfd.html: man/sd_bus_message_append_array.html
- $(html-alias)
-
-man/sd_bus_message_append_array_space.html: man/sd_bus_message_append_array.html
- $(html-alias)
-
-man/sd_bus_message_appendv.html: man/sd_bus_message_append.html
- $(html-alias)
-
-man/sd_bus_negotiate_creds.html: man/sd_bus_negotiate_fds.html
- $(html-alias)
-
-man/sd_bus_negotiate_timestamp.html: man/sd_bus_negotiate_fds.html
- $(html-alias)
-
-man/sd_bus_open.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_open_system.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_open_system_machine.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_open_system_remote.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_open_user.html: man/sd_bus_default.html
- $(html-alias)
-
-man/sd_bus_ref.html: man/sd_bus_new.html
- $(html-alias)
-
-man/sd_bus_release_name.html: man/sd_bus_request_name.html
- $(html-alias)
-
-man/sd_bus_track_add_sender.html: man/sd_bus_track_add_name.html
- $(html-alias)
-
-man/sd_bus_track_contains.html: man/sd_bus_track_add_name.html
- $(html-alias)
-
-man/sd_bus_track_count.html: man/sd_bus_track_add_name.html
- $(html-alias)
-
-man/sd_bus_track_count_name.html: man/sd_bus_track_add_name.html
- $(html-alias)
-
-man/sd_bus_track_count_sender.html: man/sd_bus_track_add_name.html
- $(html-alias)
-
-man/sd_bus_track_first.html: man/sd_bus_track_add_name.html
- $(html-alias)
-
-man/sd_bus_track_get_bus.html: man/sd_bus_track_new.html
- $(html-alias)
-
-man/sd_bus_track_get_recursive.html: man/sd_bus_track_new.html
- $(html-alias)
-
-man/sd_bus_track_get_userdata.html: man/sd_bus_track_new.html
- $(html-alias)
-
-man/sd_bus_track_next.html: man/sd_bus_track_add_name.html
- $(html-alias)
-
-man/sd_bus_track_ref.html: man/sd_bus_track_new.html
- $(html-alias)
-
-man/sd_bus_track_remove_name.html: man/sd_bus_track_add_name.html
- $(html-alias)
-
-man/sd_bus_track_remove_sender.html: man/sd_bus_track_add_name.html
- $(html-alias)
-
-man/sd_bus_track_set_recursive.html: man/sd_bus_track_new.html
- $(html-alias)
-
-man/sd_bus_track_set_userdata.html: man/sd_bus_track_new.html
- $(html-alias)
-
-man/sd_bus_track_unref.html: man/sd_bus_track_new.html
- $(html-alias)
-
-man/sd_bus_track_unrefp.html: man/sd_bus_track_new.html
- $(html-alias)
-
-man/sd_bus_unref.html: man/sd_bus_new.html
- $(html-alias)
-
-man/sd_bus_unrefp.html: man/sd_bus_new.html
- $(html-alias)
-
-man/sd_event.html: man/sd_event_new.html
- $(html-alias)
-
-man/sd_event_add_exit.html: man/sd_event_add_defer.html
- $(html-alias)
-
-man/sd_event_add_post.html: man/sd_event_add_defer.html
- $(html-alias)
-
-man/sd_event_child_handler_t.html: man/sd_event_add_child.html
- $(html-alias)
-
-man/sd_event_default.html: man/sd_event_new.html
- $(html-alias)
-
-man/sd_event_dispatch.html: man/sd_event_wait.html
- $(html-alias)
-
-man/sd_event_get_exit_code.html: man/sd_event_exit.html
- $(html-alias)
-
-man/sd_event_get_iteration.html: man/sd_event_wait.html
- $(html-alias)
-
-man/sd_event_get_state.html: man/sd_event_wait.html
- $(html-alias)
-
-man/sd_event_get_tid.html: man/sd_event_new.html
- $(html-alias)
-
-man/sd_event_get_watchdog.html: man/sd_event_set_watchdog.html
- $(html-alias)
-
-man/sd_event_handler_t.html: man/sd_event_add_defer.html
- $(html-alias)
-
-man/sd_event_io_handler_t.html: man/sd_event_add_io.html
- $(html-alias)
-
-man/sd_event_loop.html: man/sd_event_run.html
- $(html-alias)
-
-man/sd_event_prepare.html: man/sd_event_wait.html
- $(html-alias)
-
-man/sd_event_ref.html: man/sd_event_new.html
- $(html-alias)
-
-man/sd_event_signal_handler_t.html: man/sd_event_add_signal.html
- $(html-alias)
-
-man/sd_event_source.html: man/sd_event_add_io.html
- $(html-alias)
-
-man/sd_event_source_get_child_pid.html: man/sd_event_add_child.html
- $(html-alias)
-
-man/sd_event_source_get_description.html: man/sd_event_source_set_description.html
- $(html-alias)
-
-man/sd_event_source_get_enabled.html: man/sd_event_source_set_enabled.html
- $(html-alias)
-
-man/sd_event_source_get_io_events.html: man/sd_event_add_io.html
- $(html-alias)
-
-man/sd_event_source_get_io_fd.html: man/sd_event_add_io.html
- $(html-alias)
-
-man/sd_event_source_get_io_revents.html: man/sd_event_add_io.html
- $(html-alias)
-
-man/sd_event_source_get_priority.html: man/sd_event_source_set_priority.html
- $(html-alias)
-
-man/sd_event_source_get_signal.html: man/sd_event_add_signal.html
- $(html-alias)
-
-man/sd_event_source_get_time.html: man/sd_event_add_time.html
- $(html-alias)
-
-man/sd_event_source_get_time_accuracy.html: man/sd_event_add_time.html
- $(html-alias)
-
-man/sd_event_source_get_time_clock.html: man/sd_event_add_time.html
- $(html-alias)
-
-man/sd_event_source_get_userdata.html: man/sd_event_source_set_userdata.html
- $(html-alias)
-
-man/sd_event_source_ref.html: man/sd_event_source_unref.html
- $(html-alias)
-
-man/sd_event_source_set_io_events.html: man/sd_event_add_io.html
- $(html-alias)
-
-man/sd_event_source_set_io_fd.html: man/sd_event_add_io.html
- $(html-alias)
-
-man/sd_event_source_set_time.html: man/sd_event_add_time.html
- $(html-alias)
-
-man/sd_event_source_set_time_accuracy.html: man/sd_event_add_time.html
- $(html-alias)
-
-man/sd_event_source_unrefp.html: man/sd_event_source_unref.html
- $(html-alias)
-
-man/sd_event_time_handler_t.html: man/sd_event_add_time.html
- $(html-alias)
-
-man/sd_event_unref.html: man/sd_event_new.html
- $(html-alias)
-
-man/sd_event_unrefp.html: man/sd_event_new.html
- $(html-alias)
-
-man/sd_id128_from_string.html: man/sd_id128_to_string.html
- $(html-alias)
-
-man/sd_id128_get_boot.html: man/sd_id128_get_machine.html
- $(html-alias)
-
-man/sd_id128_get_invocation.html: man/sd_id128_get_machine.html
- $(html-alias)
-
-man/sd_id128_get_machine_app_specific.html: man/sd_id128_get_machine.html
- $(html-alias)
-
-man/sd_is_mq.html: man/sd_is_fifo.html
- $(html-alias)
-
-man/sd_is_socket.html: man/sd_is_fifo.html
- $(html-alias)
-
-man/sd_is_socket_inet.html: man/sd_is_fifo.html
- $(html-alias)
-
-man/sd_is_socket_sockaddr.html: man/sd_is_fifo.html
- $(html-alias)
-
-man/sd_is_socket_unix.html: man/sd_is_fifo.html
- $(html-alias)
-
-man/sd_is_special.html: man/sd_is_fifo.html
- $(html-alias)
-
-man/sd_listen_fds_with_names.html: man/sd_listen_fds.html
- $(html-alias)
-
-man/sd_machine_get_ifindices.html: man/sd_machine_get_class.html
- $(html-alias)
-
-man/sd_notifyf.html: man/sd_notify.html
- $(html-alias)
-
-man/sd_pid_notify.html: man/sd_notify.html
- $(html-alias)
-
-man/sd_pid_notify_with_fds.html: man/sd_notify.html
- $(html-alias)
-
-man/sd_pid_notifyf.html: man/sd_notify.html
- $(html-alias)
-
-
-if HAVE_PAM
-MANPAGES += \
- man/pam_elogind.8 \
- man/sd_get_seats.3 \
- man/sd_login_monitor_new.3 \
- man/sd_pid_get_session.3 \
- man/sd_seat_get_active.3 \
- man/sd_session_is_active.3 \
- man/sd_uid_get_state.3
-MANPAGES_ALIAS += \
- man/sd_get_machine_names.3 \
- man/sd_get_sessions.3 \
- man/sd_get_uids.3 \
- man/sd_login_monitor.3 \
- man/sd_login_monitor_flush.3 \
- man/sd_login_monitor_get_events.3 \
- man/sd_login_monitor_get_fd.3 \
- man/sd_login_monitor_get_timeout.3 \
- man/sd_login_monitor_unref.3 \
- man/sd_login_monitor_unrefp.3 \
- man/sd_peer_get_cgroup.3 \
- man/sd_peer_get_machine_name.3 \
- man/sd_peer_get_owner_uid.3 \
- man/sd_peer_get_session.3 \
- man/sd_peer_get_slice.3 \
- man/sd_peer_get_unit.3 \
- man/sd_peer_get_user_slice.3 \
- man/sd_peer_get_user_unit.3 \
- man/sd_pid_get_cgroup.3 \
- man/sd_pid_get_machine_name.3 \
- man/sd_pid_get_owner_uid.3 \
- man/sd_pid_get_slice.3 \
- man/sd_pid_get_unit.3 \
- man/sd_pid_get_user_slice.3 \
- man/sd_pid_get_user_unit.3 \
- man/sd_seat_can_graphical.3 \
- man/sd_seat_can_multi_session.3 \
- man/sd_seat_can_tty.3 \
- man/sd_seat_get_sessions.3 \
- man/sd_session_get_class.3 \
- man/sd_session_get_desktop.3 \
- man/sd_session_get_display.3 \
- man/sd_session_get_remote_host.3 \
- man/sd_session_get_remote_user.3 \
- man/sd_session_get_seat.3 \
- man/sd_session_get_service.3 \
- man/sd_session_get_state.3 \
- man/sd_session_get_tty.3 \
- man/sd_session_get_type.3 \
- man/sd_session_get_uid.3 \
- man/sd_session_get_vt.3 \
- man/sd_session_is_remote.3 \
- man/sd_uid_get_display.3 \
- man/sd_uid_get_seats.3 \
- man/sd_uid_get_sessions.3 \
- man/sd_uid_is_on_seat.3
-man/sd_get_machine_names.3: man/sd_get_seats.3
-man/sd_get_sessions.3: man/sd_get_seats.3
-man/sd_get_uids.3: man/sd_get_seats.3
-man/sd_login_monitor.3: man/sd_login_monitor_new.3
-man/sd_login_monitor_flush.3: man/sd_login_monitor_new.3
-man/sd_login_monitor_get_events.3: man/sd_login_monitor_new.3
-man/sd_login_monitor_get_fd.3: man/sd_login_monitor_new.3
-man/sd_login_monitor_get_timeout.3: man/sd_login_monitor_new.3
-man/sd_login_monitor_unref.3: man/sd_login_monitor_new.3
-man/sd_login_monitor_unrefp.3: man/sd_login_monitor_new.3
-man/sd_peer_get_cgroup.3: man/sd_pid_get_session.3
-man/sd_peer_get_machine_name.3: man/sd_pid_get_session.3
-man/sd_peer_get_owner_uid.3: man/sd_pid_get_session.3
-man/sd_peer_get_session.3: man/sd_pid_get_session.3
-man/sd_peer_get_slice.3: man/sd_pid_get_session.3
-man/sd_peer_get_unit.3: man/sd_pid_get_session.3
-man/sd_peer_get_user_slice.3: man/sd_pid_get_session.3
-man/sd_peer_get_user_unit.3: man/sd_pid_get_session.3
-man/sd_pid_get_cgroup.3: man/sd_pid_get_session.3
-man/sd_pid_get_machine_name.3: man/sd_pid_get_session.3
-man/sd_pid_get_owner_uid.3: man/sd_pid_get_session.3
-man/sd_pid_get_slice.3: man/sd_pid_get_session.3
-man/sd_pid_get_unit.3: man/sd_pid_get_session.3
-man/sd_pid_get_user_slice.3: man/sd_pid_get_session.3
-man/sd_pid_get_user_unit.3: man/sd_pid_get_session.3
-man/sd_seat_can_graphical.3: man/sd_seat_get_active.3
-man/sd_seat_can_multi_session.3: man/sd_seat_get_active.3
-man/sd_seat_can_tty.3: man/sd_seat_get_active.3
-man/sd_seat_get_sessions.3: man/sd_seat_get_active.3
-man/sd_session_get_class.3: man/sd_session_is_active.3
-man/sd_session_get_desktop.3: man/sd_session_is_active.3
-man/sd_session_get_display.3: man/sd_session_is_active.3
-man/sd_session_get_remote_host.3: man/sd_session_is_active.3
-man/sd_session_get_remote_user.3: man/sd_session_is_active.3
-man/sd_session_get_seat.3: man/sd_session_is_active.3
-man/sd_session_get_service.3: man/sd_session_is_active.3
-man/sd_session_get_state.3: man/sd_session_is_active.3
-man/sd_session_get_tty.3: man/sd_session_is_active.3
-man/sd_session_get_type.3: man/sd_session_is_active.3
-man/sd_session_get_uid.3: man/sd_session_is_active.3
-man/sd_session_get_vt.3: man/sd_session_is_active.3
-man/sd_session_is_remote.3: man/sd_session_is_active.3
-man/sd_uid_get_display.3: man/sd_uid_get_state.3
-man/sd_uid_get_seats.3: man/sd_uid_get_state.3
-man/sd_uid_get_sessions.3: man/sd_uid_get_state.3
-man/sd_uid_is_on_seat.3: man/sd_uid_get_state.3
-man/sd_get_machine_names.html: man/sd_get_seats.html
- $(html-alias)
-
-man/sd_get_sessions.html: man/sd_get_seats.html
- $(html-alias)
-
-man/sd_get_uids.html: man/sd_get_seats.html
- $(html-alias)
-
-man/sd_login_monitor.html: man/sd_login_monitor_new.html
- $(html-alias)
-
-man/sd_login_monitor_flush.html: man/sd_login_monitor_new.html
- $(html-alias)
-
-man/sd_login_monitor_get_events.html: man/sd_login_monitor_new.html
- $(html-alias)
-
-man/sd_login_monitor_get_fd.html: man/sd_login_monitor_new.html
- $(html-alias)
-
-man/sd_login_monitor_get_timeout.html: man/sd_login_monitor_new.html
- $(html-alias)
-
-man/sd_login_monitor_unref.html: man/sd_login_monitor_new.html
- $(html-alias)
-
-man/sd_login_monitor_unrefp.html: man/sd_login_monitor_new.html
- $(html-alias)
-
-man/sd_peer_get_cgroup.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_peer_get_machine_name.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_peer_get_owner_uid.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_peer_get_session.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_peer_get_slice.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_peer_get_unit.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_peer_get_user_slice.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_peer_get_user_unit.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_pid_get_cgroup.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_pid_get_machine_name.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_pid_get_owner_uid.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_pid_get_slice.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_pid_get_unit.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_pid_get_user_slice.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_pid_get_user_unit.html: man/sd_pid_get_session.html
- $(html-alias)
-
-man/sd_seat_can_graphical.html: man/sd_seat_get_active.html
- $(html-alias)
-
-man/sd_seat_can_multi_session.html: man/sd_seat_get_active.html
- $(html-alias)
-
-man/sd_seat_can_tty.html: man/sd_seat_get_active.html
- $(html-alias)
-
-man/sd_seat_get_sessions.html: man/sd_seat_get_active.html
- $(html-alias)
-
-man/sd_session_get_class.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_desktop.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_display.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_remote_host.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_remote_user.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_seat.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_service.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_state.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_tty.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_type.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_uid.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_get_vt.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_session_is_remote.html: man/sd_session_is_active.html
- $(html-alias)
-
-man/sd_uid_get_display.html: man/sd_uid_get_state.html
- $(html-alias)
-
-man/sd_uid_get_seats.html: man/sd_uid_get_state.html
- $(html-alias)
-
-man/sd_uid_get_sessions.html: man/sd_uid_get_state.html
- $(html-alias)
-
-man/sd_uid_is_on_seat.html: man/sd_uid_get_state.html
- $(html-alias)
-
-endif
-
-if HAVE_PYTHON
-MANPAGES += \
- man/elogind.directives.7 \
- man/elogind.index.7
-MANPAGES_ALIAS += \
- #
-
-
-endif
-
-# Really, do not edit this file.
-
-EXTRA_DIST += \
- man/elogind.xml \
- man/less-variables.xml \
- man/libelogind-pkgconfig.xml \
- man/loginctl.xml \
- man/logind.conf.xml \
- man/pam_elogind.xml \
- man/sd-bus.xml \
- man/sd-event.xml \
- man/sd_booted.xml \
- man/sd_bus_add_match.xml \
- man/sd_bus_creds_get_pid.xml \
- man/sd_bus_creds_new_from_pid.xml \
- man/sd_bus_default.xml \
- man/sd_bus_error.xml \
- man/sd_bus_error_add_map.xml \
- man/sd_bus_get_fd.xml \
- man/sd_bus_message_append.xml \
- man/sd_bus_message_append_array.xml \
- man/sd_bus_message_append_basic.xml \
- man/sd_bus_message_append_strv.xml \
- man/sd_bus_message_read_basic.xml \
- man/sd_bus_negotiate_fds.xml \
- man/sd_bus_new.xml \
- man/sd_bus_process.xml \
- man/sd_bus_request_name.xml \
- man/sd_bus_track_add_name.xml \
- man/sd_bus_track_new.xml \
- man/sd_event_add_child.xml \
- man/sd_event_add_defer.xml \
- man/sd_event_add_io.xml \
- man/sd_event_add_signal.xml \
- man/sd_event_add_time.xml \
- man/sd_event_exit.xml \
- man/sd_event_new.xml \
- man/sd_event_now.xml \
- man/sd_event_run.xml \
- man/sd_event_set_watchdog.xml \
- man/sd_event_source_get_event.xml \
- man/sd_event_source_get_pending.xml \
- man/sd_event_source_set_description.xml \
- man/sd_event_source_set_enabled.xml \
- man/sd_event_source_set_prepare.xml \
- man/sd_event_source_set_priority.xml \
- man/sd_event_source_set_userdata.xml \
- man/sd_event_source_unref.xml \
- man/sd_event_wait.xml \
- man/sd_get_seats.xml \
- man/sd_id128_get_machine.xml \
- man/sd_id128_randomize.xml \
- man/sd_id128_to_string.xml \
- man/sd_is_fifo.xml \
- man/sd_listen_fds.xml \
- man/sd_login_monitor_new.xml \
- man/sd_machine_get_class.xml \
- man/sd_notify.xml \
- man/sd_pid_get_session.xml \
- man/sd_seat_get_active.xml \
- man/sd_session_is_active.xml \
- man/sd_uid_get_state.xml \
- man/sd_watchdog_enabled.xml \
- man/standard-conf.xml \
- man/standard-options.xml \
- man/user-system-options.xml
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index cbcfbe0fd..000000000
--- a/Makefile.am
+++ /dev/null
@@ -1,1654 +0,0 @@
-# -*- Mode: makefile; indent-tabs-mode: t -*-
-#
-# This file is part of elogind.
-#
-# Copyright 2010-2012 Lennart Poettering
-# Copyright 2010-2012 Kay Sievers
-# Copyright 2013 Zbigniew Jędrzejewski-Szmek
-# Copyright 2013 David Strauss
-#
-# elogind is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-#
-# elogind is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with elogind; If not, see <http://www.gnu.org/licenses/>.
-
-ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
-AM_MAKEFLAGS = --no-print-directory
-AUTOMAKE_OPTIONS = color-tests parallel-tests
-
-GCC_COLORS ?= 'ooh, shiny!'
-export GCC_COLORS
-
-SUBDIRS = . po
-
-# remove targets if the command fails
-.DELETE_ON_ERROR:
-
-# keep intermediate files
-.SECONDARY:
-
-# Keep the test-suite.log
-.PRECIOUS: $(TEST_SUITE_LOG) Makefile
-
-LIBELOGIND_CURRENT=19
-LIBELOGIND_REVISION=1
-LIBELOGIND_AGE=19
-
-# Dirs of external packages
-dbuspolicydir=@dbuspolicydir@
-dbussystemservicedir=@dbussystemservicedir@
-pamlibdir=@pamlibdir@
-pamconfdir=@pamconfdir@
-pkgconfigdatadir=$(datadir)/pkgconfig
-pkgconfiglibdir=$(libdir)/pkgconfig
-polkitpolicydir=$(datadir)/polkit-1/actions
-polkitrulesdir=$(datadir)/polkit-1/rules.d
-polkitpkladir=$(localstatedir)/lib/polkit-1/localauthority/10-vendor.d
-bashcompletiondir=@bashcompletiondir@
-zshcompletiondir=@zshcompletiondir@
-
-CGROUP_CONTROLLER=@cgroup_controller@
-PKTTYAGENT=$(bindir)/pkttyagent
-
-# Our own, non-special dirs
-pkgsysconfdir=$(sysconfdir)/elogind
-pkgincludedir=$(includedir)/elogind/systemd
-udevrulesdir=@udevrulesdir@
-udevbindir=@udevbindir@
-udevlibexecdir=$(udevbindir)
-udevhomedir=$(udevlibexecdir)
-factory_pamdir = $(datadir)/factory/etc/pam.d
-
-# And these are the special ones for /
-
-rootprefix=@rootprefix@
-rootbindir=$(rootprefix)/bin
-rootlibdir=@rootlibdir@
-rootlibexecdir=@rootlibexecdir@
-systemshutdowndir=$(rootlibexecdir)/system-shutdown
-systemsleepdir=$(rootlibexecdir)/system-sleep
-
-EXTRA_DIST =
-BUILT_SOURCES =
-INSTALL_EXEC_HOOKS =
-UNINSTALL_EXEC_HOOKS =
-DISTCLEAN_LOCAL_HOOKS =
-CLEAN_LOCAL_HOOKS =
-pkginclude_HEADERS =
-noinst_LTLIBRARIES =
-lib_LTLIBRARIES =
-noinst_DATA =
-pkgconfiglib_DATA =
-polkitpolicy_in_files =
-polkitpolicy_files =
-polkitrules_files =
-polkitpkla_files =
-dist_udevrules_DATA =
-nodist_udevrules_DATA =
-dist_pkgsysconf_DATA =
-nodist_pkgsysconf_DATA =
-dist_dbuspolicy_DATA =
-dist_dbussystemservice_DATA =
-check_PROGRAMS =
-check_DATA =
-dist_rootlibexec_DATA =
-rootlib_LTLIBRARIES =
-tests=
-manual_tests =
-TEST_DATA_FILES =
-if ENABLE_TESTS
-noinst_PROGRAMS = $(manual_tests) $(tests) $(unsafe_tests)
-TESTS = $(tests)
-if ENABLE_UNSAFE_TESTS
-TESTS += \
- $(unsafe_tests)
-endif
-else
-noinst_PROGRAMS =
-TESTS =
-endif
-
-if ENABLE_BASH_COMPLETION
-dist_bashcompletion_DATA = $(dist_bashcompletion_data)
-endif
-if ENABLE_ZSH_COMPLETION
-dist_zshcompletion_DATA = $(dist_zshcompletion_data)
-endif
-
-in_files = $(filter %.in,$(EXTRA_DIST))
-in_in_files = $(filter %.in.in, $(in_files))
-m4_files = $(filter %.m4,$(EXTRA_DIST) $(in_files:.m4.in=.m4))
-
-CLEANFILES = $(BUILT_SOURCES) \
- $(pkgconfiglib_DATA) \
- $(in_files:.in=) $(in_in_files:.in.in=) \
- $(m4_files:.m4=)
-
-.PHONY: $(INSTALL_EXEC_HOOKS) $(UNINSTALL_EXEC_HOOKS) \
- $(DISTCLEAN_LOCAL_HOOKS) $(CLEAN_LOCAL_HOOKS)
-
-AM_CPPFLAGS = \
- -include $(top_builddir)/config.h \
- -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" \
- -DSYSTEMD_CGROUP_CONTROLLER=\"_$(CGROUP_CONTROLLER)\" \
- -DSYSTEMD_CGROUP_CONTROLLER_LEGACY=\"name=$(CGROUP_CONTROLLER)\" \
- -DSYSTEMD_CGROUP_CONTROLLER_HYBRID=\"name=$(CGROUP_CONTROLLER)\" \
- -DSYSTEMD_CGROUP_AGENT_PATH=\"$(rootlibexecdir)/elogind-cgroups-agent\" \
- -DSYSTEMD_BINARY_PATH=\"$(rootlibexecdir)/elogind\" \
- -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" \
- -DPOLKIT_AGENT_BINARY_PATH=\"$(PKTTYAGENT)\" \
- -DSYSTEM_SLEEP_PATH=\"$(systemsleepdir)\" \
- -DSYSTEM_SHUTDOWN_PATH=\"$(systemshutdowndir)\" \
- -DHALT=\"$(HALT)\" \
- -DREBOOT=\"$(REBOOT)\" \
- -DKEXEC=\"$(KEXEC)\" \
- -DLIBDIR=\"$(libdir)\" \
- -DROOTLIBDIR=\"$(rootlibdir)\" \
- -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \
- -DTEST_DIR=\"$(abs_top_srcdir)/test\" \
- -I $(top_srcdir)/src \
- -I $(top_builddir)/src/basic \
- -I $(top_srcdir)/src/basic \
- -I $(top_srcdir)/src/core \
- -I $(top_srcdir)/src/shared \
- -I $(top_builddir)/src/shared \
- -I $(top_srcdir)/src/login \
- -I $(top_srcdir)/src/systemd \
- -I $(top_srcdir)/src/libelogind/sd-bus \
- -I $(top_srcdir)/src/libelogind/sd-event \
- -I $(top_srcdir)/src/libelogind/sd-login \
- -I $(top_srcdir)/src/libelogind/sd-id128 \
- -I $(top_srcdir)/src/update-utmp \
- -I $(top_srcdir)/src/sleep \
- -DABS_SRC_DIR=\"$(abs_top_srcdir)\" \
- -DABS_BUILD_DIR=\"$(abs_top_builddir)\" \
- $(OUR_CPPFLAGS)
-
-AM_CFLAGS = $(OUR_CFLAGS)
-AM_LDFLAGS = $(OUR_LDFLAGS)
-
-# ------------------------------------------------------------------------------
-install-touch-usr-hook:
- touch -c $(DESTDIR)/$(prefix)
-
-INSTALL_EXEC_HOOKS += \
- install-touch-usr-hook
-
-
-# ------------------------------------------------------------------------------
-AM_V_M4 = $(AM_V_M4_$(V))
-AM_V_M4_ = $(AM_V_M4_$(AM_DEFAULT_VERBOSITY))
-AM_V_M4_0 = @echo " M4 " $@;
-
-AM_V_XSLT = $(AM_V_XSLT_$(V))
-AM_V_XSLT_ = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY))
-AM_V_XSLT_0 = @echo " XSLT " $@;
-
-AM_V_GPERF = $(AM_V_GPERF_$(V))
-AM_V_GPERF_ = $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY))
-AM_V_GPERF_0 = @echo " GPERF " $@;
-
-AM_V_LN = $(AM_V_LN_$(V))
-AM_V_LN_ = $(AM_V_LN_$(AM_DEFAULT_VERBOSITY))
-AM_V_LN_0 = @echo " LN " $@;
-
-AM_V_RM = $(AM_V_RM_$(V))
-AM_V_RM_ = $(AM_V_RM_$(AM_DEFAULT_VERBOSITY))
-AM_V_RM_0 = @echo " RM " $@;
-
-# ------------------------------------------------------------------------------
-rootbin_PROGRAMS =
-rootlibexec_PROGRAMS =
-
-dist_doc_DATA = \
- README \
- NEWS \
- LICENSE.LGPL2.1 \
- LICENSE.GPL2
-
-@INTLTOOL_POLICY_RULE@
-
-# ------------------------------------------------------------------------------
-
-MANPAGES =
-MANPAGES_ALIAS =
-
-include Makefile-man.am
-
-.PHONY: man update-man-list
-man: $(MANPAGES) $(MANPAGES_ALIAS) $(HTML_FILES) $(HTML_ALIAS)
-
-XML_FILES = \
- ${patsubst %.1,%.xml,${patsubst %.3,%.xml,${patsubst %.5,%.xml,${patsubst %.7,%.xml,${patsubst %.8,%.xml,$(MANPAGES)}}}}}
-HTML_FILES = \
- ${XML_FILES:.xml=.html}
-HTML_ALIAS = \
- ${patsubst %.1,%.html,${patsubst %.3,%.html,${patsubst %.5,%.html,${patsubst %.7,%.html,${patsubst %.8,%.html,$(MANPAGES_ALIAS)}}}}}
-
-if ENABLE_MANPAGES
-man_MANS = \
- $(MANPAGES) \
- $(MANPAGES_ALIAS)
-
-noinst_DATA += \
- $(HTML_FILES) \
- $(HTML_ALIAS) \
- docs/html/man
-endif
-
-CLEANFILES += \
- $(man_MANS) \
- $(HTML_FILES) \
- $(HTML_ALIAS) \
- docs/html/man
-
-docs/html/man:
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_LN)$(LN_S) -f ../../man $@
-
-man/index.html: man/elogind.index.html
- $(AM_V_LN)$(LN_S) -f elogind.index.html $@
-
-if HAVE_PYTHON
-if ENABLE_MANPAGES
-noinst_DATA += \
- man/index.html
-endif
-endif
-
-CLEANFILES += \
- man/index.html
-
-XML_GLOB := $(wildcard $(top_srcdir)/man/*.xml)
-DIRECTIVE_FILE := man/elogind.directives.xml
-INDEX_XML_FILE := man/elogind.index.xml
-NON_INDEX_XML_FILES := $(DIRECTIVE_FILE) $(filter-out $(INDEX_XML_FILE) $(DIRECTIVE_FILE),$(XML_FILES))
-ALL_XML_FILES := $(INDEX_XML_FILE) $(DIRECTIVE_FILE) $(filter-out $(INDEX_XML_FILE) $(DIRECTIVE_FILE),$(XML_GLOB))
-SOURCE_XML_FILES := ${patsubst %,$(top_srcdir)/%,$(filter-out $(DIRECTIVE_FILE),$(NON_INDEX_XML_FILES))}
-
-# This target should only be run manually. It recreates Makefile-man.am
-# file in the source directory based on all man/*.xml files. Run it after
-# adding, removing, or changing the conditional in a man page.
-update-man-list: $(top_srcdir)/tools/make-man-rules.py $(ALL_XML_FILES) man/custom-entities.ent
- $(AM_V_GEN)$(PYTHON) $< $(ALL_XML_FILES) > $(top_srcdir)/Makefile-man.tmp
- $(AM_V_at)mv $(top_srcdir)/Makefile-man.tmp $(top_srcdir)/Makefile-man.am
- @echo "Makefile-man.am has been regenerated"
-
-$(INDEX_XML_FILE): $(top_srcdir)/tools/make-man-index.py $(NON_INDEX_XML_FILES)
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(PYTHON) $< $@ $(filter-out $<,$^)
-
-$(DIRECTIVE_FILE): $(top_srcdir)/tools/make-directive-index.py man/custom-entities.ent $(SOURCE_XML_FILES)
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(PYTHON) $< $@ $(SOURCE_XML_FILES)
-
-CLEANFILES += \
- $(INDEX_XML_FILE) \
- $(DIRECTIVE_FILE)
-
-EXTRA_DIST += \
- $(filter-out $(DIRECTIVE_FILE) $(INDEX_XML_FILE),$(XML_FILES)) \
- tools/make-man-index.py \
- tools/make-man-rules.py \
- tools/make-directive-index.py \
- tools/xml_helper.py \
- man/glib-event-glue.c
-
-# ------------------------------------------------------------------------------
-noinst_LTLIBRARIES += \
- libbasic.la
-
-libbasic_la_SOURCES = \
- src/basic/missing.h \
- src/basic/capability-util.c \
- src/basic/capability-util.h \
- src/basic/conf-files.c \
- src/basic/conf-files.h \
- src/basic/stdio-util.h \
- src/basic/hostname-util.h \
- src/basic/hostname-util.c \
- src/basic/unit-name.c \
- src/basic/unit-name.h \
- src/basic/unaligned.h \
- src/basic/util.c \
- src/basic/util.h \
- src/basic/io-util.c \
- src/basic/io-util.h \
- src/basic/string-util.c \
- src/basic/string-util.h \
- src/basic/parse-util.c \
- src/basic/parse-util.h \
- src/basic/fd-util.c \
- src/basic/fd-util.h \
- src/basic/user-util.c \
- src/basic/user-util.h \
- src/basic/dirent-util.c \
- src/basic/dirent-util.h \
- src/basic/xattr-util.c \
- src/basic/xattr-util.h \
- src/basic/proc-cmdline.c \
- src/basic/proc-cmdline.h \
- src/basic/fs-util.c \
- src/basic/fs-util.h \
- src/basic/syslog-util.c \
- src/basic/syslog-util.h \
- src/basic/stat-util.c \
- src/basic/stat-util.h \
- src/basic/mount-util.c \
- src/basic/mount-util.h \
- src/basic/hexdecoct.c \
- src/basic/hexdecoct.h \
- src/basic/extract-word.c \
- src/basic/extract-word.h \
- src/basic/escape.c \
- src/basic/escape.h \
- src/basic/path-util.c \
- src/basic/path-util.h \
- src/basic/parse-printf-format.c \
- src/basic/parse-printf-format.h \
- src/basic/time-util.c \
- src/basic/time-util.h \
- src/basic/locale-util.c \
- src/basic/locale-util.h \
- src/basic/umask-util.h \
- src/basic/signal-util.c \
- src/basic/signal-util.h \
- src/basic/string-table.c \
- src/basic/string-table.h \
- src/basic/mempool.c \
- src/basic/mempool.h \
- src/basic/hashmap.c \
- src/basic/hashmap.h \
- src/basic/hash-funcs.c \
- src/basic/hash-funcs.h \
- src/basic/siphash24.c \
- src/basic/siphash24.h \
- src/basic/prioq.c \
- src/basic/prioq.h \
- src/basic/strv.c \
- src/basic/strv.h \
- src/basic/env-util.c \
- src/basic/env-util.h \
- src/basic/log.c \
- src/basic/log.h \
- src/basic/bus-label.c \
- src/basic/bus-label.h \
- src/basic/exec-util.c \
- src/basic/exec-util.h \
- src/basic/virt.c \
- src/basic/virt.h \
- src/basic/smack-util.c \
- src/basic/smack-util.h \
- src/basic/utf8.c \
- src/basic/utf8.h \
- src/basic/gunicode.c \
- src/basic/gunicode.h \
- src/basic/socket-util.c \
- src/basic/socket-util.h \
- src/basic/fileio.c \
- src/basic/fileio.h \
- src/basic/mkdir.c \
- src/basic/mkdir.h \
- src/basic/cgroup-util.c \
- src/basic/cgroup-util.h \
- src/basic/errno-list.c \
- src/basic/errno-list.h \
- src/basic/terminal-util.c \
- src/basic/terminal-util.h \
- src/basic/login-util.h \
- src/basic/login-util.c \
- src/basic/audit-util.c \
- src/basic/audit-util.h \
- src/basic/memfd-util.c \
- src/basic/memfd-util.h \
- src/basic/process-util.c \
- src/basic/process-util.h \
- src/basic/random-util.c \
- src/basic/random-util.h \
- src/basic/verbs.c \
- src/basic/verbs.h \
- src/basic/label.c \
- src/basic/label.h \
- src/basic/selinux-util.c \
- src/basic/selinux-util.h \
- src/basic/mkdir-label.c \
- src/basic/fileio-label.c \
- src/basic/fileio-label.h \
- src/basic/rm-rf.c \
- src/basic/rm-rf.h \
- src/basic/copy.c \
- src/basic/copy.h \
- src/basic/alloc-util.h \
- src/basic/alloc-util.c \
- src/basic/format-util.h \
- src/basic/khash.h \
- src/basic/khash.c
-
-nodist_libbasic_la_SOURCES = \
- src/basic/errno-from-name.h \
- src/basic/errno-to-name.h
-
-libbasic_la_CFLAGS = \
- $(AM_CFLAGS) \
- $(SELINUX_CFLAGS) \
- $(CAP_CFLAGS) \
- -pthread
-
-libbasic_la_LDFLAGS = \
- $(CAP_LDFLAGS)
-
-libbasic_la_LIBADD = \
- $(SELINUX_LIBS) \
- $(CAP_LIBS) \
- -ldl \
- -lm
-
-# -----------------------------------------------------------------------------
-noinst_LTLIBRARIES += \
- libshared.la
-
-libshared_la_SOURCES = \
- src/shared/udev-util.h \
- src/shared/udev-util.c \
- src/shared/bus-util.c \
- src/shared/bus-util.h \
- src/shared/clean-ipc.c \
- src/shared/clean-ipc.h \
- src/shared/conf-parser.c \
- src/shared/conf-parser.h \
- src/shared/musl_missing.h \
- src/shared/musl_missing.c \
- src/shared/pager.c \
- src/shared/pager.h \
- src/shared/sleep-config.c \
- src/shared/sleep-config.h \
- src/shared/spawn-polkit-agent.c \
- src/shared/spawn-polkit-agent.h \
- src/shared/tests.h \
- src/shared/tests.c \
- src/shared/nsflags.h \
- src/shared/nsflags.c
-
-if HAVE_ACL
-libshared_la_SOURCES += \
- src/shared/acl-util.c \
- src/shared/acl-util.h
-endif
-
-libshared_la_CFLAGS = \
- $(AM_CFLAGS) \
- $(ACL_CFLAGS)
-
-libshared_la_LIBADD = \
- libelogind-internal.la \
- libbasic.la \
- $(UDEV_LIBS) \
- $(ACL_LIBS)
-
-noinst_LTLIBRARIES += \
- libelogind-shared.la
-
-libelogind_shared_la_SOURCES = \
- $(libbasic_la_SOURCES) \
- $(libshared_la_SOURCES) \
- $(libelogind_internal_la_SOURCES)
-
-libelogind_shared_la_CFLAGS = \
- $(AM_CFLAGS) \
- $(libbasic_la_CFLAGS) \
- $(libshared_la_CFLAGS) \
- $(libelogind_internal_la_CFLAGS) \
- $(libelogind_journal_internal_la_CFLAGS) \
- $(libudev_internal_la_CFLAGS) \
- $(ACL_CFLAGS) \
- $(SECCOMP_CFLAGS) \
- -fvisibility=default
-
-# We can't use libshared_la_LIBADD here because it would
-# pull in libelogind*-internal.la
-libelogind_shared_la_LIBADD = \
- $(libbasic_la_LIBADD) \
- $(libelogind_internal_la_LIBADD) \
- $(UDEV_LIBS) \
- $(ACL_LIBS) \
- $(SECCOMP_LIBS)
-
-libelogind_shared_la_LDFLAGS = \
- $(AM_LDFLAGS)
- # -----------------------------------------------------------------------------
-gperf_txt_sources = \
- src/basic/errno-list.txt
-
-BUILT_SOURCES += \
- $(gperf_gperf_m4_sources:-gperf.gperf.m4=-gperf.c) \
- $(gperf_gperf_sources:-gperf.gperf=-gperf.c) \
- $(gperf_txt_sources:-list.txt=-from-name.h) \
- $(gperf_txt_sources:-list.txt=-to-name.h)
-
-CLEANFILES += \
- $(gperf_txt_sources:-list.txt=-from-name.gperf)
-DISTCLEANFILES = \
- $(gperf_txt_sources)
-
-EXTRA_DIST += \
- $(gperf_gperf_m4_sources) \
- $(gperf_gperf_sources)
-
-CLEANFILES += \
- $(gperf_txt_sources)
-
-%-from-name.gperf: %-list.txt
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct $(notdir $*)_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, %s\n", $$1, $$1 }' <$< >$@
-
-%-from-name.h: %-from-name.gperf
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_$(notdir $*) -H hash_$(notdir $*)_name -p -C <$< >$@
-
-
-src/basic/errno-list.txt:
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include errno.h - </dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }' >$@
-
-src/basic/errno-to-name.h: src/basic/errno-list.txt
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} !/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' <$< >$@
-
-# ------------------------------------------------------------------------------
-
-manual_tests += \
- test-cgroup
-
-unsafe_tests = \
- test-ipcrm
-
-tests += \
- test-log \
- test-path-util \
- test-siphash24 \
- test-utf8 \
- test-ellipsize \
- test-util \
- test-exec-util \
- test-hexdecoct \
- test-escape \
- test-alloc-util \
- test-proc-cmdline \
- test-io-util \
- test-fs-util \
- test-stat-util \
- test-fd-util \
- test-string-util \
- test-extract-word \
- test-parse-util \
- test-user-util \
- test-process-util \
- test-strip-tab-ansi \
- test-prioq \
- test-hashmap \
- test-set \
- test-list \
- test-unaligned \
- test-conf-files \
- test-random-util \
- test-conf-parser \
- test-locale-util \
- test-copy \
- test-verbs \
- test-signal-util \
- test-selinux \
- test-sizeof
-
-TEST_DATA_FILES += \
- test/bus-policy/hello.conf \
- test/bus-policy/methods.conf \
- test/bus-policy/ownerships.conf \
- test/bus-policy/signals.conf \
- test/bus-policy/check-own-rules.conf \
- test/bus-policy/many-rules.conf \
- test/bus-policy/test.conf
-
-
-EXTRA_DIST += \
- src/test/test-helper.h
-
-test_utf8_SOURCES = \
- src/test/test-utf8.c
-
-test_utf8_LDADD = \
- libelogind-shared.la
-
-test_locale_util_SOURCES = \
- src/test/test-locale-util.c
-
-test_locale_util_LDADD = \
- libelogind-shared.la
-
-test_copy_SOURCES = \
- src/test/test-copy.c
-
-# Link statically to ensure file is large
-test_copy_LDADD = \
- libshared.la
-
-test_random_util_SOURCES = \
- src/test/test-random-util.c
-
-test_random_util_LDADD = \
- libelogind-shared.la
-
-test_util_SOURCES = \
- src/test/test-util.c
-
-test_util_LDADD = \
- libelogind-shared.la
-
-test_exec_util_SOURCES = \
- src/test/test-exec-util.c
-
-test_exec_util_LDADD = \
- libelogind-shared.la
-
-test_hexdecoct_SOURCES = \
- src/test/test-hexdecoct.c
-
-test_hexdecoct_LDADD = \
- libelogind-shared.la
-
-test_alloc_util_SOURCES = \
- src/test/test-alloc-util.c
-
-test_alloc_util_LDADD = \
- libelogind-shared.la
-
-test_io_util_SOURCES = \
- src/test/test-io-util.c
-
-test_io_util_LDADD = \
- libelogind-shared.la
-
-test_fs_util_SOURCES = \
- src/test/test-fs-util.c
-
-test_fs_util_LDADD = \
- libelogind-shared.la
-
-test_proc_cmdline_SOURCES = \
- src/test/test-proc-cmdline.c
-
-test_proc_cmdline_LDADD = \
- libelogind-shared.la
-
-test_fd_util_SOURCES = \
- src/test/test-fd-util.c
-
-test_fd_util_LDADD = \
- libelogind-shared.la
-
-test_stat_util_SOURCES = \
- src/test/test-stat-util.c
-
-test_stat_util_LDADD = \
- libelogind-shared.la
-
-test_escape_SOURCES = \
- src/test/test-escape.c
-
-test_escape_LDADD = \
- libelogind-shared.la
-
-test_string_util_SOURCES = \
- src/test/test-string-util.c
-
-test_string_util_LDADD = \
- libelogind-shared.la
-
-test_extract_word_SOURCES = \
- src/test/test-extract-word.c
-
-test_extract_word_LDADD = \
- libelogind-shared.la
-
-test_parse_util_SOURCES = \
- src/test/test-parse-util.c
-
-test_parse_util_LDADD = \
- libelogind-shared.la
-
-test_user_util_SOURCES = \
- src/test/test-user-util.c
-
-test_user_util_LDADD = \
- libelogind-shared.la
-
-test_process_util_SOURCES = \
- src/test/test-process-util.c
-
-test_process_util_LDADD = \
- libelogind-shared.la
-
-test_verbs_SOURCES = \
- src/test/test-verbs.c
-
-test_verbs_LDADD = \
- libelogind-shared.la
-
-test_signal_util_SOURCES = \
- src/test/test-signal-util.c
-
-test_signal_util_LDADD = \
- libelogind-shared.la
-
-test_selinux_SOURCES = \
- src/test/test-selinux.c
-
-test_selinux_LDADD = \
- libelogind-shared.la
-
-test_sizeof_SOURCES = \
- src/test/test-sizeof.c
-
-BUILT_SOURCES += \
- src/test/test-hashmap-ordered.c
-
-src/test/test-hashmap-ordered.c: src/test/test-hashmap-plain.c
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)$(AWK) 'BEGIN { print "/* GENERATED FILE */\n#define ORDERED" } \
- { if (!match($$0, "^#include")) \
- gsub(/hashmap/, "ordered_hashmap"); \
- gsub(/HASHMAP/, "ORDERED_HASHMAP"); \
- gsub(/Hashmap/, "OrderedHashmap"); \
- print }' <$< >$@
-
-nodist_test_hashmap_SOURCES = \
- src/test/test-hashmap-ordered.c
-
-test_hashmap_SOURCES = \
- src/test/test-hashmap.c \
- src/test/test-hashmap-plain.c
-
-test_hashmap_LDADD = \
- libelogind-shared.la
-
-test_set_SOURCES = \
- src/test/test-set.c
-
-test_set_LDADD = \
- libelogind-shared.la
-
-test_list_SOURCES = \
- src/test/test-list.c
-
-test_list_LDADD = \
- libelogind-shared.la
-
-test_unaligned_LDADD = \
- libelogind-shared.la
-
-test_unaligned_SOURCES = \
- src/test/test-unaligned.c
-
-test_prioq_SOURCES = \
- src/test/test-prioq.c
-
-test_prioq_LDADD = \
- libelogind-shared.la
-
-test_log_SOURCES = \
- src/test/test-log.c
-
-test_log_LDADD = \
- libelogind-shared.la
-
-test_ipcrm_SOURCES = \
- src/test/test-ipcrm.c
-
-test_ipcrm_LDADD = \
- libelogind-shared.la
-
-test_ellipsize_SOURCES = \
- src/test/test-ellipsize.c
-
-test_ellipsize_LDADD = \
- libelogind-shared.la
-
-test_strip_tab_ansi_SOURCES = \
- src/test/test-strip-tab-ansi.c
-
-test_strip_tab_ansi_LDADD = \
- libelogind-shared.la
-
-test_cgroup_SOURCES = \
- src/test/test-cgroup.c
-
-test_cgroup_LDADD = \
- libelogind-shared.la
-
-test_path_util_SOURCES = \
- src/test/test-path-util.c
-
-test_path_util_LDADD = \
- libelogind-shared.la
-
-test_siphash24_SOURCES = \
- src/test/test-siphash24.c
-
-test_siphash24_LDADD = \
- libelogind-shared.la
-
-test_conf_files_SOURCES = \
- src/test/test-conf-files.c
-
-test_conf_files_LDADD = \
- libelogind-shared.la
-
-test_conf_parser_SOURCES = \
- src/test/test-conf-parser.c
-
-test_conf_parser_LDADD = \
- libelogind-shared.la
-
-# ------------------------------------------------------------------------------
-## .PHONY so it always rebuilds it
-.PHONY: coverage lcov-run lcov-report coverage-sync
-
-# run lcov from scratch, always
-coverage: all
- $(MAKE) lcov-run
- $(MAKE) lcov-report
-
-coverage_dir = coverage
-coverage_opts = --base-directory $(srcdir) --directory $(builddir) --rc 'geninfo_adjust_src_path=$(abspath $(srcdir))=>$(abspath $(builddir))'
-
-if ENABLE_COVERAGE
-# reset run coverage tests
-lcov-run:
- @rm -rf $(coverage_dir)
- lcov $(coverage_opts) --zerocounters
- -$(MAKE) check
-
-# generate report based on current coverage data
-lcov-report:
- $(MKDIR_P) $(coverage_dir)
- lcov $(coverage_opts) --compat-libtool --capture --no-external \
- | sed 's|$(abspath $(builddir))|$(abspath $(srcdir))|' > $(coverage_dir)/.lcov.info
- lcov --remove $(coverage_dir)/.lcov.info --output-file $(coverage_dir)/.lcov-clean.info 'test-*'
- genhtml -t "systemd test coverage" -o $(coverage_dir) $(coverage_dir)/.lcov-clean.info
- @echo "Coverage report generated in $(abs_builddir)/$(coverage_dir)/index.html"
-
-# lcov doesn't work properly with vpath builds, make sure that bad
-# output is not uploaded by mistake.
-coverage-sync: coverage
- test "$(builddir)" = "$(srcdir)"
- rsync -rlv --delete --omit-dir-times coverage/ $(www_target)/coverage
-
-else
-lcov-run lcov-report:
- echo "Need to reconfigure with --enable-coverage"
-endif
-
-# ------------------------------------------------------------------------------
-
-if HAVE_PAM
-dist_factory_pam_DATA = \
- factory/etc/pam.d/system-auth \
- factory/etc/pam.d/other
-endif
-
-# ------------------------------------------------------------------------------
-rootlibexec_PROGRAMS += \
- elogind-cgroups-agent
-
-elogind_cgroups_agent_SOURCES = \
- src/cgroups-agent/cgroups-agent.c
-
-elogind_cgroups_agent_LDADD = \
- libelogind-shared.la
-
-# ------------------------------------------------------------------------------
-libelogind_internal_la_SOURCES = \
- src/systemd/sd-bus.h \
- src/systemd/sd-bus-protocol.h \
- src/systemd/sd-bus-vtable.h \
- src/systemd/sd-event.h \
- src/systemd/sd-login.h \
- src/systemd/sd-id128.h \
- src/systemd/sd-daemon.h \
- src/libelogind/libelogind.sym \
- src/libelogind/sd-bus/sd-bus.c \
- src/libelogind/sd-bus/bus-control.c \
- src/libelogind/sd-bus/bus-control.h \
- src/libelogind/sd-bus/bus-error.c \
- src/libelogind/sd-bus/bus-error.h \
- src/libelogind/sd-bus/bus-common-errors.h \
- src/libelogind/sd-bus/bus-common-errors.c \
- src/libelogind/sd-bus/bus-internal.c \
- src/libelogind/sd-bus/bus-internal.h \
- src/libelogind/sd-bus/bus-socket.c \
- src/libelogind/sd-bus/bus-socket.h \
- src/libelogind/sd-bus/bus-kernel.c \
- src/libelogind/sd-bus/bus-kernel.h \
- src/libelogind/sd-bus/bus-container.c \
- src/libelogind/sd-bus/bus-container.h \
- src/libelogind/sd-bus/bus-message.c \
- src/libelogind/sd-bus/bus-message.h \
- src/libelogind/sd-bus/bus-creds.c \
- src/libelogind/sd-bus/bus-creds.h \
- src/libelogind/sd-bus/bus-signature.c \
- src/libelogind/sd-bus/bus-signature.h \
- src/libelogind/sd-bus/bus-type.c \
- src/libelogind/sd-bus/bus-type.h \
- src/libelogind/sd-bus/bus-match.c \
- src/libelogind/sd-bus/bus-match.h \
- src/libelogind/sd-bus/bus-bloom.c \
- src/libelogind/sd-bus/bus-bloom.h \
- src/libelogind/sd-bus/bus-introspect.c \
- src/libelogind/sd-bus/bus-introspect.h \
- src/libelogind/sd-bus/bus-objects.c \
- src/libelogind/sd-bus/bus-objects.h \
- src/libelogind/sd-bus/bus-gvariant.c \
- src/libelogind/sd-bus/bus-gvariant.h \
- src/libelogind/sd-bus/bus-convenience.c \
- src/libelogind/sd-bus/bus-track.c \
- src/libelogind/sd-bus/bus-track.h \
- src/libelogind/sd-bus/bus-slot.c \
- src/libelogind/sd-bus/bus-slot.h \
- src/libelogind/sd-bus/bus-protocol.h \
- src/libelogind/sd-event/sd-event.c \
- src/libelogind/sd-id128/sd-id128.c \
- src/libelogind/sd-id128/id128-util.h \
- src/libelogind/sd-id128/id128-util.c \
- src/libelogind/sd-daemon/sd-daemon.c \
- src/libelogind/sd-login/sd-login.c
-
-noinst_LTLIBRARIES += \
- libelogind-internal.la
-
-EXTRA_DIST += \
- src/libelogind/libelogind.pc.in \
- src/libelogind/sd-bus/GVARIANT-SERIALIZATION
-
-libelogind_la_SOURCES =
-
-libelogind_la_LDFLAGS = \
- $(AM_LDFLAGS) \
- -version-info $(LIBELOGIND_CURRENT):$(LIBELOGIND_REVISION):$(LIBELOGIND_AGE) \
- -Wl,--version-script=$(top_srcdir)/src/libelogind/libelogind.sym
-
-libelogind_la_LIBADD = \
- libelogind-internal.la \
- libbasic.la
-
-pkgconfiglib_DATA += \
- src/libelogind/libelogind.pc
-
-pkginclude_HEADERS += \
- src/systemd/sd-login.h \
- src/systemd/sd-messages.h \
- src/systemd/sd-id128.h \
- src/systemd/_sd-common.h
-
-header-install-hook:
- $(MKDIR_P) $(DESTDIR)/$(pkgincludedir)
- cd $(DESTDIR)/$(includedir)/elogind && \
- for hdr in $(notdir $(pkginclude_HEADERS)) ; do \
- rm -f $$hdr ; \
- $(LN_S) systemd/$$hdr $$hdr ; \
- done
-
-header-uninstall-hook:
- m -f $(DESTDIR)/$(includedir)/elogind/*.h
-
-INSTALL_EXEC_HOOKS += header-install-hook
-UNINSTALL_EXEC_HOOKS += header-uninstall-hook
-
-rootlib_LTLIBRARIES += \
- libelogind.la
-
-tests += \
- test-bus-signature \
- test-bus-server \
- test-bus-match \
- test-bus-introspect \
- test-bus-vtable \
- test-bus-error \
- test-event
-
-test_bus_signature_SOURCES = \
- src/libelogind/sd-bus/test-bus-signature.c
-
-test_bus_signature_LDADD = \
- libelogind-shared.la
-
-test_bus_server_SOURCES = \
- src/libelogind/sd-bus/test-bus-server.c
-
-test_bus_server_LDADD = \
- libelogind-shared.la
-
-test_bus_vtable_SOURCES = \
- src/libelogind/sd-bus/test-bus-vtable.c
-
-test_bus_vtable_LDADD = \
- libelogind-shared.la
-
-test_bus_error_SOURCES = \
- src/libelogind/sd-bus/test-bus-error.c
-
-# Link statically because this test uses BUS_ERROR_MAP_ELF_REGISTER
-test_bus_error_LDADD = \
- libshared.la
-
-test_bus_match_SOURCES = \
- src/libelogind/sd-bus/test-bus-match.c
-
-test_bus_match_LDADD = \
- libelogind-shared.la
-
-test_bus_introspect_SOURCES = \
- src/libelogind/sd-bus/test-bus-introspect.c
-
-test_bus_introspect_LDADD = \
- libelogind-shared.la
-
-test_event_SOURCES = \
- src/libelogind/sd-event/test-event.c
-
-test_event_LDADD = \
- libelogind-shared.la
-
-# ------------------------------------------------------------------------------
-test_id128_SOURCES = \
- src/test/test-id128.c
-
-test_id128_LDADD = \
- libelogind-shared.la
-
-tests += \
- test-id128
-
-# ------------------------------------------------------------------------------
-test_hash_SOURCES = \
- src/test/test-hash.c
-
-test_hash_LDADD = \
- libelogind-shared.la
-
-tests += \
- test-hash
-
-# ------------------------------------------------------------------------------
-elogind_SOURCES = \
- src/login/logind.c \
- src/login/logind.h
-
-nodist_elogind_SOURCES = \
- src/login/logind-gperf.c
-
-elogind_LDADD = \
- libelogind-core.la
-
-libelogind_core_la_SOURCES = \
- src/core/cgroup.h \
- src/core/cgroup.c \
- src/core/mount-setup.h \
- src/core/mount-setup.c \
- src/login/elogind.c \
- src/login/elogind.h \
- src/login/elogind-dbus.c \
- src/login/elogind-dbus.h \
- src/login/logind-core.c \
- src/login/logind-device.c \
- src/login/logind-device.h \
- src/login/logind-button.c \
- src/login/logind-button.h \
- src/login/logind-action.c \
- src/login/logind-action.h \
- src/login/logind-seat.c \
- src/login/logind-seat.h \
- src/login/logind-session.c \
- src/login/logind-session.h \
- src/login/logind-session-device.c \
- src/login/logind-session-device.h \
- src/login/logind-user.c \
- src/login/logind-user.h \
- src/login/logind-inhibit.c \
- src/login/logind-inhibit.h \
- src/login/logind-dbus.c \
- src/login/logind-session-dbus.c \
- src/login/logind-seat-dbus.c \
- src/login/logind-user-dbus.c \
- src/login/logind-utmp.c \
- src/login/logind-acl.h \
- src/sleep/sleep.c \
- src/sleep/sleep.h
-
-if HAVE_UTMP
-libelogind_core_la_SOURCES += \
- src/shared/utmp-wtmp.c \
- src/update-utmp/update-utmp.c
-endif
-
-libelogind_core_la_LIBADD = \
- libelogind-shared.la
-
-if HAVE_ACL
-libelogind_core_la_SOURCES += \
- src/login/logind-acl.c
-endif
-
-noinst_LTLIBRARIES += \
- libelogind-core.la
-
-rootlibexec_PROGRAMS += \
- elogind
-
-loginctl_SOURCES = \
- src/login/eloginctl.c \
- src/login/eloginctl.h \
- src/login/loginctl.c \
- src/login/sysfs-show.h \
- src/login/sysfs-show.c
-
-loginctl_LDADD = \
- libelogind-shared.la
-
-rootbin_PROGRAMS += \
- loginctl
-
-dist_bashcompletion_data = \
- shell-completion/bash/loginctl
-
-dist_zshcompletion_data = \
- shell-completion/zsh/_loginctl \
- shell-completion/zsh/_elogind-inhibit
-
-elogind_inhibit_SOURCES = \
- src/login/inhibit.c
-
-elogind_inhibit_LDADD = \
- libelogind-shared.la
-
-rootbin_PROGRAMS += \
- elogind-inhibit
-
-test_login_SOURCES = \
- src/libelogind/sd-login/test-login.c
-
-test_login_LDADD = \
- libelogind-shared.la
-
-test_login_shared_SOURCES = \
- src/login/test-login-shared.c
-
-test_login_shared_LDADD = \
- libelogind-shared.la
-
-test_inhibit_SOURCES = \
- src/login/test-inhibit.c
-
-test_inhibit_LDADD = \
- libelogind-shared.la
-
-test_login_tables_SOURCES = \
- src/login/test-login-tables.c
-
-test_login_tables_LDADD = \
- libelogind-core.la
-
-manual_tests += \
- test-inhibit
-
-tests += \
- test-login \
- test-login-tables \
- test-login-shared
-
-if HAVE_PAM
-pam_elogind_la_SOURCES = \
- src/login/pam_elogind.sym \
- src/login/pam_elogind.c
-
-pam_elogind_la_CFLAGS = \
- $(AM_CFLAGS) \
- $(PAM_CFLAGS)
-
-pam_elogind_la_LDFLAGS = \
- $(AM_LDFLAGS) \
- -module \
- -export-dynamic \
- -avoid-version \
- -shared \
- -Wl,--version-script=$(top_srcdir)/src/login/pam_elogind.sym
-
-pam_elogind_la_LIBADD = \
- libshared.la \
- $(PAM_LIBS)
-
-pamlib_LTLIBRARIES = \
- pam_elogind.la
-
-if ENABLE_PAM_CONFIG
-dist_pamconf_DATA = \
- src/login/elogind-user
-endif
-
-EXTRA_DIST += \
- src/login/elogind-user.m4
-endif
-
-dist_dbussystemservice_DATA += \
- src/login/org.freedesktop.login1.service
-
-dist_dbuspolicy_DATA += \
- src/login/org.freedesktop.login1.conf
-
-nodist_pkgsysconf_DATA += \
- src/login/logind.conf
-
-polkitpolicy_files += \
- src/login/org.freedesktop.login1.policy
-
-dist_udevrules_DATA += \
- src/login/70-uaccess.rules \
- src/login/70-power-switch.rules
-
-nodist_udevrules_DATA += \
- src/login/71-seat.rules \
- src/login/73-seat-late.rules
-
-polkitpolicy_in_files += \
- src/login/org.freedesktop.login1.policy.in
-
-gperf_gperf_sources = \
- src/login/logind-gperf.gperf
-
-EXTRA_DIST += \
- src/login/71-seat.rules.in \
- src/login/73-seat-late.rules.in \
- src/login/logind.conf.in
-
-# ------------------------------------------------------------------------------
-substitutions = \
- '|rootlibdir=$(rootlibdir)|' \
- '|rootlibexecdir=$(rootlibexecdir)|' \
- '|rootbindir=$(rootbindir)|' \
- '|bindir=$(bindir)|' \
- '|pkgsysconfdir=$(pkgsysconfdir)|' \
- '|pkgdatadir=$(pkgdatadir)|' \
- '|udevrulesdir=$(udevrulesdir)|' \
- '|PACKAGE_VERSION=$(PACKAGE_VERSION)|' \
- '|PACKAGE_NAME=$(PACKAGE_NAME)|' \
- '|PACKAGE_URL=$(PACKAGE_URL)|' \
- '|prefix=$(prefix)|' \
- '|exec_prefix=$(exec_prefix)|' \
- '|libdir=$(libdir)|' \
- '|includedir=$(includedir)|' \
- '|rootprefix=$(rootprefix)|' \
- '|udevlibexecdir=$(udevlibexecdir)|' \
- '|KILL=$(KILL)|' \
- '|MKDIR_P=$(MKDIR_P)|' \
- '|KILL_USER_PROCESSES=$(KILL_USER_PROCESSES)|' \
- '|systemuidmax=$(SYSTEM_UID_MAX)|' \
- '|systemgidmax=$(SYSTEM_GID_MAX)|'
-
-SED_PROCESS = \
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
- $(SED) $(subst '|,-e 's|@,$(subst =,\@|,$(subst |',|g',$(substitutions)))) \
- -e '/^\#\# /d' \
- < $< > $@
-
-man/%: man/%.in
- $(SED_PROCESS)
-
-sysctl.d/%: sysctl.d/%.in
- $(SED_PROCESS)
-
-%.pc: %.pc.in
- $(SED_PROCESS)
-
-shell-completion/%: shell-completion/%.in
- $(SED_PROCESS)
-
-%.rules: %.rules.in
- $(SED_PROCESS)
-
-%.conf: %.conf.in
- $(SED_PROCESS)
-
-%.sh: %.sh.in
- $(SED_PROCESS)
- $(AM_V_GEN)chmod +x $@
-
-src/%.c: src/%.gperf
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_GPERF)$(GPERF) < $< > $@
-
-src/%: src/%.m4
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@
-
-sysusers.d/%: sysusers.d/%.m4
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@
-
-tmpfiles.d/%: tmpfiles.d/%.m4
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@
-
-
-units/%: units/%.m4
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_M4)$(M4) -P $(M4_DEFINES) -DFOR_SYSTEM=1 < $< > $@
-
-units/user/%: units/user/%.m4
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_M4)$(M4) -P $(M4_DEFINES) -DFOR_USER=1 < $< > $@
-
-if ENABLE_POLKIT
-nodist_polkitpolicy_DATA = \
- $(polkitpolicy_files)
-polkitrules_DATA = $(polkitrules_files)
-if ENABLE_POLKIT_PKLA
-polkitpkla_DATA = $(polkitpkla_files)
-endif
-endif
-
-EXTRA_DIST += \
- $(polkitpolicy_in_files)
-
-# ------------------------------------------------------------------------------
-if ENABLE_MANPAGES
-man/custom-entities.ent: configure.ac
- $(AM_V_GEN)$(MKDIR_P) $(dir $@)
- $(AM_V_GEN)(echo '<?xml version="1.0" encoding="utf-8" ?>' && \
- printf '$(subst '|,<!ENTITY ,$(subst =, ",$(subst |',">\n,$(substitutions))))') \
- > $@ # '
-
-CLEANFILES += \
- man/custom-entities.ent
-
-XSLTPROC_FLAGS = \
- --nonet \
- --xinclude \
- --stringparam man.output.quietly 1 \
- --stringparam funcsynopsis.style ansi \
- --stringparam man.authors.section.enabled 0 \
- --stringparam man.copyright.section.enabled 0 \
- --stringparam elogind.version $(PACKAGE_VERSION) \
- --path '$(builddir)/man:$(srcdir)/man'
-
-XSLTPROC_PROCESS_MAN = \
- $(AM_V_XSLT)$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-man.xsl $<
-
-XSLTPROC_PROCESS_HTML = \
- $(AM_V_XSLT)$(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $<
-
-man/%.1: man/%.xml man/custom-man.xsl man/custom-entities.ent
- $(XSLTPROC_PROCESS_MAN)
-
-man/%.3: man/%.xml man/custom-man.xsl man/custom-entities.ent
- $(XSLTPROC_PROCESS_MAN)
-
-man/%.5: man/%.xml man/custom-man.xsl man/custom-entities.ent
- $(XSLTPROC_PROCESS_MAN)
-
-man/%.7: man/%.xml man/custom-man.xsl man/custom-entities.ent
- $(XSLTPROC_PROCESS_MAN)
-
-man/%.8: man/%.xml man/custom-man.xsl man/custom-entities.ent
- $(XSLTPROC_PROCESS_MAN)
-
-man/%.html: man/%.xml man/custom-html.xsl man/custom-entities.ent
- $(XSLTPROC_PROCESS_HTML)
-
-define html-alias
- $(AM_V_LN)$(LN_S) -f $(notdir $<) $@
-endef
-
-endif
-
-EXTRA_DIST += \
- man/custom-html.xsl \
- man/custom-man.xsl
-
-install-exec-hook: $(INSTALL_EXEC_HOOKS)
-
-uninstall-hook: $(UNINSTALL_EXEC_HOOKS)
-
-distclean-local: $(DISTCLEAN_LOCAL_HOOKS)
-
-clean-local: $(CLEAN_LOCAL_HOOKS)
- rm -rf $(abs_srcdir)/install-tree
- rm -f $(abs_srcdir)/hwdb/usb.ids $(abs_srcdir)/hwdb/pci.ids $(abs_srcdir)/hwdb/oui.txt \
- $(abs_srcdir)/hwdb/iab.txt
-
-DISTCHECK_CONFIGURE_FLAGS = \
- --with-dbuspolicydir=$$dc_install_base/$(dbuspolicydir) \
- --with-dbussystemservicedir=$$dc_install_base/$(dbussystemservicedir) \
- --with-bashcompletiondir=$$dc_install_base/$(bashcompletiondir) \
- --with-zshcompletiondir=$$dc_install_base/$(zshcompletiondir) \
- --with-pamlibdir=$$dc_install_base/$(pamlibdir) \
- --with-pamconfdir=$$dc_install_base/$(pamconfdir) \
- --with-rootprefix=$$dc_install_base
-
-if ENABLE_SPLIT_USR
-DISTCHECK_CONFIGURE_FLAGS += \
- --enable-split-usr
-else
-DISTCHECK_CONFIGURE_FLAGS += \
- --disable-split-usr
-endif
-
-.PHONY: dist-check-help
-dist-check-help: $(rootbin_PROGRAMS)
- for i in $(abspath $^); do \
- if $$i --help | grep -v 'default:' | grep -E -q '.{80}.' ; then \
- echo "$(basename $$i) --help output is too wide:"; \
- $$i --help | awk 'length > 80' | grep -E --color=yes '.{80}'; \
- exit 1; \
- fi; done
-
-include_compilers = "$(CC)" "$(CC) -ansi" "$(CC) -std=iso9899:1990"
-public_headers = $(filter-out src/systemd/_sd-common.h, $(pkginclude_HEADERS) $(include_HEADERS))
-.PHONY: dist-check-includes
-dist-check-includes: $(public_headers)
- @res=0; \
- for i in $(abspath $^); do \
- for cc in $(include_compilers); do \
- echo "$$cc -o/dev/null -c -x c -include "$$i" - </dev/null"; \
- $$cc -o/dev/null -c -x c -include "$$i" - </dev/null || res=1; \
- done; \
- done; exit $$res
-
-dist:
-
-.PHONY: git-tag
-git-tag:
- git tag -s "v$(PACKAGE_VERSION)" -m "elogind $(PACKAGE_VERSION)"
-
-.PHONY: git-tar
-git-tar:
- $(AM_V_at)git archive --format=tar --prefix=elogind-$(PACKAGE_VERSION)-raw/ HEAD | \
- (cd /var/tmp/ && tar xf -)
- $(AM_V_GEN)(cd /var/tmp && \
- rm -rf elogind-$(PACKAGE_VERSION) && \
- $(MKDIR_P) elogind-$(PACKAGE_VERSION) && \
- for f in `find elogind-$(PACKAGE_VERSION)-raw/ -type f | \
- cut -d '/' -f 2-` ; do \
- $(MKDIR_P) elogind-$(PACKAGE_VERSION)/`dirname $$f` ; \
- $(AWK) 'BEGIN { i=0;e=0 } \
- /^#if\s+0.*elogind.*$$/ { i=1;next } \
- /^#else\s*$$/ { \
- { if ( i==1 ) e=1; else print }{next} \
- } \
- /^#endif\s*\/\/\s*0\s*$$/ { \
- { if ( i==1 ) { i=0;e=0 } else print }{next} \
- } \
- /^\s*\/\/\/.*elogind.*$$/{ next } \
- /^\s*\/\/\s*#include.+$$/{ next } \
- { if ( (i==0) || (e==1) ) print }' \
- elogind-$(PACKAGE_VERSION)-raw/$$f \
- > elogind-$(PACKAGE_VERSION)/$$f ; \
- chmod `stat -c '%a' elogind-$(PACKAGE_VERSION)-raw/$$f` \
- elogind-$(PACKAGE_VERSION)/$$f ; \
- done ; \
- for l in `find elogind-$(PACKAGE_VERSION)-raw/ -type l | \
- cut -d '/' -f 2-` ; do \
- $(MKDIR_P) elogind-$(PACKAGE_VERSION)/`dirname $$l` ; \
- cp -P elogind-$(PACKAGE_VERSION)-raw/$$l \
- elogind-$(PACKAGE_VERSION)/$$l ; \
- done ; \
- tar czf elogind-$(PACKAGE_VERSION).tar.gz elogind-$(PACKAGE_VERSION) ; \
- rm -rf elogind-$(PACKAGE_VERSION) elogind-$(PACKAGE_VERSION)-raw) ; \
- $(AM_V_at)mv /var/tmp/elogind-$(PACKAGE_VERSION).tar.gz ./
-
-.PHONY: install-tree
-install-tree: all
- rm -rf $(abs_srcdir)/install-tree
- $(MAKE) install DESTDIR=$(abs_srcdir)/install-tree
- tree $(abs_srcdir)/install-tree
-
-# Let's run all tests of the test suite, but under valgrind. Let's
-# exclude perl/python/shell scripts we have in there
-.PHONY: valgrind-tests
-valgrind-tests: $(TESTS)
- $(AM_V_GEN)for f in $(filter-out %.pl %.py, $^); do \
- if $(LIBTOOL) --mode=execute file $$f | grep -q shell; then \
- echo -e "$${x}Skipping non-binary $$f"; else \
- echo -e "$${x}Running $$f"; \
- $(AM_TESTS_ENVIRONMENT) $(LIBTOOL) --mode=execute valgrind -q --leak-check=full --max-stackframe=5242880 --error-exitcode=55 $(builddir)/$$f ; fi; \
- x="\n\n"; \
- done
-
-exported-%: %
- $(AM_V_GEN)$(NM) -g --defined-only $(builddir)/.libs/$(<:.la=.so) 2>&1 /dev/null | grep " T " | cut -d" " -f3 > $@
-
-exported: $(addprefix exported-, $(rootlib_LTLIBRARIES))
- $(AM_V_GEN)cat $^ > $@
-
-.PHONY: check-api-docs
-check-api-docs: exported man
- $(AM_V_GEN)for symbol in `cat exported` ; do \
- if test -f $(builddir)/man/$$symbol.html ; then \
- echo " Symbol $$symbol() is documented." ; \
- else \
- echo "‣ Symbol $$symbol() lacks documentation." ; \
- fi ; \
- done
-
-OBJECT_VARIABLES:=$(filter %_OBJECTS,$(.VARIABLES))
-ALL_OBJECTS:=$(foreach v,$(OBJECT_VARIABLES),$($(v)))
-
-undefined defined: $(ALL_OBJECTS)
- $(AM_V_GEN)for f in $(ALL_OBJECTS) ; do \
- $(NM) -g --$@-only `echo $(builddir)/"$$f" | sed -e 's,\([^/]*\).lo$$,.libs/\1.o,'` ; \
- done | cut -c 20- | cut -d @ -f 1 | sort -u > $@
-
-CLEANFILES += \
- defined \
- undefined
-
-.PHONY: check-api-unused
-check-api-unused: defined undefined exported
- ( cat exported undefined ) | sort -u | diff -u - defined | grep ^+ | grep -v ^+++ | cut -c2-
-
-.PHONY: check-includes
-check-includes: $(top_srcdir)/tools/check-includes.pl
- $(AM_V_GEN) find * -name '*.[hcS]' -type f -print | sort -u \
- | xargs $(top_srcdir)/tools/check-includes.pl
-
-EXTRA_DIST += \
- $(top_srcdir)/tools/check-includes.pl
-
-# Stupid test that everything purported to be exported really is
-define generate-sym-test
- $(AM_V_at)$(MKDIR_P) $(dir $@)
- $(AM_V_at)printf '#include <stdio.h>\n' > $@
- $(AM_V_at)printf '#include "%s"\n' $(notdir $(filter %.h, $^)) >> $@
- $(AM_V_at)printf 'void* functions[] = {\n' >> $@
- $(AM_V_GEN)sed -r -n 's/^ +([a-zA-Z0-9_]+);/\1,/p' $< >> $@
- $(AM_V_at)printf '};\nint main(void) {\n' >> $@
- $(AM_V_at)printf 'unsigned i; for (i=0;i<sizeof(functions)/sizeof(void*);i++) printf("%%p\\n", functions[i]);\n' >> $@
- $(AM_V_at)printf 'return 0; }\n' >> $@
-endef
-
-test-libelogind-sym.c: \
- $(top_builddir)/src/libelogind/libelogind.sym \
- src/systemd/sd-daemon.h \
- src/systemd/sd-login.h \
- src/systemd/sd-bus.h \
- src/systemd/sd-event.h
- $(generate-sym-test)
-
-test_libelogind_sym_SOURCES = \
- test-libelogind-sym.c
-test_libelogind_sym_LDADD = \
- libelogind.la
-
-BUILT_SOURCES += \
- $(test_libelogind_sym_SOURCES)
-
-tests += \
- test-libelogind-sym
-
-.PHONY: install-tests
-install-tests: $(tests) $(TEST_DATA_FILES)
- for f in $(tests); do \
- if [ -x $(top_builddir)/.libs/$$f ]; then \
- install -D -m 755 $(top_builddir)/.libs/$$f $(DESTDIR)/$(testsdir)/$$f; \
- else \
- install -D -m 755 $(top_builddir)/$$f $(DESTDIR)/$(testsdir)/$$f; \
- fi; \
- done
- for f in $(TEST_DATA_FILES); do \
- install -D -m 644 $(top_srcdir)/$$f $(DESTDIR)/$(testsdir)/testdata/$${f#test/}; \
- done
-
-.PHONY: cccc cppcheck
-cccc: all
- cccc --outdir=$(top_builddir)/cccc \
- `find $(top_srcdir)/src/ -name '*.h' -or -name '*.c'`
-
-cppcheck:
- cppcheck --enable=all -q \
- -I $(top_srcdir)/src \
- -I $(top_builddir)/src/basic \
- -I $(top_srcdir)/src/basic \
- -I $(top_srcdir)/src/core \
- -I $(top_srcdir)/src/shared \
- -I $(top_builddir)/src/shared \
- -I $(top_srcdir)/src/login \
- -I $(top_srcdir)/src/systemd \
- -I $(top_srcdir)/src/libelogind/sd-bus \
- -I $(top_srcdir)/src/libelogind/sd-event \
- -I $(top_srcdir)/src/libelogind/sd-login \
- -I $(top_srcdir)/src/libelogind/sd-id128 \
- -I $(top_srcdir)/src/update-utmp \
- -I $(top_srcdir)/src/sleep \
- --force \
- $(top_srcdir)
-
-# Used to extract compile flags for YCM.
-print-%:
- @echo $($*)
-
-git-contrib:
- @git shortlog -s `git describe --abbrev=0`.. | cut -c8- | sed 's/ / /g' | awk '{ print $$0 "," }' | sort -u
-
-EXTRA_DIST += \
- tools/gdb-sd_dump_hashmaps.py
-
-list-keys:
- gpg --verbose --no-options --no-default-keyring --no-auto-key-locate --batch --trust-model=always --keyring=$(srcdir)/src/import/import-pubring.gpg --list-keys
-
-add-key:
- gpg --verbose --no-options --no-default-keyring --no-auto-key-locate --batch --trust-model=always --keyring=$(srcdir)/src/import/import-pubring.gpg --import -
diff --git a/README b/README
index 0cd868ade..fcf93b690 100644
--- a/README
+++ b/README
@@ -147,9 +147,7 @@ License
LGPLv2.1+ for all code
- - except src/shared/MurmurHash2.c which is Public Domain
- - except src/shared/siphash24.c which is CC0 Public Domain
- - except src/journal/lookup3.c which is Public Domain
+ - except src/basic/siphash24.c which is CC0 Public Domain
Dependencies
------------
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index 7f9bbfc16..000000000
--- a/autogen.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/sh
-
-# This file is part of elogind
-#
-# elogind is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-#
-# elogind is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with elogind; If not, see <http://www.gnu.org/licenses/>.
-
-set -e
-
-oldpwd=$(pwd)
-topdir=$(dirname $0)
-cd $topdir
-
-intltoolize --force --automake
-autoreconf --force --install --symlink
-
-libdir() {
- echo $(cd "$1/$(gcc -print-multi-os-directory)"; pwd)
-}
-
-args="\
---sysconfdir=/etc \
---localstatedir=/var \
---libdir=$(libdir /usr/lib) \
-"
-
-if [ -f "$topdir/.config.args" ]; then
- args="$args $(cat $topdir/.config.args)"
-fi
-
-if [ ! -L /bin ]; then
-args="$args \
---with-rootprefix=/ \
---with-rootlibdir=$(libdir /lib) \
-"
-fi
-
-cd $oldpwd
-
-echo
-echo "----------------------------------------------------------------"
-echo "Initialized build system. For a common configuration please run:"
-echo "----------------------------------------------------------------"
-echo
-echo "$topdir/configure CFLAGS='-g -O0 -ftrapv' --enable-kdbus $args"
-echo
diff --git a/coccinelle/free_and_replace.cocci b/coccinelle/free_and_replace.cocci
deleted file mode 100644
index 9dcdbf4d4..000000000
--- a/coccinelle/free_and_replace.cocci
+++ /dev/null
@@ -1,15 +0,0 @@
-@@
-expression p, q;
-@@
-- free(p);
-- p = q;
-- q = NULL;
-- return 0;
-+ return free_and_replace(p, q);
-@@
-expression p, q;
-@@
-- free(p);
-- p = q;
-- q = NULL;
-+ free_and_replace(p, q);
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index 7106d3682..000000000
--- a/configure.ac
+++ /dev/null
@@ -1,906 +0,0 @@
-#
-# This file is part of elogind.
-#
-# Copyright 2010-2012 Lennart Poettering
-# Copyright 2010-2012 Kay Sievers
-#
-# elogind is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-#
-# elogind is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with systemd; If not, see <http://www.gnu.org/licenses/>.
-
-AC_PREREQ([2.64])
-
-AC_INIT([elogind],
- [234.1],
- [https://github.com/elogind/elogind/issues],
- [elogind],
- [https://github.com/elogind/elogind])
-
-AC_CONFIG_SRCDIR([src/login/logind.c])
-AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_HEADERS([config.h])
-AC_CONFIG_AUX_DIR([build-aux])
-
-AC_USE_SYSTEM_EXTENSIONS
-AC_SYS_LARGEFILE
-AC_PREFIX_DEFAULT([/usr])
-AM_MAINTAINER_MODE([enable])
-AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax no-dist-gzip dist-xz subdir-objects parallel-tests])
-AM_SILENT_RULES([yes])
-AC_CANONICAL_HOST
-AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
-
-AC_PROG_CC_C99
-
-AX_COMPILER_VENDOR
-AS_IF([test "x$ax_cv_c_compiler_vendor" = "xgnu"], [
- AC_CHECK_TOOLS([AR], [gcc-ar ar], [:])
- AC_CHECK_TOOLS([NM], [gcc-nm nm], [:])
- AC_CHECK_TOOLS([RANLIB], [gcc-ranlib ranlib], [:])
-])
-
-LT_PREREQ(2.2)
-LT_INIT([disable-static])
-
-AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by elogind])])
-AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is not supported by elogind])])
-
-SET_ARCH(X86_64, x86_64*)
-SET_ARCH(IA32, i*86*)
-SET_ARCH(MIPS, mips*)
-SET_ARCH(AARCH64, aarch64*)
-
-# i18n stuff for the PolicyKit policy files, check whether intltool can be found, disable NLS otherwise
-AC_CHECK_PROG(intltool_found, [intltool-merge], [yes], [no])
-AS_IF([test x"$intltool_found" != xyes],
- [AS_IF([test x"$enable_nls" = xyes],
- [AC_MSG_ERROR([--enable-nls requested but intltool not found])],
- [AS_IF([test x"$enable_nls" != xno],
- [AC_MSG_WARN([*** Disabling NLS support because intltool was not found])
- enable_nls=no])
- ])
- ])
-
-AM_NLS
-AS_IF([test x"$enable_nls" != xno -o "x$enable_polkit" != xno], [
- # intltoolize greps for '^(AC|IT)_PROG_INTLTOOL', so it needs to be on its own line
-IT_PROG_INTLTOOL([0.40.0])
-])
-
-AS_IF([test -z "$INTLTOOL_POLICY_RULE"], [
- # If intltool is not available, provide a dummy rule to fail generation of %.policy files with a meaningful error message
- INTLTOOL_POLICY_RULE='%.policy: %.policy.in ; @echo " ITMRG " $@ && echo "*** intltool support required to build target $@" && false'
- AC_SUBST(INTLTOOL_POLICY_RULE)
-])
-
-GETTEXT_PACKAGE=elogind
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [elogind])
-
-AC_PROG_MKDIR_P
-AC_PROG_LN_S
-AC_PROG_SED
-AC_PROG_GREP
-AC_PROG_AWK
-
-AC_PATH_PROG([M4], [m4])
-AC_PATH_PROG([XSLTPROC], [xsltproc])
-
-AC_PATH_PROG([HALT], [halt], [halt])
-AC_PATH_PROG([REBOOT], [reboot], [reboot])
-AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec], [$PATH:/usr/sbin:/sbin])
-
-AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't support --relative ***])])
-
-M4_DEFINES=
-
-AC_CHECK_TOOL(OBJCOPY, objcopy)
-AC_CHECK_TOOL(GPERF, gperf)
-if test -z "$GPERF" ; then
- AC_MSG_ERROR([*** gperf not found])
-fi
-
-
-# ------------------------------------------------------------------------------
-# Let users set the cgroup controller to use, in case the target controller
-# isn't currently running the show.
-# Example: Gentoo Linux, user wants to switch from systemd to openrc+elogind,
-# and emerges elogind before having booted the machine with openrc.
-# See: https://github.com/elogind/elogind/issues/18
-with_cgroupctrl=
-AC_ARG_WITH([cgroup-controller],
- AS_HELP_STRING([--with-cgroup-controller=name],
- [Set the name of the cgroup controller to use.
- Use this when the autodetection fails, or you plan to use your system with a different controller than the one in place now.
- The value 'auto' (default) detects the running controller.
- The values 'none' and 'elogind' will cause elogind to be its own (very limited) controller.
- When elogind shall be its own controller, there *MUST NOT* be any other controller running!
- Another popular controller would be 'openrc'.]),
- [with_cgroupctrl=$withval],
- [with_cgroupctrl=auto])
-
-# ------------------------------------------------------------------------------
-# Find running cgroup controller, if none was set
-AS_IF( [test "x$with_cgroupctrl" = "xauto"], [
- AS_IF([test -f /proc/self/cgroup], [
- # If the init system is a cgroup controler, it will be position 1.
- # Secondary controllers, like cgmanager, do not work.
- with_cgroupctrl=`grep "^1:name=" /proc/self/cgroup | \
- sed -n 's/.*=//p' | sed -e 's/:.*$//'`
- AS_IF( [test -z "$with_cgroupctrl"], [
- # Try to be our own cgroup controller
- with_cgroupctrl="elogind"
- ])
- ], [
- # 'auto' but no cgroup fs is a problem.
- with_cgroupctrl=""
- ])
-])
-
-# If the user specified 'none', switch to 'elogind'.
-# 'none' is allowed, as this means "there is no controller now"
-AS_IF( [test "x$with_cgroupctrl" = "xnone"], [with_cgroupctrl=elogind])
-
-# If this was not possible, /proc/self/cgroup not mounted yet, and 'auto'
-# chosen, error out.
-AS_IF( [test -z "$with_cgroupctrl"],
- AC_MSG_ERROR([No running cgroup controller found]))
-
-# ------------------------------------------------------------------------------
-address_sanitizer_cflags=
-address_sanitizer_cppflags=
-address_sanitizer_ldflags=
-AC_ARG_ENABLE(address-sanitizer, AS_HELP_STRING([--enable-address-sanitizer], [enable -fsanitize=address]))
-AS_IF([test "x$enable_address_sanitizer" = "xyes"], [
- CC_CHECK_FLAG_APPEND([with_as_cflags], [CFLAGS], [-fsanitize=address])
- AS_IF([test -z "$with_as_cflags"],
- [AC_MSG_ERROR([*** -fsanitize=address is not supported])])
- address_sanitizer_cflags="$with_as_cflags -fno-omit-frame-pointer -DVALGRIND=1"
- address_sanitizer_cppflags="-DVALGRIND=1"
- address_sanitizer_ldflags="-Wc,-fsanitize=address"
- ])
-
-undefined_sanitizer_cflags=
-undefined_sanitizer_cppflags=
-undefined_sanitizer_ldflags=
-AC_ARG_ENABLE(undefined-sanitizer, AS_HELP_STRING([--enable-undefined-sanitizer], [enable -fsanitize=undefined]))
-AS_IF([test "x$enable_undefined_sanitizer" = "xyes"], [
- CC_CHECK_FLAG_APPEND([with_us_cflags], [CFLAGS], [-fsanitize=undefined])
- AS_IF([test -z "$with_us_cflags"],
- [AC_MSG_ERROR([*** -fsanitize=undefined is not supported])])
- undefined_sanitizer_cflags="$with_us_cflags -fno-omit-frame-pointer -DVALGRIND=1"
- undefined_sanitizer_cppflags="-DVALGRIND=1"
- undefined_sanitizer_ldflags="-Wc,-fsanitize=undefined"
- ])
-
-sanitizer_cflags="$address_sanitizer_cflags $undefined_sanitizer_cflags"
-sanitizer_cppflags="$address_sanitizer_cppflags $undefined_sanitizer_cppflags"
-sanitizer_ldflags="$address_sanitizer_ldflags $undefined_sanitizer_ldflags"
-
-CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
- -pipe \
- -Wall \
- -Wextra \
- -Wundef \
- -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 \
- -Wshadow \
- -Wendif-labels \
- -Wstrict-aliasing=2 \
- -Wwrite-strings \
- -Wno-unused-parameter \
- -Wno-missing-field-initializers \
- -Wno-unused-result \
- -Wno-format-signedness \
- -Werror=overflow \
- -Wdate-time \
- -Wnested-externs \
- -ffast-math \
- -fno-common \
- -fdiagnostics-show-option \
- -fno-strict-aliasing \
- -fvisibility=hidden \
- -fstack-protector \
- -fstack-protector-strong \
- -fPIE \
- --param=ssp-buffer-size=4])
-
-CC_CHECK_FLAG_APPEND([with_cflags], [CFLAGS], [-Werror=shadow], [
-#include <time.h>
-#include <inttypes.h>
-typedef uint64_t usec_t;
-usec_t now(clockid_t clock);
-int main(void) {
- struct timespec now;
- return 0;
-}
-])
-
-AS_CASE([$CC], [*clang*],
- [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\
- -Wno-typedef-redefinition \
- -Wno-gnu-variable-sized-type-not-at-end \
- ])])
-
-# ------------------------------------------------------------------------------
-have_lto=no
-AC_ARG_ENABLE([lto], [AS_HELP_STRING([--disable-lto], [disable -flto])],
- [], [enable_lto=yes])
-AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
- [AS_IF([test "x$enable_lto" = "xyes"], [have_lto=yes],
- [AC_MSG_RESULT([disabling -flto as requested])])],
- [AC_MSG_RESULT([skipping -flto, optimization not enabled])])
-
-AS_IF([test "x$have_lto" = "xyes"],
- [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS],
- [-flto -fuse-linker-plugin])])
-
-AS_CASE([$with_cflags], [*-flto*], [], [have_lto=no])
-
-# ------------------------------------------------------------------------------
-AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
- [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\
- -Wp,-D_FORTIFY_SOURCE=2])],
- [AC_MSG_RESULT([skipping -D_FORTIFY_SOURCE, optimization not enabled])])
-
-# ------------------------------------------------------------------------------
-AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
- [CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
- -Wl,--gc-sections])],
- [AC_MSG_RESULT([skipping --gc-sections, optimization not enabled])])
-
-# ------------------------------------------------------------------------------
-AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
- [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
- -ffunction-sections -fdata-sections])],
- [AC_MSG_RESULT([skipping -ffunction/data-section, optimization not enabled])])
-
-# ------------------------------------------------------------------------------
-CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
- -Wl,--as-needed \
- -Wl,--no-undefined \
- -Wl,-z,relro \
- -Wl,-z,now \
- -pie])
-AS_IF([test "x$have_lto" = "xyes"],
- [CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [-Wl,-fuse-ld=gold])])
-
-# ------------------------------------------------------------------------------
-AC_SUBST([OUR_CPPFLAGS], "$with_cppflags $sanitizer_cppflags")
-AC_SUBST([OUR_CFLAGS], "-D__SANE_USERSPACE_TYPES__ $with_cflags $sanitizer_cflags")
-AC_SUBST([OUR_LDFLAGS], "$with_ldflags $sanitizer_ldflags")
-
-# ------------------------------------------------------------------------------
-AC_CHECK_SIZEOF(pid_t)
-AC_CHECK_SIZEOF(uid_t)
-AC_CHECK_SIZEOF(gid_t)
-AC_CHECK_SIZEOF(time_t)
-AC_CHECK_SIZEOF(dev_t)
-AC_CHECK_SIZEOF(ino_t)
-AC_CHECK_SIZEOF(rlim_t,,[
- #include <sys/time.h>
- #include <sys/resource.h>
-])
-
-GPERF_TEST="$(echo foo,bar | ${GPERF} -L ANSI-C)"
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -Wno-error"
-AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([
- #include <string.h>
- const char * in_word_set(const char *, size_t);
- $GPERF_TEST]
- )],
- [GPERF_LEN_TYPE=size_t],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([
- #include <string.h>
- const char * in_word_set(const char *, unsigned);
- $GPERF_TEST]
- )],
- [GPERF_LEN_TYPE=unsigned],
- [AC_MSG_ERROR([** unable to determine gperf len type])]
- )]
-)
-CFLAGS="$save_CFLAGS"
-
-AC_DEFINE_UNQUOTED([GPERF_LEN_TYPE], [$GPERF_LEN_TYPE], [gperf len type])
-
-# ------------------------------------------------------------------------------
-# we use python to build the man page index
-have_python=no
-AC_ARG_WITH([python],
- [AS_HELP_STRING([--without-python], [disable building the man page index and systemd-python (default: test)])])
-
-have_lxml=no
-AS_IF([test "x$with_python" != "xno"], [
- AM_PATH_PYTHON([3],, [:])
- AS_IF([test "x$PYTHON" != "x:"], [
- AC_MSG_CHECKING([for python lxml module])
- AS_IF(["$PYTHON" -c 'import lxml' 2>/dev/null], [have_lxml=yes])
- AC_MSG_RESULT([$have_lxml])
- AS_IF([test "x$have_lxml" = "xyes"], [have_python=yes],
- [AC_MSG_WARN([*** python support requires python-lxml module installed])])
- ])
-])
-AS_IF([test "$have_python" != "yes"], [
- AS_IF([test "$with_python" = "yes"],
- [AC_MSG_ERROR([*** python support requested but python support not found])])
- AS_IF([test "$with_python" != "no"],
- [AC_MSG_WARN([*** python support not found, some documentation cannot be built])])
-])
-AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = "xyes"])
-
-# ------------------------------------------------------------------------------
-
-AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])])
-AC_CHECK_HEADERS([linux/memfd.h], [], [])
-AC_CHECK_HEADERS([linux/vm_sockets.h], [], [], [#include <sys/socket.h>])
-
-AC_CHECK_HEADERS([printf.h], [have_printf_h=yes], [have_printf_h=no])
-AS_IF([test x$have_printf_h = xyes], [
- AC_DEFINE(HAVE_PRINTF_H, 1, [Define if printf.h was found])
-])
-
-
-
-# unconditionally pull-in librt with old glibc versions
-dnl AC_SEARCH_LIBS([clock_gettime], [rt], [], [])
-dnl AC_SEARCH_LIBS([mq_unlink], [rt], [], [])
-
-save_LIBS="$LIBS"
-LIBS=
-AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])])
-CAP_LIBS="$LIBS"
-AC_SUBST(CAP_LIBS)
-
-AC_CHECK_FUNCS([__secure_getenv secure_getenv])
-AC_CHECK_DECLS([
- memfd_create,
- gettid,
- pivot_root,
- name_to_handle_at,
- setns,
- renameat2,
- kcmp,
- keyctl,
- LO_FLAGS_PARTSCAN,
- copy_file_range,
- explicit_bzero],
- [], [], [[
-#include <sys/types.h>
-#include <unistd.h>
-#include <sys/mount.h>
-#include <fcntl.h>
-#include <sched.h>
-#include <string.h>
-#include <linux/loop.h>
-]])
-
-AC_CHECK_DECLS([getrandom],
- [AC_DEFINE([USE_SYS_RANDOM_H], [], [sys/random.h is usable])],
- [AC_CHECK_DECLS([getrandom], [], [], [[
-#include <sys/random.h>
-]])], [[
-#include <linux/random.h>
-]])
-
-AC_CHECK_TYPES([char16_t, char32_t, key_serial_t],
- [], [], [[
-#include <uchar.h>
-]])
-
-AC_CHECK_DECLS([IFLA_INET6_ADDR_GEN_MODE,
- IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
- IFLA_VRF_TABLE,
- IFLA_MACVLAN_FLAGS,
- IFLA_IPVLAN_MODE,
- IFLA_VTI_REMOTE,
- IFLA_PHYS_PORT_ID,
- IFLA_BOND_AD_INFO,
- IFLA_VLAN_PROTOCOL,
- IFLA_VXLAN_GPE,
- IFLA_GENEVE_LABEL,
- IFLA_IPTUN_ENCAP_DPORT,
- IFLA_GRE_ENCAP_DPORT,
- IFLA_BRIDGE_VLAN_INFO,
- IFLA_BRPORT_PROXYARP,
- IFLA_BRPORT_LEARNING_SYNC,
- IFLA_BR_VLAN_DEFAULT_PVID,
- NDA_IFINDEX,
- IFA_FLAGS],
-[], [], [[
-#include <inttypes.h>
-#include <netinet/in.h>
-#include <netinet/ether.h>
-#include <linux/rtnetlink.h>
-#include <net/if.h>
-#include <linux/ip.h>
-#include <linux/if_tunnel.h>
-#include <linux/if_link.h>
-#include <linux/if_bridge.h>
-#include <linux/if_addr.h>
-#include <linux/neighbour.h>
-]])
-
-# This makes sure pkg.m4 is available.
-m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
-
-
-# ------------------------------------------------------------------------------
-PKG_CHECK_MODULES(UDEV, [libudev])
-dnl
-AC_ARG_WITH([udevrulesdir],
- AS_HELP_STRING([--with-udevrulesdir=DIR], [Directory for udev rules files]),
- [],
- [with_udevrulesdir=$($PKG_CONFIG --variable=udevdir udev)/rules.d])
-AC_SUBST([udevrulesdir], [$with_udevrulesdir])
-
-AC_ARG_WITH([udevbindir],
- AS_HELP_STRING([--with-udevbindir=DIR], [Directory for udev binary files]),
- [],
- [with_udevbindir=$($PKG_CONFIG --variable=udevdir udev)])
-AC_SUBST([udevbindir], [$with_udevbindir])
-
-# ------------------------------------------------------------------------------
-have_glib=no
-AC_ARG_ENABLE(glib, AS_HELP_STRING([--disable-glib], [disable usage of glib,gobject,gio in tests]))
-AS_IF([test "x$enable_glib" != "xno"], [
- PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.22.0 gobject-2.0 >= 2.22.0 gio-2.0],
- [AC_DEFINE(HAVE_GLIB, 1, [Define if glib,gobject,gio are available]) have_glib=yes],
- [have_glib=no])
- AS_IF([test "x$have_glib" = "xno" -a "x$enable_glib" = "xyes"],
- [AC_MSG_ERROR([*** glib support requested but libraries not found])])])
-
-# ------------------------------------------------------------------------------
-have_utmp=yes
-AC_ARG_ENABLE([utmp], AS_HELP_STRING([--disable-utmp], [disable utmp/wtmp log handling]),
- AS_CASE("x${enableval}",
- [xyes], [have_utmp=yes],
- [xno], [have_utmp=no],
- AC_MSG_ERROR(bad value ${enableval} for --enable-utmp)))
-AS_IF([test "x$have_utmp" = "xyes"], [
- AC_DEFINE(HAVE_UTMP, 1, [Define if utmp/wtmp support is enabled])
- have_utmp=yes
- M4_DEFINES="$M4_DEFINES -DHAVE_UTMP"],
- [have_utmp=no])
-AM_CONDITIONAL([HAVE_UTMP], [test "x$have_utmp" = "xyes"])
-
-# ------------------------------------------------------------------------------
-have_coverage=no
-AC_ARG_ENABLE(coverage, AS_HELP_STRING([--enable-coverage], [enable test coverage]))
-if test "x$enable_coverage" = "xyes" ; then
- AC_CHECK_PROG(lcov_found, [lcov], [yes], [no])
- if test "x$lcov_found" = xno ; then
- AC_MSG_ERROR([*** lcov support requested but the program was not found])
- else
- lcov_version_major="`lcov --version | cut -d ' ' -f 4 | cut -d '.' -f 1`"
- lcov_version_minor="`lcov --version | cut -d ' ' -f 4 | cut -d '.' -f 2`"
- if test "$lcov_version_major" -eq 1 -a "$lcov_version_minor" -lt 10; then
- AC_MSG_ERROR([*** lcov version is too old. 1.10 required])
- else
- have_coverage=yes
- CC_CHECK_FLAGS_APPEND([with_coverage_cflags], [CFLAGS], [\
- -fprofile-arcs \
- -ftest-coverage])
- AC_SUBST([OUR_CFLAGS], "$with_cflags $with_coverage_cflags")
- fi
- fi
-fi
-AM_CONDITIONAL(ENABLE_COVERAGE, [test "$have_coverage" = "yes"])
-
-# ------------------------------------------------------------------------------
-have_selinux=no
-AC_ARG_ENABLE(selinux, AS_HELP_STRING([--disable-selinux], [disable optional SELINUX support]))
-if test "x$enable_selinux" != "xno"; then
- PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.1.9],
- [AC_DEFINE(HAVE_SELINUX, 1, [Define if SELinux is available])
- have_selinux=yes
- M4_DEFINES="$M4_DEFINES -DHAVE_SELINUX"],
- [have_selinux=no])
- if test "x$have_selinux" = xno -a "x$enable_selinux" = xyes; then
- AC_MSG_ERROR([*** SELinux support requested but libraries not found])
- fi
-fi
-AM_CONDITIONAL(HAVE_SELINUX, [test "$have_selinux" = "yes"])
-
-# ------------------------------------------------------------------------------
-AC_ARG_WITH([kill-user-processes],
- [AS_HELP_STRING([--without-kill-user-processes], [Set elogind's KillUserProcesses=no by default])])
-AS_IF([test "$with_kill_user_processes" != "no"],
- [kill_user_processes=true
- KILL_USER_PROCESSES=yes],
- [kill_user_processes=false
- KILL_USER_PROCESSES=no])
-AC_DEFINE_UNQUOTED(KILL_USER_PROCESSES, [$kill_user_processes], [Default KillUserProcesses setting])
-AC_SUBST(KILL_USER_PROCESSES)
-
-# ------------------------------------------------------------------------------
-# We do not really support systemd hybrid or unified mode, but set the default
-# to 'legacy' here. That is currently the only cgroup mode supported by elogind.
-#AC_ARG_WITH(default-hierarchy,
-# AS_HELP_STRING([--with-default-hierarchy=MODE],
-# [default cgroup hierarchy, defaults to "hybrid"]),
-# [DEFAULT_HIERARCHY="$withval"],
-# [DEFAULT_HIERARCHY="hybrid"])
-DEFAULT_HIERARCHY=legacy
-
-AS_CASE("$DEFAULT_HIERARCHY",
- [legacy], [mode=CGROUP_UNIFIED_NONE],
- [hybrid], [mode=CGROUP_UNIFIED_SYSTEMD],
- [unified], [mode=CGROUP_UNIFIED_ALL],
- AC_MSG_ERROR(Bad default hierarchy mode ${DEFAULT_HIERARCHY}))
-AC_DEFINE_UNQUOTED(DEFAULT_HIERARCHY, [$mode], [Default cgroup hierarchy])
-AC_DEFINE_UNQUOTED(DEFAULT_HIERARCHY_NAME, ["$DEFAULT_HIERARCHY"],
- [Default cgroup hierarchy as string])
-
-# ------------------------------------------------------------------------------
-AC_ARG_ENABLE([pam],
- AS_HELP_STRING([--disable-pam],[disable optional PAM support]),
- [case "${enableval}" in
- yes) have_pam=yes ;;
- no) have_pam=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --disable-pam) ;;
- esac],
- [have_pam=auto])
-
-if test "x${have_pam}" != xno ; then
- AC_CHECK_HEADERS(
- [security/pam_modules.h security/pam_modutil.h security/pam_ext.h],
- [have_pam=yes],
- [if test "x$have_pam" = xyes ; then
- AC_MSG_ERROR([*** PAM headers not found.])
- fi])
-
- AC_CHECK_LIB(
- [pam],
- [pam_syslog],
- [have_pam=yes],
- [if test "x$have_pam" = xyes ; then
- AC_MSG_ERROR([*** libpam not found.])
- fi])
-
- if test "x$have_pam" = xyes ; then
- PAM_LIBS="-lpam -lpam_misc"
- AC_DEFINE(HAVE_PAM, 1, [PAM available])
- M4_DEFINES="$M4_DEFINES -DHAVE_PAM"
- else
- have_pam=no
- fi
-else
- PAM_LIBS=
-fi
-AC_SUBST(PAM_LIBS)
-AM_CONDITIONAL([HAVE_PAM], [test "x$have_pam" != xno])
-
-# ------------------------------------------------------------------------------
-AC_ARG_ENABLE([acl],
- AS_HELP_STRING([--disable-acl],[disable optional ACL support]),
- [case "${enableval}" in
- yes) have_acl=yes ;;
- no) have_acl=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --disable-acl) ;;
- esac],
- [have_acl=auto])
-
-if test "x${have_acl}" != xno ; then
- AC_CHECK_HEADERS(
- [sys/acl.h acl/libacl.h],
- [have_acl=yes],
- [if test "x$have_acl" = xyes ; then
- AC_MSG_ERROR([*** ACL headers not found.])
- fi])
-
- AC_CHECK_LIB(
- [acl],
- [acl_get_file],
- [have_acl=yes],
- [if test "x$have_acl" = xyes ; then
- AC_MSG_ERROR([*** libacl not found.])
- fi])
-
- if test "x$have_acl" = xyes ; then
- ACL_LIBS="-lacl"
- AC_DEFINE(HAVE_ACL, 1, [ACL available])
- M4_DEFINES="$M4_DEFINES -DHAVE_ACL"
- else
- have_acl=no
- fi
-else
- ACL_LIBS=
-fi
-AC_SUBST(ACL_LIBS)
-AM_CONDITIONAL([HAVE_ACL], [test "x$have_acl" != xno])
-
-# ------------------------------------------------------------------------------
-AC_ARG_ENABLE([smack], AS_HELP_STRING([--disable-smack],[disable optional SMACK support]),
- [case "${enableval}" in
- yes) have_smack=yes ;;
- no) have_smack=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --disable-smack) ;;
- esac],
- [have_smack=auto])
-
-if test "x${have_smack}" != xno; then
- AC_DEFINE(HAVE_SMACK, 1, [Define if SMACK is available])
- M4_DEFINES="$M4_DEFINES -DHAVE_SMACK"
- have_smack=yes
-fi
-
-AM_CONDITIONAL([HAVE_SMACK], [test "x$have_smack" = "xyes"])
-
-have_smack_run_label=no
-AC_ARG_WITH(smack-run-label,
-AS_HELP_STRING([--with-smack-run-label=STRING],
- [run systemd --system itself with a specific SMACK label]),
- [AC_DEFINE_UNQUOTED(SMACK_RUN_LABEL, ["$withval"], [Run systemd itself with SMACK label]) have_smack_run_label=yes],
- [])
-
-if test "x${have_smack_run_label}" = xyes; then
- M4_DEFINES="$M4_DEFINES -DHAVE_SMACK_RUN_LABEL"
-fi
-
-AC_ARG_WITH(smack-default-process-label,
-AS_HELP_STRING([--with-smack-default-process-label=STRING],
- [default SMACK label for executed processes]),
- [AC_DEFINE_UNQUOTED(SMACK_DEFAULT_PROCESS_LABEL, ["$withval"], [Default SMACK label for executed processes])],
- [])
-
-# ------------------------------------------------------------------------------
-AC_ARG_WITH(system-uid-max,
- AS_HELP_STRING([--with-system-uid-max=UID]
- [Maximum UID for system users]),
- [SYSTEM_UID_MAX="$withval"],
- [SYSTEM_UID_MAX="`awk 'BEGIN { uid=999 } /^\s*SYS_UID_MAX\s+/ { uid=$2 } END { print uid }' /etc/login.defs 2>/dev/null || echo 999`"])
-
-AC_DEFINE_UNQUOTED(SYSTEM_UID_MAX, [$SYSTEM_UID_MAX], [Maximum System UID])
-AC_SUBST(SYSTEM_UID_MAX)
-
-# ------------------------------------------------------------------------------
-AC_ARG_WITH(system-gid-max,
- AS_HELP_STRING([--with-system-gid-max=GID]
- [Maximum GID for system groups]),
- [SYSTEM_GID_MAX="$withval"],
- [SYSTEM_GID_MAX="`awk 'BEGIN { gid=999 } /^\s*SYS_GID_MAX\s+/ { gid=$2 } END { print gid }' /etc/login.defs 2>/dev/null || echo 999`"])
-
-AC_DEFINE_UNQUOTED(SYSTEM_GID_MAX, [$SYSTEM_GID_MAX], [Maximum System GID])
-AC_SUBST(SYSTEM_GID_MAX)
-
-# ------------------------------------------------------------------------------
-have_polkit=no
-AC_ARG_ENABLE(polkit, AS_HELP_STRING([--disable-polkit], [disable PolicyKit support]))
-if test "x$enable_polkit" != "xno"; then
- AC_DEFINE(ENABLE_POLKIT, 1, [Define if PolicyKit support is to be enabled])
- have_polkit=yes
-
- # also enable support for *.pkla files on old polkit
- PKG_CHECK_MODULES(POLKIT, [ polkit-gobject-1 < 0.106 ],
- [polkit_pkla=yes],
- [polkit_pkla=no])
-fi
-AM_CONDITIONAL(ENABLE_POLKIT, [test "x$have_polkit" = "xyes"])
-AM_CONDITIONAL(ENABLE_POLKIT_PKLA, [test "x$polkit_pkla" = "xyes"])
-
-# ------------------------------------------------------------------------------
-AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
-
-# ------------------------------------------------------------------------------
-have_manpages=no
-AC_ARG_ENABLE(manpages, AS_HELP_STRING([--disable-manpages], [disable manpages]))
-AC_PATH_PROG([XSLTPROC], [xsltproc])
-AS_IF([test "x$enable_manpages" != xno], [have_manpages=yes])
-AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"])
-
-# ------------------------------------------------------------------------------
-AC_SUBST(M4_DEFINES)
-
-AC_ARG_WITH([dbuspolicydir],
- AS_HELP_STRING([--with-dbuspolicydir=DIR], [D-Bus policy directory]),
- [],
- [with_dbuspolicydir=${datadir}/dbus-1/system.d])
-AX_NORMALIZE_PATH([with_dbuspolicydir])
-
-AC_ARG_WITH([dbussystemservicedir],
- AS_HELP_STRING([--with-dbussystemservicedir=DIR], [D-Bus system service directory]),
- [],
- [with_dbussystemservicedir=${datadir}/dbus-1/system-services])
-AX_NORMALIZE_PATH([with_dbussystemservicedir])
-
-AC_ARG_WITH([bashcompletiondir],
- AS_HELP_STRING([--with-bashcompletiondir=DIR], [bash completions directory]),
- [],
- [AS_IF([$($PKG_CONFIG --exists bash-completion)], [
- with_bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)
- ] , [
- with_bashcompletiondir=${datadir}/bash-completion/completions
- ])])
-AM_CONDITIONAL(ENABLE_BASH_COMPLETION, [test "$with_bashcompletiondir" != "no"])
-AX_NORMALIZE_PATH([with_bashcompletiondir])
-
-AC_ARG_WITH([zshcompletiondir],
- AS_HELP_STRING([--with-zshcompletiondir=DIR], [zsh completions directory]),
- [], [with_zshcompletiondir=${datadir}/zsh/site-functions])
-AM_CONDITIONAL(ENABLE_ZSH_COMPLETION, [test "$with_zshcompletiondir" != "no"])
-AX_NORMALIZE_PATH([with_zshcompletiondir])
-
-AC_ARG_WITH([rootprefix],
- AS_HELP_STRING([--with-rootprefix=DIR], [rootfs directory prefix for config files and kernel modules]),
- [], [with_rootprefix=${ac_default_prefix}])
-# --with-rootprefix= (empty) should default to "/" but AX_NORMALIZE_PATH
-# defaults those to ".", solve that here for now until we can find a suitable
-# fix for AX_NORMALIZE_PATH upstream at autoconf-archive.
-# See: https://github.com/systemd/systemd/issues/54
-if test "x${with_rootprefix}" = "x"; then
- with_rootprefix="/"
-fi
-AX_NORMALIZE_PATH([with_rootprefix])
-
-AC_ARG_WITH([rootlibdir],
- AS_HELP_STRING([--with-rootlibdir=DIR], [root directory for libraries necessary for boot]),
- [],
- [with_rootlibdir=${libdir}])
-AX_NORMALIZE_PATH([with_rootlibdir])
-
-AC_ARG_WITH([rootlibexecdir],
- AS_HELP_STRING([--with-rootlibexecdir=DIR], [Root directory for executables necessary for boot]),
- [],
- [with_rootlibexecdir=${libdir}/libexec])
-AX_NORMALIZE_PATH([with_rootlibexecdir])
-
-AC_ARG_WITH([pamlibdir],
- AS_HELP_STRING([--with-pamlibdir=DIR], [directory for PAM modules]),
- [],
- [with_pamlibdir=${with_rootlibdir}/security])
-AX_NORMALIZE_PATH([with_pamlibdir])
-
-AC_ARG_WITH([pamconfdir],
- AS_HELP_STRING([--with-pamconfdir=DIR], [directory for PAM configuration (pass no to disable installing)]),
- [],
- [with_pamconfdir=${sysconfdir}/pam.d])
-AM_CONDITIONAL(ENABLE_PAM_CONFIG, [test "$with_pamconfdir" != "no"])
-AX_NORMALIZE_PATH([with_pamconfdir])
-
-AC_ARG_ENABLE([split-usr],
- AS_HELP_STRING([--enable-split-usr], [assume that /bin, /sbin aren\'t symlinks into /usr]),
- [],
- [AS_IF([test "x${ac_default_prefix}" != "x${with_rootprefix}"], [
- enable_split_usr=yes
- ], [
- enable_split_usr=no
- ])])
-
-AS_IF([test "x${enable_split_usr}" = "xyes"], [
- AC_DEFINE(HAVE_SPLIT_USR, 1, [Define if /bin, /sbin aren't symlinks into /usr])
-])
-AM_CONDITIONAL(ENABLE_SPLIT_USR, [test "x${enable_split_usr}" = "xyes"])
-
-# work around intltool-update issues during 'make distcheck'
-AS_IF([test "x$0" != "x./configure"], [
- AC_SUBST([INTLTOOL_UPDATE], [/usr/bin/env true])
-])
-
-AC_ARG_ENABLE(tests,
- [AC_HELP_STRING([--disable-tests], [disable tests, or enable extra tests with =unsafe])],
- enable_tests=$enableval, enable_tests=yes)
-AM_CONDITIONAL(ENABLE_TESTS, [test x$enable_tests = xyes -o x$enable_tests = xunsafe])
-AM_CONDITIONAL(ENABLE_UNSAFE_TESTS, [test x$enable_tests = xunsafe])
-
-AC_ARG_ENABLE(debug,
- [AC_HELP_STRING([--enable-debug@<:@=LIST@:>@], [enable extra debugging (elogind,hashmap,mmap-cache)])],
- [if test "x$enableval" = "xyes"; then
- enableval="elogind,hashmap,mmap-cache"
- fi
- saved_ifs="$IFS"
- IFS="$IFS$PATH_SEPARATOR,"
- for name in $enableval; do
- case $name in
- elogind)
- enable_debug_elogind=yes
- ;;
- hashmap)
- enable_debug_hashmap=yes
- ;;
- mmap-cache)
- enable_debug_mmap_cache=yes
- ;;
- esac
- done
- IFS="$saved_ifs"],[])
-
-enable_debug=""
-AS_IF([test x$enable_debug_elogind = xyes], [
- AC_DEFINE(ENABLE_DEBUG_ELOGIND, 1, [Define if elogind debugging is to be enabled])
- enable_debug="elogind $enable_debug"
-])
-AS_IF([test x$enable_debug_hashmap = xyes], [
- AC_DEFINE(ENABLE_DEBUG_HASHMAP, 1, [Define if hashmap debugging is to be enabled])
- enable_debug="hashmap $enable_debug"
-])
-AS_IF([test x$enable_debug_mmap_cache = xyes], [
- AC_DEFINE(ENABLE_DEBUG_MMAP_CACHE, 1, [Define if mmap cache debugging is to be enabled])
- enable_debug="mmap-cache $enable_debug"
-])
-test -z "$enable_debug" && enable_debug="none"
-
-AC_SUBST([dbuspolicydir], [$with_dbuspolicydir])
-AC_SUBST([dbussystemservicedir], [$with_dbussystemservicedir])
-AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
-AC_SUBST([zshcompletiondir], [$with_zshcompletiondir])
-AC_SUBST([pamlibdir], [$with_pamlibdir])
-AC_SUBST([pamconfdir], [$with_pamconfdir])
-AC_SUBST([rootprefix], [$with_rootprefix])
-AC_SUBST([rootlibdir], [$with_rootlibdir])
-AC_SUBST([rootlibexecdir], [$with_rootlibexecdir])
-AC_SUBST([cgroup_controller], [$with_cgroupctrl])
-
-AC_CONFIG_FILES([
- Makefile
- po/Makefile.in
-])
-
-AC_OUTPUT
-AC_MSG_RESULT([
- $PACKAGE_NAME $PACKAGE_VERSION
-
- PAM: . . . . . . . . . . . . . . . ${have_pam}
- SELinux: . . . . . . . . . . . . . ${have_selinux}
- SMACK: . . . . . . . . . . . . . . ${have_smack}
- ACL: . . . . . . . . . . . . . . . ${have_acl}
- default cgroup hierarchy: . . . . ${DEFAULT_HIERARCHY}
- default KillUserProcesses setting: ${KILL_USER_PROCESSES}
- polkit: . . . . . . . . . . . . . ${have_polkit} (legacy pkla support: ${polkit_pkla})
- glib: . . . . . . . . . . . . . . ${have_glib}
- Python: . . . . . . . . . . . . . ${have_python}
- man pages: . . . . . . . . . . . . ${have_manpages}
- test coverage: . . . . . . . . . . ${have_coverage}
- Split /usr: . . . . . . . . . . . ${enable_split_usr}
- utmp/wtmp support: . . . . . . . . ${have_utmp}
- Link time optimization: . . . . . ${have_lto}
- extra debugging: . . . . . . . . . ${enable_debug}
- cgroup controller: . . . . . . . . ${with_cgroupctrl}
-
- prefix: . . . . . . . . . . . . . ${prefix}
- rootprefix: . . . . . . . . . . . ${with_rootprefix}
- sysconf dir: . . . . . . . . . . . ${sysconfdir}
- datarootdir: . . . . . . . . . . . ${datarootdir}
- includedir: . . . . . . . . . . . ${includedir}
- lib dir: . . . . . . . . . . . . . ${libdir}
- rootlib dir: . . . . . . . . . . . ${with_rootlibdir}
- rootlibexec dir: . . . . . . . . . ${with_rootlibexecdir}
- PAM modules dir: . . . . . . . . . ${with_pamlibdir}
- PAM configuration dir: . . . . . . ${with_pamconfdir}
- D-Bus policy dir: . . . . . . . . ${with_dbuspolicydir}
- D-Bus system dir: . . . . . . . . ${with_dbussystemservicedir}
- bash completions dir: . . . . . . ${with_bashcompletiondir}
- zsh completions dir: . . . . . . . ${with_zshcompletiondir}
- maximum system UID: . . . . . . . ${SYSTEM_UID_MAX}
- maximum system GID: . . . . . . . ${SYSTEM_GID_MAX}
-
- CFLAGS: . . . . . . . . . . . . . ${OUR_CFLAGS} ${CFLAGS}
- CPPFLAGS: . . . . . . . . . . . . ${OUR_CPPFLAGS} ${CPPFLAGS}
- LDFLAGS: . . . . . . . . . . . . . ${OUR_LDFLAGS} ${LDFLAGS}
-])
diff --git a/docs/Makefile b/docs/Makefile
deleted file mode 120000
index bd1047548..000000000
--- a/docs/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../src/Makefile \ No newline at end of file
diff --git a/docs/gtk-doc.make b/docs/gtk-doc.make
deleted file mode 120000
index 3ee6bad7f..000000000
--- a/docs/gtk-doc.make
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/gtk-doc/data/gtk-doc.notmpl.make \ No newline at end of file
diff --git a/m4/arch.m4 b/m4/arch.m4
deleted file mode 100644
index f17b4278e..000000000
--- a/m4/arch.m4
+++ /dev/null
@@ -1,13 +0,0 @@
-
-dnl SET_ARCH(ARCHNAME, PATTERN)
-dnl
-dnl Define ARCH_<archname> condition if the pattern match with the current
-dnl architecture
-dnl
-AC_DEFUN([SET_ARCH], [
- cpu_$1=false
- case "$host" in
- $2) cpu_$1=true ;;
- esac
- AM_CONDITIONAL(AS_TR_CPP(ARCH_$1), [test "x$cpu_$1" = xtrue])
-])
diff --git a/m4/attributes.m4 b/m4/attributes.m4
deleted file mode 100644
index 4b0fcdce3..000000000
--- a/m4/attributes.m4
+++ /dev/null
@@ -1,289 +0,0 @@
-dnl Macros to check the presence of generic (non-typed) symbols.
-dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
-dnl Copyright (c) 2006-2008 xine project
-dnl Copyright (c) 2012 Lucas De Marchi <lucas.de.marchi@gmail.com>
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2, or (at your option)
-dnl any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-dnl 02110-1301, USA.
-dnl
-dnl As a special exception, the copyright owners of the
-dnl macro gives unlimited permission to copy, distribute and modify the
-dnl configure scripts that are the output of Autoconf when processing the
-dnl Macro. You need not follow the terms of the GNU General Public
-dnl License when using or distributing such scripts, even though portions
-dnl of the text of the Macro appear in them. The GNU General Public
-dnl License (GPL) does govern all other use of the material that
-dnl constitutes the Autoconf Macro.
-dnl
-dnl This special exception to the GPL applies to versions of the
-dnl Autoconf Macro released by this project. When you make and
-dnl distribute a modified version of the Autoconf Macro, you may extend
-dnl this special exception to the GPL to apply to your modified version as
-dnl well.
-
-dnl Check if FLAG in ENV-VAR is supported by compiler and append it
-dnl to WHERE-TO-APPEND variable. Note that we invert -Wno-* checks to
-dnl -W* as gcc cannot test for negated warnings.
-dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG])
-
-AC_DEFUN([CC_CHECK_FLAG_APPEND], [
- AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2],
- AS_TR_SH([cc_cv_$2_$3]),
- [eval "AS_TR_SH([cc_save_$2])='${$2}'"
- eval "AS_TR_SH([$2])='-Werror `echo "$3" | sed 's/^-Wno-/-W/'`'"
- AC_LINK_IFELSE([AC_LANG_SOURCE([int main(void) { return 0; } ])],
- [eval "AS_TR_SH([cc_cv_$2_$3])='yes'"],
- [eval "AS_TR_SH([cc_cv_$2_$3])='no'"])
- eval "AS_TR_SH([$2])='$cc_save_$2'"])
-
- AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes],
- [eval "$1='${$1} $3'"])
-])
-
-dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2])
-AC_DEFUN([CC_CHECK_FLAGS_APPEND], [
- for flag in [$3]; do
- CC_CHECK_FLAG_APPEND([$1], [$2], $flag)
- done
-])
-
-dnl Check if the flag is supported by linker (cacheable)
-dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
-
-AC_DEFUN([CC_CHECK_LDFLAGS], [
- AC_CACHE_CHECK([if $CC supports $1 flag],
- AS_TR_SH([cc_cv_ldflags_$1]),
- [ac_save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $1"
- AC_LINK_IFELSE([int main() { return 1; }],
- [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
- [eval "AS_TR_SH([cc_cv_ldflags_$1])="])
- LDFLAGS="$ac_save_LDFLAGS"
- ])
-
- AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
- [$2], [$3])
-])
-
-dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for
-dnl the current linker to avoid undefined references in a shared object.
-AC_DEFUN([CC_NOUNDEFINED], [
- dnl We check $host for which systems to enable this for.
- AC_REQUIRE([AC_CANONICAL_HOST])
-
- case $host in
- dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
- dnl are requested, as different implementations are present; to avoid problems
- dnl use -Wl,-z,defs only for those platform not behaving this way.
- *-freebsd* | *-openbsd*) ;;
- *)
- dnl First of all check for the --no-undefined variant of GNU ld. This allows
- dnl for a much more readable command line, so that people can understand what
- dnl it does without going to look for what the heck -z defs does.
- for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do
- CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"])
- break
- done
- ;;
- esac
-
- AC_SUBST([LDFLAGS_NOUNDEFINED])
-])
-
-dnl Check for a -Werror flag or equivalent. -Werror is the GCC
-dnl and ICC flag that tells the compiler to treat all the warnings
-dnl as fatal. We usually need this option to make sure that some
-dnl constructs (like attributes) are not simply ignored.
-dnl
-dnl Other compilers don't support -Werror per se, but they support
-dnl an equivalent flag:
-dnl - Sun Studio compiler supports -errwarn=%all
-AC_DEFUN([CC_CHECK_WERROR], [
- AC_CACHE_CHECK(
- [for $CC way to treat warnings as errors],
- [cc_cv_werror],
- [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
- [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
- ])
-])
-
-AC_DEFUN([CC_CHECK_ATTRIBUTE], [
- AC_REQUIRE([CC_CHECK_WERROR])
- AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
- AS_TR_SH([cc_cv_attribute_$1]),
- [ac_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $cc_cv_werror"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])],
- [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
- [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
- CFLAGS="$ac_save_CFLAGS"
- ])
-
- AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
- [AC_DEFINE(
- AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
- [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
- )
- $4],
- [$5])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
- CC_CHECK_ATTRIBUTE(
- [constructor],,
- [void __attribute__((constructor)) ctor() { int a; }],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
- CC_CHECK_ATTRIBUTE(
- [format], [format(printf, n, n)],
- [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
- CC_CHECK_ATTRIBUTE(
- [format_arg], [format_arg(printf)],
- [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
- CC_CHECK_ATTRIBUTE(
- [visibility_$1], [visibility("$1")],
- [void __attribute__((visibility("$1"))) $1_function() { }],
- [$2], [$3])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
- CC_CHECK_ATTRIBUTE(
- [nonnull], [nonnull()],
- [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
- CC_CHECK_ATTRIBUTE(
- [unused], ,
- [void some_function(void *foo, __attribute__((unused)) void *bar);],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
- CC_CHECK_ATTRIBUTE(
- [sentinel], ,
- [void some_function(void *foo, ...) __attribute__((sentinel));],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
- CC_CHECK_ATTRIBUTE(
- [deprecated], ,
- [void some_function(void *foo, ...) __attribute__((deprecated));],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
- CC_CHECK_ATTRIBUTE(
- [alias], [weak, alias],
- [void other_function(void *foo) { }
- void some_function(void *foo) __attribute__((weak, alias("other_function")));],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
- CC_CHECK_ATTRIBUTE(
- [malloc], ,
- [void * __attribute__((malloc)) my_alloc(int n);],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_PACKED], [
- CC_CHECK_ATTRIBUTE(
- [packed], ,
- [struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_CONST], [
- CC_CHECK_ATTRIBUTE(
- [const], ,
- [int __attribute__((const)) twopow(int n) { return 1 << n; } ],
- [$1], [$2])
-])
-
-AC_DEFUN([CC_FLAG_VISIBILITY], [
- AC_REQUIRE([CC_CHECK_WERROR])
- AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
- [cc_cv_flag_visibility],
- [cc_flag_visibility_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $cc_cv_werror"
- CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
- cc_cv_flag_visibility='yes',
- cc_cv_flag_visibility='no')
- CFLAGS="$cc_flag_visibility_save_CFLAGS"])
-
- AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
- [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
- [Define this if the compiler supports the -fvisibility flag])
- $1],
- [$2])
-])
-
-AC_DEFUN([CC_FUNC_EXPECT], [
- AC_REQUIRE([CC_CHECK_WERROR])
- AC_CACHE_CHECK([if compiler has __builtin_expect function],
- [cc_cv_func_expect],
- [ac_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $cc_cv_werror"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE(
- [int some_function() {
- int a = 3;
- return (int)__builtin_expect(a, 3);
- }])],
- [cc_cv_func_expect=yes],
- [cc_cv_func_expect=no])
- CFLAGS="$ac_save_CFLAGS"
- ])
-
- AS_IF([test "x$cc_cv_func_expect" = "xyes"],
- [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
- [Define this if the compiler supports __builtin_expect() function])
- $1],
- [$2])
-])
-
-AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
- AC_REQUIRE([CC_CHECK_WERROR])
- AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
- [cc_cv_attribute_aligned],
- [ac_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $cc_cv_werror"
- for cc_attribute_align_try in 64 32 16 8 4 2; do
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
- int main() {
- static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
- return c;
- }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
- done
- CFLAGS="$ac_save_CFLAGS"
- ])
-
- if test "x$cc_cv_attribute_aligned" != "x"; then
- AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
- [Define the highest alignment supported])
- fi
-])
diff --git a/m4/ax_normalize_path.m4 b/m4/ax_normalize_path.m4
deleted file mode 100644
index e8f9973e3..000000000
--- a/m4/ax_normalize_path.m4
+++ /dev/null
@@ -1,115 +0,0 @@
-# ===========================================================================
-# http://www.gnu.org/software/autoconf-archive/ax_normalize_path.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-# AX_NORMALIZE_PATH(VARNAME, [REFERENCE_STRING])
-#
-# DESCRIPTION
-#
-# Perform some cleanups on the value of $VARNAME (interpreted as a path):
-#
-# - empty paths are changed to '.'
-# - trailing slashes are removed
-# - repeated slashes are squeezed except a leading doubled slash '//'
-# (which might indicate a networked disk on some OS).
-#
-# REFERENCE_STRING is used to turn '/' into '\' and vice-versa: if
-# REFERENCE_STRING contains some backslashes, all slashes and backslashes
-# are turned into backslashes, otherwise they are all turned into slashes.
-#
-# This makes processing of DOS filenames quite easier, because you can
-# turn a filename to the Unix notation, make your processing, and turn it
-# back to original notation.
-#
-# filename='A:\FOO\\BAR\'
-# old_filename="$filename"
-# # Switch to the unix notation
-# AX_NORMALIZE_PATH([filename], ["/"])
-# # now we have $filename = 'A:/FOO/BAR' and we can process it as if
-# # it was a Unix path. For instance let's say that you want
-# # to append '/subpath':
-# filename="$filename/subpath"
-# # finally switch back to the original notation
-# AX_NORMALIZE_PATH([filename], ["$old_filename"])
-# # now $filename equals to 'A:\FOO\BAR\subpath'
-#
-# One good reason to make all path processing with the unix convention is
-# that backslashes have a special meaning in many cases. For instance
-#
-# expr 'A:\FOO' : 'A:\Foo'
-#
-# will return 0 because the second argument is a regex in which
-# backslashes have to be backslashed. In other words, to have the two
-# strings to match you should write this instead:
-#
-# expr 'A:\Foo' : 'A:\\Foo'
-#
-# Such behavior makes DOS filenames extremely unpleasant to work with. So
-# temporary turn your paths to the Unix notation, and revert them to the
-# original notation after the processing. See the macro
-# AX_COMPUTE_RELATIVE_PATHS for a concrete example of this.
-#
-# REFERENCE_STRING defaults to $VARIABLE, this means that slashes will be
-# converted to backslashes if $VARIABLE already contains some backslashes
-# (see $thirddir below).
-#
-# firstdir='/usr/local//share'
-# seconddir='C:\Program Files\\'
-# thirddir='C:\home/usr/'
-# AX_NORMALIZE_PATH([firstdir])
-# AX_NORMALIZE_PATH([seconddir])
-# AX_NORMALIZE_PATH([thirddir])
-# # $firstdir = '/usr/local/share'
-# # $seconddir = 'C:\Program Files'
-# # $thirddir = 'C:\home\usr'
-#
-# LICENSE
-#
-# Copyright (c) 2008 Alexandre Duret-Lutz <adl@gnu.org>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2 of the License, or (at your
-# option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-# As a special exception, the respective Autoconf Macro's copyright owner
-# gives unlimited permission to copy, distribute and modify the configure
-# scripts that are the output of Autoconf when processing the Macro. You
-# need not follow the terms of the GNU General Public License when using
-# or distributing such scripts, even though portions of the text of the
-# Macro appear in them. The GNU General Public License (GPL) does govern
-# all other use of the material that constitutes the Autoconf Macro.
-#
-# This special exception to the GPL applies to versions of the Autoconf
-# Macro released by the Autoconf Archive. When you make and distribute a
-# modified version of the Autoconf Macro, you may extend this special
-# exception to the GPL to apply to your modified version as well.
-
-#serial 5
-
-AU_ALIAS([ADL_NORMALIZE_PATH], [AX_NORMALIZE_PATH])
-AC_DEFUN([AX_NORMALIZE_PATH],
-[case ":[$]$1:" in
-# change empty paths to '.'
- ::) $1='.' ;;
-# strip trailing slashes
- :*[[\\/]]:) $1=`echo "[$]$1" | sed 's,[[\\/]]*[$],,'` ;;
- :*:) ;;
-esac
-# squeze repeated slashes
-case ifelse($2,,"[$]$1",$2) in
-# if the path contains any backslashes, turn slashes into backslashes
- *\\*) $1=`echo "[$]$1" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
-# if the path contains slashes, also turn backslashes into slashes
- *) $1=`echo "[$]$1" | sed 's,\(.\)[[\\/]][[\\/]]*,\1/,g'` ;;
-esac])
diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4
deleted file mode 100644
index 36755432b..000000000
--- a/m4/gtk-doc.m4
+++ /dev/null
@@ -1,88 +0,0 @@
-dnl -*- mode: autoconf -*-
-
-# serial 2
-
-dnl Usage:
-dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
-AC_DEFUN([GTK_DOC_CHECK],
-[
- AC_REQUIRE([PKG_PROG_PKG_CONFIG])
- AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
- AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
-
- ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
- AC_MSG_CHECKING([for gtk-doc])
- PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
- AC_MSG_RESULT($have_gtk_doc)
-
- if test "$have_gtk_doc" = "no"; then
- AC_MSG_WARN([
- You will not be able to create source packages with 'make dist'
- because $gtk_doc_requires is not found.])
- fi
-
- dnl check for tools we added during development
- dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that
- dnl may not be writable by the user. Currently, automake requires that the
- dnl test name must end in '.test'.
- dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638
- AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test])
- AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check])
- AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
- AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
-
- dnl for overriding the documentation installation directory
- AC_ARG_WITH([html-dir],
- AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
- [with_html_dir='${datadir}/gtk-doc/html'])
- HTML_DIR="$with_html_dir"
- AC_SUBST([HTML_DIR])
-
- dnl enable/disable documentation building
- AC_ARG_ENABLE([gtk-doc],
- AS_HELP_STRING([--enable-gtk-doc],
- [use gtk-doc to build documentation [[default=no]]]),,
- [enable_gtk_doc=no])
-
- AC_MSG_CHECKING([whether to build gtk-doc documentation])
- AC_MSG_RESULT($enable_gtk_doc)
-
- if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
- AC_MSG_ERROR([
- You must have $gtk_doc_requires installed to build documentation for
- $PACKAGE_NAME. Please install gtk-doc or disable building the
- documentation by adding '--disable-gtk-doc' to '[$]0'.])
- fi
-
- dnl don't check for glib if we build glib
- if test "x$PACKAGE_NAME" != "xglib"; then
- dnl don't fail if someone does not have glib
- PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:])
- fi
-
- dnl enable/disable output formats
- AC_ARG_ENABLE([gtk-doc-html],
- AS_HELP_STRING([--enable-gtk-doc-html],
- [build documentation in html format [[default=yes]]]),,
- [enable_gtk_doc_html=yes])
- AC_ARG_ENABLE([gtk-doc-pdf],
- AS_HELP_STRING([--enable-gtk-doc-pdf],
- [build documentation in pdf format [[default=no]]]),,
- [enable_gtk_doc_pdf=no])
-
- if test -z "$GTKDOC_MKPDF"; then
- enable_gtk_doc_pdf=no
- fi
-
- if test -z "$AM_DEFAULT_VERBOSITY"; then
- AM_DEFAULT_VERBOSITY=1
- fi
- AC_SUBST([AM_DEFAULT_VERBOSITY])
-
- AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes])
- AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
- AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
- AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
- AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
- AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
-])
diff --git a/man/Makefile b/man/Makefile
deleted file mode 120000
index bd1047548..000000000
--- a/man/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../src/Makefile \ No newline at end of file
diff --git a/man/meson.build b/man/meson.build
new file mode 100644
index 000000000..8fdb512f6
--- /dev/null
+++ b/man/meson.build
@@ -0,0 +1,218 @@
+# This is lame, I know, but meson has no other include mechanism
+subdir('rules')
+
+want_man = get_option('man')
+want_html = get_option('html')
+xsltproc = find_program('xsltproc',
+ required : want_man == 'true' or want_html == 'true')
+want_man = want_man != 'false' and xsltproc.found()
+want_html = want_html != 'false' and xsltproc.found()
+
+xsltproc_flags = [
+ '--nonet',
+ '--xinclude',
+ '--stringparam', 'man.output.quietly', '1',
+ '--stringparam', 'funcsynopsis.style', 'ansi',
+ '--stringparam', 'man.authors.section.enabled', '0',
+ '--stringparam', 'man.copyright.section.enabled', '0',
+ '--stringparam', 'elogind.version', '@0@'.format(meson.project_version()),
+ '--path',
+ '@0@:@1@'.format(meson.current_build_dir(), meson.current_source_dir())]
+
+custom_man_xsl = files('custom-man.xsl')
+custom_html_xsl = files('custom-html.xsl')
+xslt_cmd = [xsltproc, '-o', '@OUTPUT0@'] + xsltproc_flags
+
+#if 0 /// UNNEEDED by elogind
+# custom_entities_ent = configure_file(
+# input : 'custom-entities.ent.in',
+# output : 'custom-entities.ent',
+# configuration : conf)
+#endif // 0
+
+man_pages = []
+html_pages = []
+source_xml_files = []
+foreach tuple : manpages
+ stem = tuple[0]
+ section = tuple[1]
+ aliases = tuple[2]
+ condition = tuple[3]
+
+ xml = stem + '.xml'
+ html = stem + '.html'
+ man = stem + '.' + section
+
+ manaliases = []
+ htmlaliases = []
+ foreach alias : aliases
+ manaliases += [alias + '.' + section]
+ htmlaliases += [alias + '.html']
+ endforeach
+
+ mandirn = join_paths(get_option('mandir'), 'man' + section)
+
+ if condition == '' or conf.get(condition, false)
+ p1 = custom_target(
+ man,
+ input : xml,
+ output : [man] + manaliases,
+ command : xslt_cmd + [custom_man_xsl, '@INPUT@'],
+#if 0 /// UNNEEDED by elogind
+# depend_files : custom_entities_ent,
+#endif // 0
+ install : want_man,
+ install_dir : mandirn)
+ man_pages += [p1]
+
+ p2 = []
+ foreach htmlalias : htmlaliases
+ link = custom_target(
+ htmlalias,
+ input : p2,
+ output : htmlalias,
+ command : ['ln', '-fs', html, '@OUTPUT@'])
+ if want_html
+ dst = join_paths(docdir, 'html', htmlalias)
+ cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst)
+ meson.add_install_script('sh', '-c', cmd)
+ p2 += [link]
+ endif
+ html_pages += [link]
+ endforeach
+
+ p3 = custom_target(
+ html,
+ input : xml,
+ output : html,
+ command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
+#if 0 /// UNNEEDED by elogind
+# depend_files : custom_entities_ent,
+#endif // 0
+ depends : p2,
+ install : want_html,
+ install_dir : join_paths(docdir, 'html'))
+ html_pages += [p3]
+
+ source_xml_files += files(tuple[0] + '.xml')
+ else
+ message('Skipping @0@.@1@ because @2@ is false'.format(stem, section, condition))
+ endif
+endforeach
+
+############################################################
+
+have_lxml = run_command(xml_helper_py).returncode() == 0
+if not have_lxml
+ message('python-lxml not available, not making man page indices')
+endif
+
+elogind_directives_xml = custom_target(
+ 'elogind.directives.xml',
+ input : source_xml_files,
+ output : 'elogind.directives.xml',
+ command : [make_directive_index_py, '@OUTPUT@'] + source_xml_files)
+
+nonindex_xml_files = source_xml_files + [elogind_directives_xml]
+elogind_index_xml = custom_target(
+ 'elogind.index.xml',
+ input : nonindex_xml_files,
+ output : 'elogind.index.xml',
+ command : [make_man_index_py, '@OUTPUT@'] + nonindex_xml_files)
+
+foreach tuple : [['elogind.directives', '7', elogind_directives_xml],
+ ['elogind.index', '7', elogind_index_xml]]
+ stem = tuple[0]
+ section = tuple[1]
+ xml = tuple[2]
+
+ html = stem + '.html'
+ man = stem + '.' + section
+
+ mandirn = join_paths(get_option('mandir'), 'man' + section)
+
+ p1 = custom_target(
+ man,
+ input : xml,
+ output : man,
+ command : xslt_cmd + [custom_man_xsl, '@INPUT@'],
+ install : want_man and have_lxml,
+ install_dir : mandirn)
+ man_pages += [p1]
+
+ p2 = []
+ if html == 'elogind.index.html'
+ htmlalias = 'index.html'
+ link = custom_target(
+ htmlalias,
+ input : p2,
+ output : htmlalias,
+ command : ['ln', '-fs', html, '@OUTPUT@'])
+ if want_html
+ dst = join_paths(docdir, 'html', htmlalias)
+ cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst)
+ meson.add_install_script('sh', '-c', cmd)
+ p2 += [link]
+ endif
+ html_pages += [link]
+ endif
+
+ p3 = custom_target(
+ html,
+ input : xml,
+ output : html,
+ command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
+#if 0 /// UNNEEDED by elogind
+# depend_files : custom_entities_ent,
+#endif // 0
+ depends : p2,
+ install : want_html and have_lxml,
+ install_dir : join_paths(docdir, 'html'))
+ html_pages += [p3]
+endforeach
+
+# cannot use run_target until https://github.com/mesonbuild/meson/issues/1644 is resolved
+man = custom_target(
+ 'man',
+ output : 'man',
+ depends : man_pages,
+ command : ['echo'])
+
+html = run_target(
+ 'html',
+ depends : html_pages,
+ output : 'html',
+ command : ['echo'])
+
+#if 0 /// UNNEEDED in elogind
+# run_target(
+# 'doc-sync',
+# depends : man_pages + html_pages,
+# command : ['rsync', '-rlv',
+# '--delete-excluded',
+# '--include=man',
+# '--include=*.html',
+# '--exclude=*',
+# '--omit-dir-times',
+# meson.current_build_dir(),
+# get_option('www-target')])
+#endif // 0
+
+############################################################
+
+if git.found()
+ run_target(
+ 'update-man-rules',
+ # slightly strange syntax because of
+ # https://github.com/mesonbuild/meson/issues/1643
+ # and https://github.com/mesonbuild/meson/issues/1512
+ command : ['sh', '-c',
+ 'cd @0@ && '.format(meson.build_root()) +
+ 'python3 @0@/tools/make-man-rules.py `git ls-files ":/man/*.xml"` >t && '.format(meson.source_root()) +
+ 'mv t @0@/rules/meson.build'.format(meson.current_source_dir())],
+#if 0 /// UNNEEDED by elogind
+# depend_files : custom_entities_ent)
+#else
+ )
+#endif // 0
+endif
diff --git a/man/rules/meson.build b/man/rules/meson.build
new file mode 100644
index 000000000..605bc35dd
--- /dev/null
+++ b/man/rules/meson.build
@@ -0,0 +1,5 @@
+# Do not edit. Generated by make-man-rules.py.
+manpages = [
+
+]
+# Really, do not edit.
diff --git a/meson.build b/meson.build
new file mode 100644
index 000000000..e9f2e48fd
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,2847 @@
+project('elogind', 'c',
+ version : '234',
+ license : 'LGPLv2+',
+ default_options: [
+ 'c_std=gnu99',
+ 'prefix=/usr',
+ 'sysconfdir=/etc',
+ 'localstatedir=/var',
+ ],
+ meson_version : '>= 0.40',
+ )
+
+# 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
+# set. Ugh, ugh, ugh!
+conf = configuration_data()
+conf.set_quoted('PACKAGE_STRING', meson.project_name() + ' ' + meson.project_version())
+conf.set_quoted('PACKAGE_VERSION', meson.project_version())
+
+substs = configuration_data()
+substs.set('PACKAGE_URL', 'https://github.com/elogind/elogind')
+substs.set('PACKAGE_VERSION', meson.project_version())
+
+m4_defines = []
+
+#####################################################################
+#if 0 /// elogind does not need this
+# elogind Note: We use precompiler masks for two reasons:
+# 1) The masking is consistent with the sources
+# 2) The git patch creator we use for preparing upstream patches
+# manipulates commits to not take those masks out. Therefore
+# it can be used to add commits updating the meson files, too.
+# # 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
+#endif // 0
+#####################################################################
+
+rootprefixdir = get_option('rootprefix')
+if get_option('split-usr')
+ conf.set('HAVE_SPLIT_USR', true)
+ rootprefixdir = rootprefixdir != '' ? rootprefixdir : '/'
+else
+ rootprefixdir = rootprefixdir != '' ? rootprefixdir : '/usr'
+endif
+
+#if 0 /// UNNEEDED by elogind
+# sysvinit_path = get_option('sysvinit-path')
+# sysvrcnd_path = get_option('sysvrcnd-path')
+# if sysvinit_path != '' or sysvrcnd_path != ''
+# conf.set('HAVE_SYSV_COMPAT', true,
+# description : 'SysV init scripts and rcN.d links are supported')
+# m4_defines += ['-DHAVE_SYSV_COMPAT']
+# endif
+#endif // 0
+
+# join_paths ignore the preceding arguments if an absolute component is
+# encountered, so this should canonicalize various paths when they are
+# absolute or relative.
+prefixdir = get_option('prefix')
+if not prefixdir.startswith('/')
+ error('Prefix is not absolute: "@0@"'.format(prefixdir))
+endif
+bindir = join_paths(prefixdir, get_option('bindir'))
+libdir = join_paths(prefixdir, get_option('libdir'))
+sysconfdir = join_paths(prefixdir, get_option('sysconfdir'))
+includedir = join_paths(prefixdir, get_option('includedir'))
+datadir = join_paths(prefixdir, get_option('datadir'))
+localstatedir = join_paths('/', get_option('localstatedir'))
+
+rootbindir = join_paths(rootprefixdir, 'bin')
+#if 0 /// elogind has a different default
+# rootlibexecdir = join_paths(rootprefixdir, 'lib/systemd')
+#else
+rootlibexecdir = get_option('rootlibexecdir')
+rootlibexecdir = rootlibexecdir != '' ? rootlibexecdir : join_paths(rootprefixdir, 'lib/libexec')
+#endif // 0
+
+rootlibdir = get_option('rootlibdir')
+if rootlibdir == ''
+ rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1])
+endif
+
+# Dirs of external packages
+pkgconfigdatadir = join_paths(datadir, 'pkgconfig')
+pkgconfiglibdir = join_paths(libdir, 'pkgconfig')
+polkitpolicydir = join_paths(datadir, 'polkit-1/actions')
+polkitrulesdir = join_paths(datadir, 'polkit-1/rules.d')
+polkitpkladir = join_paths(localstatedir, 'lib/polkit-1/localauthority/10-vendor.d')
+varlogdir = join_paths(localstatedir, 'log')
+#if 0 /// UNNEEDED by elogind
+# xinitrcdir = join_paths(sysconfdir, 'X11/xinit/xinitrc.d')
+# rpmmacrosdir = get_option('rpmmacrosdir')
+#endif // 0
+
+# Our own paths
+#if 0 /// elogind has a bit different layout and does not need all of theses
+# pkgdatadir = join_paths(datadir, 'systemd')
+# environmentdir = join_paths(prefixdir, 'lib/environment.d')
+# pkgsysconfdir = join_paths(sysconfdir, 'systemd')
+# userunitdir = join_paths(prefixdir, 'lib/systemd/user')
+# userpresetdir = join_paths(prefixdir, 'lib/systemd/user-preset')
+# tmpfilesdir = join_paths(prefixdir, 'lib/tmpfiles.d')
+# sysusersdir = join_paths(prefixdir, 'lib/sysusers.d')
+# sysctldir = join_paths(prefixdir, 'lib/sysctl.d')
+# binfmtdir = join_paths(prefixdir, 'lib/binfmt.d')
+# modulesloaddir = join_paths(prefixdir, 'lib/modules-load.d')
+# networkdir = join_paths(rootprefixdir, 'lib/systemd/network')
+# pkgincludedir = join_paths(includedir, 'systemd')
+# systemgeneratordir = join_paths(rootlibexecdir, 'system-generators')
+# usergeneratordir = join_paths(prefixdir, 'lib/systemd/user-generators')
+# systemenvgeneratordir = join_paths(prefixdir, 'lib/systemd/system-environment-generators')
+# userenvgeneratordir = join_paths(prefixdir, 'lib/systemd/user-environment-generators')
+# systemshutdowndir = join_paths(rootlibexecdir, 'system-shutdown')
+# systemsleepdir = join_paths(rootlibexecdir, 'system-sleep')
+# systemunitdir = join_paths(rootprefixdir, 'lib/systemd/system')
+# systempresetdir = join_paths(rootprefixdir, 'lib/systemd/system-preset')
+# udevlibexecdir = join_paths(rootprefixdir, 'lib/udev')
+# udevhomedir = udevlibexecdir
+# udevrulesdir = join_paths(udevlibexecdir, 'rules.d')
+# udevhwdbdir = join_paths(udevlibexecdir, 'hwdb.d')
+# catalogdir = join_paths(prefixdir, 'lib/systemd/catalog')
+# kernelinstalldir = join_paths(prefixdir, 'lib/kernel/install.d')
+# factorydir = join_paths(datadir, 'factory')
+# docdir = join_paths(datadir, 'doc/systemd')
+# bootlibdir = join_paths(prefixdir, 'lib/systemd/boot/efi')
+# testsdir = join_paths(prefixdir, 'lib/systemd/tests')
+# systemdstatedir = join_paths(localstatedir, 'lib/systemd')
+# catalogstatedir = join_paths(systemdstatedir, 'catalog')
+# randomseeddir = join_paths(localstatedir, 'lib/systemd')
+#else
+pkgdatadir = join_paths(datadir, 'elogind')
+pkgsysconfdir = join_paths(sysconfdir, 'elogind')
+pkgincludedir = join_paths(includedir, 'elogind/systemd')
+systemshutdowndir = join_paths(rootlibexecdir, 'system-shutdown')
+systemsleepdir = join_paths(rootlibexecdir, 'system-sleep')
+
+# in elogind, udev is external and hus configurable
+udevlibexecdir = get_option('udevbindir')
+udevlibexecdir = udevlibexecdir != '' ? udevlibexecdir : join_paths(rootprefixdir, 'lib/udev')
+udevrulesdir = get_option('udevrulesdir')
+udevrulesdir = udevrulesdir != '' ? udevrulesdir : join_paths(udevlibexecdir, 'rules.d')
+udevhomedir = udevlibexecdir
+factorydir = join_paths(datadir, 'factory')
+docdir = '-'.join([join_paths(datadir, 'doc/elogind'),
+ meson.project_version()])
+testsdir = join_paths(prefixdir, 'lib/elogind/tests')
+systemdstatedir = join_paths(localstatedir, 'lib/elogind')
+randomseeddir = join_paths(localstatedir, 'lib/elogind')
+#endif // 0
+
+dbuspolicydir = get_option('dbuspolicydir')
+if dbuspolicydir == ''
+ dbuspolicydir = join_paths(datadir, 'dbus-1/system.d')
+endif
+
+dbussessionservicedir = get_option('dbussessionservicedir')
+if dbussessionservicedir == ''
+ dbussessionservicedir = join_paths(datadir, 'dbus-1/services')
+endif
+
+dbussystemservicedir = get_option('dbussystemservicedir')
+if dbussystemservicedir == ''
+ dbussystemservicedir = join_paths(datadir, 'dbus-1/system-services')
+endif
+
+pamlibdir = get_option('pamlibdir')
+if pamlibdir == ''
+ pamlibdir = join_paths(rootlibdir, 'security')
+endif
+
+pamconfdir = get_option('pamconfdir')
+if pamconfdir == ''
+ pamconfdir = join_paths(sysconfdir, 'pam.d')
+endif
+
+conf.set_quoted('PKGSYSCONFDIR', pkgsysconfdir)
+conf.set_quoted('SYSTEM_CONFIG_UNIT_PATH', join_paths(pkgsysconfdir, 'system'))
+#if 0 /// UNNEEDED by elogind
+# 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_SCRIPT_PATH_STOP', get_option('halt-local'))
+# conf.set_quoted('USER_CONFIG_UNIT_PATH', join_paths(pkgsysconfdir, 'user'))
+# conf.set_quoted('USER_DATA_UNIT_PATH', userunitdir)
+# conf.set_quoted('CERTIFICATE_ROOT', get_option('certificate-root'))
+# conf.set_quoted('CATALOG_DATABASE', join_paths(catalogstatedir, 'database'))
+#endif // 0
+# conf.set_quoted('SYSTEMD_CGROUP_AGENT_PATH', join_paths(rootlibexecdir, 'systemd-cgroups-agent'))
+# conf.set_quoted('SYSTEMD_BINARY_PATH', join_paths(rootlibexecdir, 'systemd'))
+# conf.set_quoted('SYSTEMD_FSCK_PATH', join_paths(rootlibexecdir, 'systemd-fsck'))
+# conf.set_quoted('SYSTEMD_SHUTDOWN_BINARY_PATH', join_paths(rootlibexecdir, 'systemd-shutdown'))
+# conf.set_quoted('SYSTEMD_SLEEP_BINARY_PATH', join_paths(rootlibexecdir, 'systemd-sleep'))
+# conf.set_quoted('SYSTEMCTL_BINARY_PATH', join_paths(rootbindir, 'systemctl'))
+# 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'))
+#else
+conf.set_quoted('SYSTEMD_CGROUP_AGENT_PATH', join_paths(rootlibexecdir, 'elogind-cgroups-agent'))
+conf.set_quoted('SYSTEMD_BINARY_PATH', join_paths(rootlibexecdir, 'elogind'))
+#endif // 0
+conf.set_quoted('ROOTPREFIX', rootprefixdir)
+#if 0 /// UNNEEDED by elogind
+# 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'))
+# conf.set_quoted('SYSTEM_GENERATOR_PATH', systemgeneratordir)
+# conf.set_quoted('USER_GENERATOR_PATH', usergeneratordir)
+# conf.set_quoted('SYSTEM_ENV_GENERATOR_PATH', systemenvgeneratordir)
+# conf.set_quoted('USER_ENV_GENERATOR_PATH', userenvgeneratordir)
+#endif // 0
+conf.set_quoted('SYSTEM_SHUTDOWN_PATH', systemshutdowndir)
+conf.set_quoted('SYSTEM_SLEEP_PATH', systemsleepdir)
+#if 0 /// UNNEEDED by elogind
+# conf.set_quoted('SYSTEMD_KBD_MODEL_MAP', join_paths(pkgdatadir, 'kbd-model-map'))
+# conf.set_quoted('SYSTEMD_LANGUAGE_FALLBACK_MAP', join_paths(pkgdatadir, 'language-fallback-map'))
+#endif // 0
+conf.set_quoted('UDEVLIBEXECDIR', udevlibexecdir)
+conf.set_quoted('POLKIT_AGENT_BINARY_PATH', join_paths(bindir, 'pkttyagent'))
+conf.set_quoted('LIBDIR', libdir)
+conf.set_quoted('ROOTLIBDIR', rootlibdir)
+conf.set_quoted('ROOTLIBEXECDIR', rootlibexecdir)
+#if 0 /// UNNEEDED by elogind
+# conf.set_quoted('BOOTLIBDIR', bootlibdir)
+# conf.set_quoted('SYSTEMD_PULL_PATH', join_paths(rootlibexecdir, 'systemd-pull'))
+# conf.set_quoted('SYSTEMD_IMPORT_PATH', join_paths(rootlibexecdir, 'systemd-import'))
+# conf.set_quoted('SYSTEMD_EXPORT_PATH', join_paths(rootlibexecdir, 'systemd-export'))
+# conf.set_quoted('VENDOR_KEYRING_PATH', join_paths(rootlibexecdir, 'import-pubring.gpg'))
+# conf.set_quoted('USER_KEYRING_PATH', join_paths(pkgsysconfdir, 'import-pubring.gpg'))
+# conf.set_quoted('DOCUMENT_ROOT', join_paths(pkgdatadir, 'gatewayd'))
+#endif // 0
+
+conf.set_quoted('ABS_BUILD_DIR', meson.build_root())
+conf.set_quoted('ABS_SRC_DIR', meson.source_root())
+
+substs.set('prefix', prefixdir)
+substs.set('exec_prefix', prefixdir)
+substs.set('libdir', libdir)
+substs.set('rootlibdir', rootlibdir)
+substs.set('includedir', includedir)
+substs.set('pkgsysconfdir', pkgsysconfdir)
+substs.set('bindir', bindir)
+substs.set('rootbindir', rootbindir)
+substs.set('rootlibexecdir', rootlibexecdir)
+#if 0 /// UNNEEDED by elogind
+# substs.set('systemunitdir', systemunitdir)
+# substs.set('userunitdir', userunitdir)
+# substs.set('systempresetdir', systempresetdir)
+# substs.set('userpresetdir', userpresetdir)
+# substs.set('udevhwdbdir', udevhwdbdir)
+#endif // 0
+substs.set('udevrulesdir', udevrulesdir)
+substs.set('udevlibexecdir', udevlibexecdir)
+#if 0 /// UNNEEDED by elogind
+# 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('systemgeneratordir', systemgeneratordir)
+# substs.set('usergeneratordir', usergeneratordir)
+# substs.set('systemenvgeneratordir', systemenvgeneratordir)
+# substs.set('userenvgeneratordir', userenvgeneratordir)
+#endif // 0
+substs.set('systemshutdowndir', systemshutdowndir)
+substs.set('systemsleepdir', systemsleepdir)
+substs.set('VARLOGDIR', varlogdir)
+#if 0 /// UNNEEDED by elogind
+# substs.set('CERTIFICATEROOT', get_option('certificate-root'))
+# substs.set('SYSTEMCTL', join_paths(rootbindir, 'systemctl'))
+# 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_SCRIPT_PATH_STOP', get_option('halt-local'))
+#endif // 0
+
+#####################################################################
+
+cc = meson.get_compiler('c')
+pkgconfig = import('pkgconfig')
+check_compilation_sh = find_program('tools/meson-check-compilation.sh')
+
+cxx = find_program('c++', required : false)
+if cxx.found()
+ # Used only for tests
+ add_languages('cpp')
+endif
+
+foreach arg : ['-Wextra',
+ '-Wundef',
+ '-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',
+ '-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',
+ '-fPIE',
+ '--param=ssp-buffer-size=4',
+ ]
+ if cc.has_argument(arg)
+ add_project_arguments(arg, language : 'c')
+ endif
+endforeach
+
+# "negative" arguments: gcc on purpose does not return an error for "-Wno-"
+# arguments, just emits a warnings. So test for the "positive" version instead.
+foreach arg : ['unused-parameter',
+ 'missing-field-initializers',
+ 'unused-result',
+ 'format-signedness']
+ if cc.has_argument('-W' + arg)
+ add_project_arguments('-Wno-' + arg, language : 'c')
+ endif
+endforeach
+
+if cc.compiles('
+ #include <time.h>
+ #include <inttypes.h>
+ typedef uint64_t usec_t;
+ usec_t now(clockid_t clock);
+ int main(void) {
+ struct timespec now;
+ return 0;
+ }
+', name : '-Werror=shadow with local shadowing')
+ 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,
+ name : '@0@ is supported'.format(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',
+ ]
+
+ 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
+
+if get_option('buildtype') != 'debug'
+ foreach arg : ['-ffunction-sections',
+ '-fdata-sections']
+ if cc.has_argument(arg,
+ name : '@0@ is supported'.format(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'
+
+#####################################################################
+# compilation result tests
+
+conf.set('_GNU_SOURCE', true)
+conf.set('__SANE_USERSPACE_TYPES__', true)
+
+conf.set('SIZEOF_PID_T', cc.sizeof('pid_t', prefix : '#include <sys/types.h>'))
+conf.set('SIZEOF_UID_T', cc.sizeof('uid_t', prefix : '#include <sys/types.h>'))
+conf.set('SIZEOF_GID_T', cc.sizeof('gid_t', prefix : '#include <sys/types.h>'))
+conf.set('SIZEOF_DEV_T', cc.sizeof('dev_t', prefix : '#include <sys/types.h>'))
+conf.set('SIZEOF_INO_T', cc.sizeof('ino_t', prefix : '#include <sys/types.h>'))
+conf.set('SIZEOF_TIME_T', cc.sizeof('time_t', prefix : '#include <sys/time.h>'))
+conf.set('SIZEOF_RLIM_T', cc.sizeof('rlim_t', prefix : '#include <sys/resource.h>'))
+
+decl_headers = '''
+#include <uchar.h>
+#include <linux/ethtool.h>
+'''
+# FIXME: key_serial_t is only defined in keyutils.h, this is bound to fail
+
+foreach decl : ['char16_t',
+ 'char32_t',
+ 'key_serial_t',
+ 'struct ethtool_link_settings',
+ ]
+
+ # We get -1 if the size cannot be determined
+ have = cc.sizeof(decl, prefix : decl_headers) > 0
+ conf.set('HAVE_' + decl.underscorify().to_upper(), have)
+endforeach
+
+foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'],
+ ['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'],
+ ['IFLA_VRF_TABLE', 'linux/if_link.h'],
+ ['IFLA_MACVLAN_FLAGS', 'linux/if_link.h'],
+ ['IFLA_IPVLAN_MODE', 'linux/if_link.h'],
+ ['IFLA_PHYS_PORT_ID', 'linux/if_link.h'],
+ ['IFLA_BOND_AD_INFO', 'linux/if_link.h'],
+ ['IFLA_VLAN_PROTOCOL', 'linux/if_link.h'],
+ ['IFLA_VXLAN_REMCSUM_NOPARTIAL', 'linux/if_link.h'],
+ ['IFLA_VXLAN_GPE', 'linux/if_link.h'],
+ ['IFLA_GENEVE_LABEL', 'linux/if_link.h'],
+ # if_tunnel.h is buggy and cannot be included on its own
+ ['IFLA_VTI_REMOTE', 'linux/if_tunnel.h', '#include <net/if.h>'],
+ ['IFLA_IPTUN_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
+ ['IFLA_GRE_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
+ ['IFLA_BRIDGE_VLAN_INFO', 'linux/if_bridge.h'],
+ ['IFLA_BRPORT_PROXYARP', 'linux/if_link.h'],
+ ['IFLA_BRPORT_LEARNING_SYNC', 'linux/if_link.h'],
+ ['IFLA_BR_VLAN_DEFAULT_PVID', 'linux/if_link.h'],
+ ['NDA_IFINDEX', 'linux/neighbour.h'],
+ ['IFA_FLAGS', 'linux/if_addr.h'],
+ ['LO_FLAGS_PARTSCAN', 'linux/loop.h'],
+ ]
+ prefix = decl.length() > 2 ? decl[2] : ''
+ have = cc.has_header_symbol(decl[1], decl[0], prefix : prefix)
+ conf.set10('HAVE_DECL_' + decl[0], have)
+endforeach
+
+skip = false
+foreach ident : ['secure_getenv', '__secure_getenv']
+ if not skip and cc.has_function(ident)
+ conf.set('HAVE_' + ident.to_upper(), true)
+ skip = true
+ endif
+endforeach
+
+foreach ident : [
+ ['memfd_create', '''#include <sys/memfd.h>'''],
+ ['gettid', '''#include <sys/types.h>'''],
+ ['pivot_root', '''#include <stdlib.h>'''], # no known header declares pivot_root
+ ['name_to_handle_at', '''#define _GNU_SOURCE
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>'''],
+ ['setns', '''#define _GNU_SOURCE
+ #include <sched.h>'''],
+ ['renameat2', '''#include <stdio.h>'''],
+ ['kcmp', '''#include <linux/kcmp.h>'''],
+ ['keyctl', '''#include <sys/types.h>
+ #include <keyutils.h>'''],
+ ['copy_file_range', '''#include <sys/syscall.h>
+ #include <unistd.h>'''],
+ ['explicit_bzero' , '''#include <string.h>'''],
+]
+
+ have = cc.has_function(ident[0], prefix : ident[1])
+ conf.set10('HAVE_DECL_' + ident[0].to_upper(), have)
+endforeach
+
+if cc.has_function('getrandom', prefix : '''#include <sys/random.h>''')
+ conf.set('USE_SYS_RANDOM_H', true)
+ conf.set10('HAVE_DECL_GETRANDOM', true)
+else
+ have = cc.has_function('getrandom', prefix : '''#include <linux/random.h>''')
+ conf.set10('HAVE_DECL_GETRANDOM', have)
+endif
+
+#####################################################################
+
+sed = find_program('sed')
+grep = find_program('grep')
+awk = find_program('awk')
+m4 = find_program('m4')
+stat = find_program('stat')
+git = find_program('git', required : false)
+
+meson_make_symlink = meson.source_root() + '/tools/meson-make-symlink.sh'
+mkdir_p = 'mkdir -p $DESTDIR/@0@'
+#if 0 /// unneeded by elogind
+# test_efi_create_disk_sh = find_program('test/test-efi-create-disk.sh')
+# splash_bmp = files('test/splash.bmp')
+#endif // 0
+
+# if -Dxxx-path option is found, use that. Otherwise, check in $PATH,
+# /usr/sbin, /sbin, and fall back to the default from middle column.
+#if 0 /// elogind has a bit different list and some adaptions
+# progs = [['telinit', '/lib/sysvinit/telinit'],
+# ['quotaon', '/usr/sbin/quotaon' ],
+# ['quotacheck', '/usr/sbin/quotacheck' ],
+# ['kill', '/usr/bin/kill' ],
+# ['kmod', '/usr/bin/kmod' ],
+# ['kexec', '/usr/sbin/kexec' ],
+# ['sulogin', '/usr/sbin/sulogin' ],
+# ['mount', '/usr/bin/mount', 'MOUNT_PATH'],
+# ['umount', '/usr/bin/umount', 'UMOUNT_PATH'],
+# ['loadkeys', '/usr/bin/loadkeys', 'KBD_LOADKEYS'],
+# ['setfont', '/usr/bin/setfont', 'KBD_SETFONT'],
+# ]
+#else
+progs = [['kexec', '/usr/sbin/kexec', 'KEXEC'],
+ ['reboot', '/sbin/reboot', 'REBOOT'],
+ ['halt', '/sbin/halt', 'HALT'],
+ ]
+#endif // 0
+foreach prog : progs
+ path = get_option(prog[0] + '-path')
+ if path != ''
+ message('Using @1@ for @0@'.format(prog[0], path))
+ else
+ exe = find_program(prog[0],
+ '/usr/sbin/' + prog[0],
+ '/sbin/' + prog[0],
+ required: false)
+ path = exe.found() ? exe.path() : prog[1]
+ endif
+ name = prog.length() > 2 ? prog[2] : prog[0].to_upper()
+ conf.set_quoted(name, path)
+ substs.set(name, path)
+endforeach
+
+if run_command('ln', '--relative', '--help').returncode() != 0
+ error('ln does not support --relative')
+endif
+
+############################################################
+
+gperf = find_program('gperf')
+
+gperf_test_format = '''
+#include <string.h>
+const char * in_word_set(const char *, @0@);
+@1@
+'''
+gperf_snippet_format = 'echo foo,bar | @0@ -L ANSI-C'
+gperf_snippet = run_command('sh', '-c', gperf_snippet_format.format(gperf.path()))
+gperf_test = gperf_test_format.format('size_t', gperf_snippet.stdout())
+if cc.compiles(gperf_test)
+ gperf_len_type = 'size_t'
+else
+ gperf_test = gperf_test_format.format('unsigned', gperf_snippet.stdout())
+ if cc.compiles(gperf_test)
+ gperf_len_type = 'unsigned'
+ else
+ error('unable to determine gperf len type')
+ endif
+endif
+message('gperf len type is @0@'.format(gperf_len_type))
+conf.set('GPERF_LEN_TYPE', gperf_len_type,
+ description : 'The type of gperf "len" parameter')
+
+############################################################
+
+if not cc.has_header('sys/capability.h')
+ error('POSIX caps headers not found')
+endif
+foreach header : ['linux/btrfs.h',
+ 'linux/memfd.h',
+ 'linux/vm_sockets.h',
+ 'valgrind/memcheck.h',
+ 'valgrind/valgrind.h',
+ ]
+
+ conf.set('HAVE_' + header.underscorify().to_upper(),
+ cc.has_header(header))
+endforeach
+
+############################################################
+
+conf.set_quoted('FALLBACK_HOSTNAME', get_option('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
+
+#if 0 /// UNNEEDED by elogind
+# time_epoch = get_option('time-epoch')
+# if time_epoch == ''
+# NEWS = files('NEWS')
+# time_epoch = run_command(stat, '-c', '%Y', NEWS).stdout()
+# endif
+# time_epoch = time_epoch.to_int()
+# conf.set('TIME_EPOCH', time_epoch)
+#else
+############################################################
+# elogind needs to know which cgroups controller to follow.
+get_cg_ctrl_sh = find_program('tools/meson-get-cg-controller.sh')
+with_cgroupctrl = get_option('cgroup-controller')
+if with_cgroupctrl == '' or with_cgroupctrl == 'auto'
+ with_cgroupctrl = run_command(get_cg_ctrl_sh, []).stdout().strip()
+elif with_cgroupctrl == 'none'
+ with_cgroupctrl = 'elogind'
+endif
+
+# No controller now is a problem:
+if with_cgroupctrl == ''
+ error('Unable to determine cgroup controller, but cgroups support is mandatory!')
+endif
+
+conf.set_quoted('SYSTEMD_CGROUP_CONTROLLER', '_'.join(['',with_cgroupctrl]),
+ description : 'name of the cgroup controller to use')
+conf.set_quoted('SYSTEMD_CGROUP_CONTROLLER_LEGACY',
+ '='.join(['name', with_cgroupctrl]))
+conf.set_quoted('SYSTEMD_CGROUP_CONTROLLER_HYBRID',
+ '='.join(['name', with_cgroupctrl]))
+############################################################
+#endif // 0
+
+system_uid_max = get_option('system-uid-max')
+if system_uid_max == ''
+ system_uid_max = run_command(
+ awk,
+ 'BEGIN { uid=999 } /^\s*SYS_UID_MAX\s+/ { uid=$2 } END { print uid }',
+ '/etc/login.defs').stdout()
+endif
+system_uid_max = system_uid_max.to_int()
+conf.set('SYSTEM_UID_MAX', system_uid_max)
+substs.set('systemuidmax', system_uid_max)
+message('maximum system UID is @0@'.format(system_uid_max))
+
+#if 0 /// UNNEEDED by elogind
+# conf.set_quoted('NOBODY_USER_NAME', get_option('nobody-user'))
+# conf.set_quoted('NOBODY_GROUP_NAME', get_option('nobody-group'))
+#endif // 0
+
+system_gid_max = get_option('system-gid-max')
+if system_gid_max == ''
+ system_gid_max = run_command(
+ awk,
+ 'BEGIN { gid=999 } /^\s*SYS_GID_MAX\s+/ { gid=$2 } END { print gid }',
+ '/etc/login.defs').stdout()
+endif
+system_gid_max = system_gid_max.to_int()
+conf.set('SYSTEM_GID_MAX', system_gid_max)
+substs.set('systemgidmax', system_gid_max)
+message('maximum system GID is @0@'.format(system_gid_max))
+
+tty_gid = get_option('tty-gid')
+conf.set('TTY_GID', tty_gid)
+substs.set('TTY_GID', tty_gid)
+
+#if 0 /// UNNEEDED by elogind
+# if get_option('adm-group')
+# m4_defines += ['-DENABLE_ADM_GROUP']
+# endif
+#
+# if get_option('wheel-group')
+# m4_defines += ['-DENABLE_WHEEL_GROUP']
+# endif
+#
+# substs.set('DEV_KVM_MODE', get_option('dev-kvm-mode'))
+#endif // 0
+
+kill_user_processes = get_option('default-kill-user-processes')
+conf.set10('KILL_USER_PROCESSES', kill_user_processes)
+substs.set('KILL_USER_PROCESSES', kill_user_processes ? 'yes' : 'no')
+
+#if 0 /// UNNEEDED by elogind
+# dns_servers = get_option('dns-servers')
+# conf.set_quoted('DNS_SERVERS', dns_servers)
+# substs.set('DNS_SERVERS', dns_servers)
+#
+# ntp_servers = get_option('ntp-servers')
+# conf.set_quoted('NTP_SERVERS', ntp_servers)
+# substs.set('NTP_SERVERS', ntp_servers)
+#endif // 0
+
+conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
+
+#if 0 /// UNNEEDED by elogind
+# substs.set('SUSHELL', get_option('debug-shell'))
+# substs.set('DEBUGTTY', get_option('debug-tty'))
+#endif // 0
+
+debug = get_option('debug')
+if debug != ''
+ foreach name : debug.split(',')
+ if name == 'hashmap'
+ conf.set('ENABLE_DEBUG_HASHMAP', true)
+ elif name == 'mmap-cache'
+ conf.set('ENABLE_DEBUG_MMAP_CACHE', true)
+#if 1 /// additional elogind debug mode
+ elif name == 'elogind'
+ conf.set('ENABLE_DEBUG_ELOGIND', true)
+#endif // 1
+ else
+ message('unknown debug option "@0@", ignoring'.format(name))
+ endif
+ endforeach
+endif
+
+#####################################################################
+
+threads = dependency('threads')
+librt = cc.find_library('rt')
+libm = cc.find_library('m')
+libdl = cc.find_library('dl')
+libcrypt = cc.find_library('crypt')
+
+libcap = dependency('libcap', required : false)
+if not libcap.found()
+ # Compat with Ubuntu 14.04 which ships libcap w/o .pc file
+ libcap = cc.find_library('cap')
+endif
+
+#if 0 /// UNNEEDED by elogind
+# libmount = dependency('mount',
+# version : '>= 2.27')
+#
+# want_seccomp = get_option('seccomp')
+# if want_seccomp != 'false'
+# libseccomp = dependency('libseccomp',
+# version : '>= 2.3.1',
+# required : want_seccomp == 'true')
+# if libseccomp.found()
+# conf.set('HAVE_SECCOMP', true)
+# m4_defines += ['-DHAVE_SECCOMP']
+# endif
+# else
+# libseccomp = []
+# endif
+#else
+libseccomp = []
+#endif // 0
+
+want_selinux = get_option('selinux')
+if want_selinux != 'false'
+ libselinux = dependency('libselinux',
+ version : '>= 2.1.9',
+ required : want_selinux == 'true')
+ if libselinux.found()
+ conf.set('HAVE_SELINUX', true)
+ m4_defines += ['-DHAVE_SELINUX']
+ endif
+else
+ libselinux = []
+endif
+
+#if 0 /// UNNEEDED by elogind
+# want_apparmor = get_option('apparmor')
+# if want_apparmor != 'false'
+# libapparmor = dependency('libapparmor',
+# required : want_apparmor == 'true')
+# if libapparmor.found()
+# conf.set('HAVE_APPARMOR', true)
+# m4_defines += ['-DHAVE_APPARMOR']
+# endif
+# else
+# libapparmor = []
+# endif
+#else
+libapparmor = []
+#endif // 0
+
+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')
+install_polkit = false
+install_polkit_pkla = false
+if want_polkit != 'false'
+ conf.set('ENABLE_POLKIT', true)
+ install_polkit = true
+
+ libpolkit = dependency('polkit-gobject-1',
+ required : false)
+ if libpolkit.found() and libpolkit.version().version_compare('< 0.106')
+ message('Old polkit detected, will install pkla files')
+ install_polkit_pkla = true
+ endif
+endif
+
+want_acl = get_option('acl')
+if want_acl != 'false'
+ libacl = cc.find_library('acl', required : want_acl == 'true')
+ if libacl.found()
+ conf.set('HAVE_ACL', true)
+ m4_defines += ['-DHAVE_ACL']
+ endif
+else
+ libacl = []
+endif
+
+want_audit = get_option('audit')
+if want_audit != 'false'
+ libaudit = dependency('audit', required : want_audit == 'true')
+ conf.set('HAVE_AUDIT', libaudit.found())
+else
+ libaudit = []
+endif
+
+#if 0 /// UNNEEDED by elogind
+# want_blkid = get_option('blkid')
+# if want_blkid != 'false'
+# libblkid = dependency('blkid', required : want_blkid == 'true')
+# conf.set('HAVE_BLKID', libblkid.found())
+# else
+# libblkid = []
+# endif
+#
+# want_kmod = get_option('kmod')
+# if want_kmod != 'false'
+# libkmod = dependency('libkmod',
+# version : '>= 15',
+# required : want_kmod == 'true')
+# conf.set('HAVE_KMOD', libkmod.found())
+# else
+# libkmod = []
+# endif
+#else
+libblkid = []
+libkmod = []
+#endif // 0
+
+want_pam = get_option('pam')
+if want_pam != 'false'
+ libpam = cc.find_library('pam', required : want_pam == 'true')
+ libpam_misc = cc.find_library('pam_misc', required : want_pam == 'true')
+ if libpam.found() and libpam_misc.found()
+ conf.set('HAVE_PAM', true)
+ m4_defines += ['-DHAVE_PAM']
+ endif
+else
+ libpam = []
+ libpam_misc = []
+endif
+
+#if 0 /// UNNEEDED by elogind
+# want_microhttpd = get_option('microhttpd')
+# if want_microhttpd != 'false'
+# libmicrohttpd = dependency('libmicrohttpd',
+# version : '>= 0.9.33',
+# required : want_microhttpd == 'true')
+# if libmicrohttpd.found()
+# conf.set('HAVE_MICROHTTPD', true)
+# m4_defines += ['-DHAVE_MICROHTTPD']
+# endif
+# else
+# libmicrohttpd = []
+# endif
+#
+# want_libcryptsetup = get_option('libcryptsetup')
+# if want_libcryptsetup != 'false'
+# libcryptsetup = dependency('libcryptsetup',
+# version : '>= 1.6.0',
+# required : want_libcryptsetup == 'true')
+# conf.set('HAVE_LIBCRYPTSETUP', libcryptsetup.found())
+# else
+# libcryptsetup = []
+# endif
+#
+# want_libcurl = get_option('libcurl')
+# if want_libcurl != 'false'
+# libcurl = dependency('libcurl',
+# version : '>= 7.32.0',
+# required : want_libcurl == 'true')
+# if libcurl.found()
+# conf.set('HAVE_LIBCURL', true)
+# m4_defines += ['-DHAVE_LIBCURL']
+# endif
+# else
+# libcurl = []
+# endif
+#
+# want_libidn = get_option('libidn')
+# want_libidn2 = get_option('libidn2')
+# if want_libidn == 'true' and want_libidn2 == 'true'
+# error('libidn and libidn2 cannot be requested simultaneously')
+# endif
+#
+# if want_libidn != 'false' and want_libidn2 != 'true'
+# libidn = dependency('libidn',
+# required : want_libidn == 'true')
+# if libidn.found()
+# conf.set('HAVE_LIBIDN', true)
+# m4_defines += ['-DHAVE_LIBIDN']
+# endif
+# else
+# libidn = []
+# endif
+# 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_LIBIDN2', true)
+# m4_defines += ['-DHAVE_LIBIDN2']
+# endif
+# endif
+#
+# want_libiptc = get_option('libiptc')
+# if want_libiptc != 'false'
+# libiptc = dependency('libiptc',
+# required : want_libiptc == 'true')
+# if libiptc.found()
+# conf.set('HAVE_LIBIPTC', true)
+# m4_defines += ['-DHAVE_LIBIPTC']
+# endif
+# else
+# libiptc = []
+# endif
+#
+# want_qrencode = get_option('qrencode')
+# if want_qrencode != 'false'
+# libqrencode = dependency('libqrencode',
+# required : want_qrencode == 'true')
+# conf.set('HAVE_QRENCODE', libqrencode.found())
+# else
+# 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',
+# version : '>= 3.1.4',
+# required : want_gnutls == 'true')
+# conf.set('HAVE_GNUTLS', libgnutls.found())
+# else
+# libgnutls = []
+# endif
+#
+# want_elfutils = get_option('elfutils')
+# if want_elfutils != 'false'
+# libdw = dependency('libdw',
+# required : want_elfutils == 'true')
+# conf.set('HAVE_ELFUTILS', libdw.found())
+# else
+# libdw = []
+# endif
+#
+# want_zlib = get_option('zlib')
+# if want_zlib != 'false'
+# libz = dependency('zlib',
+# required : want_zlib == 'true')
+# conf.set('HAVE_ZLIB', libz.found())
+# else
+# libz = []
+# endif
+#
+# want_bzip2 = get_option('bzip2')
+# if want_bzip2 != 'false'
+# libbzip2 = cc.find_library('bz2',
+# required : want_bzip2 == 'true')
+# conf.set('HAVE_BZIP2', libbzip2.found())
+# else
+# libbzip2 = []
+# endif
+#
+# want_xz = get_option('xz')
+# if want_xz != 'false'
+# libxz = dependency('liblzma',
+# required : want_xz == 'true')
+# conf.set('HAVE_XZ', libxz.found())
+# else
+# libxz = []
+# endif
+#
+# want_lz4 = get_option('lz4')
+# if want_lz4 != 'false'
+# liblz4 = dependency('liblz4',
+# required : want_lz4 == 'true')
+# conf.set('HAVE_LZ4', liblz4.found())
+# else
+# 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
+#else
+libmicrohttpd = []
+libcryptsetup = []
+libcurl = []
+libidn = []
+libiptc = []
+libqrencode = []
+libgcrypt = []
+libgpg_error = []
+libgnutls = []
+libdw = []
+libz = []
+libbzip2 = []
+libxz = []
+liblz4 = []
+libxkbcommon = []
+#endif // 0
+
+want_glib = get_option('glib')
+if want_glib != 'false'
+ libglib = dependency('glib-2.0',
+ version : '>= 2.22.0',
+ required : want_glib == 'true')
+ libgobject = dependency('gobject-2.0',
+ version : '>= 2.22.0',
+ required : want_glib == 'true')
+ libgio = dependency('gio-2.0',
+ required : want_glib == 'true')
+ have = libglib.found() and libgobject.found() and libgio.found()
+ conf.set('HAVE_GLIB', have)
+else
+ libglib = []
+ libgobject = []
+ libgio = []
+endif
+
+want_dbus = get_option('dbus')
+if want_dbus != 'false'
+ libdbus = dependency('dbus-1',
+ version : '>= 1.3.2',
+ required : want_dbus == 'true')
+ conf.set('HAVE_DBUS', libdbus.found())
+else
+ libdbus = []
+endif
+
+#if 0 /// UNNEEDED by elogind
+# 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.')
+# default_dnssec = 'no'
+# endif
+# conf.set('DEFAULT_DNSSEC_MODE',
+# 'DNSSEC_' + default_dnssec.underscorify().to_upper())
+# substs.set('DEFAULT_DNSSEC_MODE', default_dnssec)
+#
+# want_importd = get_option('importd')
+# if want_importd != 'false'
+# have_deps = (conf.get('HAVE_LIBCURL', false) and
+# conf.get('HAVE_ZLIB', false) and
+# conf.get('HAVE_BZIP2', false) and
+# conf.get('HAVE_XZ', false) and
+# conf.get('HAVE_GCRYPT', false))
+# conf.set('ENABLE_IMPORTD', have_deps)
+# if want_importd == 'true' and not have_deps
+# error('importd support was requested, but dependencies are not available')
+# endif
+# endif
+#
+# want_remote = get_option('remote')
+# if want_remote != 'false'
+# have_deps = [conf.get('HAVE_MICROHTTPD', false),
+# conf.get('HAVE_LIBCURL', false)]
+# # sd-j-remote requires µhttpd, and sd-j-upload requires libcurl, so
+# # it's possible to build one without the other. Complain only if
+# # support was explictly requested. The auxiliary files like sysusers
+# # config should be installed when any of the programs are built.
+# if want_remote == 'true' and not (have_deps[0] and have_deps[1])
+# error('remote support was requested, but dependencies are not available')
+# endif
+# conf.set('ENABLE_REMOTE', have_deps[0] or have_deps[1])
+# endif
+#endif // 0
+
+foreach pair : [['utmp', 'HAVE_UTMP'],
+#if 0 /// UNNEEDED by elogind
+# ['hibernate', 'ENABLE_HIBERNATE'],
+# ['environment-d', 'ENABLE_ENVIRONMENT_D'],
+# ['binfmt', 'ENABLE_BINFMT'],
+# ['coredump', 'ENABLE_COREDUMP'],
+# ['resolve', 'ENABLE_RESOLVED'],
+# ['logind', 'ENABLE_LOGIND'],
+# ['hostnamed', 'ENABLE_HOSTNAMED'],
+# ['localed', 'ENABLE_LOCALED'],
+# ['machined', 'ENABLE_MACHINED'],
+# ['networkd', 'ENABLE_NETWORKD'],
+# ['timedated', 'ENABLE_TIMEDATED'],
+# ['timesyncd', 'ENABLE_TIMESYNCD'],
+# ['myhostname', 'HAVE_MYHOSTNAME'],
+# ['firstboot', 'ENABLE_FIRSTBOOT'],
+# ['randomseed', 'ENABLE_RANDOMSEED'],
+# ['backlight', 'ENABLE_BACKLIGHT'],
+# ['vconsole', 'ENABLE_VCONSOLE'],
+# ['quotacheck', 'ENABLE_QUOTACHECK'],
+# ['sysusers', 'ENABLE_SYSUSERS'],
+# ['tmpfiles', 'ENABLE_TMPFILES'],
+# ['hwdb', 'ENABLE_HWDB'],
+# ['rfkill', 'ENABLE_RFKILL'],
+# ['ldconfig', 'ENABLE_LDCONFIG'],
+# ['efi', 'ENABLE_EFI'],
+# ['tpm', 'ENABLE_TPM'],
+# ['ima', 'HAVE_IMA'],
+#endif // 0
+ ['smack', 'HAVE_SMACK'],
+#if 0 /// UNNEEDED by elogind
+# ['gshadow', 'ENABLE_GSHADOW'],
+# ['idn', 'ENABLE_IDN'],
+# ['nss-systemd', 'ENABLE_NSS_SYSTEMD'],
+#endif // 0
+ ]
+
+ if get_option(pair[0])
+ conf.set(pair[1], true)
+ m4_defines += ['-D' + pair[1]]
+ endif
+endforeach
+
+want_tests = get_option('tests')
+install_tests = get_option('install-tests')
+tests = []
+
+conf.set10('SYSTEMD_SLOW_TESTS_DEFAULT', get_option('slow-tests'))
+
+#####################################################################
+
+#if 0 /// UNNEEDED by elogind
+# if get_option('efi')
+# efi_arch = host_machine.cpu_family()
+#
+# if efi_arch == 'x86'
+# EFI_MACHINE_TYPE_NAME = 'ia32'
+# gnu_efi_arch = 'ia32'
+# elif efi_arch == 'x86_64'
+# EFI_MACHINE_TYPE_NAME = 'x64'
+# gnu_efi_arch = 'x86_64'
+# elif efi_arch == 'arm'
+# EFI_MACHINE_TYPE_NAME = 'arm'
+# gnu_efi_arch = 'arm'
+# elif efi_arch == 'aarch64'
+# EFI_MACHINE_TYPE_NAME = 'aa64'
+# gnu_efi_arch = 'aarch64'
+# else
+# EFI_MACHINE_TYPE_NAME = ''
+# gnu_efi_arch = ''
+# endif
+#
+# conf.set('ENABLE_EFI', true)
+# conf.set_quoted('EFI_MACHINE_TYPE_NAME', EFI_MACHINE_TYPE_NAME)
+#
+# conf.set('SD_TPM_PCR', get_option('tpm-pcrindex').to_int())
+# endif
+#endif // 0
+
+#####################################################################
+
+config_h = configure_file(
+ output : 'config.h',
+ configuration : conf)
+
+includes = include_directories('src/basic',
+ 'src/shared',
+ 'src/systemd',
+#if 0 /// UNNEEDED by elogind
+# 'src/journal',
+# 'src/resolve',
+# 'src/timesync',
+#endif // 0
+ 'src/login',
+#if 0 /// UNNEEDED by elogind
+# 'src/udev',
+# 'src/libudev',
+#endif // 0
+ 'src/core',
+#if 0 /// elogind has a different list
+# 'src/libsystemd/sd-bus',
+# 'src/libsystemd/sd-device',
+# 'src/libsystemd/sd-hwdb',
+# 'src/libsystemd/sd-id128',
+# 'src/libsystemd/sd-netlink',
+# 'src/libsystemd/sd-network',
+# 'src/libsystemd-network',
+#else
+ 'src/libelogind/sd-bus',
+ 'src/libelogind/sd-id128',
+ 'src/sleep',
+ 'src/update-utmp',
+#endif // 0
+ )
+
+add_project_arguments('-include', 'config.h', language : 'c')
+
+#if 0 /// UNNEEDED by elogind
+# gcrypt_util_sources = files('src/shared/gcrypt-util.h',
+# 'src/shared/gcrypt-util.c')
+#endif // 0
+
+subdir('po')
+#if 0 /// UNNEEDED by elogind
+# subdir('catalog')
+#endif // 0
+subdir('src/systemd')
+subdir('src/basic')
+#if 0 /// UNNEEDED by elogind
+# subdir('src/libsystemd')
+# subdir('src/libsystemd-network')
+# subdir('src/journal')
+#else
+subdir('src/core')
+subdir('src/libelogind')
+subdir('src/sleep')
+subdir('src/update-utmp')
+#endif // 0
+subdir('src/login')
+
+#if 0 /// UNNEEDED by elogind
+# libjournal_core = static_library(
+# 'journal-core',
+# libjournal_core_sources,
+# journald_gperf_c,
+# include_directories : includes,
+# install : false)
+#
+# libsystemd_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libsystemd_sym)
+# libsystemd = shared_library(
+# 'systemd',
+# libsystemd_internal_sources,
+# journal_internal_sources,
+# version : '0.19.0',
+# include_directories : includes,
+# link_args : ['-shared',
+# '-Wl,--version-script=' + libsystemd_sym_path],
+# link_with : [libbasic],
+# dependencies : [threads,
+# libgcrypt,
+# librt,
+# libxz,
+# liblz4],
+# link_depends : libsystemd_sym,
+# install : true,
+# install_dir : rootlibdir)
+#else
+libelogind_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libelogind_sym)
+libelogind = shared_library(
+ 'elogind',
+ libelogind_internal_sources,
+ version : '0.19.0',
+ include_directories : includes,
+ link_args : ['-shared',
+ '-Wl,--version-script=' + libelogind_sym_path],
+ link_with : [libbasic],
+ dependencies : [threads],
+ link_depends : libelogind_sym,
+ install : true,
+ install_dir : rootlibdir)
+#endif // 0
+
+############################################################
+
+# binaries that have --help and are intended for use by humans,
+# usually, but not always, installed in /bin.
+public_programs = []
+
+#if 0 /// UNNEEDED by elogind
+# subdir('src/libudev')
+#else
+# elogind depends on external libudev:
+libudev = dependency('libudev', required : true)
+#endif // 0
+subdir('src/shared')
+#if 0 /// UNNEEDED by elogind
+# subdir('src/core')
+# subdir('src/udev')
+# subdir('src/network')
+#
+# subdir('src/analyze')
+# subdir('src/journal-remote')
+# subdir('src/coredump')
+# subdir('src/hostname')
+# subdir('src/import')
+# subdir('src/kernel-install')
+# subdir('src/locale')
+# subdir('src/machine')
+# subdir('src/nspawn')
+# subdir('src/resolve')
+# subdir('src/timedate')
+# subdir('src/timesync')
+# subdir('src/vconsole')
+# subdir('src/sulogin-shell')
+# subdir('src/boot/efi')
+#endif // 0
+
+subdir('src/test')
+#if 0 /// UNNEEDED in elogind
+# subdir('test')
+#endif // 0
+
+############################################################
+
+# only static linking apart from libdl, to make sure that the
+# module is linked to all libraries that it uses.
+#if 0 /// UNNEEDED by elogind
+# test_dlopen = executable(
+# 'test-dlopen',
+# test_dlopen_c,
+# include_directories : includes,
+# link_with : [libbasic],
+# dependencies : [libdl])
+#
+# foreach tuple : [['myhostname', 'HAVE_MYHOSTNAME'],
+# ['systemd', 'ENABLE_NSS_SYSTEMD'],
+# ['mymachines', 'ENABLE_MACHINED'],
+# ['resolve', 'ENABLE_RESOLVED']]
+#
+# condition = tuple[1] == '' or conf.get(tuple[1], false)
+# if condition
+# module = tuple[0]
+#
+# sym = 'src/nss-@0@/nss-@0@.sym'.format(module)
+# version_script_arg = join_paths(meson.current_source_dir(), sym)
+#
+# nss = shared_library(
+# 'nss_' + module,
+# 'src/nss-@0@/nss-@0@.c'.format(module),
+# version : '2',
+# include_directories : includes,
+# link_args : ['-shared',
+# '-Wl,--version-script=' + version_script_arg,
+# '-Wl,--undefined'],
+# link_with : [libsystemd_internal,
+# libbasic],
+# dependencies : [threads,
+# librt],
+# link_depends : sym,
+# install : true,
+# install_dir : rootlibdir)
+#
+# # We cannot use shared_module because it does not support version suffix.
+# # Unfortunately shared_library insists on creating the symlink…
+# meson.add_install_script('sh', '-c',
+# 'rm $DESTDIR@0@/libnss_@1@.so'
+# .format(rootlibdir, module))
+#
+# test('dlopen-nss_' + module,
+# test_dlopen,
+# args : [nss.full_path()]) # path to dlopen must include a slash
+# endif
+# endforeach
+#endif // 0
+
+############################################################
+
+#if 0 /// UNNEEDED by elogind
+# executable('systemd',
+# systemd_sources,
+# include_directories : includes,
+# link_with : [libcore,
+# libshared],
+# dependencies : [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('systemd-analyze',
+# systemd_analyze_sources,
+# include_directories : includes,
+# link_with : [libcore,
+# libshared],
+# dependencies : [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# executable('systemd-journald',
+# systemd_journald_sources,
+# include_directories : includes,
+# link_with : [libjournal_core,
+# libshared],
+# dependencies : [threads,
+# libxz,
+# liblz4,
+# libselinux],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('systemd-cat',
+# systemd_cat_sources,
+# include_directories : includes,
+# link_with : [libjournal_core,
+# libshared],
+# dependencies : [threads],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# exe = executable('journalctl',
+# journalctl_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libqrencode,
+# libxz,
+# liblz4],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#
+# executable('systemd-getty-generator',
+# 'src/getty-generator/getty-generator.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+#
+# executable('systemd-debug-generator',
+# 'src/debug-generator/debug-generator.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+#
+# executable('systemd-fstab-generator',
+# 'src/fstab-generator/fstab-generator.c',
+# 'src/core/mount-setup.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+#
+# if conf.get('ENABLE_ENVIRONMENT_D', false)
+# executable('30-systemd-environment-d-generator',
+# 'src/environment-d-generator/environment-d-generator.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : userenvgeneratordir)
+#
+# meson.add_install_script(meson_make_symlink,
+# join_paths(sysconfdir, 'environment'),
+# join_paths(environmentdir, '99-environment.conf'))
+# endif
+#
+# if conf.get('ENABLE_HIBERNATE', false)
+# executable('systemd-hibernate-resume-generator',
+# 'src/hibernate-resume/hibernate-resume-generator.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+#
+# executable('systemd-hibernate-resume',
+# 'src/hibernate-resume/hibernate-resume.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# endif
+#
+# if conf.get('HAVE_BLKID', false)
+# executable('systemd-gpt-auto-generator',
+# 'src/gpt-auto-generator/gpt-auto-generator.c',
+# 'src/basic/blkid-util.h',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : libblkid,
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+#
+# exe = executable('systemd-dissect',
+# 'src/dissect/dissect.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_RESOLVED', false)
+# executable('systemd-resolved',
+# systemd_resolved_sources,
+# gcrypt_util_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libgcrypt,
+# libgpg_error,
+# libm,
+# libidn],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('systemd-resolve',
+# systemd_resolve_sources,
+# gcrypt_util_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libgcrypt,
+# libgpg_error,
+# libm,
+# libidn],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_LOGIND', false)
+# executable('systemd-logind',
+# systemd_logind_sources,
+# include_directories : includes,
+# link_with : [liblogind_core,
+# libshared],
+# dependencies : [threads,
+# libacl],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('loginctl',
+# loginctl_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# liblz4,
+# libxz],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#
+# exe = executable('systemd-inhibit',
+# 'src/login/inhibit.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#
+# if conf.get('HAVE_PAM', false)
+# version_script_arg = join_paths(meson.current_source_dir(), pam_systemd_sym)
+# pam_systemd = shared_library(
+# 'pam_systemd',
+# pam_systemd_c,
+# name_prefix : '',
+# include_directories : includes,
+# link_args : ['-shared',
+# '-Wl,--version-script=' + version_script_arg],
+# link_with : [libsystemd_internal,
+# libshared_static],
+# dependencies : [threads,
+# libpam,
+# libpam_misc],
+# link_depends : pam_systemd_sym,
+# install : true,
+# install_dir : pamlibdir)
+#
+# test('dlopen-pam_systemd',
+# test_dlopen,
+# args : [pam_systemd.full_path()]) # path to dlopen must include a slash
+# endif
+# endif
+#else
+
+executable('elogind',
+ elogind_sources,
+ include_directories : includes,
+ link_with : [liblogind_core,
+ libelogind,
+ libshared_static],
+ dependencies : [threads,
+ libacl,
+ libaudit],
+ install_rpath : rootlibexecdir,
+ install : true,
+ install_dir : rootlibexecdir)
+
+exe = executable('loginctl',
+ loginctl_sources,
+ include_directories : includes,
+ link_with : [libelogind,
+ libshared_static],
+ dependencies : [threads],
+ install_rpath : rootlibexecdir,
+ install : true,
+ install_dir : rootbindir)
+public_programs += [exe]
+
+exe = executable('elogind-inhibit',
+ 'src/login/inhibit.c',
+ include_directories : includes,
+ link_with : [libshared_static],
+ dependencies : [threads],
+ install_rpath : rootlibexecdir,
+ install : true,
+ install_dir : rootbindir)
+public_programs += [exe]
+
+if conf.get('HAVE_PAM', false)
+ version_script_arg = join_paths(meson.current_source_dir(), pam_elogind_sym)
+ pam_elogind = shared_library(
+ 'pam_elogind',
+ pam_elogind_c,
+ name_prefix : '',
+ include_directories : includes,
+ link_args : ['-shared',
+ '-Wl,--version-script=' + version_script_arg],
+ link_with : [libelogind,
+ libshared_static],
+ dependencies : [threads,
+ libpam,
+ libpam_misc],
+ link_depends : pam_elogind_sym,
+ install : true,
+ install_dir : pamlibdir)
+endif
+#endif // 0
+
+#if 0 /// UNNEEDED by elogind
+# if conf.get('HAVE_PAM', false)
+# executable('systemd-user-sessions',
+# 'src/user-sessions/user-sessions.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# endif
+#
+# if conf.get('ENABLE_EFI', false) and conf.get('HAVE_BLKID', false)
+# exe = executable('bootctl',
+# 'src/boot/bootctl.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libblkid],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+# endif
+#
+# exe = executable('systemd-socket-activate', 'src/activate/activate.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# exe = executable('systemctl', 'src/systemctl/systemctl.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libcap,
+# libselinux,
+# libxz,
+# liblz4],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#
+# if conf.get('ENABLE_BACKLIGHT', false)
+# executable('systemd-backlight',
+# 'src/backlight/backlight.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# endif
+#
+# if conf.get('ENABLE_RFKILL', false)
+# executable('systemd-rfkill',
+# 'src/rfkill/rfkill.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# endif
+#
+# executable('systemd-system-update-generator',
+# 'src/system-update-generator/system-update-generator.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+#
+# if conf.get('HAVE_LIBCRYPTSETUP', false)
+# executable('systemd-cryptsetup',
+# 'src/cryptsetup/cryptsetup.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libcryptsetup],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# executable('systemd-cryptsetup-generator',
+# 'src/cryptsetup/cryptsetup-generator.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libcryptsetup],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+#
+# executable('systemd-veritysetup',
+# 'src/veritysetup/veritysetup.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libcryptsetup],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# executable('systemd-veritysetup-generator',
+# 'src/veritysetup/veritysetup-generator.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libcryptsetup],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+# endif
+#
+# if conf.get('HAVE_SYSV_COMPAT', false)
+# executable('systemd-sysv-generator',
+# 'src/sysv-generator/sysv-generator.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+#
+# executable('systemd-rc-local-generator',
+# 'src/rc-local-generator/rc-local-generator.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : systemgeneratordir)
+# endif
+#
+# if conf.get('ENABLE_HOSTNAMED', false)
+# executable('systemd-hostnamed',
+# 'src/hostname/hostnamed.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('hostnamectl',
+# 'src/hostname/hostnamectl.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_LOCALED', false)
+# if conf.get('HAVE_XKBCOMMON', false)
+# # logind will load libxkbcommon.so dynamically on its own
+# deps = [libdl]
+# else
+# deps = []
+# endif
+#
+# executable('systemd-localed',
+# systemd_localed_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : deps,
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('localectl',
+# localectl_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_TIMEDATED', false)
+# executable('systemd-timedated',
+# 'src/timedate/timedated.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('timedatectl',
+# 'src/timedate/timedatectl.c',
+# include_directories : includes,
+# install_rpath : rootlibexecdir,
+# link_with : [libshared],
+# install : true)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_TIMESYNCD', false)
+# executable('systemd-timesyncd',
+# systemd_timesyncd_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libm],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# endif
+#
+# if conf.get('ENABLE_MACHINED', false)
+# executable('systemd-machined',
+# systemd_machined_sources,
+# include_directories : includes,
+# link_with : [libmachine_core,
+# libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('machinectl',
+# 'src/machine/machinectl.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libxz,
+# liblz4],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_IMPORTD', false)
+# executable('systemd-importd',
+# systemd_importd_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# systemd_pull = executable('systemd-pull',
+# systemd_pull_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libcurl,
+# libz,
+# libbzip2,
+# libxz,
+# libgcrypt],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# systemd_import = executable('systemd-import',
+# systemd_import_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libcurl,
+# libz,
+# libbzip2,
+# libxz],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# systemd_export = executable('systemd-export',
+# systemd_export_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libcurl,
+# libz,
+# libbzip2,
+# libxz],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# public_programs += [systemd_pull, systemd_import, systemd_export]
+# endif
+#
+# if conf.get('ENABLE_REMOTE', false) and conf.get('HAVE_LIBCURL', false)
+# exe = executable('systemd-journal-upload',
+# systemd_journal_upload_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libcurl,
+# libgnutls,
+# libxz,
+# liblz4],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_REMOTE', false) and conf.get('HAVE_MICROHTTPD', false)
+# s_j_remote = executable('systemd-journal-remote',
+# systemd_journal_remote_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libmicrohttpd,
+# libgnutls,
+# libxz,
+# liblz4],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# s_j_gatewayd = executable('systemd-journal-gatewayd',
+# systemd_journal_gatewayd_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libmicrohttpd,
+# libgnutls,
+# libxz,
+# liblz4],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# public_programs += [s_j_remote, s_j_gatewayd]
+# endif
+#
+# if conf.get('ENABLE_COREDUMP', false)
+# executable('systemd-coredump',
+# systemd_coredump_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libacl,
+# libdw,
+# libxz,
+# liblz4],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('coredumpctl',
+# coredumpctl_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads,
+# libxz,
+# liblz4],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_BINFMT', false)
+# exe = executable('systemd-binfmt',
+# 'src/binfmt/binfmt.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# public_programs += [exe]
+#
+# meson.add_install_script('sh', '-c',
+# mkdir_p.format(binfmtdir))
+# meson.add_install_script('sh', '-c',
+# mkdir_p.format(join_paths(sysconfdir, 'binfmt.d')))
+# endif
+#
+# if conf.get('ENABLE_VCONSOLE', false)
+# executable('systemd-vconsole-setup',
+# 'src/vconsole/vconsole-setup.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# endif
+#
+# if conf.get('ENABLE_RANDOMSEED', false)
+# executable('systemd-random-seed',
+# 'src/random-seed/random-seed.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# endif
+#
+# if conf.get('ENABLE_FIRSTBOOT', false)
+# executable('systemd-firstboot',
+# 'src/firstboot/firstboot.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libcrypt],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# endif
+#
+# executable('systemd-remount-fs',
+# 'src/remount-fs/remount-fs.c',
+# 'src/core/mount-setup.c',
+# 'src/core/mount-setup.h',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# executable('systemd-machine-id-setup',
+# 'src/machine-id-setup/machine-id-setup-main.c',
+# 'src/core/machine-id-setup.c',
+# 'src/core/machine-id-setup.h',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+#
+# executable('systemd-fsck',
+# 'src/fsck/fsck.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# executable('systemd-sleep',
+# 'src/sleep/sleep.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('systemd-sysctl',
+# 'src/sysctl/sysctl.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# public_programs += [exe]
+#
+# executable('systemd-ac-power',
+# 'src/ac-power/ac-power.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('systemd-detect-virt',
+# 'src/detect-virt/detect-virt.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# exe = executable('systemd-delta',
+# 'src/delta/delta.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# exe = executable('systemd-escape',
+# 'src/escape/escape.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#
+# exe = executable('systemd-notify',
+# 'src/notify/notify.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#
+# executable('systemd-volatile-root',
+# 'src/volatile-root/volatile-root.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# executable('systemd-cgroups-agent',
+# 'src/cgroups-agent/cgroups-agent.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#else
+executable('elogind-cgroups-agent',
+ 'src/cgroups-agent/cgroups-agent.c',
+ include_directories : includes,
+ link_with : [libshared_static],
+ install_rpath : rootlibexecdir,
+ install : true,
+ install_dir : rootlibexecdir)
+#endif // 0
+
+#if 0 /// UNNEEDED by elogind
+# exe = executable('systemd-path',
+# 'src/path/path.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# exe = executable('systemd-ask-password',
+# 'src/ask-password/ask-password.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#
+# executable('systemd-reply-password',
+# 'src/reply-password/reply-password.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('systemd-tty-ask-password-agent',
+# 'src/tty-ask-password-agent/tty-ask-password-agent.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#
+# exe = executable('systemd-cgls',
+# 'src/cgls/cgls.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# exe = executable('systemd-cgtop',
+# 'src/cgtop/cgtop.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# executable('systemd-initctl',
+# 'src/initctl/initctl.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# exe = executable('systemd-mount',
+# 'src/mount/mount-tool.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# meson.add_install_script(meson_make_symlink,
+# 'systemd-mount', join_paths(bindir, 'systemd-umount'))
+#
+# exe = executable('systemd-run',
+# 'src/run/run.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# exe = executable('systemd-stdio-bridge',
+# 'src/stdio-bridge/stdio-bridge.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# exe = executable('busctl',
+# 'src/busctl/busctl.c',
+# 'src/busctl/busctl-introspect.c',
+# 'src/busctl/busctl-introspect.h',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# if conf.get('ENABLE_SYSUSERS', false)
+# exe = executable('systemd-sysusers',
+# 'src/sysusers/sysusers.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_TMPFILES', false)
+# exe = executable('systemd-tmpfiles',
+# 'src/tmpfiles/tmpfiles.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libacl],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_HWDB', false)
+# exe = executable('systemd-hwdb',
+# 'src/hwdb/hwdb.c',
+# 'src/libsystemd/sd-hwdb/hwdb-internal.h',
+# include_directories : includes,
+# link_with : [libudev_internal],
+# install_rpath : udev_rpath,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+# endif
+#
+# if conf.get('ENABLE_QUOTACHECK', false)
+# executable('systemd-quotacheck',
+# 'src/quotacheck/quotacheck.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# endif
+#
+# exe = executable('systemd-socket-proxyd',
+# 'src/socket-proxy/socket-proxyd.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [threads],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# public_programs += [exe]
+#
+# exe = executable('systemd-udevd',
+# systemd_udevd_sources,
+# include_directories : includes,
+# c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
+# link_with : [libudev_core,
+# libsystemd_network,
+# libudev_internal],
+# dependencies : [threads,
+# libkmod,
+# libidn,
+# libacl,
+# libblkid],
+# install_rpath : udev_rpath,
+# install : true,
+# install_dir : rootlibexecdir)
+# public_programs += [exe]
+#
+# exe = executable('udevadm',
+# udevadm_sources,
+# include_directories : includes,
+# link_with : [libudev_core,
+# libsystemd_network,
+# libudev_internal],
+# dependencies : [threads,
+# libkmod,
+# libidn,
+# libacl,
+# libblkid],
+# install_rpath : udev_rpath,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#
+# executable('systemd-shutdown',
+# systemd_shutdown_sources,
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# executable('systemd-update-done',
+# 'src/update-done/update-done.c',
+# include_directories : includes,
+# link_with : [libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# executable('systemd-update-utmp',
+# 'src/update-utmp/update-utmp.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libaudit],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# if conf.get('HAVE_KMOD', false)
+# executable('systemd-modules-load',
+# 'src/modules-load/modules-load.c',
+# include_directories : includes,
+# link_with : [libshared],
+# dependencies : [libkmod],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# meson.add_install_script('sh', '-c',
+# mkdir_p.format(modulesloaddir))
+# meson.add_install_script('sh', '-c',
+# mkdir_p.format(join_paths(sysconfdir, 'modules-load.d')))
+# endif
+#
+# exe = executable('systemd-nspawn',
+# systemd_nspawn_sources,
+# 'src/core/mount-setup.c', # FIXME: use a variable?
+# '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],
+# install_rpath : rootlibexecdir,
+# install : true)
+# public_programs += [exe]
+#
+# if conf.get('ENABLE_NETWORKD', false)
+# executable('systemd-networkd',
+# systemd_networkd_sources,
+# include_directories : includes,
+# link_with : [libnetworkd_core,
+# libsystemd_network,
+# libudev_internal,
+# libshared],
+# dependencies : [threads],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+#
+# executable('systemd-networkd-wait-online',
+# systemd_networkd_wait_online_sources,
+# include_directories : includes,
+# link_with : [libnetworkd_core,
+# libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootlibexecdir)
+# endif
+#
+# exe = executable('networkctl',
+# networkctl_sources,
+# include_directories : includes,
+# link_with : [libsystemd_network,
+# libshared],
+# install_rpath : rootlibexecdir,
+# install : true,
+# install_dir : rootbindir)
+# public_programs += [exe]
+#endif // 0
+
+############################################################
+
+foreach tuple : tests
+ sources = tuple[0]
+ link_with = tuple[1].length() > 0 ? tuple[1] : [libshared]
+ dependencies = tuple[2]
+ condition = tuple.length() >= 4 ? tuple[3] : ''
+ type = tuple.length() >= 5 ? tuple[4] : ''
+ defs = tuple.length() >= 6 ? tuple[5] : []
+ incs = tuple.length() >= 7 ? tuple[6] : includes
+ timeout = 30
+
+ name = sources[0].split('/')[-1].split('.')[0]
+ if type.startswith('timeout=')
+ timeout = type.split('=')[1].to_int()
+ type = ''
+ endif
+
+ if condition == '' or conf.get(condition, false)
+ exe = executable(
+ name,
+ sources,
+ include_directories : incs,
+ link_with : link_with,
+ dependencies : dependencies,
+ c_args : defs,
+ install_rpath : rootlibexecdir,
+ install : install_tests,
+ install_dir : join_paths(testsdir, type))
+
+ if type == 'manual'
+ message('@0@ is a manual test'.format(name))
+ elif type == 'unsafe' and want_tests != 'unsafe'
+ message('@0@ is an unsafe test'.format(name))
+ else
+ test(name, exe,
+ env : test_env,
+ timeout : timeout)
+ endif
+ else
+ message('Not compiling @0@ because @1@ is not true'.format(name, condition))
+ endif
+endforeach
+
+#if 0 /// UNNEEDED by elogind
+# test_libsystemd_sym = 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_libudev_sym = executable(
+# 'test-libudev-sym',
+# test_libudev_sym_c,
+# include_directories : includes,
+# c_args : ['-Wno-deprecated-declarations'],
+# link_with : [libudev],
+# install : install_tests,
+# install_dir : testsdir)
+# test('test-libudev-sym',
+# test_libudev_sym)
+#else
+test_libelogind_sym = executable(
+ 'test-libelogind-sym',
+ test_libelogind_sym_c,
+ include_directories : includes,
+ link_with : [libelogind],
+ install : install_tests,
+ install_dir : testsdir)
+test('test-libelogind-sym',
+ test_libelogind_sym)
+#endif // 0
+
+############################################################
+
+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')
+#if 0 /// UNNEEDED by elogind
+# hwdb_update_sh = find_program('tools/meson-hwdb-update.sh')
+#
+# subdir('units')
+# subdir('sysctl.d')
+# subdir('sysusers.d')
+# subdir('tmpfiles.d')
+# subdir('rules')
+# subdir('hwdb')
+# subdir('network')
+#endif // 0
+subdir('man')
+subdir('shell-completion/bash')
+subdir('shell-completion/zsh')
+#if 0 /// UNNEEDED by elogind
+# subdir('docs/sysvinit')
+# subdir('docs/var-log')
+#endif // 0
+
+# FIXME: figure out if the warning is true:
+# https://github.com/mesonbuild/meson/wiki/Reference-manual#install_subdir
+install_subdir('factory/etc',
+ install_dir : factorydir)
+
+#if 0 /// UNNEEDED by elogind
+# install_data('xorg/50-systemd-user.sh',
+# install_dir : xinitrcdir)
+# install_data('system-preset/90-systemd.preset',
+# install_dir : systempresetdir)
+#endif // 0
+install_data('README',
+ 'NEWS',
+ 'CODING_STYLE',
+#if 0 /// UNNEEDED by elogind
+# 'DISTRO_PORTING',
+# 'ENVIRONMENT.md',
+#endif // 0
+ 'LICENSE.GPL2',
+ 'LICENSE.LGPL2.1',
+ 'src/libelogind/sd-bus/GVARIANT-SERIALIZATION',
+ install_dir : docdir)
+
+meson.add_install_script('sh', '-c', mkdir_p.format(systemdstatedir))
+meson.add_install_script('sh', '-c', 'touch $DESTDIR@0@'.format(prefixdir))
+
+############################################################
+
+meson_check_help = find_program('tools/meson-check-help.sh')
+
+foreach exec : public_programs
+ name = exec.full_path().split('/')[-1]
+ test('check-help-' + name,
+ meson_check_help,
+ args : [exec.full_path()])
+endforeach
+
+############################################################
+
+if git.found()
+ all_files = run_command(
+ git,
+ ['--git-dir=@0@/.git'.format(meson.source_root()),
+ 'ls-files',
+ ':/*.[ch]'])
+ all_files = files(all_files.stdout().split())
+
+ run_target(
+ 'tags',
+ input : all_files,
+ command : ['env', 'etags', '-o', '@0@/TAGS'.format(meson.source_root())] + all_files)
+ run_target(
+ 'ctags',
+ input : all_files,
+ command : ['env', 'ctags', '-o', '@0@/tags'.format(meson.source_root())] + all_files)
+endif
+
+if git.found()
+ meson_git_contrib_sh = find_program('tools/meson-git-contrib.sh')
+ run_target(
+ 'git-contrib',
+ command : [meson_git_contrib_sh])
+endif
+
+if git.found()
+ git_head = run_command(
+ git,
+ ['--git-dir=@0@/.git'.format(meson.source_root()),
+ 'rev-parse', 'HEAD']).stdout().strip()
+ git_head_short = run_command(
+ git,
+ ['--git-dir=@0@/.git'.format(meson.source_root()),
+ 'rev-parse', '--short=7', 'HEAD']).stdout().strip()
+
+ run_target(
+ 'git-snapshot',
+ command : ['git', 'archive',
+ '-o', '@0@/systemd-@1@.tar.gz'.format(meson.source_root(),
+ git_head_short),
+ '--prefix', 'systemd-@0@/'.format(git_head),
+ 'HEAD'])
+endif
+
+############################################################
+
+status = [
+ '@0@ @1@'.format(meson.project_name(), meson.project_version()),
+
+ 'prefix: @0@'.format(prefixdir),
+ 'rootprefix: @0@'.format(rootprefixdir),
+ 'sysconf dir: @0@'.format(sysconfdir),
+ 'includedir: @0@'.format(includedir),
+ 'lib dir: @0@'.format(libdir),
+ 'rootlib dir: @0@'.format(rootlibdir),
+#if 0 /// UNSUPPORTED by elogind
+# 'SysV init scripts: @0@'.format(sysvinit_path),
+# 'SysV rc?.d directories: @0@'.format(sysvrcnd_path),
+#endif // 0
+ 'PAM modules dir: @0@'.format(pamlibdir),
+ 'PAM configuration dir: @0@'.format(pamconfdir),
+#if 0 /// UNSUPPORTED by elogind
+# 'RPM macros dir: @0@'.format(rpmmacrosdir),
+#endif // 0
+ 'D-Bus policy dir: @0@'.format(dbuspolicydir),
+ 'D-Bus session dir: @0@'.format(dbussessionservicedir),
+ 'D-Bus system dir: @0@'.format(dbussystemservicedir),
+ 'bash completions dir: @0@'.format(bashcompletiondir),
+ 'zsh completions dir: @0@'.format(zshcompletiondir),
+#if 0 /// UNSUPPORTED by elogind
+# 'extra start script: @0@'.format(get_option('rc-local')),
+# 'extra stop script: @0@'.format(get_option('halt-local')),
+# 'debug shell: @0@ @ @1@'.format(get_option('debug-shell'),
+# get_option('debug-tty')),
+#endif // 0
+ 'TTY GID: @0@'.format(tty_gid),
+ 'maximum system UID: @0@'.format(system_uid_max),
+ 'maximum system GID: @0@'.format(system_gid_max),
+#if 0 /// UNSUPPORTED by elogind
+# '/dev/kvm access mode: @0@'.format(get_option('dev-kvm-mode')),
+# 'certificate root: @0@'.format(get_option('certificate-root')),
+# 'support URL: @0@'.format(support_url),
+# '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')),
+#
+# 'default DNSSEC mode: @0@'.format(default_dnssec),
+# 'default cgroup hierarchy: @0@'.format(default_hierarchy),
+#endif // 0
+ 'default KillUserProcesses setting: @0@'.format(kill_user_processes)]
+
+#if 0 /// UNSUPPORTED by elogind
+# alt_dns_servers = '\n '.join(dns_servers.split(' '))
+# alt_ntp_servers = '\n '.join(ntp_servers.split(' '))
+# status += [
+# 'default DNS servers: @0@'.format(alt_dns_servers),
+# 'default NTP servers: @0@'.format(alt_ntp_servers)]
+#
+# alt_time_epoch = run_command('date', '-Is', '-u', '-d',
+# '@@0@'.format(time_epoch)).stdout().strip()
+# status += [
+# 'time epoch: @0@ (@1@)'.format(time_epoch, alt_time_epoch)]
+#endif // 0
+
+# TODO:
+# CFLAGS: ${OUR_CFLAGS} ${CFLAGS}
+# CPPFLAGS: ${OUR_CPPFLAGS} ${CPPFLAGS}
+# LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS}
+
+#if 0 /// UNNEEDED by elogind
+# if conf.get('ENABLE_EFI', false)
+# status += [
+# 'efi arch: @0@'.format(efi_arch)]
+#
+# if have_gnu_efi
+# status += [
+# 'EFI machine type: @0@'.format(EFI_MACHINE_TYPE_NAME),
+# 'EFI CC @0@'.format(efi_cc),
+# 'EFI libdir: @0@'.format(efi_libdir),
+# 'EFI ldsdir: @0@'.format(efi_ldsdir),
+# 'EFI includedir: @0@'.format(efi_incdir)]
+# endif
+# endif
+#endif // 0
+
+found = []
+missing = []
+
+foreach tuple : [
+#if 0 /// UNNEEDED by elogind
+# ['libcryptsetup'],
+#endif // 0
+ ['PAM'],
+ ['AUDIT'],
+#if 0 /// UNNEEDED by elogind
+# ['IMA'],
+# ['AppArmor'],
+#endif // 0
+ ['SELinux'],
+#if 0 /// UNNEEDED by elogind
+# ['SECCOMP'],
+#endif // 0
+ ['SMACK'],
+#if 0 /// UNNEEDED by elogind
+# ['zlib'],
+# ['xz'],
+# ['lz4'],
+# ['bzip2'],
+#endif // 0
+ ['ACL'],
+#if 0 /// UNNEEDED by elogind
+# ['gcrypt'],
+# ['qrencode'],
+# ['microhttpd'],
+# ['gnutls'],
+# ['libcurl'],
+# ['idn'],
+# ['libidn2'],
+# ['libidn'],
+# ['nss-systemd'],
+# ['libiptc'],
+# ['elfutils'],
+# ['binfmt'],
+# ['vconsole'],
+# ['quotacheck'],
+# ['tmpfiles'],
+# ['environment.d'],
+# ['sysusers'],
+# ['firstboot'],
+# ['randomseed'],
+# ['backlight'],
+# ['rfkill'],
+# ['logind'],
+# ['machined'],
+# ['importd'],
+# ['hostnamed'],
+# ['timedated'],
+# ['timesyncd'],
+# ['localed'],
+# ['networkd'],
+# ['resolved'],
+# ['coredump'],
+#endif // 0
+ ['polkit'],
+ ['legacy pkla', install_polkit_pkla],
+#if 0 /// UNNEEDED by elogind
+# ['efi'],
+# ['gnu-efi', have_gnu_efi],
+# ['kmod'],
+# ['xkbcommon'],
+# ['blkid'],
+#endif // 0
+ ['dbus'],
+ ['glib'],
+#if 0 /// UNNEEDED by elogind
+# ['nss-myhostname', conf.get('HAVE_MYHOSTNAME', false)],
+# ['hwdb'],
+# ['tpm'],
+#endif // 0
+ ['man pages', want_man],
+ ['html pages', want_html],
+ ['man page indices', want_man and have_lxml],
+ ['split /usr', conf.get('HAVE_SPLIT_USR', false)],
+#if 0 /// UNNEEDED by elogind
+# ['SysV compat'],
+#endif // 0
+ ['utmp'],
+#if 0 /// UNNEEDED by elogind
+# ['ldconfig'],
+# ['hibernate'],
+# ['adm group', get_option('adm-group')],
+# ['wheel group', get_option('wheel-group')],
+# ['gshadow'],
+#else
+ ['debug elogind'],
+#endif // 0
+ ['debug hashmap'],
+ ['debug mmap cache'],
+]
+
+ cond = tuple.get(1, '')
+ if cond == ''
+ ident1 = 'HAVE_' + tuple[0].underscorify().to_upper()
+ ident2 = 'ENABLE_' + tuple[0].underscorify().to_upper()
+ cond = conf.get(ident1, false) or conf.get(ident2, false)
+ endif
+ if cond
+ found += [tuple[0]]
+ else
+ missing += [tuple[0]]
+ endif
+endforeach
+
+status += [
+ '',
+ 'enabled features: @0@'.format(', '.join(found)),
+ '',
+ 'disabled features: @0@'.format(', '.join(missing)),
+ '']
+message('\n '.join(status))
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 000000000..3ec87540b
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,306 @@
+# -*- mode: meson -*-
+
+option('split-usr', type : 'boolean', value : false,
+ description : '''assume that /bin, /sbin aren't symlinks into /usr''')
+option('rootlibdir', type : 'string',
+ description : '''[/usr]/lib/x86_64-linux-gnu or such''')
+option('rootprefix', type : 'string',
+ description : '''override the root prefix''')
+#if 0 /// UNNEEDED by elogind
+# Note: See meson.build why we use precompiler masks
+# option('link-udev-shared', type : 'boolean',
+# description : 'link systemd-udev and its helpers to libsystemd-shared.so')
+#
+# option('sysvinit-path', type : 'string', value : '/etc/init.d',
+# description : 'the directory where the SysV init scripts are located')
+# option('sysvrcnd-path', type : 'string', value : '/etc/rc.d',
+# description : 'the base directory for SysV rcN.d directories')
+# option('telinit-path', type : 'string', description : 'path to telinit')
+# option('rc-local', type : 'string',
+# value : '/etc/rc.local')
+# option('halt-local', type : 'string',
+# value : '/usr/sbin/halt.local')
+#
+# option('quotaon-path', type : 'string', description : 'path to quotaon')
+# option('quotacheck-path', type : 'string', description : 'path to quotacheck')
+# option('kill-path', type : 'string', description : 'path to kill')
+# option('kmod-path', type : 'string', description : 'path to kmod')
+#else
+# elogind must have a configurable rootlibexecdir
+option('rootlibexecdir', type : 'string',
+ description : '''override the root libexec directory path''')
+
+# And because elogind depends on external udev, it must be
+# configurable as well.
+option('udevrulesdir', type : 'string',
+ description : '''directory for udev rules files''')
+
+option('udevbindir', type : 'string',
+ description : '''directory for udev binary files''')
+
+# We have no systemd-shutdown binary, so we need 'halt' and 'reboot'
+option('halt-path', type : 'string', description : 'path to halt')
+option('reboot-path', type : 'string', description : 'path to reboot')
+#endif // 0
+option('kexec-path', type : 'string', description : 'path to kexec')
+#if 0 /// UNNEEDED by elogind
+# option('sulogin-path', type : 'string', description : 'path to sulogin')
+# option('mount-path', type : 'string', description : 'path to mount')
+# option('umount-path', type : 'string', description : 'path to umount')
+# option('loadkeys-path', type : 'string', description : 'path to loadkeys')
+# option('setfont-path', type : 'string', description : 'path to setfont')
+#
+# option('debug-shell', type : 'string', value : '/bin/sh',
+# description : 'path to debug shell binary')
+# option('debug-tty', type : 'string', value : '/dev/tty9',
+# description : 'specify the tty device for debug shell')
+# option('debug', type : 'string',
+# description : 'enable extra debugging (hashmap,mmap-cache)')
+#else
+option('debug', type : 'string',
+ description : 'enable extra debugging (elogind,hashmap,mmap-cache)')
+#endif // 0
+
+option('utmp', type : 'boolean',
+ description : 'support for utmp/wtmp log handling')
+#if 0 /// UNNEEDED by elogind
+# option('hibernate', type : 'boolean',
+# description : 'support for hibernation')
+# option('ldconfig', type : 'boolean',
+# description : 'support for dynamic linker cache creation')
+# option('resolve', type : 'boolean',
+# description : 'systemd-resolved stack')
+# option('efi', type : 'boolean',
+# description : 'enable systemd-boot and bootctl')
+# option('tpm', type : 'boolean',
+# description : 'TPM should be used to log events and extend the registers')
+# option('environment-d', type : 'boolean',
+# description : 'support for environment.d')
+# option('binfmt', type : 'boolean',
+# description : 'support for custom binary formats')
+# option('coredump', type : 'boolean',
+# description : 'install the coredump handler')
+# option('logind', type : 'boolean',
+# description : 'install the systemd-logind stack')
+# option('hostnamed', type : 'boolean',
+# description : 'install the systemd-hostnamed stack')
+# option('localed', type : 'boolean',
+# description : 'install the systemd-localed stack')
+# option('machined', type : 'boolean',
+# description : 'install the systemd-machined stack')
+# option('networkd', type : 'boolean',
+# description : 'install the systemd-networkd stack')
+# option('timedated', type : 'boolean',
+# description : 'install the systemd-timedated daemon')
+# option('timesyncd', type : 'boolean',
+# description : 'install the systemd-timesyncd daemon')
+# option('remote', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'support for "journal over the network"')
+# option('myhostname', type : 'boolean',
+# description : 'nss-myhostname support')
+# option('firstboot', type : 'boolean',
+# description : 'support for firstboot mechanism')
+# option('randomseed', type : 'boolean',
+# description : 'support for restoring random seed')
+# option('backlight', type : 'boolean',
+# description : 'support for restoring backlight state')
+# option('vconsole', type : 'boolean',
+# description : 'support for vconsole configuration')
+# option('quotacheck', type : 'boolean',
+# description : 'support for the quotacheck tools')
+# option('sysusers', type : 'boolean',
+# description : 'support for the sysusers configuration')
+# option('tmpfiles', type : 'boolean',
+# description : 'support for tmpfiles.d')
+# option('importd', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'install the systemd-importd daemon')
+# option('hwdb', type : 'boolean',
+# description : 'support for the hardware database')
+# option('rfkill', type : 'boolean',
+# description : 'support for the rfkill tools')
+#endif // 0
+option('man', type : 'combo', choices : ['auto', 'true', 'false'],
+ description : 'build and install man pages')
+option('html', type : 'combo', choices : ['auto', 'true', 'false'],
+ value : 'false',
+ description : 'build and install html pages')
+
+#if 0 /// UNNEEDED by elogind
+# option('certificate-root', type : 'string', value : '/etc/ssl',
+# description : 'the prefix for TLS certificates')
+#endif // 0
+option('dbuspolicydir', type : 'string',
+ description : 'D-Bus policy directory')
+option('dbussessionservicedir', type : 'string',
+ description : 'D-Bus session service directory')
+option('dbussystemservicedir', type : 'string',
+ description : 'D-Bus system service directory')
+option('pkgconfigdatadir', type : 'string', value : 'share/pkgconfig',
+ description : 'directory for ')
+option('pkgconfiglibdir', type : 'string', value : '',
+ description : 'directory for ')
+#if 0 /// UNNEEDED by elogind
+# option('rpmmacrosdir', type : 'string', value : 'lib/rpm/macros.d',
+# description : 'directory for rpm macros ["no" disables]')
+#endif // 0
+option('pamlibdir', type : 'string',
+ description : 'directory for PAM modules')
+option('pamconfdir', type : 'string',
+ description : 'directory for PAM configuration ["no" disables]')
+
+option('fallback-hostname', type : 'string', value : 'localhost',
+ description : 'the hostname used if none configured')
+option('default-hierarchy', type : 'combo',
+ choices : ['legacy', 'hybrid', 'unified'], value : 'hybrid',
+ description : 'default cgroup hierarchy')
+
+#if 0 /// UNNEEDED by elogind
+# option('time-epoch', type : 'string',
+# description : 'time epoch for time clients')
+#else
+option('cgroup-controller', type : 'string',
+ description : 'Name of the cgroup controller to use')
+#endif // 0
+option('system-uid-max', type : 'string',
+ description : 'maximum system UID')
+option('system-gid-max', type : 'string',
+ description : 'maximum system GID')
+option('tty-gid', type : 'string',
+ description : 'the numeric GID of the "tty" group',
+ value : '5')
+#if 0 /// UNNEEDED by elogind
+# option('adm-group', type : 'boolean',
+# description : 'the ACL for adm group should be added')
+# option('wheel-group', type : 'boolean',
+# description : 'the ACL for wheel group should be added')
+# option('nobody-user', type : 'string',
+# description : 'The name of the nobody user (the one with UID 65534)',
+# value : 'nobody')
+# option('nobody-group', type : 'string',
+# description : 'The name of the nobody group (the one with GID 65534)',
+# value : 'nobody')
+# option('dev-kvm-mode', type : 'string', value : '0660',
+# description : '/dev/kvm access mode')
+#endif // 0
+option('default-kill-user-processes', type : 'boolean',
+ description : 'the default value for KillUserProcesses= setting')
+option('gshadow', type : 'boolean',
+ description : 'support for shadow group')
+
+#if 0 /// UNNEEDED by elogind
+# option('default-dnssec', type : 'combo',
+# description : 'default DNSSEC mode',
+# choices : ['yes', 'allow-downgrade', 'no'],
+# value : 'allow-downgrade')
+# option('dns-servers', type : 'string',
+# description : 'space-separated list of default DNS servers',
+# value : '8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844')
+# option('ntp-servers', type : 'string',
+# description : 'space-separated list of default NTP servers',
+# value : 'time1.google.com time2.google.com time3.google.com time4.google.com')
+# option('support-url', type : 'string',
+# description : 'the support URL to show in catalog entries included in systemd',
+# value : 'https://lists.freedesktop.org/mailman/listinfo/systemd-devel')
+# option('www-target', type : 'string',
+# description : 'the address and dir to upload docs too',
+# value : 'www.freedesktop.org:/srv/www.freedesktop.org/www/software/systemd')
+#
+# option('seccomp', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'SECCOMP support')
+#endif // 0
+option('selinux', type : 'combo', choices : ['auto', 'true', 'false'],
+ description : 'SELinux support')
+#if 0 /// UNNEEDED by elogind
+# option('apparmor', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'AppArmor support')
+#endif // 0
+option('smack', type : 'boolean',
+ description : 'SMACK support')
+option('smack-run-label', type : 'string',
+ description : 'run systemd --system itself with a specific SMACK label')
+option('polkit', type : 'combo', choices : ['auto', 'true', 'false'],
+ description : 'PolicyKit support')
+option('ima', type : 'boolean',
+ description : 'IMA support')
+
+option('acl', type : 'combo', choices : ['auto', 'true', 'false'],
+ description : 'libacl support')
+option('audit', type : 'combo', choices : ['auto', 'true', 'false'],
+ description : 'libaudit support')
+#if 0 /// UNNEEDED by elogind
+# option('blkid', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'libblkid support')
+# option('kmod', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'support for loadable modules')
+#endif // 0
+option('pam', type : 'combo', choices : ['auto', 'true', 'false'],
+ description : 'PAM support')
+#if 0 /// UNNEEDED by elogind
+# option('microhttpd', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'libµhttpd support')
+# option('libcryptsetup', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'libcryptsetup support')
+# option('libcurl', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'libcurl support')
+# option('idn', type : 'boolean',
+# description : 'use IDN when printing host names')
+# option('libidn2', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'libidn2 support')
+# option('libidn', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'libidn support')
+# option('nss-systemd', type : 'boolean',
+# description : 'enable nss-systemd')
+# option('libiptc', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'libiptc support')
+# option('qrencode', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'libqrencode support')
+# option('gcrypt', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'gcrypt support')
+# option('gnutls', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'gnutls support')
+# option('elfutils', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'elfutils support')
+# option('zlib', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'zlib compression support')
+# option('bzip2', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'bzip2 compression support')
+# option('xz', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'xz compression support')
+# option('lz4', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'lz4 compression support')
+# option('xkbcommon', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'xkbcommon keymap support')
+#endif // 0
+option('glib', type : 'combo', choices : ['auto', 'true', 'false'],
+ description : 'libglib support (for tests only)')
+option('dbus', type : 'combo', choices : ['auto', 'true', 'false'],
+ description : 'libdbus support (for tests only)')
+
+#if 0 /// UNNEEDED BY elogind
+# option('gnu-efi', type : 'combo', choices : ['auto', 'true', 'false'],
+# description : 'gnu-efi support for sd-boot')
+# option('efi-cc', type : 'string', value : 'gcc',
+# description : 'the compiler to use for EFI modules')
+# option('efi-ld', type : 'string', value : 'ld',
+# description : 'the linker to use for EFI modules')
+# option('efi-libdir', type : 'string',
+# description : 'path to the EFI lib directory')
+# option('efi-ldsdir', type : 'string',
+# description : 'path to the EFI lds directory')
+# option('efi-includedir', type : 'string', value : '/usr/include/efi',
+# description : 'path to the EFI header directory')
+# option('tpm-pcrindex', type : 'string', value : '8',
+# description : 'TPM PCR register number to use')
+#endif // 0
+
+option('bashcompletiondir', type : 'string',
+ description : 'directory for bash completion scripts ["no" disables]')
+option('zshcompletiondir', type : 'string',
+ description : 'directory for zsh completion scripts ["no" disables]')
+
+option('tests', type : 'combo', choices : ['true', 'unsafe'],
+ description : 'enable extra tests with =unsafe')
+option('slow-tests', type : 'boolean', value : 'false',
+ description : 'run the slow tests by default')
+option('install-tests', type : 'boolean', value : 'false',
+ description : 'install test executables')
diff --git a/po/LINGUAS b/po/LINGUAS
index 2f1ba199a..cc64eab99 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,6 +1,8 @@
be
be@latin
bg
+ca
+cs
da
de
el
@@ -15,6 +17,7 @@ ko
pl
pt_BR
ru
+sk
sr
sv
tr
diff --git a/po/POTFILES.in b/po/POTFILES.in
index ffb5c0b5f..f33c53fb4 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1 +1,8 @@
+src/core/org.freedesktop.systemd1.policy.in.in
+src/hostname/org.freedesktop.hostname1.policy.in
+src/import/org.freedesktop.import1.policy.in
+src/locale/org.freedesktop.locale1.policy.in
src/login/org.freedesktop.login1.policy.in
+src/machine/org.freedesktop.machine1.policy.in
+src/timedate/org.freedesktop.timedate1.policy.in
+src/core/dbus-unit.c
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 000000000..f9c07299b
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,525 @@
+# Catalan translation for systemd.
+# Copyright (C) 2015 systemd's COPYRIGHT HOLDER
+# This file is distributed under the same license as the systemd package.
+# Walter Garcia-Fontes <walter.garcia@upf.edu>, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: systemd master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2015-11-22 16:37+0100\n"
+"PO-Revision-Date: 2016-12-29 09:02+0100\n"
+"Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
+"Language-Team: Català <ubuntu-l10n-ca@lists.ubuntu.com>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1
+# msgid "Send passphrase back to system"
+# msgstr "Retornar la contrasenya al sistema"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2
+# msgid ""
+# "Authentication is required to send the entered passphrase back to the system."
+# msgstr "Es requereix autenticació per retornar la contrasenya entrada al sistema."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3
+# msgid "Manage system services or other units"
+# msgstr "Administrar serveis del sistema o d'altres unitats."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4
+# msgid "Authentication is required to manage system services or other units."
+# msgstr "Es requereix autenticació per administrar els serveis de sistemes o d'altres unitats."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:5
+# msgid "Manage system service or unit files"
+# msgstr "Gestiona un servei de sistema o fitxers d'unitat"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:6
+# msgid "Authentication is required to manage system service or unit files."
+# msgstr "Cal autenticació per gestionar un servei de sistema o fitxers d'unitat."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:7
+# msgid "Set or unset system and service manager environment variables"
+# msgstr "Administrar variables de entorno del sistema y del gestor de servicios"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:8
+# msgid ""
+# "Authentication is required to set or unset system and service manager "
+# "environment variables."
+# msgstr "Cal autenticació per establir o cancel·lar variables d'entorn de sistema o del gestor de serveis."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:9
+# msgid "Reload the systemd state"
+# msgstr "Recarrega l'estat del systemd"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:10
+# msgid "Authentication is required to reload the systemd state."
+# msgstr "Cal autenticació per establir el nom de l'ordinador local."
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1
+# msgid "Set host name"
+# msgstr "Estableix el nom de l'ordinador"
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2
+# msgid "Authentication is required to set the local host name."
+# msgstr "Cal autenticació per establir el nom de l'ordinador local."
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3
+# msgid "Set static host name"
+# msgstr "Estableix el nom estàtic de l'ordinador"
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4
+# msgid ""
+# "Authentication is required to set the statically configured local host name, "
+# "as well as the pretty host name."
+# msgstr "Cal autenticació per establir el nom configurat estàticament de l'ordinador local, així com el nom de l'ordinador de nivell superior."
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5
+# msgid "Set machine information"
+# msgstr "Estableix la informació de l'ordinador"
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6
+# msgid "Authentication is required to set local machine information."
+# msgstr "Cal autenticació per establir la informació de l'ordinador local."
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:1
+# msgid "Import a VM or container image"
+# msgstr "Importa una màquina virtual o una imatge de contenidor"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:2
+# msgid "Authentication is required to import a VM or container image"
+# msgstr "Cal autenticació per importar una màquina virtual o una imatge de contenidor"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:3
+# msgid "Export a VM or container image"
+# msgstr "Exporta una màquina virtual o una imatge de contenidor"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:4
+# msgid "Authentication is required to export a VM or container image"
+# msgstr "Cal autenticació per exportar una màquina virtual o una imatge de contenidor"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:5
+# msgid "Download a VM or container image"
+# msgstr "Descarrega una màquina virtual o una imatge de contenidor"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:6
+# msgid "Authentication is required to download a VM or container image"
+# msgstr "Cal autenticació per descarregar una màquina virtual o una imatge de contenidor"
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:1
+# msgid "Set system locale"
+# msgstr "Estableix la regió del sistema"
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:2
+# msgid "Authentication is required to set the system locale."
+# msgstr "Cal autenticació per establir la regió del sistema."
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:3
+# msgid "Set system keyboard settings"
+# msgstr "Estableix la configuració del teclat del sistema."
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:4
+# msgid "Authentication is required to set the system keyboard settings."
+# msgstr "Cal autenticació per establir la configuració del teclat del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:1
+msgid "Allow applications to inhibit system shutdown"
+msgstr "Permet a les aplicacions inhibir l'apagada del sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:2
+msgid ""
+"Authentication is required for an application to inhibit system shutdown."
+msgstr "Cal autenticació perquè una aplicació inhibeixi l'apagada del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:3
+msgid "Allow applications to delay system shutdown"
+msgstr "Permet a les aplicacions endarrerir l'apagada del sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:4
+msgid "Authentication is required for an application to delay system shutdown."
+msgstr "Cal autenticació perquè una aplicació endarrereixi l'apagada del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:5
+msgid "Allow applications to inhibit system sleep"
+msgstr "Permet a les aplicacions inhibir la hibernació del sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:6
+msgid "Authentication is required for an application to inhibit system sleep."
+msgstr "Cal autenticació perquè una aplicació inhibeixi la hibernació del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:7
+msgid "Allow applications to delay system sleep"
+msgstr "Permet a les aplicacions endarrerir la hibernació del sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:8
+msgid "Authentication is required for an application to delay system sleep."
+msgstr "Cal autenticació perquè una aplicació endarrereixi la hibernació del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:9
+msgid "Allow applications to inhibit automatic system suspend"
+msgstr "Permet a les aplicacions inhibir la suspensió automàtica del sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:10
+msgid ""
+"Authentication is required for an application to inhibit automatic system "
+"suspend."
+msgstr "Cal autenticació perquè una aplicació inhibeixi la suspensió automàtica del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:11
+msgid "Allow applications to inhibit system handling of the power key"
+msgstr "Permet a les aplicacions inhibir la gestió de la tecla d'encesa per part del sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:12
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the power key."
+msgstr "Cal autenticació perquè una aplicació inhibeixi la gestió de la tecla d'encesa per part del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:13
+msgid "Allow applications to inhibit system handling of the suspend key"
+msgstr "Permet a les aplicacions inhibir la tecla de suspensió per part del sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:14
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the suspend key."
+msgstr "Cal autenticació perquè una aplicació inhibeixi la gestió de la tecla de suspensió per part del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:15
+msgid "Allow applications to inhibit system handling of the hibernate key"
+msgstr "Permet a les aplicacions inhibir la gestió de la tecla d'hibernació per part del sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:16
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the hibernate key."
+msgstr "Cal autenticació perquè una aplicació inhibeixi la gestió de la tecla d'hibernació per part del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:17
+msgid "Allow applications to inhibit system handling of the lid switch"
+msgstr "Permet a les aplicacions la gestió del tancament de la tapa per part del sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:18
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the lid switch."
+msgstr "Cal autenticació perquè una aplicació inhibeixi la gestió del tancament de la tapa per part del sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:19
+msgid "Allow non-logged-in users to run programs"
+msgstr "Permet l'execució de programes als usuaris sense inici de sessió"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:20
+msgid "Authentication is required to run programs as a non-logged-in user."
+msgstr "Cal autenticació per a la execució de programes per part d'usuaris sense inici de sessió"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:21
+msgid "Allow attaching devices to seats"
+msgstr "Permet l'annexió de dispositius als llocs de treball"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:22
+msgid "Authentication is required for attaching a device to a seat."
+msgstr "Cal autenticació per annexar un dispositiu a un lloc de treball."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:23
+msgid "Flush device to seat attachments"
+msgstr "Allibera les annexions de dispositius a llocs de treball"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:24
+msgid ""
+"Authentication is required for resetting how devices are attached to seats."
+msgstr "Cal autenticació per restablir les annexions dels dispositius als llocs de treball."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:25
+msgid "Power off the system"
+msgstr "Apaga el sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:26
+msgid "Authentication is required for powering off the system."
+msgstr "Cal autenticació per apagar el sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:27
+msgid "Power off the system while other users are logged in"
+msgstr "Apaga el sistema mentre que altres usuaris tenen sessió iniciada"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:28
+msgid ""
+"Authentication is required for powering off the system while other users are "
+"logged in."
+msgstr "Cal autenticació per apagar el sistema mentre que altres usuaris tenen sessió iniciada."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:29
+msgid "Power off the system while an application asked to inhibit it"
+msgstr "Apaga el sistema mentre que una aplicació ha demanat inhibir-lo"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:30
+msgid ""
+"Authentication is required for powering off the system while an application "
+"asked to inhibit it."
+msgstr "Cal autenticació per apagar el sistema mentre que una aplicació ha demanat inhibir-lo."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:31
+msgid "Reboot the system"
+msgstr "Reinicia el sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:32
+msgid "Authentication is required for rebooting the system."
+msgstr "Cal autenticació per reiniciar el sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:33
+msgid "Reboot the system while other users are logged in"
+msgstr "Reinicia el sistema mentre hi ha usuaris amb sessió iniciada"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:34
+msgid ""
+"Authentication is required for rebooting the system while other users are "
+"logged in."
+msgstr "Cal autenticació per reiniciar el sistema mentre hi ha usuaris amb sessió iniciada."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:35
+msgid "Reboot the system while an application asked to inhibit it"
+msgstr "Reinicia el sistema malgrat hi ha una aplicació que ho impedeix"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:36
+msgid ""
+"Authentication is required for rebooting the system while an application "
+"asked to inhibit it."
+msgstr "Cal autenticació per reiniciar el sistema malgrat hi ha una aplicació que ho impedeix."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:37
+msgid "Suspend the system"
+msgstr "Suspèn el sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:38
+msgid "Authentication is required for suspending the system."
+msgstr "Cal autenticació per suspendre el sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:39
+msgid "Suspend the system while other users are logged in"
+msgstr "Suspèn el sistema mentre hi ha altres usuaris amb sessió iniciada"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:40
+msgid ""
+"Authentication is required for suspending the system while other users are "
+"logged in."
+msgstr "Cal autenticació per reiniciar el sistema mentre hi ha usuaris amb sessió iniciada."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:41
+msgid "Suspend the system while an application asked to inhibit it"
+msgstr "Suspèn el sistema mentre una aplicació ha demanat d'inhibir-lo"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:42
+msgid ""
+"Authentication is required for suspending the system while an application "
+"asked to inhibit it."
+msgstr "Cal autenticació per suspendre el sistema mentre una aplicació ha demanat d'inhibir-lo."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:43
+msgid "Hibernate the system"
+msgstr "Hiberna el sistema"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:44
+msgid "Authentication is required for hibernating the system."
+msgstr "Cal autenticació per hibernar el sistema."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:45
+msgid "Hibernate the system while other users are logged in"
+msgstr "Hiberna el sistema mentre hi ha altres usuaris amb sessió iniciada"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:46
+msgid ""
+"Authentication is required for hibernating the system while other users are "
+"logged in."
+msgstr "Cal autenticació per hibernar el sistema mentre hi ha altres usuaris amb sessió iniciada."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:47
+msgid "Hibernate the system while an application asked to inhibit it"
+msgstr "Hiberna el sistema mentre una aplicació ha demanat inhibir-ho"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:48
+msgid ""
+"Authentication is required for hibernating the system while an application "
+"asked to inhibit it."
+msgstr "Cal autenticació per hibernar el sistema mentre una aplicació ha demanat inhibir-ho."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:49
+msgid "Manage active sessions, users and seats"
+msgstr "Gestiona les sessions, usuaris i llocs de treball actius"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:50
+msgid ""
+"Authentication is required for managing active sessions, users and seats."
+msgstr "Cal autenticació per administrar les sessions, usuaris i llocs de treball actius."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:51
+msgid "Lock or unlock active sessions"
+msgstr "Bloqueja o desbloqueja les sessions actives"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:52
+msgid "Authentication is required to lock or unlock active sessions."
+msgstr "Cal autenticació per bloquejar o desbloquejar les sessions actives."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:53
+msgid "Allow indication to the firmware to boot to setup interface"
+msgstr "Permet una indicació al microprogramari per iniciar a la interfície de configuració"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:54
+msgid ""
+"Authentication is required to indicate to the firmware to boot to setup "
+"interface."
+msgstr "Cal autenticació per indicar al microprogramari que iniciï a la interfície de configuració."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:55
+msgid "Set a wall message"
+msgstr "Estableix un missatge de mur"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:56
+msgid "Authentication is required to set a wall message"
+msgstr "Cal autenticació per establir un text de mur"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:1
+# msgid "Log into a local container"
+# msgstr "Inicia sessió a un contenidor local"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:2
+# msgid "Authentication is required to log into a local container."
+# msgstr "Cal autenticació per iniciar sessió a un contenidor local."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:3
+# msgid "Log into the local host"
+# msgstr "Inicia sessió a l'ordinador local"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:4
+# msgid "Authentication is required to log into the local host."
+# msgstr "Cal autenticació per iniciar sessió a l'ordinador local."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:5
+# msgid "Acquire a shell in a local container"
+# msgstr "Adquireix un intèrpret d'ordres a un contenidor local"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:6
+# msgid "Authentication is required to acquire a shell in a local container."
+# msgstr "Cal autenticació per adquirir un intèrpret d'ordres a un contenidor local."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:7
+# msgid "Acquire a shell on the local host"
+# msgstr "Adquireix un intèrpret d'ordres a l'ordinador local"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:8
+# msgid "Authentication is required to acquire a shell on the local host."
+# msgstr "Cal autenticació per adquirir un intèrpret d'ordres a l'ordinador local."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:9
+# msgid "Acquire a pseudo TTY in a local container"
+# msgstr "Adquireix un pseudo-terminal al contenidor local"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:10
+# msgid ""
+# "Authentication is required to acquire a pseudo TTY in a local container."
+# msgstr "Cal autenticació per adquirir una pseudo-terminal al contenidor local."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:11
+# msgid "Acquire a pseudo TTY on the local host"
+# msgstr "Adquireix una pseudo-terminal a l'ordinador local"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:12
+# msgid "Authentication is required to acquire a pseudo TTY on the local host."
+# msgstr "Cal autenticació per adquirir una pseudo-terminal a l'ordinador local."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:13
+# msgid "Manage local virtual machines and containers"
+# msgstr "Gestiona les màquines virtuals i els contenidors locals "
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:14
+# msgid ""
+# "Authentication is required to manage local virtual machines and containers."
+# msgstr "Cal autenticació per gestionar les màquines virtuals i els contenidors locals."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:15
+# msgid "Manage local virtual machine and container images"
+# msgstr "Gestiona les imatges locals de màquines virtuals i contenidors"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:16
+# msgid ""
+# "Authentication is required to manage local virtual machine and container "
+# "images."
+# msgstr "Cal autenticació per gestionar les imatges locals de màquines virtuals i contenidors."
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1
+# msgid "Set system time"
+# msgstr "Estableix la data i l'hora del sistema"
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2
+# msgid "Authentication is required to set the system time."
+# msgstr "Cal autenticació per establir la data i l'hora del sistema."
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3
+# msgid "Set system timezone"
+# msgstr "Estableix la zona horària del sistema"
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4
+# msgid "Authentication is required to set the system timezone."
+# msgstr "Cal autenticació per establir la zona horària del sistema."
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5
+# msgid "Set RTC to local timezone or UTC"
+# msgstr "Estableix el rellotge del sistema a la zona horària local o a UTC"
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6
+# msgid ""
+# "Authentication is required to control whether the RTC stores the local or "
+# "UTC time."
+# msgstr "Cal autenticació per controlar si el rellotge del sistema emmagatzema la data i l'hora locals o UTC."
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7
+# msgid "Turn network time synchronization on or off"
+# msgstr "Activa o desactiva la sincronització de data i hora de xarxa"
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8
+# msgid ""
+# "Authentication is required to control whether network time synchronization "
+# "shall be enabled."
+# msgstr "Cal autenticació per controlar si s'ha d'activar la sincronització de data i hora de xarxa."
+
+# #: ../src/core/dbus-unit.c:428
+# msgid "Authentication is required to start '$(unit)'."
+# msgstr "Cal autenticació per iniciar «$(unit)»."
+
+# #: ../src/core/dbus-unit.c:429
+# msgid "Authentication is required to stop '$(unit)'."
+# msgstr "Cal autenticació per aturar «$(unit)»."
+
+# #: ../src/core/dbus-unit.c:430
+# msgid "Authentication is required to reload '$(unit)'."
+# msgstr "Cal autenticació per tornar a carregar «$(unit)»."
+
+# #: ../src/core/dbus-unit.c:431 ../src/core/dbus-unit.c:432
+# msgid "Authentication is required to restart '$(unit)'."
+# msgstr "Cal autenticació per tornar a reiniciar «$(unit)»."
+
+# #: ../src/core/dbus-unit.c:535
+# msgid "Authentication is required to kill '$(unit)'."
+# msgstr "Cal autenticació per matar a «$(unit)»."
+
+# #: ../src/core/dbus-unit.c:565
+# msgid "Authentication is required to reset the \"failed" state of '$(unit)'."
+# msgstr "Cal autenticació per reiniciar l'estat «fallat» de «$(unit)»."
+
+# #: ../src/core/dbus-unit.c:597
+# msgid "Authentication is required to set properties on '$(unit)'."
+# msgstr "Cal autenticació per establir propietats a «$(unit)»."
+
+#~ msgid "Press Ctrl+C to cancel all filesystem checks in progress"
+#~ msgstr ""
+#~ "Presione Ctrl+C para cancelar todas las comprobaciones del sistema de "
+#~ "archivos en curso"
+
+#~ msgid "Checking in progress on %d disk (%3.1f%% complete)"
+#~ msgid_plural "Checking in progress on %d disks (%3.1f%% complete)"
+#~ msgstr[0] "Comprobando progreso en %d disco (%3.1f %% completado)"
+#~ msgstr[1] "Comprobando progreso en %d discos (%3.1f %% completado)"
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 000000000..206fde372
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,546 @@
+# Czech translation for systemd.
+# Copyright (C) 2016-2017 systemd's author and translators.
+# This file is distributed under the same license as the systemd package.
+# Daniel Maixner <xskipy@gmail.com>, 2016.
+# Daniel Rusek <mail@asciiwolf.com>, 2016, 2017.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: systemd master\n"
+"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
+"POT-Creation-Date: 2016-04-23 14:24+0200\n"
+"PO-Revision-Date: 2017-04-20 23:00+0200\n"
+"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n"
+"%100>=20) ? 1 : 2);\n"
+"Language-Team: \n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1
+# msgid "Send passphrase back to system"
+# msgstr "Odeslat heslo zpět do systému"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2
+# msgid "Authentication is required to send the entered passphrase back to the system."
+# msgstr "Pro odeslání zadaného hesla do systému je vyžadováno ověření."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3
+# msgid "Manage system services or other units"
+# msgstr "Spravovat systémové služby nebo další jednotky"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4
+# msgid "Authentication is required to manage system services or other units."
+# msgstr "Pro správu systémových služeb nebo dalších jednotek je vyžadováno ověření."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:5
+# msgid "Manage system service or unit files"
+# msgstr "Spravovat systémové služby nebo soubory jednotek"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:6
+# msgid "Authentication is required to manage system service or unit files."
+# msgstr "Pro správu systémových služeb nebo souborů jednotek je vyžadováno ověření."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:7
+# msgid "Set or unset system and service manager environment variables"
+# msgstr "Nastavit nebo rušit proměnné správce systému a služeb"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:8
+# msgid ""
+# "Authentication is required to set or unset system and service manager environment "
+# "variables."
+# msgstr ""
+# "Pro nastavení nebo rušení proměnných správce systému a služeb je vyžadováno "
+# "ověření."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:9
+# msgid "Reload the systemd state"
+# msgstr "Znovu načíst stav systemd"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:10
+# msgid "Authentication is required to reload the systemd state."
+# msgstr "Pro znovu načtení stavu systemd je vyžadováno ověření."
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1
+# msgid "Set host name"
+# msgstr "Nastavit název stroje"
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2
+# msgid "Authentication is required to set the local host name."
+# msgstr "Pro nastavení lokálního názvu stroje je vyžadováno ověření."
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3
+# msgid "Set static host name"
+# msgstr "Nastavit statický název stoje"
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4
+# msgid ""
+# "Authentication is required to set the statically configured local host name, as "
+# "well as the pretty host name."
+# msgstr ""
+# "Pro nastavení staticky konfigurovaného názvu lokálního stroje, stejně tak pro "
+# "změnu uživatelsky přívětivého jména je vyžadováno ověření."
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5
+# msgid "Set machine information"
+# msgstr "Nastavit informace o stroji"
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6
+# msgid "Authentication is required to set local machine information."
+# msgstr "Pro nastavení informací o stroji je vyžadováno ověření."
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:1
+# msgid "Import a VM or container image"
+# msgstr "Importovat obraz virtuální stroje nebo kontejneru"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:2
+# msgid "Authentication is required to import a VM or container image"
+# msgstr "Pro import obrazu virtuálního stroje nebo kontejneru je vyžadováno ověření"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:3
+# msgid "Export a VM or container image"
+# msgstr "Exportovat obraz virtuálního stroje nebo kontejneru"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:4
+# msgid "Authentication is required to export a VM or container image"
+# msgstr "Pro export obrazu virtuálního stroje nebo kontejneru je vyžadováno ověření"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:5
+# msgid "Download a VM or container image"
+# msgstr "Stáhnout obraz virtuálního stroje nebo kontejneru"
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:6
+# msgid "Authentication is required to download a VM or container image"
+# msgstr "Pro stažení obrazu virtuálního stroje nebo kontejneru je vyžadováno ověření"
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:1
+# msgid "Set system locale"
+# msgstr "Nastavit lokalizaci systému"
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:2
+# msgid "Authentication is required to set the system locale."
+# msgstr "Pro nastavení lokalizace systému je vyžadováno ověření."
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:3
+# msgid "Set system keyboard settings"
+# msgstr "Nastavit systémovou konfiguraci klávesnice"
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:4
+# msgid "Authentication is required to set the system keyboard settings."
+# msgstr "Pro nastavení systémové konfigurace klávesnice je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:1
+msgid "Allow applications to inhibit system shutdown"
+msgstr "Povolit aplikacím zakázat vypnutí systému"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:2
+msgid "Authentication is required for an application to inhibit system shutdown."
+msgstr "Pro povolení aplikacím zakázat vypnutí systému je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:3
+msgid "Allow applications to delay system shutdown"
+msgstr "Povolit aplikacím odložit vypnutí systému"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:4
+msgid "Authentication is required for an application to delay system shutdown."
+msgstr "Pro povolení aplikacím odložit vypnutí systému je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:5
+msgid "Allow applications to inhibit system sleep"
+msgstr "Povolit aplikacím zakázat uspání systému"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:6
+msgid "Authentication is required for an application to inhibit system sleep."
+msgstr "Pro povolení aplikacím zakázat uspání systému je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:7
+msgid "Allow applications to delay system sleep"
+msgstr "Povolit aplikacím odložit uspání systému"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:8
+msgid "Authentication is required for an application to delay system sleep."
+msgstr "Pro povolení aplikacím odložit uspání systému je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:9
+msgid "Allow applications to inhibit automatic system suspend"
+msgstr "Povolit aplikacím zakázat automatické vypnutí systému"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:10
+msgid ""
+"Authentication is required for an application to inhibit automatic system suspend."
+msgstr ""
+"Pro povolení aplikacím zakázat automatické vypnutí systému je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:11
+msgid "Allow applications to inhibit system handling of the power key"
+msgstr "Povolit aplikacím zakázat chovaní systému na stisknutí vypínacího tlačítka"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:12
+msgid ""
+"Authentication is required for an application to inhibit system handling of the "
+"power key."
+msgstr ""
+"Pro povolení aplikacím zakázat chovaní systému na stisknutí vypínacího tlačítka je "
+"vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:13
+msgid "Allow applications to inhibit system handling of the suspend key"
+msgstr "Povolit aplikacím zakázat chovaní systému na stisknutí uspávacího tlačítka"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:14
+msgid ""
+"Authentication is required for an application to inhibit system handling of the "
+"suspend key."
+msgstr ""
+"Pro povolení aplikacím zakázat chovaní systému na stisknutí uspávacího tlačítka je "
+"vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:15
+msgid "Allow applications to inhibit system handling of the hibernate key"
+msgstr "Povolit aplikacím zakázat chovaní systému na stisknutí tlačítka hibernace"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:16
+msgid ""
+"Authentication is required for an application to inhibit system handling of the "
+"hibernate key."
+msgstr ""
+"Pro povolení aplikacím zakázat chovaní systému na stisknutí tlačítka hibernace je "
+"vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:17
+msgid "Allow applications to inhibit system handling of the lid switch"
+msgstr "Povolit aplikacím zakázat chovaní systému na zavření víka"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:18
+msgid ""
+"Authentication is required for an application to inhibit system handling of the "
+"lid switch."
+msgstr ""
+"Pro povolení aplikacím zakázat chovaní systému na zavření víka je vyžadováno "
+"ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:19
+msgid "Allow non-logged-in user to run programs"
+msgstr "Povolit nepřihlášenému uživateli spouštět programy"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:20
+msgid "Explicit request is required to run programs as a non-logged-in user."
+msgstr ""
+"Ke spuštění programů jako nepřihlášený uživatel je třeba speciální požadavek."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:21
+msgid "Allow non-logged-in users to run programs"
+msgstr "Povolit nepřihlášeným uživatelům spouštět programy"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:22
+msgid "Authentication is required to run programs as a non-logged-in user."
+msgstr "Ke spuštění programů jako nepřihlášený uživatel je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:23
+msgid "Allow attaching devices to seats"
+msgstr "Povolit připojování zařízení ke stanovištím"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:24
+msgid "Authentication is required for attaching a device to a seat."
+msgstr "Pro připojování zařízení ke stanovišti je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:25
+msgid "Flush device to seat attachments"
+msgstr "Odstranit přiřazení zařízení ke stanovištím"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:26
+msgid "Authentication is required for resetting how devices are attached to seats."
+msgstr ""
+"Pro reset způsobu jak jsou zařízení přiřazována ke stanovištím je vyžadováno "
+"ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:27
+msgid "Power off the system"
+msgstr "Vypnout systém"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:28
+msgid "Authentication is required for powering off the system."
+msgstr "Pro vypnutí systému je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:29
+msgid "Power off the system while other users are logged in"
+msgstr "Vypnout systém, i když jsou přihlášeni další uživatelé"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:30
+msgid ""
+"Authentication is required for powering off the system while other users are "
+"logged in."
+msgstr ""
+"Pro vypnutí systému, když jsou přihlášeni další uživatelé je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:31
+msgid "Power off the system while an application asked to inhibit it"
+msgstr "Vypnout systém, i když aplikace požádala o zákaz vypnutí"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:32
+msgid ""
+"Authentication is required for powering off the system while an application asked "
+"to inhibit it."
+msgstr ""
+"Pro vypnutí systému, když aplikace požádala o zákaz vypnutí je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:33
+msgid "Reboot the system"
+msgstr "Restartovat systém"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:34
+msgid "Authentication is required for rebooting the system."
+msgstr "Pro restartování systému je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:35
+msgid "Reboot the system while other users are logged in"
+msgstr "Restartovat systém, i když jsou přihlášeni další uživatelé"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:36
+msgid ""
+"Authentication is required for rebooting the system while other users are logged "
+"in."
+msgstr ""
+"Pro restartování systému, když jsou přihlášeni další uživatelé je vyžadováno "
+"ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:37
+msgid "Reboot the system while an application asked to inhibit it"
+msgstr "Restartovat systém, i když aplikace požádala o zákaz restartu"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:38
+msgid ""
+"Authentication is required for rebooting the system while an application asked to "
+"inhibit it."
+msgstr ""
+"Pro restartování systému, když aplikace požádala o zákaz restartu je vyžadováno "
+"ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:39
+msgid "Suspend the system"
+msgstr "Uspat systém"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:40
+msgid "Authentication is required for suspending the system."
+msgstr "Pro uspání systému je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:41
+msgid "Suspend the system while other users are logged in"
+msgstr "Uspat systém, i když jsou přihlášeni další uživatelé"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:42
+msgid ""
+"Authentication is required for suspending the system while other users are logged "
+"in."
+msgstr ""
+"Pro uspání systému, když jsou přihlášeni další uživatelé je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:43
+msgid "Suspend the system while an application asked to inhibit it"
+msgstr "Uspat systém, i když aplikace požádala o zákaz uspání"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:44
+msgid ""
+"Authentication is required for suspending the system while an application asked to "
+"inhibit it."
+msgstr ""
+"Pro uspání systému, když aplikace požádala o zákaz uspání je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:45
+msgid "Hibernate the system"
+msgstr "Hibernovat systém"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:46
+msgid "Authentication is required for hibernating the system."
+msgstr "Pro hibernaci systému je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:47
+msgid "Hibernate the system while other users are logged in"
+msgstr "Hibernovat systém, i když jsou přihlášeni další uživatelé"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:48
+msgid ""
+"Authentication is required for hibernating the system while other users are logged "
+"in."
+msgstr ""
+"Pro hibernaci systému, když jsou přihlášeni další uživatelé je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:49
+msgid "Hibernate the system while an application asked to inhibit it"
+msgstr "Hibernovat systém, i když aplikace požádala o zákaz hibernace"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:50
+msgid ""
+"Authentication is required for hibernating the system while an application asked "
+"to inhibit it."
+msgstr ""
+"Pro hibernaci systému, když aplikace požádala o zákaz hibernace je vyžadováno "
+"ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:51
+msgid "Manage active sessions, users and seats"
+msgstr "Spravovat aktivní sezení, uživatele a stanoviště"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:52
+msgid "Authentication is required for managing active sessions, users and seats."
+msgstr "Pro správu aktivních sezení, uživatelů a stanovišť je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:53
+msgid "Lock or unlock active sessions"
+msgstr "Zamknout nebo odemknout aktivní sezení"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:54
+msgid "Authentication is required to lock or unlock active sessions."
+msgstr "Pro zamčení nebo odemčení aktivních sezení je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:55
+msgid "Allow indication to the firmware to boot to setup interface"
+msgstr "Povolit indikaci firmwaru bootovat instalační prostředí"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:56
+msgid ""
+"Authentication is required to indicate to the firmware to boot to setup interface."
+msgstr ""
+"K povolení indikace firmwaru bootovat instalační prostředí je vyžadováno ověření."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:57
+msgid "Set a wall message"
+msgstr "Nastavit zprávu všem uživatelům"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:58
+msgid "Authentication is required to set a wall message"
+msgstr "K nastavení zprávy všem uživatelům je vyžadováno ověření"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:1
+# msgid "Log into a local container"
+# msgstr "Přihlásit se do lokálního kontejneru"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:2
+# msgid "Authentication is required to log into a local container."
+# msgstr "Pro přihlášení do lokálního kontejneru je vyžadováno ověření."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:3
+# msgid "Log into the local host"
+# msgstr "Přihlásit se na lokální stroj"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:4
+# msgid "Authentication is required to log into the local host."
+# msgstr "Pro přihlášení k lokálnímu stroji je vyžadováno ověření."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:5
+# msgid "Acquire a shell in a local container"
+# msgstr "Získat shell v lokálním kontejneru"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:6
+# msgid "Authentication is required to acquire a shell in a local container."
+# msgstr "Pro získání shellu v lokálním kontejneru je vyžadováno ověření."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:7
+# msgid "Acquire a shell on the local host"
+# msgstr "Získat shell na lokálním stroji"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:8
+# msgid "Authentication is required to acquire a shell on the local host."
+# msgstr "Pro získání shellu na lokálním stroji je vyžadováno ověření."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:9
+# msgid "Acquire a pseudo TTY in a local container"
+# msgstr "Získat pseudo TTY v lokálním kontejneru"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:10
+# msgid "Authentication is required to acquire a pseudo TTY in a local container."
+# msgstr "Pro získání pseudo TTY v lokálním kontejneru je vyžadováno ověření."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:11
+# msgid "Acquire a pseudo TTY on the local host"
+# msgstr "Získat pseudo TTY na lokálním stroji"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:12
+# msgid "Authentication is required to acquire a pseudo TTY on the local host."
+# msgstr "Pro získání pseudo TTY na lokálním stroji je vyžadováno ověření."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:13
+# msgid "Manage local virtual machines and containers"
+# msgstr "Spravovat lokální virtuální stroje a kontejnery"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:14
+# msgid "Authentication is required to manage local virtual machines and containers."
+# msgstr "Pro správu lokálních virtuálních strojů a kontejnerů je vyžadováno ověření."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:15
+# msgid "Manage local virtual machine and container images"
+# msgstr "Spravovat lokální obrazy virtuálních strojů a kontejnerů"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:16
+# msgid ""
+# "Authentication is required to manage local virtual machine and container images."
+# msgstr ""
+# "Pro správu obrazů lokálních virtuálních strojů a kontejnerů je vyžadováno ověření."
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1
+# msgid "Set system time"
+# msgstr "Nastavit systémový čas"
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2
+# msgid "Authentication is required to set the system time."
+# msgstr "Pro nastavení systémového času je vyžadováno ověření."
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3
+# msgid "Set system timezone"
+# msgstr "Nastavit systémovou časovou zónu"
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4
+# msgid "Authentication is required to set the system timezone."
+# msgstr "Pro nastavení systémové časové zóny je vyžadováno ověření."
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5
+# msgid "Set RTC to local timezone or UTC"
+# msgstr "Nastavit RTC na lokální časovou zónu nebo UTC"
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6
+# msgid ""
+# "Authentication is required to control whether the RTC stores the local or UTC time."
+# msgstr ""
+# "Pro kontrolu jestli RTC ukládá lokální časovou zónu nebo UTC čas je vyžadováno "
+# "ověření."
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7
+# msgid "Turn network time synchronization on or off"
+# msgstr "Zapnout nebo vypnout synchronizaci s časem ze sítě"
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8
+# msgid ""
+# "Authentication is required to control whether network time synchronization shall "
+# "be enabled."
+# msgstr "Pro kontrolu synchronizace času ze sítě je vyžadováno ověření."
+
+# #: ../src/core/dbus-unit.c:459
+# msgid "Authentication is required to start '$(unit)'."
+# msgstr "Pro spuštění „$(unit)” je vyžadováno ověření."
+
+# #: ../src/core/dbus-unit.c:460
+# msgid "Authentication is required to stop '$(unit)'."
+# msgstr "Pro vypnutí „$(unit)” je vyžadováno ověření."
+
+# #: ../src/core/dbus-unit.c:461
+# msgid "Authentication is required to reload '$(unit)'."
+# msgstr "Pro znovu načtení „$(unit)” je vyžadováno ověření."
+
+# #: ../src/core/dbus-unit.c:462 ../src/core/dbus-unit.c:463
+# msgid "Authentication is required to restart '$(unit)'."
+# msgstr "Pro restart „$(unit)” je vyžadováno ověření."
+
+# #: ../src/core/dbus-unit.c:570
+# msgid "Authentication is required to kill '$(unit)'."
+# msgstr "Pro ukončení „$(unit)” je vyžadováno ověření."
+
+# #: ../src/core/dbus-unit.c:601
+# msgid "Authentication is required to reset the \"failed" state of '$(unit)'."
+# msgstr "Pro resetování chybného stavu „$(unit)” je vyžadováno ověření."
+
+# #: ../src/core/dbus-unit.c:634
+# msgid "Authentication is required to set properties on '$(unit)'."
+# msgstr "Pro nastavení vlastností na „$(unit)” je vyžadováno ověření."
diff --git a/po/hr.po b/po/hr.po
index e30ab72de..8b1f361d8 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: systemd master\n"
"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
-"POT-Creation-Date: 2016-27-04 11:57+0100\n"
+"POT-Creation-Date: 2016-04-27 11:57+0100\n"
"PO-Revision-Date: 2016-04-27 12:11+0200\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
diff --git a/po/hu.po b/po/hu.po
index 4f8d9eb95..f96f501a4 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -3,20 +3,21 @@
# This file is distributed under the same license as the systemd package.
#
# Gabor Kelemen <kelemeng at gnome dot hu>, 2015, 2016.
+# Balázs Úr <urbalazs at gmail dot com>, 2016.
msgid ""
msgstr ""
"Project-Id-Version: systemd master\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-01-02 13:41+0100\n"
-"PO-Revision-Date: 2016-01-02 13:45+0100\n"
-"Last-Translator: Gabor Kelemen <kelemeng at ubuntu dot com>\n"
+"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
+"POT-Creation-Date: 2016-04-24 12:53+0000\n"
+"PO-Revision-Date: 2016-08-23 18:03+0100\n"
+"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <openscope at googlegroups dot com>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Lokalize 2.0\n"
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1
# msgid "Send passphrase back to system"
@@ -241,50 +242,60 @@ msgstr ""
"kezelésének meggátlásához."
#: ../src/login/org.freedesktop.login1.policy.in.h:19
+msgid "Allow non-logged-in user to run programs"
+msgstr "Programfuttatás engedélyezése be nem jelentkezett felhasználó számára"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:20
+msgid "Explicit request is required to run programs as a non-logged-in user."
+msgstr ""
+"Határozott kérés szükséges a programfuttatáshoz be nem jelentkezett "
+"felhasználóként."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:21
msgid "Allow non-logged-in users to run programs"
msgstr "Programfuttatás engedélyezése be nem jelentkezett felhasználók számára"
-#: ../src/login/org.freedesktop.login1.policy.in.h:20
+#: ../src/login/org.freedesktop.login1.policy.in.h:22
msgid "Authentication is required to run programs as a non-logged-in user."
msgstr ""
"Hitelesítés szükséges a programfuttatáshoz be nem jelentkezett "
"felhasználóként."
-#: ../src/login/org.freedesktop.login1.policy.in.h:21
+#: ../src/login/org.freedesktop.login1.policy.in.h:23
msgid "Allow attaching devices to seats"
msgstr "Eszközök csatolásának engedélyezése munkaállomásokhoz"
-#: ../src/login/org.freedesktop.login1.policy.in.h:22
+#: ../src/login/org.freedesktop.login1.policy.in.h:24
msgid "Authentication is required for attaching a device to a seat."
msgstr ""
"Hitelesítés szükséges eszköz csatolásának engedélyezéséhez egy "
"munkaállomáshoz"
-#: ../src/login/org.freedesktop.login1.policy.in.h:23
+#: ../src/login/org.freedesktop.login1.policy.in.h:25
msgid "Flush device to seat attachments"
msgstr "Eszközök és munkaállomások csatolásainak törlése"
-#: ../src/login/org.freedesktop.login1.policy.in.h:24
+#: ../src/login/org.freedesktop.login1.policy.in.h:26
msgid ""
"Authentication is required for resetting how devices are attached to seats."
msgstr ""
"Hitelesítés szükséges az eszközök munkaállomásokhoz csatolásainak "
"alaphelyzetbe állításához."
-#: ../src/login/org.freedesktop.login1.policy.in.h:25
+#: ../src/login/org.freedesktop.login1.policy.in.h:27
msgid "Power off the system"
msgstr "A rendszer kikapcsolása"
-#: ../src/login/org.freedesktop.login1.policy.in.h:26
+#: ../src/login/org.freedesktop.login1.policy.in.h:28
msgid "Authentication is required for powering off the system."
msgstr "Hitelesítés szükséges a rendszer kikapcsolásához."
-#: ../src/login/org.freedesktop.login1.policy.in.h:27
+#: ../src/login/org.freedesktop.login1.policy.in.h:29
msgid "Power off the system while other users are logged in"
msgstr ""
"A rendszer kikapcsolása miközben be vannak jelentkezve más felhasználók"
-#: ../src/login/org.freedesktop.login1.policy.in.h:28
+#: ../src/login/org.freedesktop.login1.policy.in.h:30
msgid ""
"Authentication is required for powering off the system while other users are "
"logged in."
@@ -292,12 +303,12 @@ msgstr ""
"Hitelesítés szükséges a rendszer kikapcsolásához miközben be vannak "
"jelentkezve más felhasználók."
-#: ../src/login/org.freedesktop.login1.policy.in.h:29
+#: ../src/login/org.freedesktop.login1.policy.in.h:31
msgid "Power off the system while an application asked to inhibit it"
msgstr ""
"A rendszer kikapcsolása miközben egy alkalmazás ennek meggátlását kérte"
-#: ../src/login/org.freedesktop.login1.policy.in.h:30
+#: ../src/login/org.freedesktop.login1.policy.in.h:32
msgid ""
"Authentication is required for powering off the system while an application "
"asked to inhibit it."
@@ -305,19 +316,19 @@ msgstr ""
"Hitelesítés szükséges a rendszer kikapcsolásához miközben egy alkalmazás "
"ennek meggátlását kérte."
-#: ../src/login/org.freedesktop.login1.policy.in.h:31
+#: ../src/login/org.freedesktop.login1.policy.in.h:33
msgid "Reboot the system"
msgstr "A rendszer újraindítása"
-#: ../src/login/org.freedesktop.login1.policy.in.h:32
+#: ../src/login/org.freedesktop.login1.policy.in.h:34
msgid "Authentication is required for rebooting the system."
msgstr "Hitelesítés szükséges a rendszer újraindításához."
-#: ../src/login/org.freedesktop.login1.policy.in.h:33
+#: ../src/login/org.freedesktop.login1.policy.in.h:35
msgid "Reboot the system while other users are logged in"
msgstr "A rendszer újraindítása mialatt be vannak jelentkezve más felhasználók"
-#: ../src/login/org.freedesktop.login1.policy.in.h:34
+#: ../src/login/org.freedesktop.login1.policy.in.h:36
msgid ""
"Authentication is required for rebooting the system while other users are "
"logged in."
@@ -325,12 +336,12 @@ msgstr ""
"Hitelesítés szükséges a rendszer újraindításához miközben be vannak "
"jelentkezve más felhasználók."
-#: ../src/login/org.freedesktop.login1.policy.in.h:35
+#: ../src/login/org.freedesktop.login1.policy.in.h:37
msgid "Reboot the system while an application asked to inhibit it"
msgstr ""
"A rendszer újraindítása miközben egy alkalmazás ennek meggátlását kérte"
-#: ../src/login/org.freedesktop.login1.policy.in.h:36
+#: ../src/login/org.freedesktop.login1.policy.in.h:38
msgid ""
"Authentication is required for rebooting the system while an application "
"asked to inhibit it."
@@ -338,20 +349,20 @@ msgstr ""
"Hitelesítés szükséges a rendszer újraindításához miközben egy alkalmazás "
"ennek meggátlását kérte."
-#: ../src/login/org.freedesktop.login1.policy.in.h:37
+#: ../src/login/org.freedesktop.login1.policy.in.h:39
msgid "Suspend the system"
msgstr "A rendszer felfüggesztése"
-#: ../src/login/org.freedesktop.login1.policy.in.h:38
+#: ../src/login/org.freedesktop.login1.policy.in.h:40
msgid "Authentication is required for suspending the system."
msgstr "Hitelesítés szükséges a rendszer felfüggesztéséhez."
-#: ../src/login/org.freedesktop.login1.policy.in.h:39
+#: ../src/login/org.freedesktop.login1.policy.in.h:41
msgid "Suspend the system while other users are logged in"
msgstr ""
"A rendszer felfüggesztése mialatt be vannak jelentkezve más felhasználók"
-#: ../src/login/org.freedesktop.login1.policy.in.h:40
+#: ../src/login/org.freedesktop.login1.policy.in.h:42
msgid ""
"Authentication is required for suspending the system while other users are "
"logged in."
@@ -359,12 +370,12 @@ msgstr ""
"Hitelesítés szükséges a rendszer felfüggesztéséhez miközben be vannak "
"jelentkezve más felhasználók."
-#: ../src/login/org.freedesktop.login1.policy.in.h:41
+#: ../src/login/org.freedesktop.login1.policy.in.h:43
msgid "Suspend the system while an application asked to inhibit it"
msgstr ""
"A rendszer felfüggesztése miközben egy alkalmazás ennek meggátlását kérte"
-#: ../src/login/org.freedesktop.login1.policy.in.h:42
+#: ../src/login/org.freedesktop.login1.policy.in.h:44
msgid ""
"Authentication is required for suspending the system while an application "
"asked to inhibit it."
@@ -372,19 +383,19 @@ msgstr ""
"Hitelesítés szükséges a rendszer felfüggesztéséhez miközben egy alkalmazás "
"ennek meggátlását kérte."
-#: ../src/login/org.freedesktop.login1.policy.in.h:43
+#: ../src/login/org.freedesktop.login1.policy.in.h:45
msgid "Hibernate the system"
msgstr "A rendszer hibernálása"
-#: ../src/login/org.freedesktop.login1.policy.in.h:44
+#: ../src/login/org.freedesktop.login1.policy.in.h:46
msgid "Authentication is required for hibernating the system."
msgstr "Hitelesítés szükséges a rendszer hibernálásához."
-#: ../src/login/org.freedesktop.login1.policy.in.h:45
+#: ../src/login/org.freedesktop.login1.policy.in.h:47
msgid "Hibernate the system while other users are logged in"
msgstr "A rendszer hibernálása mialatt be vannak jelentkezve más felhasználók"
-#: ../src/login/org.freedesktop.login1.policy.in.h:46
+#: ../src/login/org.freedesktop.login1.policy.in.h:48
msgid ""
"Authentication is required for hibernating the system while other users are "
"logged in."
@@ -392,11 +403,11 @@ msgstr ""
"Hitelesítés szükséges a rendszer hibernálásához miközben be vannak "
"jelentkezve más felhasználók."
-#: ../src/login/org.freedesktop.login1.policy.in.h:47
+#: ../src/login/org.freedesktop.login1.policy.in.h:49
msgid "Hibernate the system while an application asked to inhibit it"
msgstr "A rendszer hibernálása miközben egy alkalmazás ennek meggátlását kérte"
-#: ../src/login/org.freedesktop.login1.policy.in.h:48
+#: ../src/login/org.freedesktop.login1.policy.in.h:50
msgid ""
"Authentication is required for hibernating the system while an application "
"asked to inhibit it."
@@ -404,31 +415,31 @@ msgstr ""
"Hitelesítés szükséges a rendszer hibernálásához miközben egy alkalmazás "
"ennek meggátlását kérte."
-#: ../src/login/org.freedesktop.login1.policy.in.h:49
+#: ../src/login/org.freedesktop.login1.policy.in.h:51
msgid "Manage active sessions, users and seats"
msgstr "Aktív munkamenetek, felhasználók és munkaállomások kezelése"
-#: ../src/login/org.freedesktop.login1.policy.in.h:50
+#: ../src/login/org.freedesktop.login1.policy.in.h:52
msgid ""
"Authentication is required for managing active sessions, users and seats."
msgstr ""
"Hitelesítés szükséges az aktív munkamenetek, felhasználók és munkaállomások "
"kezeléséhez."
-#: ../src/login/org.freedesktop.login1.policy.in.h:51
+#: ../src/login/org.freedesktop.login1.policy.in.h:53
msgid "Lock or unlock active sessions"
msgstr "Aktív munkamenetek zárolása vagy feloldása"
-#: ../src/login/org.freedesktop.login1.policy.in.h:52
+#: ../src/login/org.freedesktop.login1.policy.in.h:54
msgid "Authentication is required to lock or unlock active sessions."
msgstr ""
"Hitelesítés szükséges az aktív munkamenetek zárolásához vagy feloldásához."
-#: ../src/login/org.freedesktop.login1.policy.in.h:53
+#: ../src/login/org.freedesktop.login1.policy.in.h:55
msgid "Allow indication to the firmware to boot to setup interface"
msgstr "A firmware-nek jelezhető, hogy a beállítófelületet bootolja"
-#: ../src/login/org.freedesktop.login1.policy.in.h:54
+#: ../src/login/org.freedesktop.login1.policy.in.h:56
msgid ""
"Authentication is required to indicate to the firmware to boot to setup "
"interface."
@@ -436,11 +447,11 @@ msgstr ""
"Hitelesítés szükséges a firmware-nek jelzéshez, hogy a beállítófelületet "
"bootolja"
-#: ../src/login/org.freedesktop.login1.policy.in.h:55
+#: ../src/login/org.freedesktop.login1.policy.in.h:57
msgid "Set a wall message"
msgstr "Falüzenet beállítása"
-#: ../src/login/org.freedesktop.login1.policy.in.h:56
+#: ../src/login/org.freedesktop.login1.policy.in.h:58
msgid "Authentication is required to set a wall message"
msgstr "Hitelesítés szükséges a falüzenet beállításához"
@@ -552,33 +563,34 @@ msgstr "Hitelesítés szükséges a falüzenet beállításához"
# "shall be enabled."
# msgstr "Hitelesítés szükséges a hálózati időszinkronizáció engedélyezéséhez."
-# #: ../src/core/dbus-unit.c:449
+# #: ../src/core/dbus-unit.c:450
# msgid "Authentication is required to start '$(unit)'."
# msgstr "Hitelesítés szükséges a következő elindításához: „$(unit)”."
-# #: ../src/core/dbus-unit.c:450
+# #: ../src/core/dbus-unit.c:451
# msgid "Authentication is required to stop '$(unit)'."
# msgstr "Hitelesítés szükséges a következő leállításához: „$(unit)”."
-# #: ../src/core/dbus-unit.c:451
+# #: ../src/core/dbus-unit.c:452
# msgid "Authentication is required to reload '$(unit)'."
# msgstr "Hitelesítés szükséges a következő újratöltéséhez: „$(unit)”."
-# #: ../src/core/dbus-unit.c:452 ../src/core/dbus-unit.c:453
+# #: ../src/core/dbus-unit.c:453 ../src/core/dbus-unit.c:454
# msgid "Authentication is required to restart '$(unit)'."
# msgstr "Hitelesítés szükséges a következő újraindításához: „$(unit)”."
-# #: ../src/core/dbus-unit.c:556
+# #: ../src/core/dbus-unit.c:560
# msgid "Authentication is required to kill '$(unit)'."
# msgstr "Hitelesítés szükséges a következő kilövéséhez: „$(unit)”."
-# #: ../src/core/dbus-unit.c:586
+# #: ../src/core/dbus-unit.c:590
# msgid "Authentication is required to reset the \"failed" state of '$(unit)'."
# msgstr ""
# "Hitelesítés szükséges a következő „sikertelen” állapotának törléséhez: "
# "„$(unit)”."
-# #: ../src/core/dbus-unit.c:618
+# #: ../src/core/dbus-unit.c:622
# msgid "Authentication is required to set properties on '$(unit)'."
# msgstr ""
# "Hitelesítés szükséges a következő tulajdonságainak beállításához: „$(unit)”."
+
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 000000000..f89291bfc
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1,12 @@
+i18n = import('i18n')
+i18n.gettext(meson.project_name())
+
+#####################################################################
+
+intltool_merge = find_program('intltool-merge')
+po_dir = meson.current_source_dir()
+
+intltool_cache = join_paths(meson.current_build_dir(), 'intltool-merge-cache')
+intltool_command = [intltool_merge, '-x', '-u',
+ '-c', intltool_cache,
+ po_dir, '@INPUT@', '@OUTPUT@']
diff --git a/po/pl.po b/po/pl.po
index 98b1e8fd5..d0a80f7db 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,13 +1,15 @@
-# translation of pl.po to Polish
-# Piotr Drąg <piotrdrag@gmail.com>, 2011, 2013, 2014, 2015, 2016.
+# Polish translation for systemd.
+# Copyright © 2011-2016 the systemd authors.
+# This file is distributed under the same license as the systemd package.
+# Piotr Drąg <piotrdrag@gmail.com>, 2011, 2013-2016.
# Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-04-23 14:24+0200\n"
-"PO-Revision-Date: 2016-04-23 14:25+0200\n"
+"POT-Creation-Date: 2016-10-05 19:01+0200\n"
+"PO-Revision-Date: 2016-10-05 19:02+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
"Language: pl\n"
@@ -19,13 +21,13 @@ msgstr ""
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1
# msgid "Send passphrase back to system"
-# msgstr "Wysłanie hasła z powrotem do systemu"
+# msgstr "Wysłanie hasła z powrotem do systemu"
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2
# msgid ""
# "Authentication is required to send the entered passphrase back to the system."
# msgstr ""
-# "Wymagane jest uwierzytelnienie, aby wysłać podane hasło z powrotem do "
+# "Wymagane jest uwierzytelnienie, aby wysłać podane hasło z powrotem do "
# "systemu."
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3
@@ -51,7 +53,7 @@ msgstr ""
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:7
# msgid "Set or unset system and service manager environment variables"
# msgstr ""
-# "Ustawienie lub usunięcie zmiennych środowiskowych menedżera systemu i usług"
+# "Ustawienie lub usunięcie zmiennych środowiskowych menedżera systemu i usług"
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:8
# msgid ""
@@ -59,7 +61,7 @@ msgstr ""
# "environment variables."
# msgstr ""
# "Wymagane jest uwierzytelnienie, aby ustawić lub usunąć zmienne środowiskowe "
-# "menedżera systemu i usług."
+# "menedżera systemu i usług."
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:9
# msgid "Reload the systemd state"
@@ -87,16 +89,16 @@ msgstr ""
# "as well as the pretty host name."
# msgstr ""
# "Wymagane jest uwierzytelnienie, aby ustawić statycznie skonfigurowaną nazwę "
-# "lokalnego komputera, a także jego ładną nazwę."
+# "lokalnego komputera, a także jego ładną nazwę."
# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5
# msgid "Set machine information"
-# msgstr "Ustawienie informacji o komputerze"
+# msgstr "Ustawienie informacji o komputerze"
# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6
# msgid "Authentication is required to set local machine information."
# msgstr ""
-# "Wymagane jest uwierzytelnienie, aby ustawić informacje o lokalnym komputerze."
+# "Wymagane jest uwierzytelnienie, aby ustawić informacje o lokalnym komputerze."
# #: ../src/import/org.freedesktop.import1.policy.in.h:1
# msgid "Import a VM or container image"
@@ -410,14 +412,14 @@ msgstr ""
#: ../src/login/org.freedesktop.login1.policy.in.h:51
msgid "Manage active sessions, users and seats"
-msgstr "Zarządzanie aktywnymi sesjami, użytkownikami i stanowiskami"
+msgstr "Zarządzanie aktywnymi sesjami, użytkownikami i stanowiskami"
#: ../src/login/org.freedesktop.login1.policy.in.h:52
msgid ""
"Authentication is required for managing active sessions, users and seats."
msgstr ""
"Wymagane jest uwierzytelnienie, aby zarządzać aktywnymi sesjami, "
-"użytkownikami i stanowiskami."
+"użytkownikami i stanowiskami."
#: ../src/login/org.freedesktop.login1.policy.in.h:53
msgid "Lock or unlock active sessions"
@@ -468,12 +470,12 @@ msgstr "Wymagane jest uwierzytelnienie, aby ustawić komunikat wall"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:5
# msgid "Acquire a shell in a local container"
-# msgstr "Uzyskanie powłoki w lokalnym kontenerze"
+# msgstr "Uzyskanie powłoki w lokalnym kontenerze"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:6
# msgid "Authentication is required to acquire a shell in a local container."
# msgstr ""
-# "Wymagane jest uwierzytelnienie, aby uzyskać powłokę w lokalnym kontenerze."
+# "Wymagane jest uwierzytelnienie, aby uzyskać powłokę w lokalnym kontenerze."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:7
# msgid "Acquire a shell on the local host"
@@ -486,13 +488,13 @@ msgstr "Wymagane jest uwierzytelnienie, aby ustawić komunikat wall"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:9
# msgid "Acquire a pseudo TTY in a local container"
-# msgstr "Uzyskanie pseudo-TTY w lokalnym kontenerze"
+# msgstr "Uzyskanie pseudo-TTY w lokalnym kontenerze"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:10
# msgid ""
# "Authentication is required to acquire a pseudo TTY in a local container."
# msgstr ""
-# "Wymagane jest uwierzytelnienie, aby uzyskać pseudo-TTY w lokalnym kontenerze."
+# "Wymagane jest uwierzytelnienie, aby uzyskać pseudo-TTY w lokalnym kontenerze."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:11
# msgid "Acquire a pseudo TTY on the local host"
@@ -506,18 +508,18 @@ msgstr "Wymagane jest uwierzytelnienie, aby ustawić komunikat wall"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:13
# msgid "Manage local virtual machines and containers"
-# msgstr "Zarządzanie lokalnymi maszynami wirtualnymi i kontenerami"
+# msgstr "Zarządzanie lokalnymi maszynami wirtualnymi i kontenerami"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:14
# msgid ""
# "Authentication is required to manage local virtual machines and containers."
# msgstr ""
# "Wymagane jest uwierzytelnienie, aby zarządzać lokalnymi maszynami "
-# "wirtualnymi i kontenerami."
+# "wirtualnymi i kontenerami."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:15
# msgid "Manage local virtual machine and container images"
-# msgstr "Zarządzanie lokalnymi obrazami maszyn wirtualnych i kontenerów"
+# msgstr "Zarządzanie lokalnymi obrazami maszyn wirtualnych i kontenerów"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:16
# msgid ""
@@ -525,7 +527,7 @@ msgstr "Wymagane jest uwierzytelnienie, aby ustawić komunikat wall"
# "images."
# msgstr ""
# "Wymagane jest uwierzytelnienie, aby zarządzać lokalnymi obrazami maszyn "
-# "wirtualnych i kontenerów."
+# "wirtualnych i kontenerów."
# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1
# msgid "Set system time"
@@ -567,36 +569,36 @@ msgstr "Wymagane jest uwierzytelnienie, aby ustawić komunikat wall"
# "Wymagane jest uwierzytelnienie, aby kontrolować, czy włączyć synchronizację "
# "czasu przez sieć."
-# #: ../src/core/dbus-unit.c:450
+# #: ../src/core/dbus-unit.c:459
# msgid "Authentication is required to start '$(unit)'."
# msgstr "Wymagane jest uwierzytelnienie, aby uruchomić jednostkę „$(unit)”."
-# #: ../src/core/dbus-unit.c:451
+# #: ../src/core/dbus-unit.c:460
# msgid "Authentication is required to stop '$(unit)'."
# msgstr "Wymagane jest uwierzytelnienie, aby zatrzymać jednostkę „$(unit)”."
-# #: ../src/core/dbus-unit.c:452
+# #: ../src/core/dbus-unit.c:461
# msgid "Authentication is required to reload '$(unit)'."
# msgstr ""
# "Wymagane jest uwierzytelnienie, aby ponownie wczytać jednostkę „$(unit)”."
-# #: ../src/core/dbus-unit.c:453 ../src/core/dbus-unit.c:454
+# #: ../src/core/dbus-unit.c:462 ../src/core/dbus-unit.c:463
# msgid "Authentication is required to restart '$(unit)'."
# msgstr ""
# "Wymagane jest uwierzytelnienie, aby ponownie uruchomić jednostkę „$(unit)”."
-# #: ../src/core/dbus-unit.c:560
+# #: ../src/core/dbus-unit.c:570
# msgid "Authentication is required to kill '$(unit)'."
# msgstr ""
# "Wymagane jest uwierzytelnienie, aby wymusić wyłączenie jednostki „$(unit)”."
-# #: ../src/core/dbus-unit.c:590
+# #: ../src/core/dbus-unit.c:601
# msgid "Authentication is required to reset the \"failed" state of '$(unit)'."
# msgstr ""
# "Wymagane jest uwierzytelnienie, aby przywrócić stan „failed” (niepowodzenia) "
# "jednostki „$(unit)”."
-# #: ../src/core/dbus-unit.c:622
+# #: ../src/core/dbus-unit.c:634
# msgid "Authentication is required to set properties on '$(unit)'."
# msgstr ""
# "Wymagane jest uwierzytelnienie, aby ustawić właściwości jednostki „$(unit)”."
diff --git a/po/pt_BR.po b/po/pt_BR.po
index dfcb93773..160ea0d80 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,23 +1,22 @@
# Brazilian Portuguese translation for systemd.
-# Copyright (C) 2015 systemd's COPYRIGHT HOLDER
+# Copyright (C) 2017 systemd's COPYRIGHT HOLDER
# This file is distributed under the same license as the systemd package.
-# Rafael Ferreira <rafael.f.f1@gmail.com>, 2014.
# Enrico Nicoletto <liverig@gmail.com>, 2014.
-#
+# Rafael Fontenelle <rafaelff@gnome.org>, 2015, 2017.
msgid ""
msgstr ""
"Project-Id-Version: systemd master\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-11-22 16:37+0100\n"
-"PO-Revision-Date: 2015-01-10 12:23-0300\n"
-"Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n"
+"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
+"POT-Creation-Date: 2016-11-17 03:29+0000\n"
+"PO-Revision-Date: 2017-04-03 14:25-0200\n"
+"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 1.7.1\n"
+"X-Generator: Virtaal 1.0.0-beta1\n"
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1
# msgid "Send passphrase back to system"
@@ -31,15 +30,14 @@ msgstr ""
# "sistema."
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3
-# #, fuzzy
# msgid "Manage system services or other units"
-# msgstr "Gerenciar unidades e serviços do sistema"
+# msgstr "Gerenciar serviços do sistema e outras unidades"
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4
-# #, fuzzy
# msgid "Authentication is required to manage system services or other units."
# msgstr ""
-# "É necessária autenticação para gerenciar unidades e serviços do sistema."
+# "É necessária autenticação para gerenciar serviços do sistema ou outras "
+# "unidades."
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:5
# msgid "Manage system service or unit files"
@@ -52,18 +50,18 @@ msgstr ""
# "sistema."
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:7
-# #, fuzzy
# msgid "Set or unset system and service manager environment variables"
-# msgstr "Acesso privilegiado ao gerenciador de serviço e de sistema"
+# msgstr ""
+# "Definir ou retirar definição de variáveis de ambiente de gerenciador de "
+# "serviço e sistema"
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:8
-# #, fuzzy
# msgid ""
# "Authentication is required to set or unset system and service manager "
# "environment variables."
# msgstr ""
-# "É necessária autenticação para gerenciar arquivos \"unit" e "service" do "
-# "sistema."
+# "É necessária autenticação para definir ou retirar definição de variáveis de "
+# "ambiente de gerenciador de serviço e sistema."
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:9
# msgid "Reload the systemd state"
@@ -103,30 +101,27 @@ msgstr ""
# #: ../src/import/org.freedesktop.import1.policy.in.h:1
# msgid "Import a VM or container image"
-# msgstr ""
+# msgstr "Importar uma VM ou imagem contêiner"
# #: ../src/import/org.freedesktop.import1.policy.in.h:2
-# #, fuzzy
# msgid "Authentication is required to import a VM or container image"
-# msgstr "É necessária autenticação para se conectar a um contêiner local."
+# msgstr "É necessária autenticação para importar uma VM ou imagem contêiner"
# #: ../src/import/org.freedesktop.import1.policy.in.h:3
# msgid "Export a VM or container image"
-# msgstr ""
+# msgstr "Exportar uma VM ou imagem contêiner"
# #: ../src/import/org.freedesktop.import1.policy.in.h:4
-# #, fuzzy
# msgid "Authentication is required to export a VM or container image"
-# msgstr "É necessária autenticação para se conectar a um contêiner local."
+# msgstr "É necessária autenticação para exportar uma VM ou imagem contêiner"
# #: ../src/import/org.freedesktop.import1.policy.in.h:5
# msgid "Download a VM or container image"
-# msgstr ""
+# msgstr "Baixar uma VM ou imagem contêiner"
# #: ../src/import/org.freedesktop.import1.policy.in.h:6
-# #, fuzzy
# msgid "Authentication is required to download a VM or container image"
-# msgstr "É necessária autenticação para se conectar a um contêiner local."
+# msgstr "É necessária autenticação para baixar uma VM ou imagem contêiner"
# #: ../src/locale/org.freedesktop.locale1.policy.in.h:1
# msgid "Set system locale"
@@ -254,48 +249,61 @@ msgstr ""
"sistema sobre o interruptor da tela."
#: ../src/login/org.freedesktop.login1.policy.in.h:19
+#| msgid "Allow non-logged-in users to run programs"
+msgid "Allow non-logged-in user to run programs"
+msgstr ""
+"Permitir que programas sejam executados por usuário que não possui sessão"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:20
+#| msgid "Authentication is required to run programs as a non-logged-in user."
+msgid "Explicit request is required to run programs as a non-logged-in user."
+msgstr ""
+"É necessária requisição explícita para executar programas como usuário sem "
+"sessão aberta."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:21
msgid "Allow non-logged-in users to run programs"
msgstr ""
"Permitir que programas sejam executados por usuários que não possuem sessão"
-#: ../src/login/org.freedesktop.login1.policy.in.h:20
+#: ../src/login/org.freedesktop.login1.policy.in.h:22
msgid "Authentication is required to run programs as a non-logged-in user."
msgstr ""
"É necessária autenticação para executar programas como usuário sem sessão "
"aberta."
-#: ../src/login/org.freedesktop.login1.policy.in.h:21
+#: ../src/login/org.freedesktop.login1.policy.in.h:23
msgid "Allow attaching devices to seats"
msgstr "Permitir conectar dispositivos em estações"
-#: ../src/login/org.freedesktop.login1.policy.in.h:22
+#: ../src/login/org.freedesktop.login1.policy.in.h:24
msgid "Authentication is required for attaching a device to a seat."
msgstr "É necessária autenticação para conectar um dispositivo em uma estação."
-#: ../src/login/org.freedesktop.login1.policy.in.h:23
+#: ../src/login/org.freedesktop.login1.policy.in.h:25
msgid "Flush device to seat attachments"
msgstr "Liberar dispositivo para conexões da estação"
-#: ../src/login/org.freedesktop.login1.policy.in.h:24
+#: ../src/login/org.freedesktop.login1.policy.in.h:26
msgid ""
"Authentication is required for resetting how devices are attached to seats."
msgstr ""
"É necessária autenticação para redefinir a quantidade de dispositivos "
"conectados na estação."
-#: ../src/login/org.freedesktop.login1.policy.in.h:25
+#: ../src/login/org.freedesktop.login1.policy.in.h:27
msgid "Power off the system"
msgstr "Desligar o sistema"
-#: ../src/login/org.freedesktop.login1.policy.in.h:26
+#: ../src/login/org.freedesktop.login1.policy.in.h:28
msgid "Authentication is required for powering off the system."
msgstr "É necessária autenticação para desligar o sistema."
-#: ../src/login/org.freedesktop.login1.policy.in.h:27
+#: ../src/login/org.freedesktop.login1.policy.in.h:29
msgid "Power off the system while other users are logged in"
msgstr "Desligar o sistema enquanto outros usuários estão conectados"
-#: ../src/login/org.freedesktop.login1.policy.in.h:28
+#: ../src/login/org.freedesktop.login1.policy.in.h:30
msgid ""
"Authentication is required for powering off the system while other users are "
"logged in."
@@ -303,11 +311,11 @@ msgstr ""
"É necessária autenticação para desligar o sistema enquanto outros usuários "
"estão conectados."
-#: ../src/login/org.freedesktop.login1.policy.in.h:29
+#: ../src/login/org.freedesktop.login1.policy.in.h:31
msgid "Power off the system while an application asked to inhibit it"
msgstr "Desligar o sistema enquanto um aplicativo solicitou inibição"
-#: ../src/login/org.freedesktop.login1.policy.in.h:30
+#: ../src/login/org.freedesktop.login1.policy.in.h:32
msgid ""
"Authentication is required for powering off the system while an application "
"asked to inhibit it."
@@ -315,19 +323,19 @@ msgstr ""
"É necessária autenticação para desligar o sistema enquanto um aplicativo "
"solicitou inibição."
-#: ../src/login/org.freedesktop.login1.policy.in.h:31
+#: ../src/login/org.freedesktop.login1.policy.in.h:33
msgid "Reboot the system"
msgstr "Reiniciar o sistema"
-#: ../src/login/org.freedesktop.login1.policy.in.h:32
+#: ../src/login/org.freedesktop.login1.policy.in.h:34
msgid "Authentication is required for rebooting the system."
msgstr "É necessária autenticação para reiniciar o sistema."
-#: ../src/login/org.freedesktop.login1.policy.in.h:33
+#: ../src/login/org.freedesktop.login1.policy.in.h:35
msgid "Reboot the system while other users are logged in"
msgstr "Reiniciar o sistema enquanto outros usuários estiverem conectados"
-#: ../src/login/org.freedesktop.login1.policy.in.h:34
+#: ../src/login/org.freedesktop.login1.policy.in.h:36
msgid ""
"Authentication is required for rebooting the system while other users are "
"logged in."
@@ -335,11 +343,11 @@ msgstr ""
"É necessária autenticação para reiniciar o sistema enquanto outros usuários "
"estiverem conectados."
-#: ../src/login/org.freedesktop.login1.policy.in.h:35
+#: ../src/login/org.freedesktop.login1.policy.in.h:37
msgid "Reboot the system while an application asked to inhibit it"
msgstr "Reiniciar o sistema enquanto um aplicativo solicitou inibição"
-#: ../src/login/org.freedesktop.login1.policy.in.h:36
+#: ../src/login/org.freedesktop.login1.policy.in.h:38
msgid ""
"Authentication is required for rebooting the system while an application "
"asked to inhibit it."
@@ -347,19 +355,19 @@ msgstr ""
"É necessária autenticação para reiniciar o sistema enquanto um aplicativo "
"solicitou inibição."
-#: ../src/login/org.freedesktop.login1.policy.in.h:37
+#: ../src/login/org.freedesktop.login1.policy.in.h:39
msgid "Suspend the system"
msgstr "Suspender o sistema"
-#: ../src/login/org.freedesktop.login1.policy.in.h:38
+#: ../src/login/org.freedesktop.login1.policy.in.h:40
msgid "Authentication is required for suspending the system."
msgstr "É necessária autenticação para suspender o sistema."
-#: ../src/login/org.freedesktop.login1.policy.in.h:39
+#: ../src/login/org.freedesktop.login1.policy.in.h:41
msgid "Suspend the system while other users are logged in"
msgstr "Suspender o sistema enquanto outros usuários estiverem conectados"
-#: ../src/login/org.freedesktop.login1.policy.in.h:40
+#: ../src/login/org.freedesktop.login1.policy.in.h:42
msgid ""
"Authentication is required for suspending the system while other users are "
"logged in."
@@ -367,11 +375,11 @@ msgstr ""
"É necessária autenticação para suspender o sistema enquanto outros usuários "
"estiverem conectados."
-#: ../src/login/org.freedesktop.login1.policy.in.h:41
+#: ../src/login/org.freedesktop.login1.policy.in.h:43
msgid "Suspend the system while an application asked to inhibit it"
msgstr "Suspender o sistema enquanto um aplicativo solicitou inibição"
-#: ../src/login/org.freedesktop.login1.policy.in.h:42
+#: ../src/login/org.freedesktop.login1.policy.in.h:44
msgid ""
"Authentication is required for suspending the system while an application "
"asked to inhibit it."
@@ -379,19 +387,19 @@ msgstr ""
"É necessária autenticação para suspender o sistema enquanto um aplicativo "
"solicitou inibição."
-#: ../src/login/org.freedesktop.login1.policy.in.h:43
+#: ../src/login/org.freedesktop.login1.policy.in.h:45
msgid "Hibernate the system"
msgstr "Hibernar o sistema"
-#: ../src/login/org.freedesktop.login1.policy.in.h:44
+#: ../src/login/org.freedesktop.login1.policy.in.h:46
msgid "Authentication is required for hibernating the system."
msgstr "É necessária autenticação para hibernar o sistema."
-#: ../src/login/org.freedesktop.login1.policy.in.h:45
+#: ../src/login/org.freedesktop.login1.policy.in.h:47
msgid "Hibernate the system while other users are logged in"
msgstr "Hibernar o sistema enquanto outros usuários estiverem conectados"
-#: ../src/login/org.freedesktop.login1.policy.in.h:46
+#: ../src/login/org.freedesktop.login1.policy.in.h:48
msgid ""
"Authentication is required for hibernating the system while other users are "
"logged in."
@@ -399,11 +407,11 @@ msgstr ""
"É necessária autenticação para hibernar o sistema enquanto outros usuários "
"estiverem conectados."
-#: ../src/login/org.freedesktop.login1.policy.in.h:47
+#: ../src/login/org.freedesktop.login1.policy.in.h:49
msgid "Hibernate the system while an application asked to inhibit it"
msgstr "Hibernar o sistema enquanto um aplicativo solicitou inibição"
-#: ../src/login/org.freedesktop.login1.policy.in.h:48
+#: ../src/login/org.freedesktop.login1.policy.in.h:50
msgid ""
"Authentication is required for hibernating the system while an application "
"asked to inhibit it."
@@ -411,123 +419,121 @@ msgstr ""
"É necessária autenticação para hibernar o sistema enquanto um aplicativo "
"solicitou inibição."
-#: ../src/login/org.freedesktop.login1.policy.in.h:49
+#: ../src/login/org.freedesktop.login1.policy.in.h:51
msgid "Manage active sessions, users and seats"
-msgstr ""
+msgstr "Gerenciar estações, usuários e sessões ativas"
-#: ../src/login/org.freedesktop.login1.policy.in.h:50
-#, fuzzy
+#: ../src/login/org.freedesktop.login1.policy.in.h:52
msgid ""
"Authentication is required for managing active sessions, users and seats."
-msgstr "É necessária autenticação para conectar um dispositivo em uma estação."
+msgstr ""
+"É necessária autenticação para gerenciar estações, usuários e sessões ativas."
-#: ../src/login/org.freedesktop.login1.policy.in.h:51
+#: ../src/login/org.freedesktop.login1.policy.in.h:53
msgid "Lock or unlock active sessions"
-msgstr ""
+msgstr "Travar ou destravar sessões ativas"
-#: ../src/login/org.freedesktop.login1.policy.in.h:52
-#, fuzzy
+#: ../src/login/org.freedesktop.login1.policy.in.h:54
msgid "Authentication is required to lock or unlock active sessions."
-msgstr "É necessária autenticação para se conectar a um contêiner local."
+msgstr "É necessária autenticação para travar ou destravar sessões ativas."
-#: ../src/login/org.freedesktop.login1.policy.in.h:53
+#: ../src/login/org.freedesktop.login1.policy.in.h:55
msgid "Allow indication to the firmware to boot to setup interface"
msgstr ""
+"Permitir indicação para o firmware inicializar para a interface de "
+"configuração"
-#: ../src/login/org.freedesktop.login1.policy.in.h:54
-#, fuzzy
+#: ../src/login/org.freedesktop.login1.policy.in.h:56
msgid ""
"Authentication is required to indicate to the firmware to boot to setup "
"interface."
-msgstr "É necessária autenticação para definir nome de máquina local."
+msgstr ""
+"É necessária autenticação para indicar para o firmware inicializar para a "
+"interface de configuração."
-#: ../src/login/org.freedesktop.login1.policy.in.h:55
+#: ../src/login/org.freedesktop.login1.policy.in.h:57
msgid "Set a wall message"
-msgstr ""
+msgstr "Definir uma mensagem de parede"
-#: ../src/login/org.freedesktop.login1.policy.in.h:56
-#, fuzzy
+#: ../src/login/org.freedesktop.login1.policy.in.h:58
msgid "Authentication is required to set a wall message"
-msgstr "É necessária autenticação para definir nome de máquina local."
+msgstr "É necessária autenticação para definir uma mensagem de parede"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:1
# msgid "Log into a local container"
# msgstr "Conectar a um contêiner local"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:2
-# #, fuzzy
# msgid "Authentication is required to log into a local container."
# msgstr "É necessária autenticação para se conectar a um contêiner local."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:3
-# #, fuzzy
# msgid "Log into the local host"
-# msgstr "Conectar a um contêiner local"
+# msgstr "Conectar a uma máquina local"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:4
-# #, fuzzy
# msgid "Authentication is required to log into the local host."
-# msgstr "É necessária autenticação para se conectar a um contêiner local."
+# msgstr "É necessária autenticação para se conectar a uma máquina local."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:5
-# #, fuzzy
# msgid "Acquire a shell in a local container"
-# msgstr "Conectar a um contêiner local"
+# msgstr "Adquirir uma shell em um contêiner local"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:6
-# #, fuzzy
# msgid "Authentication is required to acquire a shell in a local container."
-# msgstr "É necessária autenticação para se conectar a um contêiner local."
+# msgstr ""
+# "É necessária autenticação para adquirir uma shell em um contêiner local."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:7
# msgid "Acquire a shell on the local host"
-# msgstr ""
+# msgstr "Adquirir uma shell na máquina local"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:8
-# #, fuzzy
# msgid "Authentication is required to acquire a shell on the local host."
-# msgstr "É necessária autenticação para definir nome de máquina local."
+# msgstr ""
+# "É necessária autenticação para adquirir uma shell em uma máquina local."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:9
-# #, fuzzy
# msgid "Acquire a pseudo TTY in a local container"
-# msgstr "Conectar a um contêiner local"
+# msgstr "Adquirir um pseudo TTY em um contêiner local"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:10
-# #, fuzzy
# msgid ""
# "Authentication is required to acquire a pseudo TTY in a local container."
-# msgstr "É necessária autenticação para se conectar a um contêiner local."
+# msgstr ""
+# "É necessária autenticação para adquirir um pseudo TTY em um contêiner local."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:11
# msgid "Acquire a pseudo TTY on the local host"
-# msgstr ""
+# msgstr "Adquiri um pseudo TTY na máquina local"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:12
-# #, fuzzy
# msgid "Authentication is required to acquire a pseudo TTY on the local host."
-# msgstr "É necessária autenticação para definir nome de máquina local."
+# msgstr ""
+# "É necessária autenticação para adquirir um pseudo TTY em um máquina local."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:13
# msgid "Manage local virtual machines and containers"
-# msgstr ""
+# msgstr "Gerenciar máquinas virtuais locais e contêineres"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:14
-# #, fuzzy
# msgid ""
# "Authentication is required to manage local virtual machines and containers."
-# msgstr "É necessária autenticação para definir informações de máquina local."
+# msgstr ""
+# "É necessária autenticação para gerenciar máquinas virtuais locais e "
+# "contêineres."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:15
# msgid "Manage local virtual machine and container images"
-# msgstr ""
+# msgstr "Gerenciar máquinas virtuais locais e imagens contêineres"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:16
-# #, fuzzy
# msgid ""
# "Authentication is required to manage local virtual machine and container "
# "images."
-# msgstr "É necessária autenticação para definir informações de máquina local."
+# msgstr ""
+# "É necessária autenticação para gerenciar máquinas virtuais locais e imagens "
+# "contêineres."
# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1
# msgid "Set system time"
@@ -569,37 +575,31 @@ msgstr "É necessária autenticação para definir nome de máquina local."
# "É necessária autenticação para controlar se deve ser habilitada, ou não, a "
# "sincronização de horário através de rede."
-# #: ../src/core/dbus-unit.c:428
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:457
# msgid "Authentication is required to start '$(unit)'."
-# msgstr "É necessária autenticação para definir o horário do sistema."
+# msgstr "É necessária autenticação para iniciar '$(unit)'."
-# #: ../src/core/dbus-unit.c:429
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:458
# msgid "Authentication is required to stop '$(unit)'."
-# msgstr "É necessária autenticação para definir o horário do sistema."
+# msgstr "É necessária autenticação para parar '$(unit)'."
-# #: ../src/core/dbus-unit.c:430
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:459
# msgid "Authentication is required to reload '$(unit)'."
-# msgstr "É necessária autenticação para recarregar o estado do sistema."
+# msgstr "É necessária autenticação para recarregar '$(unit)'."
-# #: ../src/core/dbus-unit.c:431 ../src/core/dbus-unit.c:432
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:460 ../src/core/dbus-unit.c:461
# msgid "Authentication is required to restart '$(unit)'."
-# msgstr "É necessária autenticação para definir o horário do sistema."
+# msgstr "É necessária autenticação para reiniciar '$(unit)'."
-# #: ../src/core/dbus-unit.c:535
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:568
# msgid "Authentication is required to kill '$(unit)'."
-# msgstr "É necessária autenticação para se conectar a um contêiner local."
+# msgstr "É necessária autenticação para matar '$(unit)'."
-# #: ../src/core/dbus-unit.c:565
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:599
# msgid "Authentication is required to reset the \"failed" state of '$(unit)'."
-# msgstr "É necessária autenticação para definir nome de máquina local."
+# msgstr ""
+# "É necessária autenticação para reiniciar o estado \"failed" de '$(unit)'."
-# #: ../src/core/dbus-unit.c:597
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:632
# msgid "Authentication is required to set properties on '$(unit)'."
-# msgstr "É necessária autenticação para definir o horário do sistema."
+# msgstr "É necessária autenticação para definir propriedades em '$(unit)'."
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 000000000..e08c0a7ac
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,556 @@
+# Slovak translation for systemd.
+# Copyright (C) 2017 systemd's COPYRIGHT HOLDER
+# This file is distributed under the same license as the systemd package.
+# Dušan Kazik <prescott66@gmail.com>, 2017.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: systemd master\n"
+"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
+"POT-Creation-Date: 2017-06-24 03:26+0000\n"
+"PO-Revision-Date: 2017-06-25 11:03+0200\n"
+"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
+"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
+"X-Generator: Poedit 2.0.2\n"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1
+# msgid "Send passphrase back to system"
+# msgstr "Odoslanie hesla späť do systému"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2
+# msgid ""
+# "Authentication is required to send the entered passphrase back to the system."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na odoslanie zadaného hesla späť do systému."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3
+# msgid "Manage system services or other units"
+# msgstr "Správa systémových služieb alebo iných jednotiek"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4
+# msgid "Authentication is required to manage system services or other units."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na správu systémových služieb alebo iných "
+# "jednotiek."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:5
+# msgid "Manage system service or unit files"
+# msgstr "Správa systémovej služby alebo súborov jednotky"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:6
+# msgid "Authentication is required to manage system service or unit files."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na správu systémovej služby alebo súborov "
+# "jednotky."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:7
+# msgid "Set or unset system and service manager environment variables"
+# msgstr ""
+# "Nastavenie alebo zrušenie nastavenia premenných prostredia systému a správcu "
+# "služieb"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:8
+# msgid ""
+# "Authentication is required to set or unset system and service manager "
+# "environment variables."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na nastavenie alebo zrušenie nastavenia "
+# "premenných prostredia systému a správcu služieb."
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:9
+# msgid "Reload the systemd state"
+# msgstr "Znovu načítanie stavu systému systemd"
+
+# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:10
+# msgid "Authentication is required to reload the systemd state."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na znovu načítanie stavu systému systemd."
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:1
+# msgid "Set host name"
+# msgstr "Nastavenie názvu hostiteľa"
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2
+# msgid "Authentication is required to set the local host name."
+# msgstr "Vyžaduje sa overenie totožnosti na nastavenie názvu hostiteľa."
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3
+# msgid "Set static host name"
+# msgstr "Nastavenie nemenného názvu hostiteľa"
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4
+# msgid ""
+# "Authentication is required to set the statically configured local host name, "
+# "as well as the pretty host name."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na nastavenie pevne určeného názvu miestneho "
+# "hostiteľa, známeho ako zrozumiteľný názov hostiteľa."
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5
+# msgid "Set machine information"
+# msgstr "Nastavenie informácií o počítači"
+
+# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6
+# msgid "Authentication is required to set local machine information."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na nastavenie informácií o miestnom počítači."
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:1
+# msgid "Import a VM or container image"
+# msgstr ""
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:2
+# msgid "Authentication is required to import a VM or container image"
+# msgstr ""
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:3
+# msgid "Export a VM or container image"
+# msgstr ""
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:4
+# msgid "Authentication is required to export a VM or container image"
+# msgstr ""
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:5
+# msgid "Download a VM or container image"
+# msgstr ""
+
+# #: ../src/import/org.freedesktop.import1.policy.in.h:6
+# msgid "Authentication is required to download a VM or container image"
+# msgstr ""
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:1
+# msgid "Set system locale"
+# msgstr "Nastavenie miestnych nastavení"
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:2
+# msgid "Authentication is required to set the system locale."
+# msgstr "Vyžaduje sa overenie totožnosti na nastavenie miestnych nastavení."
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:3
+# msgid "Set system keyboard settings"
+# msgstr "Nastavenie nastavení systémovej klávesnice"
+
+# #: ../src/locale/org.freedesktop.locale1.policy.in.h:4
+# msgid "Authentication is required to set the system keyboard settings."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na nastavenie nastavení systémovej "
+# "klávesnice."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:1
+msgid "Allow applications to inhibit system shutdown"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:2
+msgid ""
+"Authentication is required for an application to inhibit system shutdown."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:3
+msgid "Allow applications to delay system shutdown"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:4
+msgid "Authentication is required for an application to delay system shutdown."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:5
+msgid "Allow applications to inhibit system sleep"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:6
+msgid "Authentication is required for an application to inhibit system sleep."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:7
+msgid "Allow applications to delay system sleep"
+msgstr "Umožnenie aplikáciám odložiť spánok systému"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:8
+msgid "Authentication is required for an application to delay system sleep."
+msgstr ""
+"Vyžaduje sa overenie totožnosti na odloženie spánku systému aplikáciou."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:9
+msgid "Allow applications to inhibit automatic system suspend"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:10
+msgid ""
+"Authentication is required for an application to inhibit automatic system "
+"suspend."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:11
+msgid "Allow applications to inhibit system handling of the power key"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:12
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the power key."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:13
+msgid "Allow applications to inhibit system handling of the suspend key"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:14
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the suspend key."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:15
+msgid "Allow applications to inhibit system handling of the hibernate key"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:16
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the hibernate key."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:17
+msgid "Allow applications to inhibit system handling of the lid switch"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:18
+msgid ""
+"Authentication is required for an application to inhibit system handling of "
+"the lid switch."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:19
+msgid "Allow non-logged-in user to run programs"
+msgstr "Umožnenie neprihlásenému používateľovi spúšťanie programov"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:20
+msgid "Explicit request is required to run programs as a non-logged-in user."
+msgstr ""
+"Vyžaduje sa explicitná požiadavka na spúšťanie programov ako neprihlásený "
+"používateľ."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:21
+msgid "Allow non-logged-in users to run programs"
+msgstr "Umožnenie neprihláseným používateľom spúšťanie programov"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:22
+msgid "Authentication is required to run programs as a non-logged-in user."
+msgstr ""
+"Vyžaduje sa overenie totožnosti na spúšťanie programov ako neprihlásený "
+"používateľ."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:23
+msgid "Allow attaching devices to seats"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:24
+msgid "Authentication is required for attaching a device to a seat."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:25
+msgid "Flush device to seat attachments"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:26
+msgid ""
+"Authentication is required for resetting how devices are attached to seats."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:27
+msgid "Power off the system"
+msgstr "Vypnutie systému"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:28
+msgid "Authentication is required for powering off the system."
+msgstr "Vyžaduje sa overenie totožnosti na vypnutie systému."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:29
+msgid "Power off the system while other users are logged in"
+msgstr "Vypnutie systému, pokiaľ sú prihlásení iní používatelia"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:30
+msgid ""
+"Authentication is required for powering off the system while other users are "
+"logged in."
+msgstr ""
+"Vyžaduje sa overenie totožnosti na vypnutie systému, pokiaľ sú prihlásení "
+"iní používatelia."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:31
+msgid "Power off the system while an application asked to inhibit it"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:32
+msgid ""
+"Authentication is required for powering off the system while an application "
+"asked to inhibit it."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:33
+msgid "Reboot the system"
+msgstr "Reštart systému"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:34
+msgid "Authentication is required for rebooting the system."
+msgstr "Vyžaduje sa overenie totožnosti na reštartovanie systému."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:35
+msgid "Reboot the system while other users are logged in"
+msgstr "Reštart systému, pokiaľ sú prihlásení iní používatelia"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:36
+msgid ""
+"Authentication is required for rebooting the system while other users are "
+"logged in."
+msgstr ""
+"Vyžaduje sa overenie totožnosti na reštartovanie systému, pokiaľ sú "
+"prihlásení iní používatelia."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:37
+msgid "Reboot the system while an application asked to inhibit it"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:38
+msgid ""
+"Authentication is required for rebooting the system while an application "
+"asked to inhibit it."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:39
+msgid "Suspend the system"
+msgstr "Uspanie systému"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:40
+msgid "Authentication is required for suspending the system."
+msgstr "Vyžaduje sa overenie totožnosti na uspanie systému."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:41
+msgid "Suspend the system while other users are logged in"
+msgstr "Uspanie systému, pokiaľ sú prihlásení iní používatelia"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:42
+msgid ""
+"Authentication is required for suspending the system while other users are "
+"logged in."
+msgstr ""
+"Vyžaduje sa overenie totožnosti na uspanie systému, pokiaľ sú prihlásení iní "
+"používatelia."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:43
+msgid "Suspend the system while an application asked to inhibit it"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:44
+msgid ""
+"Authentication is required for suspending the system while an application "
+"asked to inhibit it."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:45
+msgid "Hibernate the system"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:46
+msgid "Authentication is required for hibernating the system."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:47
+msgid "Hibernate the system while other users are logged in"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:48
+msgid ""
+"Authentication is required for hibernating the system while other users are "
+"logged in."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:49
+msgid "Hibernate the system while an application asked to inhibit it"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:50
+msgid ""
+"Authentication is required for hibernating the system while an application "
+"asked to inhibit it."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:51
+msgid "Manage active sessions, users and seats"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:52
+msgid ""
+"Authentication is required for managing active sessions, users and seats."
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:53
+msgid "Lock or unlock active sessions"
+msgstr "Zamknutie alebo odomknutie aktívnych relácií"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:54
+msgid "Authentication is required to lock or unlock active sessions."
+msgstr ""
+"Vyžaduje sa overenie totožnosti na uzamknutie alebo odomknutie aktívnych "
+"relácií."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:55
+msgid "Allow indication to the firmware to boot to setup interface"
+msgstr "Umožnenie indikácie spustenia inštalačného rozhrania pre firmvér"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:56
+msgid ""
+"Authentication is required to indicate to the firmware to boot to setup "
+"interface."
+msgstr ""
+"Vyžaduje sa overenie totožnosti na indikáciu spustenia inštalačného "
+"rozhrania pre firmvér."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:57
+msgid "Set a wall message"
+msgstr ""
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:58
+msgid "Authentication is required to set a wall message"
+msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:1
+# msgid "Log into a local container"
+# msgstr "Prihlásenie do miestneho kontajneru"
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:2
+# msgid "Authentication is required to log into a local container."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na prihlásenie do miestneho kontajneru."
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:3
+# msgid "Log into the local host"
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:4
+# msgid "Authentication is required to log into the local host."
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:5
+# msgid "Acquire a shell in a local container"
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:6
+# msgid "Authentication is required to acquire a shell in a local container."
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:7
+# msgid "Acquire a shell on the local host"
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:8
+# msgid "Authentication is required to acquire a shell on the local host."
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:9
+# msgid "Acquire a pseudo TTY in a local container"
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:10
+# msgid ""
+# "Authentication is required to acquire a pseudo TTY in a local container."
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:11
+# msgid "Acquire a pseudo TTY on the local host"
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:12
+# msgid "Authentication is required to acquire a pseudo TTY on the local host."
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:13
+# msgid "Manage local virtual machines and containers"
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:14
+# msgid ""
+# "Authentication is required to manage local virtual machines and containers."
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:15
+# msgid "Manage local virtual machine and container images"
+# msgstr ""
+
+# #: ../src/machine/org.freedesktop.machine1.policy.in.h:16
+# msgid ""
+# "Authentication is required to manage local virtual machine and container "
+# "images."
+# msgstr ""
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1
+# msgid "Set system time"
+# msgstr ""
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2
+# msgid "Authentication is required to set the system time."
+# msgstr ""
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3
+# msgid "Set system timezone"
+# msgstr ""
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4
+# msgid "Authentication is required to set the system timezone."
+# msgstr ""
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5
+# msgid "Set RTC to local timezone or UTC"
+# msgstr ""
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:6
+# msgid ""
+# "Authentication is required to control whether the RTC stores the local or "
+# "UTC time."
+# msgstr ""
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:7
+# msgid "Turn network time synchronization on or off"
+# msgstr "Zapnutie alebo vypnutie sieťovej synchronizácie času"
+
+# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8
+# msgid ""
+# "Authentication is required to control whether network time synchronization "
+# "shall be enabled."
+# msgstr ""
+# "Vyžaduje sa overenie totožnosti na ovládanie, či má byť povolená "
+# "synchronizácia času cez sieť."
+
+# #: ../src/core/dbus-unit.c:457
+# msgid "Authentication is required to start '$(unit)'."
+# msgstr ""
+
+# #: ../src/core/dbus-unit.c:458
+# msgid "Authentication is required to stop '$(unit)'."
+# msgstr ""
+
+# #: ../src/core/dbus-unit.c:459
+# msgid "Authentication is required to reload '$(unit)'."
+# msgstr ""
+
+# #: ../src/core/dbus-unit.c:460 ../src/core/dbus-unit.c:461
+# msgid "Authentication is required to restart '$(unit)'."
+# msgstr ""
+
+# #: ../src/core/dbus-unit.c:568
+# msgid "Authentication is required to kill '$(unit)'."
+# msgstr ""
+
+# #: ../src/core/dbus-unit.c:599
+# msgid "Authentication is required to reset the \"failed" state of '$(unit)'."
+# msgstr ""
+
+# #: ../src/core/dbus-unit.c:632
+# msgid "Authentication is required to set properties on '$(unit)'."
+# msgstr ""
diff --git a/po/sv.po b/po/sv.po
index 2bc8bf195..9c0263637 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,22 +1,23 @@
# Swedish translation for systemd.
# Copyright © 2015 systemd's COPYRIGHT HOLDER
# This file is distributed under the same license as the systemd package.
-# Josef Andersson <josef.andersson@fripost.org>, 2015.
# Sebastian Rasmussen <sebras@gmail.com>, 2015.
+# Andreas Henriksson <andreas@fatal.se>, 2016.
+# Josef Andersson <l10nl18nsweja@gmail.com>, 2015, 2017.
msgid ""
msgstr ""
"Project-Id-Version: systemd master\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-11-22 16:37+0100\n"
-"PO-Revision-Date: 2015-03-14 11:09+0100\n"
-"Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
+"Report-Msgid-Bugs-To: https://github.com/systemd/systemd/issues\n"
+"POT-Creation-Date: 2017-03-01 15:50+0000\n"
+"PO-Revision-Date: 2017-03-19 21:18+0100\n"
+"Last-Translator: Josef Andersson <l10nl18nsweja@gmail.com>\n"
"Language-Team: Swedish\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.6.10\n"
+"X-Generator: Poedit 1.8.9\n"
# #: ../src/core/org.freedesktop.systemd1.policy.in.in.h:1
# msgid "Send passphrase back to system"
@@ -72,7 +73,7 @@ msgstr ""
# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:2
# msgid "Authentication is required to set the local host name."
-# msgstr "Autentisering krävs för att ange lokalt värdnamn."
+# msgstr "Autentisering krävs för att ställa in lokalt värdnamn."
# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:3
# msgid "Set static host name"
@@ -83,16 +84,16 @@ msgstr ""
# "Authentication is required to set the statically configured local host name, "
# "as well as the pretty host name."
# msgstr ""
-# "Autentisering krävs för att ange det statiskt konfigurerade lokala "
+# "Autentisering krävs för att ställa in det statiskt konfigurerade lokala "
# "värdnamnet såväl som det stiliga värdnamnet."
# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:5
# msgid "Set machine information"
-# msgstr "Ange datorinformation"
+# msgstr "Ställa in datorinformation"
# #: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6
# msgid "Authentication is required to set local machine information."
-# msgstr "Autentisering krävs för att ange lokal datorinformation."
+# msgstr "Autentisering krävs för att ställa in lokal datorinformation."
# #: ../src/import/org.freedesktop.import1.policy.in.h:1
# msgid "Import a VM or container image"
@@ -124,7 +125,7 @@ msgstr ""
# #: ../src/locale/org.freedesktop.locale1.policy.in.h:2
# msgid "Authentication is required to set the system locale."
-# msgstr "Autentisering krävs för att ange systemlokal."
+# msgstr "Autentisering krävs för att ställa in systemlokal."
# #: ../src/locale/org.freedesktop.locale1.policy.in.h:3
# msgid "Set system keyboard settings"
@@ -132,7 +133,8 @@ msgstr ""
# #: ../src/locale/org.freedesktop.locale1.policy.in.h:4
# msgid "Authentication is required to set the system keyboard settings."
-# msgstr "Autentisering krävs för att ange systeminställningar för tangentbord."
+# msgstr ""
+# "Autentisering krävs för att ställa in systeminställningar för tangentbord."
#: ../src/login/org.freedesktop.login1.policy.in.h:1
msgid "Allow applications to inhibit system shutdown"
@@ -235,45 +237,54 @@ msgstr ""
"av brytaren för datorhöljet."
#: ../src/login/org.freedesktop.login1.policy.in.h:19
+msgid "Allow non-logged-in user to run programs"
+msgstr "Tillåt ej inloggad användare att köra program"
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:20
+msgid "Explicit request is required to run programs as a non-logged-in user."
+msgstr ""
+"Uttrycklig begäran krävs för att köra program som en icke inloggad användare."
+
+#: ../src/login/org.freedesktop.login1.policy.in.h:21
msgid "Allow non-logged-in users to run programs"
msgstr "Tillåt ej inloggade användare att köra program"
-#: ../src/login/org.freedesktop.login1.policy.in.h:20
+#: ../src/login/org.freedesktop.login1.policy.in.h:22
msgid "Authentication is required to run programs as a non-logged-in user."
msgstr ""
"Autentisering krävs för att köra program som en icke inloggad användare."
-#: ../src/login/org.freedesktop.login1.policy.in.h:21
+#: ../src/login/org.freedesktop.login1.policy.in.h:23
msgid "Allow attaching devices to seats"
msgstr "Tillåt att binda enheter till platser"
-#: ../src/login/org.freedesktop.login1.policy.in.h:22
+#: ../src/login/org.freedesktop.login1.policy.in.h:24
msgid "Authentication is required for attaching a device to a seat."
msgstr "Autentisering krävs för att binda en enhet till en plats."
-#: ../src/login/org.freedesktop.login1.policy.in.h:23
+#: ../src/login/org.freedesktop.login1.policy.in.h:25
msgid "Flush device to seat attachments"
msgstr "Töm bindningar för enhet-till-plats"
-#: ../src/login/org.freedesktop.login1.policy.in.h:24
+#: ../src/login/org.freedesktop.login1.policy.in.h:26
msgid ""
"Authentication is required for resetting how devices are attached to seats."
msgstr ""
"Autentisering krävs för att återställa hur enheter är bundna till platser."
-#: ../src/login/org.freedesktop.login1.policy.in.h:25
+#: ../src/login/org.freedesktop.login1.policy.in.h:27
msgid "Power off the system"
msgstr "Stäng av systemet"
-#: ../src/login/org.freedesktop.login1.policy.in.h:26
+#: ../src/login/org.freedesktop.login1.policy.in.h:28
msgid "Authentication is required for powering off the system."
msgstr "Autentisering krävs för att stänga av systemet."
-#: ../src/login/org.freedesktop.login1.policy.in.h:27
+#: ../src/login/org.freedesktop.login1.policy.in.h:29
msgid "Power off the system while other users are logged in"
msgstr "Stäng av systemet medan andra användare är inloggade"
-#: ../src/login/org.freedesktop.login1.policy.in.h:28
+#: ../src/login/org.freedesktop.login1.policy.in.h:30
msgid ""
"Authentication is required for powering off the system while other users are "
"logged in."
@@ -281,11 +292,11 @@ msgstr ""
"Autentisering krävs för att stänga av systemet medan andra användare är "
"inloggade."
-#: ../src/login/org.freedesktop.login1.policy.in.h:29
+#: ../src/login/org.freedesktop.login1.policy.in.h:31
msgid "Power off the system while an application asked to inhibit it"
msgstr "Stäng av systemet även då ett program hindrar det"
-#: ../src/login/org.freedesktop.login1.policy.in.h:30
+#: ../src/login/org.freedesktop.login1.policy.in.h:32
msgid ""
"Authentication is required for powering off the system while an application "
"asked to inhibit it."
@@ -293,19 +304,19 @@ msgstr ""
"Autentisering krävs för att stänga av systemet även då ett program hindrar "
"det."
-#: ../src/login/org.freedesktop.login1.policy.in.h:31
+#: ../src/login/org.freedesktop.login1.policy.in.h:33
msgid "Reboot the system"
msgstr "Starta om systemet"
-#: ../src/login/org.freedesktop.login1.policy.in.h:32
+#: ../src/login/org.freedesktop.login1.policy.in.h:34
msgid "Authentication is required for rebooting the system."
msgstr "Autentisering krävs för att starta om systemet."
-#: ../src/login/org.freedesktop.login1.policy.in.h:33
+#: ../src/login/org.freedesktop.login1.policy.in.h:35
msgid "Reboot the system while other users are logged in"
msgstr "Starta om systemet medan andra användare är inloggade"
-#: ../src/login/org.freedesktop.login1.policy.in.h:34
+#: ../src/login/org.freedesktop.login1.policy.in.h:36
msgid ""
"Authentication is required for rebooting the system while other users are "
"logged in."
@@ -313,11 +324,11 @@ msgstr ""
"Autentisering krävs för att starta om systemet medan andra användare är "
"inloggade."
-#: ../src/login/org.freedesktop.login1.policy.in.h:35
+#: ../src/login/org.freedesktop.login1.policy.in.h:37
msgid "Reboot the system while an application asked to inhibit it"
msgstr "Starta om systemet även då ett program hindrar det"
-#: ../src/login/org.freedesktop.login1.policy.in.h:36
+#: ../src/login/org.freedesktop.login1.policy.in.h:38
msgid ""
"Authentication is required for rebooting the system while an application "
"asked to inhibit it."
@@ -325,19 +336,19 @@ msgstr ""
"Autentisering krävs för att starta om systemet även då ett program hindrar "
"det."
-#: ../src/login/org.freedesktop.login1.policy.in.h:37
+#: ../src/login/org.freedesktop.login1.policy.in.h:39
msgid "Suspend the system"
msgstr "Försätt system i vänteläge"
-#: ../src/login/org.freedesktop.login1.policy.in.h:38
+#: ../src/login/org.freedesktop.login1.policy.in.h:40
msgid "Authentication is required for suspending the system."
msgstr "Autentisering krävs för att försätta system i vänteläge."
-#: ../src/login/org.freedesktop.login1.policy.in.h:39
+#: ../src/login/org.freedesktop.login1.policy.in.h:41
msgid "Suspend the system while other users are logged in"
msgstr "Försätt systemet i vänteläge medan andra användare är inloggade"
-#: ../src/login/org.freedesktop.login1.policy.in.h:40
+#: ../src/login/org.freedesktop.login1.policy.in.h:42
msgid ""
"Authentication is required for suspending the system while other users are "
"logged in."
@@ -345,11 +356,11 @@ msgstr ""
"Autentisering krävs för att försätta systemet i vänteläge medan andra "
"användare är inloggade."
-#: ../src/login/org.freedesktop.login1.policy.in.h:41
+#: ../src/login/org.freedesktop.login1.policy.in.h:43
msgid "Suspend the system while an application asked to inhibit it"
msgstr "Försätt systemet i vänteläge även då ett program hindrar det"
-#: ../src/login/org.freedesktop.login1.policy.in.h:42
+#: ../src/login/org.freedesktop.login1.policy.in.h:44
msgid ""
"Authentication is required for suspending the system while an application "
"asked to inhibit it."
@@ -357,19 +368,19 @@ msgstr ""
"Autentisering krävs för att försätta ett program i vänteläge även då ett "
"program hindrar det."
-#: ../src/login/org.freedesktop.login1.policy.in.h:43
+#: ../src/login/org.freedesktop.login1.policy.in.h:45
msgid "Hibernate the system"
msgstr "Försätt systemet i viloläge"
-#: ../src/login/org.freedesktop.login1.policy.in.h:44
+#: ../src/login/org.freedesktop.login1.policy.in.h:46
msgid "Authentication is required for hibernating the system."
msgstr "Autentisering krävs för att försätta systemet i viloläge."
-#: ../src/login/org.freedesktop.login1.policy.in.h:45
+#: ../src/login/org.freedesktop.login1.policy.in.h:47
msgid "Hibernate the system while other users are logged in"
msgstr "Försätt systemet i viloläge medan andra användare är inloggade"
-#: ../src/login/org.freedesktop.login1.policy.in.h:46
+#: ../src/login/org.freedesktop.login1.policy.in.h:48
msgid ""
"Authentication is required for hibernating the system while other users are "
"logged in."
@@ -377,11 +388,11 @@ msgstr ""
"Autentisering krävs för att försätta systemet i viloläge medan andra "
"användare är inloggade."
-#: ../src/login/org.freedesktop.login1.policy.in.h:47
+#: ../src/login/org.freedesktop.login1.policy.in.h:49
msgid "Hibernate the system while an application asked to inhibit it"
msgstr "Försätt systemet i viloläge även då ett program hindrar det"
-#: ../src/login/org.freedesktop.login1.policy.in.h:48
+#: ../src/login/org.freedesktop.login1.policy.in.h:50
msgid ""
"Authentication is required for hibernating the system while an application "
"asked to inhibit it."
@@ -389,100 +400,97 @@ msgstr ""
"Autentisering krävs för att försätta ett program i viloläge även då ett "
"program hindrar det."
-#: ../src/login/org.freedesktop.login1.policy.in.h:49
+#: ../src/login/org.freedesktop.login1.policy.in.h:51
msgid "Manage active sessions, users and seats"
msgstr "Hantera aktiva sessioner, användare och platser"
-#: ../src/login/org.freedesktop.login1.policy.in.h:50
+#: ../src/login/org.freedesktop.login1.policy.in.h:52
msgid ""
"Authentication is required for managing active sessions, users and seats."
msgstr ""
"Autentisering krävs för att hantera aktiva sessioner, användare och platser."
-#: ../src/login/org.freedesktop.login1.policy.in.h:51
+#: ../src/login/org.freedesktop.login1.policy.in.h:53
msgid "Lock or unlock active sessions"
msgstr "Lås eller lås upp aktiva sessioner"
-#: ../src/login/org.freedesktop.login1.policy.in.h:52
+#: ../src/login/org.freedesktop.login1.policy.in.h:54
msgid "Authentication is required to lock or unlock active sessions."
msgstr "Autentisering krävs för att låsa eller låsa upp aktiva sessioner."
-#: ../src/login/org.freedesktop.login1.policy.in.h:53
+#: ../src/login/org.freedesktop.login1.policy.in.h:55
msgid "Allow indication to the firmware to boot to setup interface"
msgstr ""
+"Tillåt indikering till firmware att starta upp i inställningsgränssnitt"
-#: ../src/login/org.freedesktop.login1.policy.in.h:54
-#, fuzzy
+#: ../src/login/org.freedesktop.login1.policy.in.h:56
msgid ""
"Authentication is required to indicate to the firmware to boot to setup "
"interface."
-msgstr "Autentisering krävs för att ange lokalt värdnamn."
+msgstr ""
+"Autentisering krävs för att indikera till firmware att starta upp till "
+"inställningsgränssnitt."
-#: ../src/login/org.freedesktop.login1.policy.in.h:55
+#: ../src/login/org.freedesktop.login1.policy.in.h:57
msgid "Set a wall message"
-msgstr ""
+msgstr "Ange ett väggmeddelande"
-#: ../src/login/org.freedesktop.login1.policy.in.h:56
-#, fuzzy
+#: ../src/login/org.freedesktop.login1.policy.in.h:58
msgid "Authentication is required to set a wall message"
-msgstr "Autentisering krävs för att ange lokalt värdnamn."
+msgstr "Autentisering krävs för att ställa in ett väggmeddelande"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:1
# msgid "Log into a local container"
-# msgstr "Logga till en lokal behållare"
+# msgstr "Logga in i en lokal behållare"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:2
# msgid "Authentication is required to log into a local container."
-# msgstr "Autentisering krävs för att logga till en lokal behållare"
+# msgstr "Autentisering krävs för att logga in i en lokal behållare"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:3
-# #, fuzzy
# msgid "Log into the local host"
-# msgstr "Logga till en lokal behållare"
+# msgstr "Logga in på en lokal värd"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:4
-# #, fuzzy
# msgid "Authentication is required to log into the local host."
-# msgstr "Autentisering krävs för att logga till en lokal behållare"
+# msgstr "Autentisering krävs för att logga in på den lokala värden"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:5
-# #, fuzzy
# msgid "Acquire a shell in a local container"
-# msgstr "Logga till en lokal behållare"
+# msgstr "Förvärva en kommandotolk i en lokal behållare"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:6
-# #, fuzzy
# msgid "Authentication is required to acquire a shell in a local container."
-# msgstr "Autentisering krävs för att logga till en lokal behållare"
+# msgstr ""
+# "Autentisering krävs för att förvärva en kommandotolk i en lokal behållare."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:7
# msgid "Acquire a shell on the local host"
-# msgstr ""
+# msgstr "Förvärva en kommandotolk på den lokala värden"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:8
-# #, fuzzy
# msgid "Authentication is required to acquire a shell on the local host."
-# msgstr "Autentisering krävs för att ange lokalt värdnamn."
+# msgstr ""
+# "Autentisering krävs för att förvärva en kommandotolk på den lokala värden."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:9
-# #, fuzzy
# msgid "Acquire a pseudo TTY in a local container"
-# msgstr "Logga till en lokal behållare"
+# msgstr "Förvärva en pseudo TTY i en lokal behållare"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:10
-# #, fuzzy
# msgid ""
# "Authentication is required to acquire a pseudo TTY in a local container."
-# msgstr "Autentisering krävs för att logga till en lokal behållare"
+# msgstr ""
+# "Autentisering krävs för att förvärva en pseudo TTY i en lokal behållare"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:11
# msgid "Acquire a pseudo TTY on the local host"
-# msgstr ""
+# msgstr "Förvärva en pseudo TTY på den lokala värden"
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:12
-# #, fuzzy
# msgid "Authentication is required to acquire a pseudo TTY on the local host."
-# msgstr "Autentisering krävs för att ange lokalt värdnamn."
+# msgstr ""
+# "Autentisering krävs för att förvärva en pseudo TTY på den lokala värden."
# #: ../src/machine/org.freedesktop.machine1.policy.in.h:13
# msgid "Manage local virtual machines and containers"
@@ -512,7 +520,7 @@ msgstr "Autentisering krävs för att ange lokalt värdnamn."
# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2
# msgid "Authentication is required to set the system time."
-# msgstr "Autentisering krävs för ange systemtiden."
+# msgstr "Autentisering krävs för ställa in systemtiden."
# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3
# msgid "Set system timezone"
@@ -520,7 +528,7 @@ msgstr "Autentisering krävs för att ange lokalt värdnamn."
# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:4
# msgid "Authentication is required to set the system timezone."
-# msgstr "Autentisering krävs för att ange systemets tidszon."
+# msgstr "Autentisering krävs för att ställa in systemets tidszon."
# #: ../src/timedate/org.freedesktop.timedate1.policy.in.h:5
# msgid "Set RTC to local timezone or UTC"
@@ -548,40 +556,35 @@ msgstr "Autentisering krävs för att ange lokalt värdnamn."
# "Autentisering krävs för att kontrollera huruvida synkronisering av "
# "nätverkstid ska vara aktiverat."
-# #: ../src/core/dbus-unit.c:428
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:457
# msgid "Authentication is required to start '$(unit)'."
-# msgstr "Autentisering krävs för ange systemtiden."
+# msgstr "Autentisering krävs för att starta \"$(unit)"."
-# #: ../src/core/dbus-unit.c:429
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:458
# msgid "Authentication is required to stop '$(unit)'."
-# msgstr "Autentisering krävs för ange systemtiden."
+# msgstr "Autentisering krävs för att stoppa \"$(unit)"."
-# #: ../src/core/dbus-unit.c:430
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:459
# msgid "Authentication is required to reload '$(unit)'."
-# msgstr "Autentisering krävs för att läsa om tillståndet för systemd."
+# msgstr "Autentisering krävs för att läsa om tillståndet för \"$(unit)"."
-# #: ../src/core/dbus-unit.c:431 ../src/core/dbus-unit.c:432
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:460 ../src/core/dbus-unit.c:461
# msgid "Authentication is required to restart '$(unit)'."
-# msgstr "Autentisering krävs för ange systemtiden."
+# msgstr "Autentisering krävs för att starta om \"$(unit)"."
-# #: ../src/core/dbus-unit.c:535
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:568
# msgid "Authentication is required to kill '$(unit)'."
-# msgstr "Autentisering krävs för att logga till en lokal behållare"
+# msgstr "Autentisering krävs för att döda \"$(unit)"."
-# #: ../src/core/dbus-unit.c:565
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:599
# msgid "Authentication is required to reset the \"failed" state of '$(unit)'."
-# msgstr "Autentisering krävs för att ange lokalt värdnamn."
+# msgstr ""
+# "Autentisering krävs för att återställa det \"fallerade" tillståndet för "
+# "\"$(unit)"."
-# #: ../src/core/dbus-unit.c:597
-# #, fuzzy
+# #: ../src/core/dbus-unit.c:632
# msgid "Authentication is required to set properties on '$(unit)'."
-# msgstr "Autentisering krävs för ange systemtiden."
+# msgstr "Autentisering krävs för att ställa in egenskaper på \"$(unit)"."
#~ msgid "Press Ctrl+C to cancel all filesystem checks in progress"
#~ msgstr "Tryck Ctrl+C för att avbryta alla pågående filsystemskontroller."
diff --git a/shell-completion/Makefile b/shell-completion/Makefile
deleted file mode 120000
index bd1047548..000000000
--- a/shell-completion/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../src/Makefile \ No newline at end of file
diff --git a/shell-completion/bash/Makefile b/shell-completion/bash/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/shell-completion/bash/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/shell-completion/bash/meson.build b/shell-completion/bash/meson.build
new file mode 100644
index 000000000..684d1b5c2
--- /dev/null
+++ b/shell-completion/bash/meson.build
@@ -0,0 +1,54 @@
+bashcompletiondir = get_option('bashcompletiondir')
+if bashcompletiondir == ''
+ bash_completion = dependency('bash-completion', required : false)
+ if bash_completion.found()
+ bashcompletiondir = bash_completion.get_pkgconfig_variable('completionsdir')
+ else
+ bashcompletiondir = join_paths(datadir, 'bash-completion/completions')
+ endif
+
+ message('bash completions: @0@'.format(bashcompletiondir))
+endif
+
+if bashcompletiondir != 'no'
+#if 0 /// elogind has a *very* short list for this...
+# bash_systemctl = configure_file(
+# input : 'systemctl.in',
+# output : 'systemctl',
+# configuration : substs)
+#
+# items = [['busctl', ''],
+# ['journalctl', ''],
+# ['systemd-analyze', ''],
+# ['systemd-cat', ''],
+# ['systemd-cgls', ''],
+# ['systemd-cgtop', ''],
+# ['systemd-delta', ''],
+# ['systemd-detect-virt', ''],
+# ['systemd-nspawn', ''],
+# ['systemd-path', ''],
+# ['systemd-run', ''],
+# ['udevadm', ''],
+# ['kernel-install', ''],
+# [bash_systemctl, ''],
+# ['bootctl', 'ENABLE_EFI'],
+# ['coredumpctl', 'ENABLE_COREDUMP'],
+# ['hostnamectl', 'ENABLE_HOSTNAMED'],
+# ['localectl', 'ENABLE_LOCALED'],
+# ['loginctl', 'ENABLE_LOGIND'],
+# ['machinectl', 'ENABLE_MACHINED'],
+# ['networkctl', 'ENABLE_NETWORKD'],
+# ['systemd-resolve', 'ENABLE_RESOLVED'],
+# ['timedatectl', 'ENABLE_TIMEDATED'],
+#else
+ items = [['loginctl', ''],
+#endif // 0
+ ]
+
+ foreach item : items
+ if item[1] == '' or conf.get(item[1], false)
+ install_data(item[0],
+ install_dir : bashcompletiondir)
+ endif
+ endforeach
+endif
diff --git a/shell-completion/zsh/Makefile b/shell-completion/zsh/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/shell-completion/zsh/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/shell-completion/zsh/meson.build b/shell-completion/zsh/meson.build
new file mode 100644
index 000000000..4ddafe2a6
--- /dev/null
+++ b/shell-completion/zsh/meson.build
@@ -0,0 +1,51 @@
+zshcompletiondir = get_option('zshcompletiondir')
+if zshcompletiondir == ''
+ zshcompletiondir = join_paths(datadir, 'zsh/site-functions')
+
+ message('zsh completions: @0@'.format(zshcompletiondir))
+endif
+
+if zshcompletiondir != 'no'
+#if 0 /// elogind has a *very* short list for this...
+# zsh_systemctl = configure_file(
+# input : '_systemctl.in',
+# output : '_systemctl',
+# configuration : substs)
+#
+# items = [['_busctl', ''],
+# ['_journalctl', ''],
+# ['_systemd-analyze', ''],
+# ['_systemd-delta', ''],
+# ['_systemd-nspawn', ''],
+# ['_systemd', ''],
+# ['_systemd-run', ''],
+# ['_udevadm', ''],
+# ['_kernel-install', ''],
+# ['_sd_hosts_or_user_at_host', ''],
+# ['_sd_outputmodes', ''],
+# ['_sd_unit_files', ''],
+# ['_sd_machines', ''],
+# [zsh_systemctl, ''],
+# ['_bootctl', 'ENABLE_EFI'],
+# ['_coredumpctl', 'ENABLE_COREDUMP'],
+# ['_hostnamectl', 'ENABLE_HOSTNAMED'],
+# ['_localectl', 'ENABLE_LOCALED'],
+# ['_loginctl', 'ENABLE_LOGIND'],
+# ['_machinectl', 'ENABLE_MACHINED'],
+# ['_networkctl', 'ENABLE_NETWORKD'],
+# ['_systemd-inhibit', 'ENABLE_LOGIND'],
+# ['_systemd-resolve', 'ENABLE_RESOLVED'],
+# ['_systemd-tmpfiles', 'ENABLE_TMPFILES'],
+# ['_timedatectl', 'ENABLE_TIMEDATED'],
+#else
+ items = [['_loginctl', ''],
+#endif // 0
+ ]
+
+ foreach item : items
+ if item[1] == '' or conf.get(item[1], false)
+ install_data(item[0],
+ install_dir : zshcompletiondir)
+ endif
+ endforeach
+endif
diff --git a/src/Makefile b/src/Makefile
deleted file mode 100644
index 9d0750519..000000000
--- a/src/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is part of systemd.
-#
-# Copyright 2010 Lennart Poettering
-#
-# systemd is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-#
-# systemd is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with systemd; If not, see <http://www.gnu.org/licenses/>.
-
-# This file is a dirty trick to simplify compilation from within
-# emacs. This file is not intended to be distributed. So, don't touch
-# it, even better ignore it!
-
-all:
- $(MAKE) -C ..
-
-clean:
- $(MAKE) -C .. clean
-
-.PHONY: all clean
diff --git a/src/basic/Makefile b/src/basic/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/basic/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/basic/errno-to-name.awk b/src/basic/errno-to-name.awk
new file mode 100644
index 000000000..0878abacb
--- /dev/null
+++ b/src/basic/errno-to-name.awk
@@ -0,0 +1,9 @@
+BEGIN{
+ print "static const char* const errno_names[] = { "
+}
+!/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ {
+ printf " [%s] = \"%s\",\n", $1, $1
+}
+END{
+ print "};"
+}
diff --git a/src/basic/generate-errno-list.sh b/src/basic/generate-errno-list.sh
new file mode 100755
index 000000000..e2bab8b32
--- /dev/null
+++ b/src/basic/generate-errno-list.sh
@@ -0,0 +1,4 @@
+#!/bin/sh -eu
+
+$1 -dM -include errno.h - </dev/null | \
+ awk '/^#define[ \t]+E[^ _]+[ \t]+/ { print $2; }'
diff --git a/src/basic/generate-gperfs.py b/src/basic/generate-gperfs.py
new file mode 100755
index 000000000..d4cc9aa45
--- /dev/null
+++ b/src/basic/generate-gperfs.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+
+"""Generate %-from-name.gperf from %-list.txt
+"""
+
+import sys
+
+name, prefix, input = sys.argv[1:]
+
+print("""\
+struct {}_name {{ const char* name; int id; }};
+%null-strings
+%%""".format(name))
+
+for line in open(input):
+ print("{0}, {1}{0}".format(line.rstrip(), prefix))
diff --git a/src/basic/meson.build b/src/basic/meson.build
new file mode 100644
index 000000000..4ba97edd1
--- /dev/null
+++ b/src/basic/meson.build
@@ -0,0 +1,424 @@
+#if 0 /// elogind has a shorter list
+# basic_sources_plain = files('''
+# af-list.c
+# af-list.h
+# alloc-util.c
+# alloc-util.h
+# architecture.c
+# architecture.h
+# arphrd-list.c
+# arphrd-list.h
+# async.c
+# async.h
+# audit-util.c
+# audit-util.h
+# barrier.c
+# barrier.h
+# bitmap.c
+# bitmap.h
+# blkid-util.h
+# btrfs-ctree.h
+# btrfs-util.c
+# btrfs-util.h
+# build.h
+# bus-label.c
+# bus-label.h
+# calendarspec.c
+# calendarspec.h
+# capability-util.c
+# capability-util.h
+# cap-list.c
+# cap-list.h
+# cgroup-util.c
+# cgroup-util.h
+# chattr-util.c
+# chattr-util.h
+# clock-util.c
+# clock-util.h
+# conf-files.c
+# conf-files.h
+# copy.c
+# copy.h
+# cpu-set-util.c
+# cpu-set-util.h
+# def.h
+# device-nodes.c
+# device-nodes.h
+# dirent-util.c
+# dirent-util.h
+# env-util.c
+# env-util.h
+# errno-list.c
+# errno-list.h
+# escape.c
+# escape.h
+# ether-addr-util.c
+# ether-addr-util.h
+# exec-util.c
+# exec-util.h
+# exit-status.c
+# exit-status.h
+# extract-word.c
+# extract-word.h
+# fd-util.c
+# fd-util.h
+# fileio.c
+# fileio.h
+# fileio-label.c
+# fileio-label.h
+# format-util.h
+# fs-util.c
+# fs-util.h
+# glob-util.c
+# glob-util.h
+# gunicode.c
+# gunicode.h
+# hash-funcs.c
+# hash-funcs.h
+# hashmap.c
+# hashmap.h
+# hexdecoct.c
+# hexdecoct.h
+# hostname-util.c
+# hostname-util.h
+# in-addr-util.c
+# in-addr-util.h
+# ioprio.h
+# io-util.c
+# io-util.h
+# journal-importer.c
+# journal-importer.h
+# khash.c
+# khash.h
+# label.c
+# label.h
+# list.h
+# locale-util.c
+# locale-util.h
+# lockfile-util.c
+# lockfile-util.h
+# log.c
+# log.h
+# login-util.c
+# login-util.h
+# macro.h
+# memfd-util.c
+# memfd-util.h
+# mempool.c
+# mempool.h
+# missing_syscall.h
+# mkdir.c
+# mkdir.h
+# mkdir-label.c
+# mount-util.c
+# mount-util.h
+# MurmurHash2.c
+# MurmurHash2.h
+# nss-util.h
+# ordered-set.c
+# ordered-set.h
+# parse-util.c
+# parse-util.h
+# path-util.c
+# path-util.h
+# prioq.c
+# prioq.h
+# proc-cmdline.c
+# proc-cmdline.h
+# process-util.c
+# process-util.h
+# random-util.c
+# random-util.h
+# ratelimit.c
+# ratelimit.h
+# raw-clone.h
+# refcnt.h
+# replace-var.c
+# replace-var.h
+# rlimit-util.c
+# rlimit-util.h
+# rm-rf.c
+# rm-rf.h
+# securebits.h
+# selinux-util.c
+# selinux-util.h
+# set.h
+# sigbus.c
+# sigbus.h
+# signal-util.c
+# signal-util.h
+# siphash24.c
+# siphash24.h
+# smack-util.c
+# smack-util.h
+# socket-label.c
+# socket-util.c
+# socket-util.h
+# sparse-endian.h
+# special.h
+# stat-util.c
+# stat-util.h
+# stdio-util.h
+# strbuf.c
+# strbuf.h
+# string-table.c
+# string-table.h
+# string-util.c
+# string-util.h
+# strv.c
+# strv.h
+# strxcpyx.c
+# strxcpyx.h
+# syslog-util.c
+# syslog-util.h
+# terminal-util.c
+# terminal-util.h
+# time-util.c
+# time-util.h
+# umask-util.h
+# unaligned.h
+# unit-name.c
+# unit-name.h
+# user-util.c
+# user-util.h
+# utf8.c
+# utf8.h
+# util.c
+# util.h
+# verbs.c
+# verbs.h
+# virt.c
+# virt.h
+# web-util.c
+# web-util.h
+# xattr-util.c
+# xattr-util.h
+# xml.c
+# xml.h
+# '''.split())
+#else
+basic_sources_plain = files('''
+ alloc-util.c
+ alloc-util.h
+ audit-util.c
+ audit-util.h
+ build.h
+ bus-label.c
+ bus-label.h
+ capability-util.c
+ capability-util.h
+ cgroup-util.c
+ cgroup-util.h
+ conf-files.c
+ conf-files.h
+ copy.c
+ copy.h
+ def.h
+ dirent-util.c
+ dirent-util.h
+ env-util.c
+ env-util.h
+ errno-list.c
+ errno-list.h
+ escape.c
+ escape.h
+ exec-util.c
+ exec-util.h
+ extract-word.c
+ extract-word.h
+ fd-util.c
+ fd-util.h
+ fileio.c
+ fileio.h
+ fileio-label.c
+ fileio-label.h
+ format-util.h
+ fs-util.c
+ fs-util.h
+ gunicode.c
+ gunicode.h
+ hash-funcs.c
+ hash-funcs.h
+ hashmap.c
+ hashmap.h
+ hexdecoct.c
+ hexdecoct.h
+ hostname-util.c
+ hostname-util.h
+ io-util.c
+ io-util.h
+ khash.c
+ khash.h
+ label.c
+ label.h
+ list.h
+ locale-util.c
+ locale-util.h
+ log.c
+ log.h
+ login-util.c
+ login-util.h
+ macro.h
+ memfd-util.c
+ memfd-util.h
+ mempool.c
+ mempool.h
+ missing_syscall.h
+ mkdir.c
+ mkdir.h
+ mkdir-label.c
+ mount-util.c
+ mount-util.h
+ parse-printf-format.c
+ parse-printf-format.h
+ parse-util.c
+ parse-util.h
+ path-util.c
+ path-util.h
+ prioq.c
+ prioq.h
+ proc-cmdline.c
+ proc-cmdline.h
+ process-util.c
+ process-util.h
+ random-util.c
+ random-util.h
+ refcnt.h
+ rm-rf.c
+ rm-rf.h
+ selinux-util.c
+ selinux-util.h
+ set.h
+ signal-util.c
+ signal-util.h
+ siphash24.c
+ siphash24.h
+ smack-util.c
+ smack-util.h
+ socket-util.c
+ socket-util.h
+ sparse-endian.h
+ stat-util.c
+ stat-util.h
+ stdio-util.h
+ string-table.c
+ string-table.h
+ string-util.c
+ string-util.h
+ strv.c
+ strv.h
+ syslog-util.c
+ syslog-util.h
+ terminal-util.c
+ terminal-util.h
+ time-util.c
+ time-util.h
+ umask-util.h
+ unaligned.h
+ unit-name.c
+ unit-name.h
+ user-util.c
+ user-util.h
+ utf8.c
+ utf8.h
+ util.c
+ util.h
+ verbs.c
+ verbs.h
+ virt.c
+ virt.h
+ xattr-util.c
+ xattr-util.h
+'''.split())
+#endif // 0
+
+missing_h = files('missing.h')
+
+generate_gperfs = find_program('generate-gperfs.py')
+
+#if 0 /// elogind has only the errno list.
+# generate_af_list = find_program('generate-af-list.sh')
+# af_list_txt = custom_target(
+# 'af-list.txt',
+# output : 'af-list.txt',
+# command : [generate_af_list, cpp],
+# capture : true)
+#
+# generate_arphrd_list = find_program('generate-arphrd-list.sh')
+# arphrd_list_txt = custom_target(
+# 'arphrd-list.txt',
+# output : 'arphrd-list.txt',
+# command : [generate_arphrd_list, cpp],
+# capture : true)
+#
+# generate_cap_list = find_program('generate-cap-list.sh')
+# cap_list_txt = custom_target(
+# 'cap-list.txt',
+# output : 'cap-list.txt',
+# command : [generate_cap_list, cpp, config_h, missing_h],
+# capture : true)
+#endif // 0
+generate_errno_list = find_program('generate-errno-list.sh')
+errno_list_txt = custom_target(
+ 'errno-list.txt',
+ output : 'errno-list.txt',
+ command : [generate_errno_list, cpp],
+ capture : true)
+
+generated_gperf_headers = []
+#if 0 /// elogind has only the errno list.
+# foreach item : [['af', af_list_txt, 'af', ''],
+# ['arphrd', arphrd_list_txt, 'arphrd', 'ARPHRD_'],
+# ['cap', cap_list_txt, 'capability', ''],
+# ['errno', errno_list_txt, 'errno', '']]
+#else
+foreach item : [['errno', errno_list_txt, 'errno', '']]
+#endif // 0
+
+ fname = '@0@-from-name.gperf'.format(item[0])
+ gperf_file = custom_target(
+ fname,
+ input : item[1],
+ output : fname,
+ command : [generate_gperfs, item[2], item[3], '@INPUT@'],
+ capture : true)
+
+ fname = '@0@-from-name.h'.format(item[0])
+ target1 = custom_target(
+ fname,
+ input : gperf_file,
+ output : fname,
+ command : [gperf,
+ '-L', 'ANSI-C', '-t', '--ignore-case',
+ '-N', 'lookup_@0@'.format(item[2]),
+ '-H', 'hash_@0@_name'.format(item[2]),
+ '-p', '-C',
+ '@INPUT@'],
+ capture : true)
+
+ fname = '@0@-to-name.h'.format(item[0])
+ awkscript = '@0@-to-name.awk'.format(item[0])
+ target2 = custom_target(
+ fname,
+ input : [awkscript, item[1]],
+ output : fname,
+ command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
+ capture : true)
+
+ generated_gperf_headers += [target1, target2]
+endforeach
+
+basic_sources = basic_sources_plain + [missing_h] + generated_gperf_headers
+
+libbasic = static_library(
+ 'basic',
+ basic_sources,
+ include_directories : includes,
+ dependencies : [threads,
+ libcap,
+#if 0 /// no blkid in elogind
+# libblkid,
+#endif // 0
+ libselinux,
+ ],
+ install : false)
diff --git a/src/cgroups-agent/Makefile b/src/cgroups-agent/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/cgroups-agent/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/core/Makefile b/src/core/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/core/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/core/meson.build b/src/core/meson.build
new file mode 100644
index 000000000..d539ba0ee
--- /dev/null
+++ b/src/core/meson.build
@@ -0,0 +1,248 @@
+#if 0 /// elogind has only two of the parts here in it...
+# libcore_la_sources = '''
+# unit.c
+# unit.h
+# unit-printf.c
+# unit-printf.h
+# job.c
+# job.h
+# manager.c
+# manager.h
+# transaction.c
+# transaction.h
+# load-fragment.c
+# load-fragment.h
+# service.c
+# service.h
+# socket.c
+# socket.h
+# busname.c
+# busname.h
+# bus-policy.c
+# bus-policy.h
+# target.c
+# target.h
+# device.c
+# device.h
+# mount.c
+# mount.h
+# automount.c
+# automount.h
+# swap.c
+# swap.h
+# timer.c
+# timer.h
+# path.c
+# path.h
+# slice.c
+# slice.h
+# scope.c
+# scope.h
+# load-dropin.c
+# load-dropin.h
+# execute.c
+# execute.h
+# dynamic-user.c
+# dynamic-user.h
+# kill.c
+# kill.h
+# dbus.c
+# dbus.h
+# dbus-manager.c
+# dbus-manager.h
+# dbus-unit.c
+# dbus-unit.h
+# dbus-job.c
+# dbus-job.h
+# dbus-service.c
+# dbus-service.h
+# dbus-socket.c
+# dbus-socket.h
+# dbus-busname.c
+# dbus-busname.h
+# dbus-target.c
+# dbus-target.h
+# dbus-device.c
+# dbus-device.h
+# dbus-mount.c
+# dbus-mount.h
+# dbus-automount.c
+# dbus-automount.h
+# dbus-swap.c
+# dbus-swap.h
+# dbus-timer.c
+# dbus-timer.h
+# dbus-path.c
+# dbus-path.h
+# dbus-slice.c
+# dbus-slice.h
+# dbus-scope.c
+# dbus-scope.h
+# dbus-execute.c
+# dbus-execute.h
+# dbus-kill.c
+# dbus-kill.h
+# dbus-cgroup.c
+# dbus-cgroup.h
+# cgroup.c
+# cgroup.h
+# selinux-access.c
+# selinux-access.h
+# selinux-setup.c
+# selinux-setup.h
+# smack-setup.c
+# smack-setup.h
+# ima-setup.c
+# ima-setup.h
+# locale-setup.h
+# locale-setup.c
+# hostname-setup.c
+# hostname-setup.h
+# machine-id-setup.c
+# machine-id-setup.h
+# mount-setup.c
+# mount-setup.h
+# kmod-setup.c
+# kmod-setup.h
+# loopback-setup.h
+# loopback-setup.c
+# namespace.c
+# namespace.h
+# killall.h
+# killall.c
+# audit-fd.c
+# audit-fd.h
+# show-status.c
+# show-status.h
+# emergency-action.c
+# emergency-action.h
+# '''.split()
+#else
+libcore_la_sources = files('''
+ cgroup.c
+ cgroup.h
+ mount-setup.c
+ mount-setup.h
+'''.split())
+#endif // 0
+
+#if 0 /// The rest is not needed by elogind, we use the sources directly in login
+# load_fragment_gperf_gperf = custom_target(
+# 'load-fragment-gperf.gperf',
+# input : 'load-fragment-gperf.gperf.m4',
+# output: 'load-fragment-gperf.gperf',
+# command : [m4, '-P'] + m4_defines + ['@INPUT@'],
+# capture : true)
+#
+# load_fragment_gperf_c = custom_target(
+# 'load-fragment-gperf.c',
+# input : load_fragment_gperf_gperf,
+# output : 'load-fragment-gperf.c',
+# command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
+#
+# awkscript = 'load-fragment-gperf-nulstr.awk'
+# load_fragment_gperf_nulstr_c = custom_target(
+# 'load-fragment-gperf-nulstr.c',
+# input : [awkscript, load_fragment_gperf_gperf],
+# output : 'load-fragment-gperf-nulstr.c',
+# command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
+# capture : true)
+#
+# libcore = static_library(
+# 'core',
+# libcore_la_sources,
+# load_fragment_gperf_c,
+# load_fragment_gperf_nulstr_c,
+# include_directories : includes,
+# link_with : [libshared_static],
+# dependencies : [threads,
+# libseccomp,
+# libpam,
+# libaudit,
+# libkmod,
+# libapparmor,
+# libmount])
+#
+# systemd_sources = files('main.c')
+#
+# systemd_shutdown_sources = files('''
+# shutdown.c
+# umount.c
+# umount.h
+# mount-setup.c
+# mount-setup.h
+# killall.c
+# killall.h
+# '''.split())
+#
+# in_files = [['macros.systemd', rpmmacrosdir],
+# ['triggers.systemd', ''],
+# ['systemd.pc', pkgconfigdatadir]]
+#
+# foreach item : in_files
+# file = item[0]
+# dir = item[1]
+#
+# # If 'no', disable generation completely.
+# # If '', generate, but do not install.
+# if dir != 'no'
+# gen = configure_file(
+# input : file + '.in',
+# output : file,
+# configuration : substs)
+# if dir != ''
+# install_data(gen,
+# install_dir : dir)
+# endif
+# endif
+# endforeach
+#
+# install_data('org.freedesktop.systemd1.conf',
+# install_dir : dbuspolicydir)
+# install_data('org.freedesktop.systemd1.service',
+# install_dir : dbussystemservicedir)
+#
+# policy_in = configure_file(
+# input : 'org.freedesktop.systemd1.policy.in.in',
+# output : 'org.freedesktop.systemd1.policy.in',
+# configuration : substs)
+#
+# custom_target(
+# 'org.freedesktop.systemd1.policy',
+# input : policy_in,
+# output : 'org.freedesktop.systemd1.policy',
+# command : intltool_command,
+# install : install_polkit,
+# install_dir : polkitpolicydir)
+#endif // 0
+
+# TODO: this might work with meson from git, see
+# https://github.com/mesonbuild/meson/issues/1441#issuecomment-283585493
+#
+# i18n.merge_file(
+# 'org.freedesktop.systemd1.policy',
+# po_dir : po_dir,
+# input : policy_in,
+# output : 'org.freedesktop.systemd1.policy',
+# install : install_polkit,
+# install_dir : polkitpolicydir)
+
+#if 0 /// totally UNNEEDED in elogind
+# install_data('system.conf',
+# 'user.conf',
+# install_dir : pkgsysconfdir)
+#
+# meson.add_install_script('sh', '-c', mkdir_p.format(systemshutdowndir))
+# meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
+# meson.add_install_script('sh', '-c', mkdir_p.format(systemgeneratordir))
+# meson.add_install_script('sh', '-c', mkdir_p.format(usergeneratordir))
+#
+# meson.add_install_script('sh', '-c',
+# mkdir_p.format(join_paths(pkgsysconfdir, 'system/multi-user.target.wants')))
+# meson.add_install_script('sh', '-c',
+# mkdir_p.format(join_paths(pkgsysconfdir, 'system/getty.target.wants')))
+# meson.add_install_script('sh', '-c',
+# mkdir_p.format(join_paths(pkgsysconfdir, 'user')))
+# meson.add_install_script('sh', '-c',
+# mkdir_p.format(join_paths(sysconfdir, 'xdg/systemd')))
+#endif // 0
diff --git a/src/libelogind/Makefile b/src/libelogind/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/libelogind/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/libelogind/meson.build b/src/libelogind/meson.build
new file mode 100644
index 000000000..5d012ea6e
--- /dev/null
+++ b/src/libelogind/meson.build
@@ -0,0 +1,144 @@
+sd_login_c = files('sd-login/sd-login.c')
+
+#if 0 /// elogind has a shorter list, of course...
+# libsystemd_internal_sources = files('''
+# sd-bus/bus-bloom.c
+# sd-bus/bus-bloom.h
+# sd-bus/bus-common-errors.c
+# sd-bus/bus-common-errors.h
+# sd-bus/bus-container.c
+# sd-bus/bus-container.h
+# sd-bus/bus-control.c
+# sd-bus/bus-control.h
+# sd-bus/bus-convenience.c
+# sd-bus/bus-creds.c
+# sd-bus/bus-creds.h
+# sd-bus/bus-dump.c
+# sd-bus/bus-dump.h
+# sd-bus/bus-error.c
+# sd-bus/bus-error.h
+# sd-bus/bus-gvariant.c
+# sd-bus/bus-gvariant.h
+# sd-bus/bus-internal.c
+# sd-bus/bus-internal.h
+# sd-bus/bus-introspect.c
+# sd-bus/bus-introspect.h
+# sd-bus/bus-kernel.c
+# sd-bus/bus-kernel.h
+# sd-bus/bus-match.c
+# sd-bus/bus-match.h
+# sd-bus/bus-message.c
+# sd-bus/bus-message.h
+# sd-bus/bus-objects.c
+# sd-bus/bus-objects.h
+# sd-bus/bus-protocol.h
+# sd-bus/bus-signature.c
+# sd-bus/bus-signature.h
+# sd-bus/bus-slot.c
+# sd-bus/bus-slot.h
+# sd-bus/bus-socket.c
+# sd-bus/bus-socket.h
+# sd-bus/bus-track.c
+# sd-bus/bus-track.h
+# sd-bus/bus-type.c
+# sd-bus/bus-type.h
+# sd-bus/sd-bus.c
+# sd-daemon/sd-daemon.c
+# sd-device/device-enumerator-private.h
+# sd-device/device-enumerator.c
+# sd-device/device-internal.h
+# sd-device/device-private.c
+# sd-device/device-private.h
+# sd-device/device-util.h
+# sd-device/sd-device.c
+# sd-event/sd-event.c
+# sd-hwdb/hwdb-internal.h
+# sd-hwdb/hwdb-util.h
+# sd-hwdb/sd-hwdb.c
+# sd-id128/id128-util.c
+# sd-id128/id128-util.h
+# sd-id128/sd-id128.c
+# sd-netlink/local-addresses.c
+# sd-netlink/local-addresses.h
+# sd-netlink/netlink-internal.h
+# sd-netlink/netlink-message.c
+# sd-netlink/netlink-socket.c
+# sd-netlink/netlink-types.c
+# sd-netlink/netlink-types.h
+# sd-netlink/netlink-util.c
+# sd-netlink/netlink-util.h
+# sd-netlink/rtnl-message.c
+# sd-netlink/sd-netlink.c
+# sd-network/network-util.c
+# sd-network/network-util.h
+# sd-network/sd-network.c
+# sd-path/sd-path.c
+# sd-resolve/sd-resolve.c
+# sd-utf8/sd-utf8.c
+# '''.split()) + sd_login_c
+#else
+libelogind_internal_sources = files('''
+ sd-bus/bus-bloom.c
+ sd-bus/bus-bloom.h
+ sd-bus/bus-common-errors.c
+ sd-bus/bus-common-errors.h
+ sd-bus/bus-container.c
+ sd-bus/bus-container.h
+ sd-bus/bus-control.c
+ sd-bus/bus-control.h
+ sd-bus/bus-convenience.c
+ sd-bus/bus-creds.c
+ sd-bus/bus-creds.h
+ sd-bus/bus-error.c
+ sd-bus/bus-error.h
+ sd-bus/bus-gvariant.c
+ sd-bus/bus-gvariant.h
+ sd-bus/bus-internal.c
+ sd-bus/bus-internal.h
+ sd-bus/bus-introspect.c
+ sd-bus/bus-introspect.h
+ sd-bus/bus-kernel.c
+ sd-bus/bus-kernel.h
+ sd-bus/bus-match.c
+ sd-bus/bus-match.h
+ sd-bus/bus-message.c
+ sd-bus/bus-message.h
+ sd-bus/bus-objects.c
+ sd-bus/bus-objects.h
+ sd-bus/bus-protocol.h
+ sd-bus/bus-signature.c
+ sd-bus/bus-signature.h
+ sd-bus/bus-slot.c
+ sd-bus/bus-slot.h
+ sd-bus/bus-socket.c
+ sd-bus/bus-socket.h
+ sd-bus/bus-track.c
+ sd-bus/bus-track.h
+ sd-bus/bus-type.c
+ sd-bus/bus-type.h
+ sd-bus/sd-bus.c
+ sd-daemon/sd-daemon.c
+ sd-event/sd-event.c
+ sd-id128/id128-util.c
+ sd-id128/id128-util.h
+ sd-id128/sd-id128.c
+'''.split()) + sd_login_c
+#endif // 0
+
+libelogind_internal = static_library(
+ 'elogind',
+ libelogind_internal_sources,
+ install : false,
+ include_directories : includes,
+ link_with : libbasic,
+ dependencies : [threads,
+ librt])
+
+libelogind_sym = 'src/libelogind/libelogind.sym'
+
+libelogind_pc = configure_file(
+ input : 'libelogind.pc.in',
+ output : 'libelogind.pc',
+ configuration : substs)
+install_data(libelogind_pc,
+ install_dir : pkgconfiglibdir)
diff --git a/src/libelogind/sd-bus/Makefile b/src/libelogind/sd-bus/Makefile
deleted file mode 120000
index 94aaae2c4..000000000
--- a/src/libelogind/sd-bus/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../../Makefile \ No newline at end of file
diff --git a/src/libelogind/sd-daemon/Makefile b/src/libelogind/sd-daemon/Makefile
deleted file mode 120000
index 94aaae2c4..000000000
--- a/src/libelogind/sd-daemon/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../../Makefile \ No newline at end of file
diff --git a/src/libelogind/sd-event/Makefile b/src/libelogind/sd-event/Makefile
deleted file mode 120000
index 94aaae2c4..000000000
--- a/src/libelogind/sd-event/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../../Makefile \ No newline at end of file
diff --git a/src/libelogind/sd-id128/Makefile b/src/libelogind/sd-id128/Makefile
deleted file mode 120000
index 94aaae2c4..000000000
--- a/src/libelogind/sd-id128/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../../Makefile \ No newline at end of file
diff --git a/src/libelogind/sd-login/Makefile b/src/libelogind/sd-login/Makefile
deleted file mode 120000
index 94aaae2c4..000000000
--- a/src/libelogind/sd-login/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../../Makefile \ No newline at end of file
diff --git a/src/login/Makefile b/src/login/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/login/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/login/meson.build b/src/login/meson.build
new file mode 100644
index 000000000..9fd44ddc1
--- /dev/null
+++ b/src/login/meson.build
@@ -0,0 +1,181 @@
+#if 0 /// rename to elogind
+# systemd_logind_sources = files('''
+# logind.c
+# logind.h
+# '''.split())
+#else
+elogind_sources = files('''
+ elogind.c
+ elogind.h
+ logind.c
+ logind.h
+'''.split())
+#endif // 0
+
+logind_gperf_c = custom_target(
+ 'logind_gperf.c',
+ input : 'logind-gperf.gperf',
+ output : 'logind-gperf.c',
+ command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
+
+#if 0 /// rename to elogind
+# systemd_logind_sources += [logind_gperf_c]
+#else
+elogind_sources += [logind_gperf_c]
+#endif // 0
+
+liblogind_core_sources = files('''
+ logind-core.c
+ logind-device.c
+ logind-device.h
+ logind-button.c
+ logind-button.h
+ logind-action.c
+ logind-action.h
+ logind-seat.c
+ logind-seat.h
+ logind-session.c
+ logind-session.h
+ logind-session-device.c
+ logind-session-device.h
+ logind-user.c
+ logind-user.h
+ logind-inhibit.c
+ logind-inhibit.h
+ logind-dbus.c
+ logind-session-dbus.c
+ logind-seat-dbus.c
+ logind-user-dbus.c
+ logind-utmp.c
+ logind-acl.h
+'''.split())
+
+#if 1 /// elogind has some additional files:
+liblogind_core_sources += [files('''
+ elogind-dbus.c
+ elogind-dbus.h
+'''.split()),
+ libcore_la_sources,
+ sleep_files,
+ update_utmp_files]
+#endif // 1
+
+logind_acl_c = files('logind-acl.c')
+if conf.get('HAVE_ACL', false)
+ liblogind_core_sources += logind_acl_c
+endif
+
+liblogind_core = static_library(
+ 'logind-core',
+ liblogind_core_sources,
+ include_directories : includes,
+ dependencies : [libacl])
+
+loginctl_sources = files('''
+ loginctl.c
+ sysfs-show.h
+ sysfs-show.c
+'''.split())
+
+#if 1 /// elogind has some additional files:
+loginctl_sources += files('''
+ eloginctl.c
+ eloginctl.h
+'''.split())
+#endif // 1
+
+#if 0 /// elogind builds itself unconditionally and with some adaptatins
+# if conf.get('ENABLE_LOGIND', false)
+# logind_conf = configure_file(
+# input : 'logind.conf.in',
+# output : 'logind.conf',
+# configuration : substs)
+# install_data(logind_conf,
+# install_dir : pkgsysconfdir)
+#
+# pam_systemd_sym = 'src/login/pam_systemd.sym'
+# pam_systemd_c = files('pam_systemd.c')
+#
+# install_data('org.freedesktop.login1.conf',
+# install_dir : dbuspolicydir)
+# install_data('org.freedesktop.login1.service',
+# install_dir : dbussystemservicedir)
+#
+# custom_target(
+# 'org.freedesktop.login1.policy',
+# input : 'org.freedesktop.login1.policy.in',
+# output : 'org.freedesktop.login1.policy',
+# command : intltool_command,
+# install : install_polkit,
+# install_dir : polkitpolicydir)
+#
+# install_data('70-power-switch.rules',
+# '70-uaccess.rules',
+# install_dir : udevrulesdir)
+#
+# foreach file : ['71-seat.rules',
+# '73-seat-late.rules']
+# gen = configure_file(
+# input : file + '.in',
+# output : file,
+# configuration : substs)
+# install_data(gen,
+# install_dir : udevrulesdir)
+# endforeach
+#
+# custom_target(
+# 'systemd-user',
+# input : 'systemd-user.m4',
+# output: 'systemd-user',
+# command : [m4, '-P'] + m4_defines + ['@INPUT@'],
+# capture : true,
+# install : pamconfdir != 'no',
+# install_dir : pamconfdir)
+# endif
+#else
+logind_conf = configure_file(
+ input : 'logind.conf.in',
+ output : 'logind.conf',
+ configuration : substs)
+install_data(logind_conf,
+ install_dir : pkgsysconfdir)
+
+pam_elogind_sym = 'src/login/pam_elogind.sym'
+pam_elogind_c = files('pam_elogind.c')
+
+install_data('org.freedesktop.login1.conf',
+ install_dir : dbuspolicydir)
+install_data('org.freedesktop.login1.service',
+ install_dir : dbussystemservicedir)
+
+custom_target(
+ 'org.freedesktop.login1.policy',
+ input : 'org.freedesktop.login1.policy.in',
+ output : 'org.freedesktop.login1.policy',
+ command : intltool_command,
+ install : install_polkit,
+ install_dir : polkitpolicydir)
+
+install_data('70-power-switch.rules',
+ '70-uaccess.rules',
+ install_dir : udevrulesdir)
+
+foreach file : ['71-seat.rules',
+ '73-seat-late.rules']
+ gen = configure_file(
+ input : file + '.in',
+ output : file,
+ configuration : substs)
+ install_data(gen,
+ install_dir : udevrulesdir)
+endforeach
+
+custom_target(
+ 'elogind-user',
+ input : 'elogind-user.m4',
+ output: 'elogind-user',
+ command : [m4, '-P'] + m4_defines + ['@INPUT@'],
+ capture : true,
+ install : pamconfdir != 'no',
+ install_dir : pamconfdir)
+#endif //0
diff --git a/src/shared/Makefile b/src/shared/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/shared/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/shared/meson.build b/src/shared/meson.build
new file mode 100644
index 000000000..7505d3963
--- /dev/null
+++ b/src/shared/meson.build
@@ -0,0 +1,198 @@
+#if 0 /// elogind has a much shorter list
+# shared_sources = '''
+# acl-util.h
+# acpi-fpdt.c
+# acpi-fpdt.h
+# apparmor-util.c
+# apparmor-util.h
+# ask-password-api.c
+# ask-password-api.h
+# base-filesystem.c
+# base-filesystem.h
+# boot-timestamps.c
+# boot-timestamps.h
+# bus-unit-util.c
+# bus-unit-util.h
+# bus-util.c
+# bus-util.h
+# cgroup-show.c
+# cgroup-show.h
+# clean-ipc.c
+# clean-ipc.h
+# condition.c
+# condition.h
+# conf-parser.c
+# conf-parser.h
+# dev-setup.c
+# dev-setup.h
+# dissect-image.c
+# dissect-image.h
+# dns-domain.c
+# dns-domain.h
+# dropin.c
+# dropin.h
+# efivars.c
+# efivars.h
+# fdset.c
+# fdset.h
+# firewall-util.h
+# fstab-util.c
+# fstab-util.h
+# gcrypt-util.c
+# gcrypt-util.h
+# generator.c
+# generator.h
+# gpt.h
+# ima-util.c
+# ima-util.h
+# import-util.c
+# import-util.h
+# initreq.h
+# install.c
+# install.h
+# install-printf.c
+# install-printf.h
+# journal-util.c
+# journal-util.h
+# logs-show.c
+# logs-show.h
+# loop-util.c
+# loop-util.h
+# machine-image.c
+# machine-image.h
+# machine-pool.c
+# machine-pool.h
+# nsflags.c
+# nsflags.h
+# output-mode.c
+# output-mode.h
+# pager.c
+# pager.h
+# path-lookup.c
+# path-lookup.h
+# ptyfwd.c
+# ptyfwd.h
+# resolve-util.c
+# resolve-util.h
+# seccomp-util.h
+# sleep-config.c
+# sleep-config.h
+# spawn-ask-password-agent.c
+# spawn-ask-password-agent.h
+# spawn-polkit-agent.c
+# spawn-polkit-agent.h
+# specifier.c
+# specifier.h
+# switch-root.c
+# switch-root.h
+# sysctl-util.c
+# sysctl-util.h
+# tests.c
+# tests.h
+# udev-util.h
+# udev-util.c
+# uid-range.c
+# uid-range.h
+# utmp-wtmp.h
+# vlan-util.c
+# vlan-util.h
+# volatile-util.c
+# volatile-util.h
+# watchdog.c
+# watchdog.h
+# '''.split()
+#else
+shared_sources = '''
+ bus-util.c
+ bus-util.h
+ clean-ipc.c
+ clean-ipc.h
+ conf-parser.c
+ conf-parser.h
+ musl_missing.c
+ musl_missing.h
+ nsflags.c
+ nsflags.h
+ pager.c
+ pager.h
+ sleep-config.c
+ sleep-config.h
+ spawn-polkit-agent.c
+ spawn-polkit-agent.h
+ udev-util.c
+ udev-util.h
+'''.split()
+#endif // 0
+
+test_tables_h = files('test-tables.h')
+shared_sources += [test_tables_h]
+
+if conf.get('HAVE_ACL', false)
+ shared_sources += ['acl-util.c']
+endif
+
+if conf.get('HAVE_UTMP', false)
+ shared_sources += ['utmp-wtmp.c']
+endif
+
+#if 0 /// UNNEEDED by elogind
+# if conf.get('HAVE_SECCOMP', false)
+# shared_sources += ['seccomp-util.c']
+# endif
+#
+# if conf.get('HAVE_LIBIPTC', false)
+# shared_sources += ['firewall-util.c']
+# endif
+#endif // 0
+
+libshared_name = 'elogind-shared-@0@'.format(meson.project_version())
+
+#if 0 /// elogind doesn't need all this
+# libshared_deps = [threads,
+# librt,
+# libcap,
+# libacl,
+# libcryptsetup,
+# libgcrypt,
+# libiptc,
+# libseccomp,
+# libselinux,
+# libidn,
+# libxz,
+# liblz4,
+# libblkid]
+# #else
+libshared_deps = [threads,
+ libcap,
+ libacl,
+ libselinux,
+ libudev]
+#endif // 0
+
+libshared = shared_library(
+ libshared_name,
+ shared_sources,
+ basic_sources,
+#if 0 /// "Slightly" different in elogind
+# journal_internal_sources,
+# libsystemd_internal_sources,
+# libudev_sources,
+#else
+ libelogind_internal_sources,
+#endif // 0
+ include_directories : includes,
+ link_args : ['-shared'],
+ c_args : ['-fvisibility=default'],
+ dependencies : libshared_deps,
+ install : true,
+ install_dir : rootlibexecdir)
+
+libshared_static = static_library(
+ libshared_name,
+ shared_sources,
+ basic_sources,
+#if 1 /// need elogind internal library sources
+ libelogind_internal_sources,
+#endif // 1
+ include_directories : includes,
+ dependencies : libshared_deps)
diff --git a/src/sleep/Makefile b/src/sleep/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/sleep/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/sleep/meson.build b/src/sleep/meson.build
new file mode 100644
index 000000000..6d76d101f
--- /dev/null
+++ b/src/sleep/meson.build
@@ -0,0 +1,4 @@
+sleep_files = files('''
+ sleep.c
+ sleep.h
+'''.split())
diff --git a/src/systemd/Makefile b/src/systemd/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/systemd/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/systemd/meson.build b/src/systemd/meson.build
new file mode 100644
index 000000000..82159f336
--- /dev/null
+++ b/src/systemd/meson.build
@@ -0,0 +1,75 @@
+#if 0 /// No systemd-journal in elogind ...
+# _systemd_headers = '''
+# sd-bus.h
+# sd-bus-protocol.h
+# sd-bus-vtable.h
+# sd-daemon.h
+# sd-event.h
+# sd-id128.h
+# sd-journal.h
+# sd-login.h
+# sd-messages.h
+# '''.split()
+#else
+_systemd_headers = '''
+ sd-bus.h
+ sd-bus-protocol.h
+ sd-bus-vtable.h
+ sd-daemon.h
+ sd-event.h
+ sd-id128.h
+ sd-login.h
+ sd-messages.h
+'''.split()
+
+# https://github.com/mesonbuild/meson/issues/1633
+systemd_headers = files(_systemd_headers)
+
+# sd-device.h
+# sd-hwdb.h
+# sd-dhcp6-client.h
+# sd-dhcp6-lease.h
+# sd-dhcp-client.h
+# sd-dhcp-lease.h
+# sd-dhcp-server.h
+# sd-ipv4acd.h
+# sd-ipv4ll.h
+# sd-lldp.h
+# sd-ndisc.h
+# sd-netlink.h
+# sd-network.h
+# sd-path.h
+# sd-resolve.h
+# sd-utf8.h
+
+install_headers(
+ systemd_headers,
+ '_sd-common.h',
+#if 0 /// elogind needs them somewhere else
+# subdir : 'systemd')
+#else
+ subdir : 'elogind/systemd')
+#endif // 0
+
+
+############################################################
+
+opts = [['c'],
+ ['c', '-ansi'],
+ ['c', '-std=iso9899:1990']]
+
+cxx = find_program('c++', required : false)
+if cxx.found()
+ opts += [['c++']]
+endif
+
+foreach header : _systemd_headers
+ foreach opt : opts
+ name = ''.join([header, ':'] + opt)
+ test('cc-' + name,
+ check_compilation_sh,
+ args : cc.cmd_array() + ['-c', '-x'] + opt +
+ ['-Werror', '-include',
+ join_paths(meson.current_source_dir(), header)])
+ endforeach
+endforeach
diff --git a/src/test/Makefile b/src/test/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/test/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/test/generate-sym-test.py b/src/test/generate-sym-test.py
new file mode 100755
index 000000000..357cce8e4
--- /dev/null
+++ b/src/test/generate-sym-test.py
@@ -0,0 +1,23 @@
+#!/usr/bin/env python3
+import sys, re
+
+print('#include <stdio.h>')
+for header in sys.argv[2:]:
+ print('#include "{}"'.format(header.split('/')[-1]))
+
+print('''
+void* functions[] = {''')
+
+for line in open(sys.argv[1]):
+ match = re.search('^ +([a-zA-Z0-9_]+);', line)
+ if match:
+ print(' {},'.format(match.group(1)))
+
+print('''};
+
+int main(void) {
+ unsigned i;
+ for (i = 0; i < sizeof(functions)/sizeof(void*); i++)
+ printf("%p\\n", functions[i]);
+ return 0;
+}''')
diff --git a/src/test/meson.build b/src/test/meson.build
new file mode 100644
index 000000000..b7b21227e
--- /dev/null
+++ b/src/test/meson.build
@@ -0,0 +1,975 @@
+awkscript = 'test-hashmap-ordered.awk'
+test_hashmap_ordered_c = custom_target(
+ 'test-hashmap-ordered.c',
+ input : [awkscript, 'test-hashmap-plain.c'],
+ output : 'test-hashmap-ordered.c',
+ command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
+ capture : true)
+
+test_include_dir = include_directories('.')
+
+path = run_command('sh', ['-c', 'echo "$PATH"']).stdout()
+test_env = environment()
+#if 0 /// UNNEEDED in elogind
+# test_env.set('SYSTEMD_KBD_MODEL_MAP', kbd_model_map)
+# test_env.set('SYSTEMD_LANGUAGE_FALLBACK_MAP', language_fallback_map)
+#endif // 0
+test_env.set('PATH', path)
+test_env.prepend('PATH', meson.build_root())
+
+############################################################
+
+generate_sym_test_py = find_program('generate-sym-test.py')
+
+test_libelogind_sym_c = custom_target(
+ 'test-libelogind-sym.c',
+ input : [libelogind_sym_path] + systemd_headers,
+ output : 'test-libelogind-sym.c',
+ command : [generate_sym_test_py, libelogind_sym_path] + systemd_headers,
+ capture : true)
+
+#if 0 /// UNNEEDED in elogind
+# test_libudev_sym_c = custom_target(
+# 'test-libudev-sym.c',
+# input : [libudev_sym_path, libudev_h_path],
+# output : 'test-libudev-sym.c',
+# command : [generate_sym_test_py, '@INPUT0@', '@INPUT1@'],
+# capture : true)
+#
+# test_dlopen_c = files('test-dlopen.c')
+#endif // 0
+
+############################################################
+
+tests += [
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-device-nodes.c'],
+# [],
+# []],
+
+# [['src/test/test-engine.c'],
+# [libcore,
+# libudev,
+# libelogind_internal],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid]],
+
+# [['src/test/test-job-type.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid]],
+
+# [['src/test/test-ns.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid],
+# '', 'manual'],
+
+# [['src/test/test-loopback.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid]],
+
+# [['src/test/test-hostname.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid],
+# '', 'unsafe'],
+
+# [['src/test/test-dns-domain.c'],
+# [libcore,
+# libelogind_network],
+# []],
+
+# [['src/test/test-boot-timestamps.c'],
+# [],
+# [],
+# 'ENABLE_EFI'],
+
+# [['src/test/test-unit-name.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid]],
+
+# [['src/test/test-unit-file.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid]],
+#endif // 0
+
+ [['src/test/test-utf8.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-capability.c'],
+# [],
+# [libcap]],
+
+# [['src/test/test-async.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-locale-util.c'],
+ [],
+ []],
+
+ [['src/test/test-copy.c'],
+ [libshared_static],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-sigbus.c'],
+# [],
+# []],
+
+# [['src/test/test-condition.c'],
+# [],
+# []],
+
+# [['src/test/test-fdset.c'],
+# [],
+# []],
+
+# [['src/test/test-fstab-util.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-random-util.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-ratelimit.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-util.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-mount-util.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-exec-util.c'],
+ [],
+ []],
+
+ [['src/test/test-hexdecoct.c'],
+ [],
+ []],
+
+ [['src/test/test-alloc-util.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-xattr-util.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-io-util.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-glob-util.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-fs-util.c'],
+ [],
+ []],
+
+ [['src/test/test-proc-cmdline.c'],
+ [],
+ []],
+
+ [['src/test/test-fd-util.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-web-util.c'],
+# [],
+# []],
+
+# [['src/test/test-cpu-set-util.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-stat-util.c'],
+ [],
+ []],
+
+ [['src/test/test-escape.c'],
+ [],
+ []],
+
+ [['src/test/test-string-util.c'],
+ [],
+ []],
+
+ [['src/test/test-extract-word.c'],
+ [],
+ []],
+
+ [['src/test/test-parse-util.c'],
+ [],
+ []],
+
+ [['src/test/test-user-util.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-hostname-util.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-process-util.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-terminal-util.c'],
+# [],
+# []],
+
+# [['src/test/test-path-lookup.c'],
+# [],
+# []],
+
+# [['src/test/test-uid-range.c'],
+# [],
+# []],
+
+# [['src/test/test-cap-list.c',
+# generated_gperf_headers],
+# [],
+# [libcap]],
+
+# [['src/test/test-socket-util.c'],
+# [],
+# []],
+
+# [['src/test/test-barrier.c'],
+# [],
+# []],
+
+# [['src/test/test-tmpfiles.c'],
+# [],
+# []],
+
+# [['src/test/test-namespace.c'],
+# [libcore,
+# libshared],
+# [threads,
+# libblkid]],
+#endif // 0
+
+ [['src/test/test-verbs.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-install-root.c'],
+# [],
+# []],
+
+# [['src/test/test-acl-util.c'],
+# [],
+# [],
+# 'HAVE_ACL'],
+
+# [['src/test/test-seccomp.c'],
+# [],
+# [libseccomp],
+# 'HAVE_SECCOMP'],
+
+# [['src/test/test-rlimit-util.c'],
+# [],
+# []],
+
+# [['src/test/test-ask-password-api.c'],
+# [],
+# [],
+# '', 'manual'],
+
+# [['src/test/test-dissect-image.c'],
+# [],
+# [libblkid],
+# '', 'manual'],
+#endif // 0
+
+ [['src/test/test-signal-util.c'],
+ [],
+ []],
+
+ [['src/test/test-selinux.c'],
+ [],
+ []],
+
+ [['src/test/test-sizeof.c'],
+ [libbasic],
+ []],
+
+ [['src/test/test-hashmap.c',
+ 'src/test/test-hashmap-plain.c',
+ test_hashmap_ordered_c],
+ [],
+ [],
+ '', 'timeout=90'],
+
+ [['src/test/test-set.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-bitmap.c'],
+# [],
+# []],
+
+# [['src/test/test-xml.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-list.c'],
+ [],
+ []],
+
+ [['src/test/test-unaligned.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-tables.c',
+# 'src/shared/test-tables.h',
+# 'src/journal/journald-server.c',
+# 'src/journal/journald-server.h'],
+# [libcore,
+# libjournal_core,
+# libudev_core,
+# libudev_internal,
+# libelogind_network,
+# libshared],
+# [threads,
+# libseccomp,
+# libmount,
+# libxz,
+# liblz4,
+# libblkid],
+# '', '', [], libudev_core_includes],
+#endif // 0
+
+ [['src/test/test-prioq.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-fileio.c'],
+# [],
+# []],
+
+# [['src/test/test-time.c'],
+# [],
+# []],
+
+# [['src/test/test-clock.c'],
+# [],
+# []],
+
+# [['src/test/test-architecture.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-log.c'],
+ [],
+ []],
+
+ [['src/test/test-ipcrm.c'],
+ [],
+ [],
+ '', 'unsafe'],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-btrfs.c'],
+# [],
+# [],
+# '', 'manual'],
+
+
+# [['src/test/test-firewall-util.c'],
+# [libshared],
+# [],
+# 'HAVE_LIBIPTC'],
+
+# [['src/test/test-netlink-manual.c'],
+# [],
+# [libkmod],
+# 'HAVE_KMOD', 'manual'],
+#endif // 0
+
+ [['src/test/test-ellipsize.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-date.c'],
+# [],
+# []],
+
+# [['src/test/test-sleep.c'],
+# [],
+# []],
+
+# [['src/test/test-replace-var.c'],
+# [],
+# []],
+
+# [['src/test/test-calendarspec.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-strip-tab-ansi.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-daemon.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-cgroup.c'],
+ [],
+ [],
+ '', 'manual'],
+
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-cgroup-mask.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid]],
+
+# [['src/test/test-cgroup-util.c'],
+# [],
+# []],
+
+# [['src/test/test-env-util.c'],
+# [],
+# []],
+
+# [['src/test/test-strbuf.c'],
+# [],
+# []],
+
+# [['src/test/test-strv.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/test/test-path-util.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-path.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid]],
+
+# [['src/test/test-execute.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid]],
+#endif // 0
+
+ [['src/test/test-siphash24.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-strxcpyx.c'],
+# [],
+# []],
+
+# [['src/test/test-install.c'],
+# [libcore,
+# libshared],
+# [],
+# '', 'manual'],
+
+# [['src/test/test-watchdog.c'],
+# [],
+# []],
+
+# [['src/test/test-sched-prio.c'],
+# [libcore,
+# libshared],
+# [threads,
+# librt,
+# libseccomp,
+# libselinux,
+# libmount,
+# libblkid]],
+#endif // 0
+
+ [['src/test/test-conf-files.c'],
+ [],
+ []],
+
+ [['src/test/test-conf-parser.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-af-list.c',
+# generated_gperf_headers],
+# [],
+# []],
+
+# [['src/test/test-arphrd-list.c',
+# generated_gperf_headers],
+# [],
+# []],
+
+# [['src/test/test-journal-importer.c'],
+# [],
+# []],
+
+# [['src/test/test-libudev.c'],
+# [libshared],
+# []],
+
+# [['src/test/test-udev.c'],
+# [libudev_core,
+# libudev_internal,
+# libelogind_network,
+# libshared],
+# [threads,
+# librt,
+# libblkid,
+# libkmod,
+# libacl],
+# '', 'manual'],
+#endif // 0
+
+ [['src/test/test-id128.c'],
+ [],
+ []],
+
+ [['src/test/test-hash.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/test/test-nss.c'],
+# [],
+# [libdl],
+# '', 'manual'],
+#endif // 0
+]
+
+############################################################
+
+# define some tests here, because the link_with deps were not defined earlier
+
+#if 0 /// No systemd-journal in elogind, of course
+# tests += [
+# [['src/journal/test-journal.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-journal-send.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-journal-syslog.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4,
+# libselinux]],
+
+# [['src/journal/test-journal-match.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-journal-enum.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-journal-stream.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-journal-flush.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-journal-init.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-journal-verify.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-journal-interleaving.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-mmap-cache.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4]],
+
+# [['src/journal/test-catalog.c'],
+# [libjournal_core,
+# libshared],
+# [threads,
+# libxz,
+# liblz4],
+# '', '', '-DCATALOG_DIR="@0@"'.format(build_catalog_dir)],
+
+# [['src/journal/test-compress.c'],
+# [libjournal_core,
+# libshared],
+# [liblz4,
+# libxz]],
+
+# [['src/journal/test-compress-benchmark.c'],
+# [libjournal_core,
+# libshared],
+# [liblz4,
+# libxz],
+# '', 'timeout=90'],
+
+# [['src/journal/test-audit-type.c'],
+# [libjournal_core,
+# libshared],
+# [liblz4,
+# libxz]],
+# ]
+#endif // 0
+
+############################################################
+
+tests += [
+#if 0 /// UNNEEDED in elogind
+# [['src/libelogind/sd-bus/test-bus-marshal.c'],
+# [],
+# [threads,
+# libglib,
+# libgobject,
+# libgio,
+# libdbus]],
+#endif // 0
+
+ [['src/libelogind/sd-bus/test-bus-signature.c'],
+ [],
+ [threads]],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/libelogind/sd-bus/test-bus-chat.c'],
+# [],
+# [threads]],
+
+# [['src/libelogind/sd-bus/test-bus-cleanup.c'],
+# [],
+# [threads,
+# libseccomp]],
+#endif // 0
+
+ [['src/libelogind/sd-bus/test-bus-error.c'],
+ [libshared_static,
+ libelogind_internal],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/libelogind/sd-bus/test-bus-track.c'],
+# [],
+# [libseccomp]],
+#endif // 0
+
+ [['src/libelogind/sd-bus/test-bus-server.c'],
+ [],
+ [threads]],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/libelogind/sd-bus/test-bus-objects.c'],
+# [],
+# [threads]],
+#endif // 0
+
+ [['src/libelogind/sd-bus/test-bus-vtable.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/libelogind/sd-bus/test-bus-gvariant.c'],
+# [],
+# [libglib,
+# libgobject,
+# libgio]],
+
+# [['src/libelogind/sd-bus/test-bus-creds.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/libelogind/sd-bus/test-bus-match.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/libelogind/sd-bus/test-bus-kernel.c'],
+# [],
+# []],
+
+# [['src/libelogind/sd-bus/test-bus-kernel-bloom.c'],
+# [],
+# []],
+
+# [['src/libelogind/sd-bus/test-bus-benchmark.c'],
+# [],
+# [threads]],
+
+# [['src/libelogind/sd-bus/test-bus-zero-copy.c'],
+# [],
+# []],
+#endif // 0
+
+ [['src/libelogind/sd-bus/test-bus-introspect.c'],
+ [],
+ []],
+
+ [['src/libelogind/sd-event/test-event.c'],
+ [],
+ []],
+
+#if 0 /// UNNEEDED in elogind
+# [['src/libelogind/sd-netlink/test-netlink.c'],
+# [],
+# []],
+
+# [['src/libelogind/sd-netlink/test-local-addresses.c'],
+# [],
+# []],
+
+# [['src/libelogind/sd-resolve/test-resolve.c'],
+# [],
+# [threads]],
+#endif // 0
+ [['src/libelogind/sd-login/test-login.c'],
+ [],
+ []],
+]
+
+#if 0 /// UNNEEDED in elogind
+# if cxx.found()
+# tests += [
+# [['src/libelogind/sd-bus/test-bus-vtable-cc.cc'],
+# [],
+# []]
+# ]
+# endif
+#endif // 0
+
+############################################################
+
+#if 0 /// UNNEEDED in elogind
+# tests += [
+# [['src/libelogind-network/test-dhcp-option.c',
+# 'src/libelogind-network/dhcp-protocol.h',
+# 'src/libelogind-network/dhcp-internal.h'],
+# [libshared,
+# libelogind_network],
+# []],
+
+# [['src/libelogind-network/test-sd-dhcp-lease.c',
+# 'src/libelogind-network/dhcp-lease-internal.h'],
+# [libshared,
+# libelogind_network],
+# []],
+
+# [['src/libelogind-network/test-dhcp-client.c',
+# 'src/libelogind-network/dhcp-protocol.h',
+# 'src/libelogind-network/dhcp-internal.h',
+# 'src/systemd/sd-dhcp-client.h'],
+# [libshared,
+# libelogind_network],
+# []],
+
+# [['src/libelogind-network/test-dhcp-server.c'],
+# [libshared,
+# libelogind_network],
+# []],
+
+# [['src/libelogind-network/test-ipv4ll.c',
+# 'src/libelogind-network/arp-util.h',
+# 'src/systemd/sd-ipv4ll.h'],
+# [libshared,
+# libelogind_network],
+# []],
+
+# [['src/libelogind-network/test-ipv4ll-manual.c',
+# 'src/systemd/sd-ipv4ll.h'],
+# [libshared,
+# libelogind_network],
+# [],
+# '', 'manual'],
+
+# [['src/libelogind-network/test-acd.c',
+# 'src/systemd/sd-ipv4acd.h'],
+# [libshared,
+# libelogind_network],
+# [],
+# '', 'manual'],
+
+# [['src/libelogind-network/test-ndisc-rs.c',
+# 'src/libelogind-network/dhcp-identifier.h',
+# 'src/libelogind-network/dhcp-identifier.c',
+# 'src/libelogind-network/icmp6-util.h',
+# 'src/systemd/sd-dhcp6-client.h',
+# 'src/systemd/sd-ndisc.h'],
+# [libshared,
+# libelogind_network],
+# []],
+
+# [['src/libelogind-network/test-ndisc-ra.c',
+# 'src/libelogind-network/icmp6-util.h',
+# 'src/systemd/sd-ndisc.h'],
+# [libshared,
+# libelogind_network],
+# []],
+
+# [['src/libelogind-network/test-dhcp6-client.c',
+# 'src/libelogind-network/dhcp-identifier.h',
+# 'src/libelogind-network/dhcp-identifier.c',
+# 'src/libelogind-network/dhcp6-internal.h',
+# 'src/systemd/sd-dhcp6-client.h'],
+# [libshared,
+# libelogind_network],
+# []],
+
+# [['src/libelogind-network/test-lldp.c'],
+# [libshared,
+# libelogind_network],
+# []],
+# ]
+#endif // 0
+
+############################################################
+
+tests += [
+ [['src/login/test-login-shared.c'],
+ [],
+ []],
+
+ [['src/login/test-inhibit.c'],
+ [],
+ [],
+ '', 'manual'],
+
+ [['src/login/test-login-tables.c'],
+ [liblogind_core,
+ libshared],
+ [threads,
+ libaudit,
+ libudev]],
+]
diff --git a/src/test/test-hashmap-ordered.awk b/src/test/test-hashmap-ordered.awk
new file mode 100644
index 000000000..10f4386fa
--- /dev/null
+++ b/src/test/test-hashmap-ordered.awk
@@ -0,0 +1,11 @@
+BEGIN {
+ print "/* GENERATED FILE */";
+ print "#define ORDERED"
+}
+{
+ if (!match($0, "^#include"))
+ gsub(/hashmap/, "ordered_hashmap");
+ gsub(/HASHMAP/, "ORDERED_HASHMAP");
+ gsub(/Hashmap/, "OrderedHashmap");
+ print
+}
diff --git a/src/update-utmp/Makefile b/src/update-utmp/Makefile
deleted file mode 120000
index d0b0e8e00..000000000
--- a/src/update-utmp/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../Makefile \ No newline at end of file
diff --git a/src/update-utmp/meson.build b/src/update-utmp/meson.build
new file mode 100644
index 000000000..c2070bb9a
--- /dev/null
+++ b/src/update-utmp/meson.build
@@ -0,0 +1,4 @@
+update_utmp_files = files('''
+ update-utmp.c
+ update-utmp.h
+'''.split())
diff --git a/tools/make-directive-index.py b/tools/make-directive-index.py
index 193f7416f..2d1ddd13f 100755
--- a/tools/make-directive-index.py
+++ b/tools/make-directive-index.py
@@ -1,34 +1,35 @@
+#!/usr/bin/env python3
# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
#
-# This file is part of elogind.
+# This file is part of systemd.
#
# Copyright 2012-2013 Zbigniew Jędrzejewski-Szmek
#
-# elogind is free software; you can redistribute it and/or modify it
+# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
-# elogind is distributed in the hope that it will be useful, but
+# systemd is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
-# along with elogind; If not, see <http://www.gnu.org/licenses/>.
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
import sys
import collections
import re
-from xml_helper import *
+from xml_helper import xml_parse, xml_print, tree
from copy import deepcopy
TEMPLATE = '''\
<refentry id="elogind.directives" conditional="HAVE_PYTHON">
<refentryinfo>
- <title>elogind.directives</title>
- <productname>elogind</productname>
+ <title>systemd.directives</title>
+ <productname>systemd</productname>
<authorgroup>
<author>
@@ -41,25 +42,70 @@ TEMPLATE = '''\
</refentryinfo>
<refmeta>
- <refentrytitle>elogind.directives</refentrytitle>
+ <refentrytitle>systemd.directives</refentrytitle>
<manvolnum>7</manvolnum>
</refmeta>
<refnamediv>
- <refname>elogind.directives</refname>
+ <refname>systemd.directives</refname>
<refpurpose>Index of configuration directives</refpurpose>
</refnamediv>
<refsect1>
+ <title>Unit directives</title>
+
+ <para>Directives for configuring units, used in unit
+ files.</para>
+
+ <variablelist id='unit-directives' />
+ </refsect1>
+
+ <refsect1>
+ <title>Options on the kernel command line</title>
+
+ <para>Kernel boot options for configuring the behaviour of the
+ systemd process.</para>
+
+ <variablelist id='kernel-commandline-options' />
+ </refsect1>
+
+ <refsect1>
<title>Environment variables</title>
- <para>Environment variables understood by the elogind
+ <para>Environment variables understood by the systemd
manager and other programs.</para>
<variablelist id='environment-variables' />
</refsect1>
<refsect1>
+ <title>UDEV directives</title>
+
+ <para>Directives for configuring systemd units through the
+ udev database.</para>
+
+ <variablelist id='udev-directives' />
+ </refsect1>
+
+ <refsect1>
+ <title>Network directives</title>
+
+ <para>Directives for configuring network links through the
+ net-setup-link udev builtin and networks through
+ systemd-networkd.</para>
+
+ <variablelist id='network-directives' />
+ </refsect1>
+
+ <refsect1>
+ <title>Journal fields</title>
+
+ <para>Fields in the journal events with a well known meaning.</para>
+
+ <variablelist id='journal-directives' />
+ </refsect1>
+
+ <refsect1>
<title>PAM configuration directives</title>
<para>Directives for configuring PAM behaviour.</para>
@@ -68,10 +114,29 @@ TEMPLATE = '''\
</refsect1>
<refsect1>
+ <title><filename>/etc/crypttab</filename> and
+ <filename>/etc/fstab</filename> options</title>
+
+ <para>Options which influence mounted filesystems and
+ encrypted volumes.</para>
+
+ <variablelist id='fstab-options' />
+ </refsect1>
+
+ <refsect1>
+ <title>System manager directives</title>
+
+ <para>Directives for configuring the behaviour of the
+ systemd process.</para>
+
+ <variablelist id='systemd-directives' />
+ </refsect1>
+
+ <refsect1>
<title>command line options</title>
<para>Command-line options accepted by programs in the
- elogind suite.</para>
+ systemd suite.</para>
<variablelist id='options' />
</refsect1>
@@ -79,7 +144,7 @@ TEMPLATE = '''\
<refsect1>
<title>Constants</title>
- <para>Various constant used and/or defined by elogind.</para>
+ <para>Various constant used and/or defined by systemd.</para>
<variablelist id='constants' />
</refsect1>
diff --git a/tools/make-man-index.py b/tools/make-man-index.py
index 396188212..0618e2e67 100755
--- a/tools/make-man-index.py
+++ b/tools/make-man-index.py
@@ -1,36 +1,37 @@
+#!/usr/bin/env python3
# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
#
-# This file is part of elogind.
+# This file is part of systemd.
#
# Copyright 2012 Lennart Poettering
# Copyright 2013 Zbigniew Jędrzejewski-Szmek
#
-# elogind is free software; you can redistribute it and/or modify it
+# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
-# elogind is distributed in the hope that it will be useful, but
+# systemd is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
-# along with elogind; If not, see <http://www.gnu.org/licenses/>.
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
import collections
import sys
import re
-from xml_helper import *
+from xml_helper import xml_parse, xml_print, tree
MDASH = ' — ' if sys.version_info.major >= 3 else ' -- '
TEMPLATE = '''\
-<refentry id="elogind.index" conditional="HAVE_PYTHON">
+<refentry id="systemd.index" conditional="HAVE_PYTHON">
<refentryinfo>
- <title>elogind.index</title>
- <productname>elogind</productname>
+ <title>systemd.index</title>
+ <productname>systemd</productname>
<authorgroup>
<author>
@@ -43,13 +44,13 @@ TEMPLATE = '''\
</refentryinfo>
<refmeta>
- <refentrytitle>elogind.index</refentrytitle>
+ <refentrytitle>systemd.index</refentrytitle>
<manvolnum>7</manvolnum>
</refmeta>
<refnamediv>
- <refname>elogind.index</refname>
- <refpurpose>List all manpages from the elogind project</refpurpose>
+ <refname>systemd.index</refname>
+ <refpurpose>List all manpages from the systemd project</refpurpose>
</refnamediv>
</refentry>
'''
@@ -58,7 +59,7 @@ SUMMARY = '''\
<refsect1>
<title>See Also</title>
<para>
- <citerefentry><refentrytitle>elogind.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
<para id='counts' />
diff --git a/tools/make-man-rules.py b/tools/make-man-rules.py
index 5e61917d6..e0f18d6fb 100755
--- a/tools/make-man-rules.py
+++ b/tools/make-man-rules.py
@@ -1,8 +1,9 @@
+#!/usr/bin/env python3
# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
#
# This file is part of systemd.
#
-# Copyright 2013 Zbigniew Jędrzejewski-Szmek
+# Copyright 2013, 2017 Zbigniew Jędrzejewski-Szmek
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
@@ -21,55 +22,14 @@ from __future__ import print_function
import collections
import sys
import os.path
-from xml_helper import *
-
-SECTION = '''\
-MANPAGES += \\
- {manpages}
-MANPAGES_ALIAS += \\
- {aliases}
-{rules}
-{htmlrules}
-'''
-
-CONDITIONAL = '''\
-if {conditional}
-''' \
-+ SECTION + \
-'''\
-endif
-'''
-
-HEADER = '''\
-# Do not edit. Generated by make-man-rules.py.
-# To regenerate:
-# 1. Create, update, or remove source .xml files in man/
-# 2. Run 'make update-man-list'
-# 3. Run 'make man' to generate manpages
-#
-# To make a man page conditional on a configure switch add
-# attribute conditional="ENABLE_WHAT" or conditional="WITH_WHAT"
-# to <refentry> element.
-'''
-
-HTML_ALIAS_RULE = '''\
-{}.html: {}.html
- $(html-alias)
-'''
-
-FOOTER = '''\
-
-# Really, do not edit this file.
-
-EXTRA_DIST += \\
- {dist_files}
-'''
+import pprint
+from xml_helper import xml_parse
def man(page, number):
- return 'man/{}.{}'.format(page, number)
+ return '{}.{}'.format(page, number)
def xml(file):
- return 'man/{}'.format(os.path.basename(file))
+ return os.path.basename(file)
def add_rules(rules, name):
xml = xml_parse(name)
@@ -106,24 +66,36 @@ def create_rules(xml_files):
def mjoin(files):
return ' \\\n\t'.join(sorted(files) or '#')
-def make_makefile(rules, dist_files):
- return HEADER + '\n'.join(
- (CONDITIONAL if conditional else SECTION).format(
- manpages=mjoin(set(rulegroup.values())),
- aliases=mjoin(k for k,v in rulegroup.items() if k != v),
- rules='\n'.join('{}: {}'.format(k,v)
- for k,v in sorted(rulegroup.items())
- if k != v),
- htmlrules='\n'.join(HTML_ALIAS_RULE.format(k[:-2],v[:-2])
- for k,v in sorted(rulegroup.items())
- if k != v),
- conditional=conditional)
- for conditional,rulegroup in sorted(rules.items())
- ) + FOOTER.format(dist_files=mjoin(sorted(dist_files)))
+MESON_HEADER = '''\
+# Do not edit. Generated by make-man-rules.py.
+manpages = ['''
+
+MESON_FOOTER = '''\
+]
+# Really, do not edit.'''
+
+def make_mesonfile(rules, dist_files):
+ # reformat rules as
+ # grouped = [ [name, section, [alias...], condition], ...]
+ #
+ # but first create a dictionary like
+ # lists = { (name, condition) => [alias...]
+ grouped = collections.defaultdict(list)
+ for condition, items in rules.items():
+ for alias, name in items.items():
+ group = grouped[(name, condition)]
+ if name != alias:
+ group.append(alias)
+
+ lines = [ [p[0][:-2], p[0][-1], sorted(a[:-2] for a in aliases), p[1]]
+ for p, aliases in sorted(grouped.items()) ]
+ return '\n'.join((MESON_HEADER, pprint.pformat(lines)[1:-1], MESON_FOOTER))
if __name__ == '__main__':
- rules = create_rules(sys.argv[1:])
- dist_files = (xml(file) for file in sys.argv[1:]
+ pages = sys.argv[1:]
+
+ rules = create_rules(pages)
+ dist_files = (xml(file) for file in pages
if not file.endswith(".directives.xml") and
not file.endswith(".index.xml"))
- print(make_makefile(rules, dist_files), end='')
+ print(make_mesonfile(rules, dist_files))
diff --git a/tools/meson-check-compilation.sh b/tools/meson-check-compilation.sh
new file mode 100755
index 000000000..d3b2a312f
--- /dev/null
+++ b/tools/meson-check-compilation.sh
@@ -0,0 +1,3 @@
+#!/bin/sh -eu
+
+"$@" '-' -o/dev/null </dev/null
diff --git a/tools/meson-check-help.sh b/tools/meson-check-help.sh
new file mode 100755
index 000000000..47a5099a0
--- /dev/null
+++ b/tools/meson-check-help.sh
@@ -0,0 +1,20 @@
+#!/bin/sh -eu
+
+# output width
+if "$1" --help | grep -v 'default:' | grep -E -q '.{80}.'; then
+ echo "$(basename "$1") --help output is too wide:"
+ "$1" --help | awk 'length > 80' | grep -E --color=yes '.{80}'
+ exit 1
+fi
+
+# no --help output to stdout
+if "$1" --help 2>&1 1>/dev/null | grep .; then
+ echo "$(basename "$1") --help prints to stderr"
+ exit 2
+fi
+
+# error output to stderr
+if ! "$1" --no-such-parameter 2>&1 1>/dev/null | grep -q .; then
+ echo "$(basename "$1") with an unknown parameter does not print to stderr"
+ exit 3
+fi
diff --git a/tools/meson-get-cg-controller.sh b/tools/meson-get-cg-controller.sh
new file mode 100755
index 000000000..98ba37a7f
--- /dev/null
+++ b/tools/meson-get-cg-controller.sh
@@ -0,0 +1,18 @@
+#!/bin/sh -eu
+
+if test -f /proc/self/cgroup; then
+ # If the init system is a cgroup controler, it will be position 1.
+ # Secondary controllers, like cgmanager, do not work.
+ with_cgroupctrl=$(grep "^1:name=" /proc/self/cgroup | \
+ sed -n 's/.*=//p' | sed -e 's/:.*$//')
+ if test -z "$with_cgroupctrl"; then
+ # Try to be our own cgroup controller
+ with_cgroupctrl="elogind"
+ fi
+else
+ # 'auto' but no cgroup fs is a problem.
+ with_cgroupctrl=""
+fi
+
+echo "$with_cgroupctrl"
+exit 0
diff --git a/tools/meson-git-contrib.sh b/tools/meson-git-contrib.sh
new file mode 100755
index 000000000..c543b3a5f
--- /dev/null
+++ b/tools/meson-git-contrib.sh
@@ -0,0 +1,8 @@
+#!/bin/sh -eu
+
+git shortlog -s `git describe --abbrev=0`.. | \
+ cut -c8- | \
+ sed 's/ / /g' | \
+ awk '{ print $$0 "," }' | \
+ sed -e 's/ / /g' | \
+ sort -u
diff --git a/tools/meson-link-test.c b/tools/meson-link-test.c
new file mode 100644
index 000000000..825bbff05
--- /dev/null
+++ b/tools/meson-link-test.c
@@ -0,0 +1 @@
+int main(void) {return 0;}
diff --git a/tools/meson-make-symlink.sh b/tools/meson-make-symlink.sh
new file mode 100755
index 000000000..47a5e70ae
--- /dev/null
+++ b/tools/meson-make-symlink.sh
@@ -0,0 +1,11 @@
+#!/bin/sh -eu
+
+# this is needed mostly because $DESTDIR is provided as a variable,
+# and we need to create the target directory...
+
+mkdir -vp "$(dirname "${DESTDIR:-}$2")"
+if [ "$(dirname $1)" = . ]; then
+ ln -vfs -T "$1" "${DESTDIR:-}$2"
+else
+ ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2"
+fi
diff --git a/tools/xml_helper.py b/tools/xml_helper.py
index e87126f2f..0088be5bd 100755
--- a/tools/xml_helper.py
+++ b/tools/xml_helper.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python3
# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
#
# This file is part of systemd.