chiark / gitweb /
build-sys: discover the path to kexec during build time
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 16 Jul 2013 03:04:52 +0000 (23:04 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 16 Jul 2013 03:20:56 +0000 (23:20 -0400)
https://bugs.freedesktop.org/show_bug.cgi?id=55248

Makefile.am
configure.ac
src/core/shutdown.c
src/login/logind-action.c

index 9105274c0da0101720d4506db7e9d08aad3c8948..44cfd3ea1cfcedc7957c0427e01d724672d57e6c 100644 (file)
@@ -165,6 +165,7 @@ AM_CPPFLAGS = \
        -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" \
        -DPOLKIT_AGENT_BINARY_PATH=\"$(bindir)/pkttyagent\" \
        -DQUOTACHECK=\"$(QUOTACHECK)\" \
+       -DKEXEC=\"$(KEXEC)\" \
        -I $(top_srcdir)/src \
        -I $(top_srcdir)/src/shared \
        -I $(top_srcdir)/src/login \
index 6f5fee5fcfe82fb8d79aed377c6db55abb785501..94afe51d74b89538e6a9c35a3ad5c39b777b22f2 100644 (file)
@@ -76,6 +76,8 @@ AC_PATH_PROG([KILL], [kill], [/usr/bin/kill])
 
 AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod])
 
+AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec])
+
 # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
 m4_ifdef([GTK_DOC_CHECK], [
 GTK_DOC_CHECK([1.18],[--flavour no-tmpl])],
index 10a52bd11755d647915517356975ca2def17cdb0..4709746de40b616fde8b8fbcb17260b9b5d34c21 100644 (file)
@@ -318,7 +318,7 @@ int main(int argc, char *argv[]) {
                                 log_warning("kexec failed. Falling back to normal reboot.");
                         } else {
                                 /* Child */
-                                const char *args[3] = { "/sbin/kexec", "-e", NULL };
+                                const char *args[3] = { KEXEC, "-e", NULL };
                                 execv(args[0], (char * const *) args);
                                 return EXIT_FAILURE;
                         }
index c930591023f0cfb06a78d8f6cb8d4aee30a14cf4..74114ee0a126aede7f2dc48a137ba44b138d7fc8 100644 (file)
@@ -81,7 +81,7 @@ int manager_handle_action(
         else if (handle == HANDLE_HYBRID_SLEEP)
                 supported = can_sleep("hybrid-sleep") > 0;
         else if (handle == HANDLE_KEXEC)
-                supported = access("/sbin/kexec", X_OK) >= 0;
+                supported = access(KEXEC, X_OK) >= 0;
         else
                 supported = true;