diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-04-18 22:46:34 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-04-18 22:50:31 +0200 |
commit | 6858f9d13217b14eeeacede9c42a279468242891 (patch) | |
tree | 8f37d54ed96e0d60de34140930287ec737d6b3fb | |
parent | ea0ee755bd54db2c3766714946c24df4e9b94fc0 (diff) | |
download | guix-6858f9d13217b14eeeacede9c42a279468242891.tar.gz |
daemon: Add `--no-substitutes'.
Suggested by Mark H. Weaver. * nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_SUBSTITUTES): New macro. (options): Add `--no-substitutes'. (parse_opt): Add `GUIX_OPT_NO_SUBSTITUTES' case. (main): Leave `settings.substituters' empty when `settings.useSubstitutes' is false.
-rw-r--r-- | doc/guix.texi | 4 | ||||
-rw-r--r-- | nix/nix-daemon/guix-daemon.cc | 25 |
2 files changed, 22 insertions, 7 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 96ffd51730..f149eee6dd 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -295,6 +295,10 @@ The following command-line options are supported: Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users}). +@item --no-substitutes +Do not use substitutes for build products. That is, always build things +locally instead of allowing downloads of pre-built binaries. + @item --cache-failures Cache build failures. By default, only successful builds are cached. diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc index 0f21e4f99e..5f0710c256 100644 --- a/nix/nix-daemon/guix-daemon.cc +++ b/nix/nix-daemon/guix-daemon.cc @@ -65,6 +65,7 @@ builds derivations on behalf of its clients."; #define GUIX_OPT_DEBUG 9 #define GUIX_OPT_CHROOT_DIR 10 #define GUIX_OPT_LISTEN 11 +#define GUIX_OPT_NO_SUBSTITUTES 12 static const struct argp_option options[] = { @@ -90,6 +91,8 @@ static const struct argp_option options[] = }, { "build-users-group", GUIX_OPT_BUILD_USERS_GROUP, "GROUP", 0, "Perform builds as a user of GROUP" }, + { "no-substitutes", GUIX_OPT_NO_SUBSTITUTES, 0, 0, + "Do not use substitutes" }, { "cache-failures", GUIX_OPT_CACHE_FAILURES, 0, 0, "Cache build failures" }, { "lose-logs", GUIX_OPT_LOSE_LOGS, 0, 0, @@ -152,6 +155,9 @@ parse_opt (int key, char *arg, struct argp_state *state) exit (EXIT_FAILURE); } break; + case GUIX_OPT_NO_SUBSTITUTES: + settings.useSubstitutes = false; + break; case GUIX_OPT_DEBUG: verbosity = lvlDebug; break; @@ -202,16 +208,21 @@ main (int argc, char *argv[]) /* Use our substituter by default. */ settings.substituters.clear (); - string subs = getEnv ("NIX_SUBSTITUTERS", "default"); - if (subs == "default") - settings.substituters.push_back (settings.nixLibexecDir - + "/guix/substitute-binary"); - else - settings.substituters = tokenizeString<Strings> (subs, ":"); - + settings.useSubstitutes = true; argp_parse (&argp, argc, argv, 0, 0, 0); + if (settings.useSubstitutes) + { + string subs = getEnv ("NIX_SUBSTITUTERS", "default"); + + if (subs == "default") + settings.substituters.push_back (settings.nixLibexecDir + + "/guix/substitute-binary"); + else + settings.substituters = tokenizeString<Strings> (subs, ":"); + } + if (geteuid () == 0 && settings.buildUsersGroup.empty ()) fprintf (stderr, "warning: daemon is running as root, so " "using `--build-users-group' is highly recommended\n"); |