chiark / gitweb /
update TODO
[elogind.git] / Makefile.am
index 9edc2357140f2f8bc9ad1bfb305794f48209a2b6..ee5401d54d12a1a2a2541087c2d59c23e5301acc 100644 (file)
@@ -46,9 +46,9 @@ LIBGUDEV_CURRENT=2
 LIBGUDEV_REVISION=0
 LIBGUDEV_AGE=2
 
-LIBSYSTEMD_CURRENT=5
-LIBSYSTEMD_REVISION=1
-LIBSYSTEMD_AGE=5
+LIBSYSTEMD_CURRENT=6
+LIBSYSTEMD_REVISION=0
+LIBSYSTEMD_AGE=6
 
 # The following four libraries only exist for compatibility reasons,
 # their version info should not be bumped anymore
@@ -74,7 +74,6 @@ dbussessionservicedir=@dbussessionservicedir@
 dbussystemservicedir=@dbussystemservicedir@
 pamlibdir=@pamlibdir@
 pamconfdir=@pamconfdir@
-pkgconfigdatadir=$(datadir)/pkgconfig
 pkgconfiglibdir=$(libdir)/pkgconfig
 polkitpolicydir=$(datadir)/polkit-1/actions
 bashcompletiondir=@bashcompletiondir@
@@ -85,6 +84,7 @@ sysvrcnddir=$(SYSTEM_SYSVRCND_PATH)
 varlogdir=$(localstatedir)/log
 systemdstatedir=$(localstatedir)/lib/systemd
 catalogstatedir=$(systemdstatedir)/catalog
+xinitrcdir=$(sysconfdir)/X11/xinit/xinitrc.d
 
 # Our own, non-special dirs
 pkgsysconfdir=$(sysconfdir)/systemd
@@ -111,6 +111,7 @@ catalogdir=$(prefix)/lib/systemd/catalog
 kernelinstalldir = $(prefix)/lib/kernel/install.d
 factory_etcdir = $(prefix)/share/factory/etc
 factory_pamdir = $(prefix)/share/factory/etc/pam.d
+bootlibdir = $(prefix)/lib/systemd/boot/efi
 
 # And these are the special ones for /
 rootprefix=@rootprefix@
@@ -148,6 +149,8 @@ check_PROGRAMS =
 check_DATA =
 tests=
 manual_tests =
+TEST_EXTENSIONS = .py
+PY_LOG_COMPILER = $(PYTHON)
 if ENABLE_TESTS
 noinst_PROGRAMS = $(manual_tests) $(tests)
 TESTS = $(tests)
@@ -188,6 +191,7 @@ AM_CPPFLAGS = \
        -DSYSTEM_SHUTDOWN_PATH=\"$(systemshutdowndir)\" \
        -DSYSTEM_SLEEP_PATH=\"$(systemsleepdir)\" \
        -DSYSTEMD_KBD_MODEL_MAP=\"$(pkgdatadir)/kbd-model-map\" \
+       -DSYSTEMD_LANGUAGE_FALLBACK_MAP=\"$(pkgdatadir)/language-fallback-map\" \
        -DX_SERVER=\"$(bindir)/X\" \
        -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" \
        -DPOLKIT_AGENT_BINARY_PATH=\"$(bindir)/pkttyagent\" \
@@ -195,6 +199,7 @@ AM_CPPFLAGS = \
        -DKEXEC=\"$(KEXEC)\" \
        -DLIBDIR=\"$(libdir)\" \
        -DROOTLIBDIR=\"$(rootlibdir)\" \
+       -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \
        -DTEST_DIR=\"$(abs_top_srcdir)/test\" \
        -I $(top_srcdir)/src \
        -I $(top_builddir)/src/shared \
@@ -238,14 +243,11 @@ endef
 
 INSTALL_DIRS =
 
-RUNLEVEL1_TARGET_WANTS =
-RUNLEVEL2_TARGET_WANTS =
-RUNLEVEL3_TARGET_WANTS =
-RUNLEVEL4_TARGET_WANTS =
-RUNLEVEL5_TARGET_WANTS =
 SHUTDOWN_TARGET_WANTS =
 LOCAL_FS_TARGET_WANTS =
 MULTI_USER_TARGET_WANTS =
+GRAPHICAL_TARGET_WANTS =
+RESCUE_TARGET_WANTS =
 SYSINIT_TARGET_WANTS =
 SOCKETS_TARGET_WANTS =
 BUSNAMES_TARGET_WANTS =
@@ -259,14 +261,11 @@ USER_UNIT_ALIASES =
 GENERAL_ALIASES =
 
 install-target-wants-hook:
-       what="$(RUNLEVEL1_TARGET_WANTS)" && wants=runlevel1.target && dir=$(systemunitdir) && $(add-wants)
-       what="$(RUNLEVEL2_TARGET_WANTS)" && wants=runlevel2.target && dir=$(systemunitdir) && $(add-wants)
-       what="$(RUNLEVEL3_TARGET_WANTS)" && wants=runlevel3.target && dir=$(systemunitdir) && $(add-wants)
-       what="$(RUNLEVEL4_TARGET_WANTS)" && wants=runlevel4.target && dir=$(systemunitdir) && $(add-wants)
-       what="$(RUNLEVEL5_TARGET_WANTS)" && wants=runlevel5.target && dir=$(systemunitdir) && $(add-wants)
        what="$(SHUTDOWN_TARGET_WANTS)" && wants=shutdown.target && dir=$(systemunitdir) && $(add-wants)
        what="$(LOCAL_FS_TARGET_WANTS)" && wants=local-fs.target && dir=$(systemunitdir) && $(add-wants)
        what="$(MULTI_USER_TARGET_WANTS)" && wants=multi-user.target && dir=$(systemunitdir) && $(add-wants)
+       what="$(GRAPHICAL_TARGET_WANTS)" && wants=graphical.target && dir=$(systemunitdir) && $(add-wants)
+       what="$(RESCUE_TARGET_WANTS)" && wants=rescue.target && dir=$(systemunitdir) && $(add-wants)
        what="$(SYSINIT_TARGET_WANTS)" && wants=sysinit.target && dir=$(systemunitdir) && $(add-wants)
        what="$(SOCKETS_TARGET_WANTS)" && wants=sockets.target && dir=$(systemunitdir) && $(add-wants)
        what="$(TIMERS_TARGET_WANTS)" && wants=timers.target && dir=$(systemunitdir) && $(add-wants)
@@ -368,6 +367,7 @@ bin_PROGRAMS = \
        systemd-delta \
        systemd-analyze \
        systemd-run \
+       systemd-stdio-bridge \
        systemd-path
 
 dist_bin_SCRIPTS = \
@@ -386,6 +386,7 @@ rootlibexec_PROGRAMS = \
        systemd-remount-fs \
        systemd-reply-password \
        systemd-fsck \
+       systemd-fsckd \
        systemd-machine-id-commit \
        systemd-ac-power \
        systemd-sysctl \
@@ -488,6 +489,7 @@ dist_systemunit_DATA = \
        units/slices.target \
        units/system.slice \
        units/x-.slice \
+       units/systemd-fsckd.socket \
        units/systemd-initctl.socket \
        units/systemd-shutdownd.socket \
        units/syslog.socket \
@@ -497,6 +499,7 @@ dist_systemunit_DATA = \
        units/sys-kernel-debug.mount \
        units/sys-fs-fuse-connections.mount \
        units/tmp.mount \
+       units/var-lib-machines.mount \
        units/printer.target \
        units/sound.target \
        units/bluetooth.target \
@@ -506,7 +509,8 @@ dist_systemunit_DATA = \
        units/systemd-udevd-control.socket \
        units/systemd-udevd-kernel.socket \
        units/system-update.target \
-       units/initrd-switch-root.target
+       units/initrd-switch-root.target \
+       units/machines.target
 
 if ENABLE_KDBUS
 dist_systemunit_DATA += \
@@ -538,6 +542,7 @@ nodist_systemunit_DATA = \
        units/systemd-kexec.service \
        units/systemd-fsck@.service \
        units/systemd-fsck-root.service \
+       units/systemd-fsckd.service \
        units/systemd-machine-id-commit.service \
        units/systemd-udevd.service \
        units/systemd-udev-trigger.service \
@@ -591,6 +596,7 @@ EXTRA_DIST += \
        units/user/systemd-exit.service.in \
        units/systemd-fsck@.service.in \
        units/systemd-fsck-root.service.in \
+       units/systemd-fsckd.service.in \
        units/systemd-machine-id-commit.service.in \
        units/user@.service.m4.in \
        units/debug-shell.service.in \
@@ -768,6 +774,8 @@ libsystemd_shared_la_SOURCES = \
        src/shared/architecture.h \
        src/shared/efivars.c \
        src/shared/efivars.h \
+       src/shared/fstab-util.c \
+       src/shared/fstab-util.h \
        src/shared/path-util.c \
        src/shared/path-util.h \
        src/shared/time-util.c \
@@ -885,8 +893,6 @@ libsystemd_shared_la_SOURCES = \
        src/shared/pty.h \
        src/shared/async.c \
        src/shared/async.h \
-       src/shared/copy.c \
-       src/shared/copy.h \
        src/shared/base-filesystem.c \
        src/shared/base-filesystem.h \
        src/shared/memfd-util.c \
@@ -894,10 +900,13 @@ libsystemd_shared_la_SOURCES = \
        src/shared/uid-range.c \
        src/shared/uid-range.h \
        src/shared/nss-util.h \
-       src/shared/btrfs-util.c \
-       src/shared/btrfs-util.h \
        src/shared/verbs.c \
-       src/shared/verbs.h
+       src/shared/verbs.h \
+       src/shared/sigbus.c \
+       src/shared/sigbus.h \
+       src/shared/build.h \
+       src/shared/import-util.c \
+       src/shared/import-util.h
 
 if HAVE_UTMP
 libsystemd_shared_la_SOURCES += \
@@ -921,7 +930,8 @@ libsystemd_shared_la_CFLAGS = \
        -pthread
 
 libsystemd_shared_la_LIBADD = \
-       $(CAP_LIBS)
+       $(CAP_LIBS) \
+       -lm
 
 # ------------------------------------------------------------------------------
 noinst_LTLIBRARIES += \
@@ -961,7 +971,14 @@ libsystemd_label_la_SOURCES = \
        src/shared/condition.c \
        src/shared/condition.h \
        src/shared/generator.h \
-       src/shared/generator.c
+       src/shared/generator.c \
+       src/shared/btrfs-util.c \
+       src/shared/btrfs-util.h \
+       src/shared/btrfs-ctree.h \
+       src/shared/machine-image.c \
+       src/shared/machine-image.h \
+       src/shared/copy.c \
+       src/shared/copy.h
 
 libsystemd_label_la_CFLAGS = \
        $(AM_CFLAGS) \
@@ -972,6 +989,24 @@ libsystemd_label_la_LIBADD = \
 
 # -----------------------------------------------------------------------------
 
+if HAVE_LIBIPTC
+noinst_LTLIBRARIES += \
+       libsystemd-fw.la
+
+libsystemd_fw_la_SOURCES = \
+       src/shared/fw-util.h \
+       src/shared/fw-util.c
+
+libsystemd_fw_la_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(LIBIPTC_CFLAGS)
+
+libsystemd_fw_la_LIBADD = \
+       $(LIBIPTC_LIBS)
+endif
+
+# -----------------------------------------------------------------------------
+
 if ENABLE_LDCONFIG
 dist_systemunit_DATA += \
        units/ldconfig.service
@@ -1046,10 +1081,10 @@ libsystemd_core_la_SOURCES = \
        src/core/socket.h \
        src/core/busname.c \
        src/core/busname.h \
-       src/core/bus-common.c \
-       src/core/bus-common.h \
        src/core/bus-endpoint.c \
        src/core/bus-endpoint.h \
+       src/core/bus-policy.c \
+       src/core/bus-policy.h \
        src/core/target.c \
        src/core/target.h \
        src/core/snapshot.c \
@@ -1140,8 +1175,6 @@ libsystemd_core_la_SOURCES = \
        src/core/loopback-setup.c \
        src/core/namespace.c \
        src/core/namespace.h \
-       src/core/build.h \
-       src/core/sysfs-show.h \
        src/core/killall.h \
        src/core/killall.c \
        src/core/audit-fd.c \
@@ -1300,7 +1333,7 @@ dist_dbussystemservice_DATA += \
 polkitpolicy_in_in_files += \
        src/core/org.freedesktop.systemd1.policy.in.in
 
-pkgconfigdata_DATA = \
+pkgconfiglib_DATA += \
        src/core/systemd.pc
 
 nodist_rpmmacros_DATA = \
@@ -1328,6 +1361,11 @@ manual_tests += \
        test-ipcrm \
        test-btrfs
 
+if HAVE_LIBIPTC
+manual_tests += \
+       test-fw-util
+endif
+
 if HAVE_KMOD
 manual_tests += \
        test-rtnl-manual
@@ -1348,6 +1386,7 @@ tests += \
        test-utf8 \
        test-ellipsize \
        test-util \
+       test-path-lookup \
        test-ring \
        test-barrier \
        test-pty \
@@ -1360,6 +1399,7 @@ tests += \
        test-calendarspec \
        test-strip-tab-ansi \
        test-cgroup-util \
+       test-fstab-util \
        test-prioq \
        test-fileio \
        test-time \
@@ -1384,7 +1424,9 @@ tests += \
        test-locale-util \
        test-execute \
        test-copy \
-       test-cap-list
+       test-cap-list \
+       test-sigbus \
+       test-verbs
 
 EXTRA_DIST += \
        test/a.service \
@@ -1393,7 +1435,7 @@ EXTRA_DIST += \
        test/c.service \
        test/daughter.service \
        test/d.service \
-       test/end.service \
+       test/end.service.in \
        test/e.service \
        test/f.service \
        test/grandchild.service \
@@ -1576,6 +1618,13 @@ test_copy_SOURCES = \
        src/test/test-copy.c
 
 test_copy_LDADD = \
+       libsystemd-label.la \
+       libsystemd-shared.la
+
+test_sigbus_SOURCES = \
+       src/test/test-sigbus.c
+
+test_sigbus_LDADD = \
        libsystemd-shared.la
 
 test_condition_SOURCES = \
@@ -1593,6 +1642,12 @@ test_fdset_LDADD = \
        libsystemd-shared.la \
        libsystemd-internal.la
 
+test_fstab_util_SOURCES = \
+       src/test/test-fstab-util.c
+
+test_fstab_util_LDADD = \
+       libsystemd-shared.la
+
 test_ratelimit_SOURCES = \
        src/test/test-ratelimit.c
 
@@ -1603,7 +1658,14 @@ test_util_SOURCES = \
        src/test/test-util.c
 
 test_util_LDADD = \
+       libsystemd-shared.la
+
+test_path_lookup_SOURCES = \
+       src/test/test-path-lookup.c
+
+test_path_lookup_LDADD = \
        -lm \
+       libsystemd-units.la \
        libsystemd-shared.la
 
 test_uid_range_SOURCES = \
@@ -1651,6 +1713,12 @@ test_tmpfiles_LDADD = \
 test_namespace_SOURCES = \
        src/test/test-namespace.c
 
+test_verbs_SOURCES = \
+       src/test/test-verbs.c
+
+test_verbs_LDADD = \
+       libsystemd-shared.la
+
 test_namespace_LDADD = \
        libsystemd-core.la
 
@@ -1695,8 +1763,7 @@ test_json_SOURCES = \
        src/test/test-json.c
 
 test_json_LDADD = \
-       libsystemd-shared.la \
-       -lm
+       libsystemd-shared.la
 
 test_list_SOURCES = \
        src/test/test-list.c
@@ -1713,8 +1780,8 @@ test_unaligned_SOURCES = \
 test_tables_SOURCES = \
        src/test/test-tables.c \
        src/shared/test-tables.h \
-       src/bus-proxyd/bus-policy.c \
-       src/bus-proxyd/bus-policy.h \
+       src/bus-proxyd/bus-xml-policy.c \
+       src/bus-proxyd/bus-xml-policy.h \
        src/journal/journald-server.c \
        src/journal/journald-server.h
 
@@ -1775,8 +1842,23 @@ test_btrfs_SOURCES = \
        src/test/test-btrfs.c
 
 test_btrfs_LDADD = \
+       libsystemd-label.la \
        libsystemd-shared.la
 
+if HAVE_LIBIPTC
+test_fw_util_SOURCES = \
+       src/test/test-fw-util.c
+
+test_fw_util_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(LIBIPTC_CFLAGS)
+
+test_fw_util_LDADD = \
+       libsystemd-fw.la \
+       libsystemd-shared.la \
+       $(LIBIPTC_LIBS)
+endif
+
 test_rtnl_manual_SOURCES = \
        src/test/test-rtnl-manual.c
 
@@ -1948,11 +2030,10 @@ test_conf_files_LDADD = \
        libsystemd-shared.la
 
 test_bus_policy_SOURCES = \
-       src/bus-proxyd/test-bus-policy.c \
-       src/bus-proxyd/bus-policy.c \
-       src/bus-proxyd/bus-policy.h
+       src/bus-proxyd/test-bus-xml-policy.c
 
 test_bus_policy_LDADD = \
+       libsystemd-proxy.la \
        libsystemd-internal.la \
        libsystemd-shared.la
 
@@ -2114,6 +2195,11 @@ systemd_tmpfiles_LDADD = \
        libsystemd-internal.la \
        libsystemd-shared.la
 
+if HAVE_ACL
+systemd_tmpfiles_LDADD += \
+       libsystemd-acl.la
+endif
+
 rootbin_PROGRAMS += \
        systemd-tmpfiles
 
@@ -2270,6 +2356,18 @@ systemd_fsck_LDADD = \
        libudev-internal.la \
        libsystemd-shared.la
 
+# ------------------------------------------------------------------------------
+systemd_fsckd_SOURCES = \
+       src/fsckd/fsckd.c \
+       $(NULL)
+
+systemd_fsckd_LDADD = \
+       libsystemd-internal.la \
+       libsystemd-label.la \
+       libsystemd-shared.la \
+       libudev-internal.la \
+       $(NULL)
+
 # ------------------------------------------------------------------------------
 systemd_machine_id_commit_SOURCES = \
        src/machine-id-commit/machine-id-commit.c \
@@ -2392,16 +2490,23 @@ systemd_efi_boot_generator_LDADD = \
        libsystemd-shared.la
 
 # ------------------------------------------------------------------------------
+if HAVE_BLKID
 bootctl_SOURCES = \
-       src/boot/boot.h \
-       src/boot/boot-loader.h \
-       src/boot/bootctl.c \
-       src/boot/boot-loader.c \
-       src/boot/boot-efi.c
+       src/boot/bootctl.c
+
+bootctl_CPPFLAGS = \
+       $(AM_CPPFLAGS) \
+       -DEFI_MACHINE_TYPE_NAME=\"$(EFI_MACHINE_TYPE_NAME)\" \
+       -DBOOTLIBDIR=\"$(bootlibdir)\"
+
+bootctl_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(BLKID_CFLAGS)
 
 bootctl_LDADD = \
        libsystemd-shared.la \
-       libsystemd-internal.la
+       libsystemd-internal.la \
+       $(BLKID_LIBS)
 
 bin_PROGRAMS += \
        bootctl
@@ -2411,7 +2516,136 @@ dist_bashcompletion_DATA += \
 
 dist_zshcompletion_DATA += \
        shell-completion/zsh/_bootctl
+endif
+
+# ------------------------------------------------------------------------------
+if HAVE_GNUEFI
+efi_cppflags = \
+       $(EFI_CPPFLAGS) \
+       -I$(top_builddir) -include config.h \
+       -I$(EFI_INC_DIR)/efi \
+       -I$(EFI_INC_DIR)/efi/$(EFI_ARCH) \
+       -DEFI_MACHINE_TYPE_NAME=\"$(EFI_MACHINE_TYPE_NAME)\"
+
+efi_cflags = \
+       $(EFI_CFLAGS) \
+       -Wall \
+       -Wextra \
+       -std=gnu90 \
+       -nostdinc \
+       -ggdb -O0 \
+       -fpic \
+       -fshort-wchar \
+       -nostdinc \
+       -ffreestanding \
+       -fno-strict-aliasing \
+       -fno-stack-protector \
+       -Wsign-compare \
+       -Wno-missing-field-initializers \
+       -mno-sse \
+       -mno-mmx
+
+if ARCH_X86_64
+efi_cflags += \
+       -mno-red-zone \
+       -DEFI_FUNCTION_WRAPPER \
+       -DGNU_EFI_USE_MS_ABI
+endif
+
+efi_ldflags = \
+       $(EFI_LDFLAGS) \
+       -T $(EFI_LDS_DIR)/elf_$(EFI_ARCH)_efi.lds \
+       -shared \
+       -Bsymbolic \
+       -nostdlib \
+       -znocombreloc \
+       -L $(EFI_LIB_DIR) \
+       $(EFI_LDS_DIR)/crt0-efi-$(EFI_ARCH).o
+
+# ------------------------------------------------------------------------------
+systemd_boot_headers = \
+       src/boot/efi/util.h \
+       src/boot/efi/console.h \
+       src/boot/efi/graphics.h \
+       src/boot/efi/pefile.h
+
+systemd_boot_sources = \
+       src/boot/efi/util.c \
+       src/boot/efi/console.c \
+       src/boot/efi/graphics.c \
+       src/boot/efi/pefile.c \
+       src/boot/efi/boot.c
+
+systemd_boot_objects = $(addprefix $(top_builddir)/,$(systemd_boot_sources:.c=.o))
+systemd_boot_solib = $(top_builddir)/src/boot/efi/systemd_boot.so
+systemd_boot = systemd-boot$(EFI_MACHINE_TYPE_NAME).efi
+
+bootlib_DATA = $(systemd_boot)
+CLEANFILES += $(systemd_boot_objects) $(systemd_boot_solib) $(systemd_boot)
+EXTRA_DIST += $(systemd_boot_sources) $(systemd_boot_headers)
+
+$(top_builddir)/src/boot/efi/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(top_srcdir)/,$(systemd_boot_headers))
+       @$(MKDIR_P) $(top_builddir)/src/boot/efi/
+       $(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@
+
+$(systemd_boot_solib): $(systemd_boot_objects)
+       $(AM_V_CCLD)$(LD) $(efi_ldflags) $(systemd_boot_objects) \
+               -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \
+       nm -D -u $@ | grep ' U ' && exit 1 || :
+
+$(systemd_boot): $(systemd_boot_solib)
+       $(AM_V_GEN) objcopy -j .text -j .sdata -j .data -j .dynamic \
+         -j .dynsym -j .rel -j .rela -j .reloc \
+         --target=efi-app-$(EFI_ARCH) $< $@
+
+# ------------------------------------------------------------------------------
+stub_headers = \
+       src/boot/efi/util.h \
+       src/boot/efi/pefile.h \
+       src/boot/efi/graphics.h \
+       src/boot/efi/splash.h \
+       src/boot/efi/linux.h
+
+stub_sources = \
+       src/boot/efi/util.c \
+       src/boot/efi/pefile.c \
+       src/boot/efi/graphics.c \
+       src/boot/efi/splash.c \
+       src/boot/efi/linux.c \
+       src/boot/efi/stub.c
+
+stub_objects = $(addprefix $(top_builddir)/,$(stub_sources:.c=.o))
+stub_solib = $(top_builddir)/src/boot/efi/stub.so
+stub = linux$(EFI_MACHINE_TYPE_NAME).efi.stub
+
+bootlib_DATA += $(stub)
+CLEANFILES += $(stub_objects) $(stub_solib) $(stub)
+EXTRA_DIST += $(stub_sources) $(stub_headers)
+
+$(top_builddir)/src/boot/efi/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(top_srcdir)/,$(stub_headers))
+       @$(MKDIR_P) $(top_builddir)/src/boot/efi/
+       $(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@
+
+$(stub_solib): $(stub_objects)
+       $(AM_V_CCLD)$(LD) $(efi_ldflags) $(stub_objects) \
+               -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \
+       nm -D -u $@ | grep ' U ' && exit 1 || :
+
+$(stub): $(stub_solib)
+       $(AM_V_GEN) objcopy -j .text -j .sdata -j .data -j .dynamic \
+         -j .dynsym -j .rel -j .rela -j .reloc \
+         --target=efi-app-$(EFI_ARCH) $< $@
+
+# ------------------------------------------------------------------------------
+CLEANFILES += test-efi-disk.img
+EXTRA_DIST += test/test-efi-create-disk.sh
+
+test-efi-disk.img: $(systemd_boot) $(stub) test/test-efi-create-disk.sh
+       $(AM_V_GEN)test/test-efi-create-disk.sh
 
+test-efi: test-efi-disk.img
+       $(QEMU) -machine accel=kvm -m 1024 -bios $(QEMU_BIOS) -snapshot test-efi-disk.img
+endif
 endif
 
 # ------------------------------------------------------------------------------
@@ -2456,6 +2690,9 @@ dbus1-generator-install-hook:
 dbus1-generator-uninstall-hook:
        rm -f $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
 
+dist_xinitrc_SCRIPTS = \
+       xorg/50-systemd-user.sh
+
 INSTALL_EXEC_HOOKS += dbus1-generator-install-hook
 UNINSTALL_EXEC_HOOKS += dbus1-generator-uninstall-hook
 endif
@@ -2586,6 +2823,11 @@ systemd_nspawn_LDADD += \
        $(SECCOMP_LIBS)
 endif
 
+if HAVE_LIBIPTC
+systemd_nspawn_LDADD += \
+       libsystemd-fw.la
+endif
+
 # ------------------------------------------------------------------------------
 systemd_run_SOURCES = \
        src/run/run.c
@@ -2596,46 +2838,67 @@ systemd_run_LDADD = \
        libsystemd-shared.la
 
 # ------------------------------------------------------------------------------
+noinst_LTLIBRARIES += \
+       libsystemd-proxy.la
+
+libsystemd_proxy_la_SOURCES = \
+       src/bus-proxyd/bus-xml-policy.c \
+       src/bus-proxyd/bus-xml-policy.h \
+       src/bus-proxyd/driver.c \
+       src/bus-proxyd/driver.h \
+       src/bus-proxyd/proxy.c \
+       src/bus-proxyd/proxy.h \
+       src/bus-proxyd/synthesize.c \
+       src/bus-proxyd/synthesize.h
+
+libsystemd_proxy_la_CFLAGS = \
+       $(AM_CFLAGS) \
+       -pthread
+
+libsystemd_proxy_la_LIBADD = \
+       libsystemd-internal.la \
+       libsystemd-shared.la
+
 systemd_bus_proxyd_SOURCES = \
-       src/bus-proxyd/bus-proxyd.c \
-       src/bus-proxyd/bus-policy.c \
-       src/bus-proxyd/bus-policy.h
+       src/bus-proxyd/bus-proxyd.c
+
+systemd_bus_proxyd_CFLAGS = \
+       $(AM_CFLAGS) \
+       -pthread
 
 systemd_bus_proxyd_LDADD = \
+       libsystemd-proxy.la \
        libsystemd-internal.la \
        libsystemd-shared.la
 
-bus-proxyd-install-hook:
-       $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir)
-       $(AM_V_RM)rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge
-       $(AM_V_LN)$(LN_S) --relative -f $(DESTDIR)$(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge
+systemd_stdio_bridge_SOURCES = \
+       src/bus-proxyd/stdio-bridge.c
 
-bus-proxyd-uninstall-hook:
-       rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge
-
-INSTALL_EXEC_HOOKS += bus-proxyd-install-hook
-UNINSTALL_EXEC_HOOKS += bus-proxyd-uninstall-hook
+systemd_stdio_bridge_LDADD = \
+       libsystemd-proxy.la \
+       libsystemd-internal.la \
+       libsystemd-shared.la
 
 if ENABLE_KDBUS
 nodist_systemunit_DATA += \
-       units/systemd-bus-proxyd@.service
+       units/systemd-bus-proxyd.service
 
 dist_systemunit_DATA += \
        units/systemd-bus-proxyd.socket
 
 nodist_userunit_DATA += \
-       units/user/systemd-bus-proxyd@.service
+       units/user/systemd-bus-proxyd.service
 
 dist_userunit_DATA += \
        units/user/systemd-bus-proxyd.socket
 endif
 
 EXTRA_DIST += \
-       units/systemd-bus-proxyd@.service.m4.in \
-       units/user/systemd-bus-proxyd@.service.in
+       units/systemd-bus-proxyd.service.m4.in \
+       units/user/systemd-bus-proxyd.service.in
 
 CLEANFILES += \
-       units/systemd-bus-proxyd@.service.m4
+       units/systemd-bus-proxyd.service.m4
 
 if HAVE_SMACK
 bus-proxyd-set-cap-hook:
@@ -3055,6 +3318,7 @@ libsystemd_network_la_SOURCES = \
        src/systemd/sd-dhcp6-client.h \
        src/systemd/sd-dhcp6-lease.h \
        src/systemd/sd-pppoe.h \
+       src/systemd/sd-lldp.h \
        src/libsystemd-network/sd-dhcp-client.c \
        src/libsystemd-network/sd-dhcp-server.c \
        src/libsystemd-network/dhcp-network.c \
@@ -3080,6 +3344,8 @@ libsystemd_network_la_SOURCES = \
        src/libsystemd-network/dhcp6-option.c \
        src/libsystemd-network/dhcp6-lease-internal.h \
        src/libsystemd-network/sd-dhcp6-lease.c \
+       src/libsystemd-network/dhcp-identifier.h \
+       src/libsystemd-network/dhcp-identifier.c \
        src/libsystemd-network/lldp.h \
        src/libsystemd-network/lldp-tlv.h \
        src/libsystemd-network/lldp-tlv.c \
@@ -3089,7 +3355,7 @@ libsystemd_network_la_SOURCES = \
        src/libsystemd-network/lldp-port.c \
        src/libsystemd-network/lldp-internal.h \
        src/libsystemd-network/lldp-internal.c \
-       src/libsystemd-network/sd-lldp.h \
+       src/libsystemd-network/lldp-util.h \
        src/libsystemd-network/sd-lldp.c
 
 libsystemd_network_la_LIBADD = \
@@ -3152,7 +3418,9 @@ test_icmp6_rs_SOURCES = \
        src/systemd/sd-dhcp6-client.h \
        src/systemd/sd-icmp6-nd.h \
        src/libsystemd-network/dhcp6-internal.h \
-       src/libsystemd-network/test-icmp6-rs.c
+       src/libsystemd-network/test-icmp6-rs.c \
+       src/libsystemd-network/dhcp-identifier.h \
+       src/libsystemd-network/dhcp-identifier.c
 
 test_icmp6_rs_LDADD = \
        libsystemd-network.la \
@@ -3162,7 +3430,9 @@ test_icmp6_rs_LDADD = \
 test_dhcp6_client_SOURCES = \
        src/systemd/sd-dhcp6-client.h \
        src/libsystemd-network/dhcp6-internal.h \
-       src/libsystemd-network/test-dhcp6-client.c
+       src/libsystemd-network/test-dhcp6-client.c \
+       src/libsystemd-network/dhcp-identifier.h \
+       src/libsystemd-network/dhcp-identifier.c
 
 test_dhcp6_client_LDADD = \
        libsystemd-network.la \
@@ -3206,7 +3476,7 @@ noinst_PROGRAMS += \
        systemd-subterm
 
 dist_pkgdata_DATA += \
-       src/libsystemd-terminal/unifont-glyph-array.bin
+       src/libsystemd-terminal/unifont-glyph-array.bin
 
 nodist_userunit_DATA += \
        units/user/systemd-consoled.service
@@ -3334,12 +3604,8 @@ test_unifont_LDADD = \
        libsystemd-internal.la \
        libsystemd-shared.la
 
-.PHONY: update-unifont
-update-unifont: tools/compile-unifont.py
-       $(AM_V_GEN)$(PYTHON) $< \
-               <$(top_srcdir)/src/libsystemd-terminal/unifont.hex \
-               >$(top_srcdir)/src/libsystemd-terminal/unifont-glyph-array.bin
-       @echo "unifont-glyph-array.bin has been regenerated"
+src/libsystemd-terminal/unifont-glyph-array.bin: tools/compile-unifont.py $(UNIFONT)
+       $(AM_V_GEN)$(PYTHON) $< <$(UNIFONT) >$@
 
 # ------------------------------------------------------------------------------
 if ENABLE_GTK_DOC
@@ -3437,13 +3703,14 @@ dist_udevrules_DATA += \
        rules/50-udev-default.rules \
        rules/60-drm.rules \
        rules/60-keyboard.rules \
-       rules/70-mouse.rules \
        rules/60-persistent-storage-tape.rules \
        rules/60-persistent-serial.rules \
        rules/60-persistent-input.rules \
        rules/60-persistent-alsa.rules \
        rules/60-persistent-storage.rules \
        rules/64-btrfs.rules \
+       rules/70-mouse.rules \
+       rules/70-touchpad.rules \
        rules/75-net-description.rules \
        rules/75-tty-description.rules \
        rules/78-sound-card.rules \
@@ -3607,6 +3874,7 @@ udevadm_LDADD = \
        libudev-core.la
 
 # ------------------------------------------------------------------------------
+if ENABLE_HWDB
 INSTALL_DIRS += \
        $(sysconfdir)/udev/hwdb.d
 
@@ -3634,7 +3902,8 @@ dist_udevhwdb_DATA = \
        hwdb/20-OUI.hwdb \
        hwdb/20-net-ifname.hwdb \
        hwdb/60-keyboard.hwdb \
-       hwdb/70-mouse.hwdb
+       hwdb/70-mouse.hwdb \
+       hwdb/70-touchpad.hwdb
 
 EXTRA_DIST += \
        units/systemd-hwdb-update.service.in
@@ -3655,11 +3924,19 @@ INSTALL_DATA_HOOKS += \
 
 hwdb-remove-hook:
        -test -n "$(DESTDIR)" || rm -f /etc/udev/hwdb.bin
+endif
 
 # ------------------------------------------------------------------------------
 TESTS += \
        test/udev-test.pl \
-       test/rules-test.sh
+       $(NULL)
+
+if HAVE_PYTHON
+TESTS += \
+       test/rule-syntax-check.py \
+       test/sysv-generator-test.py \
+       $(NULL)
+endif
 
 manual_tests += \
        test-libudev \
@@ -3703,8 +3980,10 @@ DISTCLEAN_LOCAL_HOOKS += test-sys-distclean
 EXTRA_DIST += \
        test/sys.tar.xz \
        test/udev-test.pl \
-       test/rules-test.sh \
-       test/rule-syntax-check.py
+       test/rule-syntax-check.py \
+       test/sysv-generator-test.py \
+       $(NULL)
+
 
 # ------------------------------------------------------------------------------
 ata_id_SOURCES = \
@@ -3764,7 +4043,8 @@ v4l_id_SOURCES = \
        src/udev/v4l_id/v4l_id.c
 
 v4l_id_LDADD = \
-       libudev-internal.la
+       libudev-internal.la \
+       libsystemd-shared.la
 
 udevlibexec_PROGRAMS += \
        v4l_id
@@ -3777,7 +4057,7 @@ accelerometer_SOURCES = \
        src/udev/accelerometer/accelerometer.c
 
 accelerometer_LDADD = \
-       libudev-internal.la -lm \
+       libudev-internal.la \
        libsystemd-shared.la
 
 udevlibexec_PROGRAMS += \
@@ -4324,16 +4604,15 @@ libsystemd_journal_internal_la_SOURCES = \
        src/journal/catalog.c \
        src/journal/catalog.h \
        src/journal/mmap-cache.c \
-       src/journal/mmap-cache.h
+       src/journal/mmap-cache.h \
+       src/journal/compress.c
 
 # using _CFLAGS = in the conditional below would suppress AM_CFLAGS
 libsystemd_journal_internal_la_CFLAGS = \
        $(AM_CFLAGS)
 
-libsystemd_journal_internal_la_LIBADD =
-
-libsystemd_journal_internal_la_SOURCES += \
-       src/journal/compress.c
+libsystemd_journal_internal_la_LIBADD = \
+       libsystemd-label.la
 
 if HAVE_XZ
 libsystemd_journal_internal_la_CFLAGS += \
@@ -4393,6 +4672,7 @@ dist_catalog_DATA = \
        catalog/systemd.fr.catalog \
        catalog/systemd.it.catalog \
        catalog/systemd.pl.catalog \
+       catalog/systemd.pt_BR.catalog \
        catalog/systemd.ru.catalog \
        catalog/systemd.catalog
 
@@ -4860,10 +5140,8 @@ BUSNAMES_TARGET_WANTS += \
        org.freedesktop.locale1.busname
 
 dist_pkgdata_DATA += \
-       src/locale/kbd-model-map
-
-dist_noinst_SCRIPT = \
-       src/locale/generate-kbd-model-map
+       src/locale/kbd-model-map \
+       src/locale/language-fallback-map
 
 localectl_SOURCES = \
        src/locale/localectl.c
@@ -4973,8 +5251,7 @@ systemd_timesyncd_LDADD = \
        libsystemd-network.la \
        libsystemd-label.la \
        libsystemd-internal.la \
-       libsystemd-shared.la \
-       -lm
+       libsystemd-shared.la
 
 rootlibexec_PROGRAMS += \
        systemd-timesyncd
@@ -5036,11 +5313,11 @@ rootlibexec_PROGRAMS += \
 libsystemd_machine_core_la_SOURCES = \
        src/machine/machine.c \
        src/machine/machine.h \
-       src/machine/image.c \
-       src/machine/image.h \
        src/machine/machined-dbus.c \
        src/machine/machine-dbus.c \
-       src/machine/image-dbus.c
+       src/machine/machine-dbus.h \
+       src/machine/image-dbus.c \
+       src/machine/image-dbus.h
 
 libsystemd_machine_core_la_LIBADD = \
        libsystemd-label.la \
@@ -5056,6 +5333,8 @@ machinectl_SOURCES = \
 
 machinectl_LDADD = \
        libsystemd-internal.la \
+       libsystemd-logs.la \
+       libsystemd-journal-internal.la \
        libsystemd-shared.la
 
 rootbin_PROGRAMS += \
@@ -5088,6 +5367,12 @@ dist_dbussystemservice_DATA += \
 dist_dbuspolicy_DATA += \
        src/machine/org.freedesktop.machine1.conf
 
+polkitpolicy_files += \
+       src/machine/org.freedesktop.machine1.policy
+
+polkitpolicy_in_files += \
+       src/machine/org.freedesktop.machine1.policy.in
+
 dist_zshcompletion_DATA += \
        shell-completion/zsh/_machinectl \
        shell-completion/zsh/_sd_machines
@@ -5121,29 +5406,123 @@ libnss_mymachines_la_LIBADD = \
 lib_LTLIBRARIES += \
        libnss_mymachines.la
 
+endif
+
+# ------------------------------------------------------------------------------
+if ENABLE_IMPORTD
+
 if HAVE_LIBCURL
+if HAVE_XZ
+if HAVE_ZLIB
+if HAVE_BZIP2
+if HAVE_GCRYPT
 
-bin_PROGRAMS += \
-       systemd-import
+rootlibexec_PROGRAMS += \
+       systemd-importd \
+       systemd-pull
+
+systemd_importd_SOURCES = \
+       src/import/importd.c
+
+systemd_importd_CFLAGS = \
+       $(AM_CFLAGS) \
+       -D SYSTEMD_PULL_PATH=\"$(rootlibexecdir)/systemd-pull\"
+
+systemd_importd_LDADD = \
+       libsystemd-internal.la \
+       libsystemd-label.la \
+       libsystemd-shared.la
 
-systemd_import_SOURCES = \
-       src/import/import.c \
-       src/import/import-dck.c \
-       src/import/import-dck.h \
+systemd_pull_SOURCES = \
+       src/import/pull.c \
+       src/import/import-raw.c \
+       src/import/import-raw.h \
+       src/import/import-tar.c \
+       src/import/import-tar.h \
+       src/import/import-dkr.c \
+       src/import/import-dkr.h \
+       src/import/import-job.c \
+       src/import/import-job.h \
+       src/import/import-common.c \
+       src/import/import-common.h \
        src/import/curl-util.c \
        src/import/curl-util.h \
        src/import/aufs-util.c \
-       src/import/aufs-util.h
+       src/import/aufs-util.h \
+       src/import/qcow2-util.c \
+       src/import/qcow2-util.h
 
-systemd_import_CFLAGS = \
+systemd_pull_CFLAGS = \
        $(AM_CFLAGS) \
-       $(LIBCURL_CFLAGS)
+       $(LIBCURL_CFLAGS) \
+       $(XZ_CFLAGS) \
+       $(ZLIB_CFLAGS) \
+       $(GCRYPT_CFLAGS) \
+       -D VENDOR_KEYRING_PATH=\"$(rootlibexecdir)/import-pubring.gpg\" \
+       -D USER_KEYRING_PATH=\"$(pkgsysconfdir)/import-pubring.gpg\"
 
-systemd_import_LDADD = \
+systemd_pull_LDADD = \
        libsystemd-internal.la \
+       libsystemd-label.la \
        libsystemd-shared.la \
        $(LIBCURL_LIBS) \
-       -lm
+       $(XZ_LIBS) \
+       $(ZLIB_LIBS) \
+       -lbz2 \
+       $(GCRYPT_LIBS)
+
+dist_rootlibexec_DATA = \
+       src/import/import-pubring.gpg
+
+nodist_systemunit_DATA += \
+       units/systemd-importd.service
+
+EXTRA_DIST += \
+       units/systemd-importd.service.in
+
+dist_systemunit_DATA_busnames += \
+       units/org.freedesktop.import1.busname
+
+BUSNAMES_TARGET_WANTS += \
+       org.freedesktop.import1.busname
+
+SYSTEM_UNIT_ALIASES += \
+       systemd-importd.service dbus-org.freedesktop.import1.service
+
+dist_dbussystemservice_DATA += \
+       src/import/org.freedesktop.import1.service
+
+dist_dbuspolicy_DATA += \
+       src/import/org.freedesktop.import1.conf
+
+polkitpolicy_files += \
+       src/import/org.freedesktop.import1.policy
+
+polkitpolicy_in_files += \
+       src/import/org.freedesktop.import1.policy.in
+
+manual_tests += \
+       test-qcow2
+
+test_qcow2_SOURCES = \
+       src/import/test-qcow2.c \
+       src/import/qcow2-util.c \
+       src/import/qcow2-util.h
+
+test_qcow2_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(ZLIB_CFLAGS)
+
+test_qcow2_LDADD = \
+       libsystemd-internal.la \
+       libsystemd-label.la \
+       libsystemd-shared.la \
+       $(ZLIB_LIBS)
+
+endif
+endif
+endif
+endif
 endif
 
 endif
@@ -5205,7 +5584,6 @@ systemd_resolved_LDADD = \
        libsystemd-label.la \
        libsystemd-internal.la \
        libsystemd-shared.la \
-       -lm \
        $(LIBIDN_LIBS)
 
 rootlibexec_PROGRAMS += \
@@ -5273,8 +5651,8 @@ libnss_resolve_la_LDFLAGS = \
        -Wl,--version-script=$(top_srcdir)/src/nss-resolve/nss-resolve.sym
 
 libnss_resolve_la_LIBADD = \
-       libsystemd-shared.la \
-       libsystemd-internal.la
+       libsystemd-internal.la \
+       libsystemd-shared.la
 
 lib_LTLIBRARIES += \
        libnss_resolve.la
@@ -5299,7 +5677,6 @@ systemd_resolve_host_SOURCES = \
 systemd_resolve_host_LDADD = \
        libsystemd-internal.la \
        libsystemd-shared.la \
-       -lm \
        $(LIBIDN_LIBS)
 
 rootlibexec_PROGRAMS += \
@@ -5318,6 +5695,11 @@ systemd_networkd_SOURCES = \
 systemd_networkd_LDADD = \
        libsystemd-networkd-core.la
 
+if HAVE_LIBIPTC
+systemd_networkd_LDADD += \
+       libsystemd-fw.la
+endif
+
 noinst_LTLIBRARIES += \
        libsystemd-networkd-core.la
 
@@ -5334,6 +5716,7 @@ libsystemd_networkd_core_la_SOURCES = \
        src/network/networkd-netdev-vxlan.h \
        src/network/networkd-netdev-vlan.h \
        src/network/networkd-netdev-macvlan.h \
+       src/network/networkd-netdev-ipvlan.h \
        src/network/networkd-netdev-dummy.h \
        src/network/networkd-netdev-tuntap.h \
        src/network/networkd-netdev-bond.h \
@@ -5344,18 +5727,22 @@ libsystemd_networkd_core_la_SOURCES = \
        src/network/networkd-netdev-vxlan.c \
        src/network/networkd-netdev-vlan.c \
        src/network/networkd-netdev-macvlan.c \
+       src/network/networkd-netdev-ipvlan.c \
        src/network/networkd-netdev-dummy.c \
        src/network/networkd-netdev-tuntap.c \
        src/network/networkd-netdev-bond.c \
        src/network/networkd-netdev-bridge.c \
        src/network/networkd-link.c \
+       src/network/networkd-link-bus.c \
        src/network/networkd-ipv4ll.c \
        src/network/networkd-dhcp4.c \
        src/network/networkd-dhcp6.c \
        src/network/networkd-network.c \
+       src/network/networkd-network-bus.c \
        src/network/networkd-address.c \
        src/network/networkd-route.c \
        src/network/networkd-manager.c \
+       src/network/networkd-manager-bus.c \
        src/network/networkd-fdb.c \
        src/network/networkd-address-pool.c
 
@@ -5408,6 +5795,11 @@ test_network_SOURCES = \
 test_network_LDADD = \
        libsystemd-networkd-core.la
 
+if HAVE_LIBIPTC
+test_network_LDADD += \
+       libsystemd-fw.la
+endif
+
 test_network_tables_SOURCES = \
        src/network/test-network-tables.c \
        src/shared/test-tables.h
@@ -5416,18 +5808,42 @@ test_network_tables_LDADD = \
        libsystemd-networkd-core.la \
        libudev-core.la
 
+if HAVE_LIBIPTC
+test_network_tables_LDADD += \
+       libsystemd-fw.la
+endif
+
 tests += \
        test-network \
        test-network-tables
 
+dist_systemunit_DATA += \
+       units/systemd-networkd.socket
+
 nodist_systemunit_DATA += \
        units/systemd-networkd.service \
        units/systemd-networkd-wait-online.service
 
+dist_systemunit_DATA_busnames += \
+       units/org.freedesktop.network1.busname
+
+dist_dbussystemservice_DATA += \
+       src/network/org.freedesktop.network1.service
+
+dist_dbuspolicy_DATA += \
+       src/network/org.freedesktop.network1.conf
+
 GENERAL_ALIASES += \
+       $(systemunitdir)/systemd-networkd.socket $(pkgsysconfdir)/system/sockets.target.wants/systemd-networkd.socket \
        $(systemunitdir)/systemd-networkd.service $(pkgsysconfdir)/system/multi-user.target.wants/systemd-networkd.service \
        $(systemunitdir)/systemd-networkd-wait-online.service $(pkgsysconfdir)/system/network-online.target.wants/systemd-networkd-wait-online.service
 
+SYSTEM_UNIT_ALIASES += \
+       systemd-networkd.service dbus-org.freedesktop.network1.service
+
+BUSNAMES_TARGET_WANTS += \
+       org.freedesktop.network1.busname
+
 EXTRA_DIST += \
        src/network/networkd-network-gperf.gperf \
        src/network/networkd-netdev-gperf.gperf \
@@ -5492,22 +5908,18 @@ endif
 noinst_LTLIBRARIES += \
        libsystemd-logind-core.la
 
-systemd_user_sessions_SOURCES = \
-       src/login/user-sessions.c
-
-systemd_user_sessions_LDADD = \
-       libsystemd-shared.la
-
 rootlibexec_PROGRAMS += \
-       systemd-logind \
-       systemd-user-sessions
+       systemd-logind
 
 loginctl_SOURCES = \
        src/login/loginctl.c \
+       src/login/sysfs-show.h \
        src/login/sysfs-show.c
 
 loginctl_LDADD = \
        libsystemd-internal.la \
+       libsystemd-logs.la \
+       libsystemd-journal-internal.la \
        libudev-internal.la \
        libsystemd-shared.la
 
@@ -5594,11 +6006,11 @@ pamlib_LTLIBRARIES = \
 
 dist_pamconf_DATA = \
        src/login/systemd-user
+
 endif
 
 nodist_systemunit_DATA += \
-       units/systemd-logind.service \
-       units/systemd-user-sessions.service
+       units/systemd-logind.service
 
 dist_systemunit_DATA += \
        units/user.slice
@@ -5622,8 +6034,7 @@ INSTALL_DIRS += \
        $(systemdstatedir)
 
 MULTI_USER_TARGET_WANTS += \
-       systemd-logind.service \
-       systemd-user-sessions.service
+       systemd-logind.service
 
 SYSTEM_UNIT_ALIASES += \
        systemd-logind.service dbus-org.freedesktop.login1.service
@@ -5652,10 +6063,33 @@ EXTRA_DIST += \
        src/login/logind-gperf.gperf \
        src/login/71-seat.rules.in \
        src/login/73-seat-late.rules.in \
-       units/systemd-logind.service.in \
+       units/systemd-logind.service.in
+
+# ------------------------------------------------------------------------------
+if HAVE_PAM
+
+systemd_user_sessions_SOURCES = \
+       src/user-sessions/user-sessions.c
+
+systemd_user_sessions_LDADD = \
+       libsystemd-shared.la
+
+rootlibexec_PROGRAMS += \
+       systemd-user-sessions
+
+nodist_systemunit_DATA += \
+       units/systemd-user-sessions.service
+
+EXTRA_DIST += \
        units/systemd-user-sessions.service.in
 
+MULTI_USER_TARGET_WANTS += \
+       systemd-user-sessions.service
+
+endif
+
 # ------------------------------------------------------------------------------
+
 if HAVE_PYTHON_DEVEL
 pkgpyexec_LTLIBRARIES = \
        _journal.la \
@@ -5969,6 +6403,7 @@ substitutions = \
        '|rootprefix=$(rootprefix)|' \
        '|udevlibexecdir=$(udevlibexecdir)|' \
        '|SUSHELL=$(SUSHELL)|' \
+       '|SULOGIN=$(SULOGIN)|' \
        '|DEBUGTTY=$(DEBUGTTY)|' \
        '|KILL=$(KILL)|' \
        '|KMOD=$(KMOD)|' \
@@ -6068,7 +6503,6 @@ EXTRA_DIST += \
 CLEANFILES += \
        $(nodist_systemunit_DATA) \
        $(nodist_userunit_DATA) \
-       $(pkgconfigdata_DATA) \
        $(pkgconfiglib_DATA) \
        $(nodist_polkitpolicy_DATA)
 
@@ -6156,15 +6590,11 @@ SOCKETS_TARGET_WANTS += \
 
 if HAVE_UTMP
 if HAVE_SYSV_COMPAT
-RUNLEVEL1_TARGET_WANTS += \
-       systemd-update-utmp-runlevel.service
-RUNLEVEL2_TARGET_WANTS += \
-       systemd-update-utmp-runlevel.service
-RUNLEVEL3_TARGET_WANTS += \
+MULTI_USER_TARGET_WANTS += \
        systemd-update-utmp-runlevel.service
-RUNLEVEL4_TARGET_WANTS += \
+GRAPHICAL_TARGET_WANTS += \
        systemd-update-utmp-runlevel.service
-RUNLEVEL5_TARGET_WANTS += \
+RESCUE_TARGET_WANTS += \
        systemd-update-utmp-runlevel.service
 endif
 
@@ -6177,7 +6607,8 @@ SYSINIT_TARGET_WANTS += \
 
 LOCAL_FS_TARGET_WANTS += \
        systemd-remount-fs.service \
-       tmp.mount
+       tmp.mount \
+       var-lib-machines.mount
 
 MULTI_USER_TARGET_WANTS += \
        getty.target \
@@ -6309,7 +6740,7 @@ endif
 #
 # Require python when making dist
 #
-.PHONY: dist-check-python
+.PHONY: dist-check-python dist-check-compat-libs dist-check-help
 dist-check-python:
 if !HAVE_PYTHON
        @echo "*** python and python-lxml module must be installed and enabled in order to make dist"
@@ -6322,6 +6753,14 @@ if !ENABLE_COMPAT_LIBS
        @false
 endif
 
+dist-check-help: $(rootbin_PROGRAMS) $(bin_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
+
 dist: dist-check-python dist-check-compat-libs
 
 # check "broken" platforms limited toolchains for link breakage before we release
@@ -6489,3 +6928,9 @@ git-contrib:
 
 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 -