From 49e6291a7a257f89f01644423f1b685778b8862a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 23 Jan 2014 23:48:34 +0100 Subject: 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. --- config-daemon.ac | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'config-daemon.ac') 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 (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"]) -- cgit v1.2.3