--- src/systemctl/systemctl.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 9012128..b9e165c 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -47,7 +47,6 @@ #include "util.h" #include "macro.h" #include "set.h" -#include "utmp-wtmp.h" #include "special.h" #include "initreq.h" #include "path-util.h" @@ -73,6 +72,10 @@ #include "bus-error.h" #include "bus-errors.h" +#ifdef HAVE_UTMP +#include "utmp-wtmp.h" +#endif + static char **arg_types = NULL; static char **arg_states = NULL; static char **arg_properties = NULL; @@ -237,6 +240,7 @@ static int translate_bus_error_to_exit_status(int r, const sd_bus_error *error) } static void warn_wall(enum action a) { +#ifdef HAVE_UTMP static const char *table[_ACTION_MAX] = { [ACTION_HALT] = "The system is going down for system halt NOW!", [ACTION_REBOOT] = "The system is going down for reboot NOW!", @@ -269,6 +273,7 @@ static void warn_wall(enum action a) { return; utmp_wall(table[a], NULL, NULL); +#endif } static bool avoid_bus(void) { @@ -6020,14 +6025,16 @@ static int halt_parse_argv(int argc, char *argv[]) { {} }; - int c, r, runlevel; + int c, r; assert(argc >= 0); assert(argv); - if (utmp_get_runlevel(&runlevel, NULL) >= 0) - if (runlevel == '0' || runlevel == '6') +#ifdef HAVE_UTMP + if (utmp_get_runlevel(&r, NULL) >= 0) + if (r == '0' || r == '6') arg_force = 2; +#endif while ((c = getopt_long(argc, argv, "pfwdnih", options, NULL)) >= 0) switch (c) { @@ -6803,6 +6810,7 @@ static int halt_main(sd_bus *bus) { if (!arg_dry && !arg_force) return start_with_fallback(bus); +#ifdef HAVE_UTMP if (!arg_no_wtmp) { if (sd_booted() > 0) log_debug("Not writing utmp record, assuming that systemd-update-utmp is used."); @@ -6812,6 +6820,7 @@ static int halt_main(sd_bus *bus) { log_warning("Failed to write utmp record: %s", strerror(-r)); } } +#endif if (arg_dry) return 0; @@ -6823,6 +6832,7 @@ static int halt_main(sd_bus *bus) { } static int runlevel_main(void) { +#ifdef HAVE_UTMP int r, runlevel, previous; r = utmp_get_runlevel(&runlevel, &previous); @@ -6835,6 +6845,9 @@ static int runlevel_main(void) { previous <= 0 ? 'N' : previous, runlevel <= 0 ? 'N' : runlevel); +#else + puts("unknown"); +#endif return 0; } -- 2.1.0 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel