summary refs log tree commit diff
path: root/config-daemon.ac
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-01-23 23:48:34 +0100
committerLudovic Courtès <ludo@gnu.org>2014-01-24 00:01:50 +0100
commit49e6291a7a257f89f01644423f1b685778b8862a (patch)
treed461cae8cfc21fc9fa421c3fb62d372bf44c2ca7 /config-daemon.ac
parent50add47748eb40371d8b88208a13e7230d15c220 (diff)
downloadguix-49e6291a7a257f89f01644423f1b685778b8862a.tar.gz
Add 'guix offload' as a daemon build hook.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_BUILD_HOOK): New macro.
  (options): Add '--no-build-hook'.
  (parse_opt): Handle it.
  (main)[HAVE_DAEMON_OFFLOAD_HOOK]: Set 'useBuildHook' by default.
  Set $NIX_BUILD_HOOK to our offload hook unless otherwise specified.
  [!HAVE_DAEMON_OFFLOAD_HOOK]: Clear 'useBuildHook'.
* pre-inst-env.in: Set and export NIX_BUILD_HOOK.
* nix/scripts/offload.in, guix/scripts/offload.scm: New files.
* guix/ui.scm (show-guix-help)[internal?]: Add "offload".
* config-daemon.ac: Call 'GUIX_CHECK_UNBUFFERED_CBIP'.
  Instantiate 'nix/scripts/offload'.  Set 'BUILD_DAEMON_OFFLOAD'
  conditional, and optionally define 'HAVE_DEAMON_OFFLOAD_HOOK' cpp
  macro.
* daemon.am (nodist_pkglibexec_SCRIPTS)[BUILD_DAEMON_OFFLOAD]: Add it.
* Makefile.am (MODULES)[BUILD_DAEMON_OFFLOAD]: Add
  'guix/scripts/offload.scm'.
  (EXTRA_DIST)[!BUILD_DAEMON_OFFLOAD]: Likewise.
* m4/guix.m4 (GUIX_CHECK_UNBUFFERED_CBIP): New macro.
* doc/guix.texi (Setting Up the Daemon): Move most of the body to...
  (Build Environment Setup): ... this.  New subsection.
  (Daemon Offload Setup): New subsection.
Diffstat (limited to 'config-daemon.ac')
-rw-r--r--config-daemon.ac16
1 files changed, 16 insertions, 0 deletions
diff --git a/config-daemon.ac b/config-daemon.ac
index 0717141198..1169bb6ef4 100644
--- a/config-daemon.ac
+++ b/config-daemon.ac
@@ -95,6 +95,17 @@ if test "x$guix_build_daemon" = "xyes"; then
   dnl Check for <linux/fs.h> (for immutable file support).
   AC_CHECK_HEADERS([linux/fs.h])
 
+  dnl Check whether the 'offload' build hook can be built (uses
+  dnl 'restore-file-set', which requires unbuffered custom binary input
+  dnl ports from Guile >= 2.0.10.)
+  GUIX_CHECK_UNBUFFERED_CBIP
+  guix_build_daemon_offload="$ac_cv_guix_cbips_support_setvbuf"
+
+  if test "x$guix_build_daemon_offload" = "xyes"; then
+    AC_DEFINE([HAVE_DAEMON_OFFLOAD_HOOK], [1],
+      [Define if the daemon's 'offload' build hook is being built.])
+  fi
+
   dnl Temporary directory used to store the daemon's data.
   AC_MSG_CHECKING([for unit test root])
   GUIX_TEST_ROOT="`pwd`/test-tmp"
@@ -107,6 +118,11 @@ if test "x$guix_build_daemon" = "xyes"; then
     [chmod +x nix/scripts/substitute-binary])
   AC_CONFIG_FILES([nix/scripts/guix-authenticate],
     [chmod +x nix/scripts/guix-authenticate])
+  AC_CONFIG_FILES([nix/scripts/offload],
+    [chmod +x nix/scripts/offload])
 fi
 
 AM_CONDITIONAL([BUILD_DAEMON], [test "x$guix_build_daemon" = "xyes"])
+AM_CONDITIONAL([BUILD_DAEMON_OFFLOAD],			\
+  [test "x$guix_build_daemon" = "xyes"			\
+   && test "x$guix_build_daemon_offload" = "xyes"])