diff --git a/packages/sysutils/systemd/package.mk b/packages/sysutils/systemd/package.mk index 8a72eef1be..f7f0994a97 100644 --- a/packages/sysutils/systemd/package.mk +++ b/packages/sysutils/systemd/package.mk @@ -69,7 +69,7 @@ PKG_MESON_OPTS_TARGET="--libdir=/usr/lib \ -Dcoredump=false \ -Dresolve=false \ -Dlogind=true \ - -Dhostnamed=false \ + -Dhostnamed=true \ -Dlocaled=false \ -Dmachined=false \ -Dnetworkd=false \ diff --git a/packages/sysutils/systemd/patches/systemd-0100-backport-systemd-analyze-plot-fix.patch b/packages/sysutils/systemd/patches/systemd-0100-backport-systemd-analyze-plot-fix.patch new file mode 100644 index 0000000000..de660d01f5 --- /dev/null +++ b/packages/sysutils/systemd/patches/systemd-0100-backport-systemd-analyze-plot-fix.patch @@ -0,0 +1,43 @@ +From 1ddef8584afe34d0bb8f2629f360bcd02a7e0690 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 18 Dec 2017 10:12:59 +0100 +Subject: [PATCH] analyze: use normal bus connection for "plot" verb + +We need to connect to hostnamed, so a private bus connection is no good. +It'd be simpler to use the normal bus connection unconditionally, but +that'd mean that e.g. systemd-analyze set-log-level might not work in +emergency mode. So let's keep trying to use the private connection except +for "plot". + +Fixes #7667. +--- + src/analyze/analyze.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c +index d45c1dc496..7f35b04c31 100644 +--- a/src/analyze/analyze.c ++++ b/src/analyze/analyze.c +@@ -130,6 +130,13 @@ struct host_info { + char *architecture; + }; + ++static int acquire_bus(bool need_full_bus, sd_bus **bus) { ++ if (need_full_bus) ++ return bus_connect_transport(arg_transport, arg_host, arg_user, bus); ++ else ++ return bus_connect_transport_systemd(arg_transport, arg_host, arg_user, bus); ++} ++ + static int bus_get_uint64_property(sd_bus *bus, const char *path, const char *interface, const char *property, uint64_t *val) { + _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; + int r; +@@ -1688,7 +1695,7 @@ int main(int argc, char *argv[]) { + else { + _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL; + +- r = bus_connect_transport_systemd(arg_transport, arg_host, arg_user, &bus); ++ r = acquire_bus(streq_ptr(argv[optind], "plot"), &bus); + if (r < 0) { + log_error_errno(r, "Failed to create bus connection: %m"); + goto finish;