summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2017-01-09 22:30:15 +0100
committerDaiderd Jordan <daiderd@gmail.com>2017-01-09 22:30:15 +0100
commit5a5ec9ac42bcc99a6ddc577704824af225b99bd4 (patch)
treef5514fe171e8a129cd2147977a8581434d29cb2e /modules
parent30ccc15bed7d0f8adb9c265488f2c583332e9c5a (diff)
nix.distributedBuilds: create directory for current load
Diffstat (limited to 'modules')
-rw-r--r--modules/alias.nix25
-rw-r--r--modules/nix/default.nix14
-rw-r--r--modules/services/activate-system.nix2
-rw-r--r--modules/services/nix-daemon.nix4
-rw-r--r--modules/system/activation-scripts.nix2
5 files changed, 41 insertions, 6 deletions
diff --git a/modules/alias.nix b/modules/alias.nix
new file mode 100644
index 0000000..17fb00b
--- /dev/null
+++ b/modules/alias.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+in
+
+{
+ options = {
+
+ nix.profile = mkOption { default = null; };
+
+ };
+
+ config = {
+
+ assertions =
+ [ { assertion = config.nix.profile == null; message = "nix.profile was renamed to nix.package"; }
+ ];
+
+ nix.package = mkIf (config.nix.profile != null) config.nix.profile;
+
+ };
+}
diff --git a/modules/nix/default.nix b/modules/nix/default.nix
index 7dfb727..286a766 100644
--- a/modules/nix/default.nix
+++ b/modules/nix/default.nix
@@ -47,12 +47,12 @@ in
nix = {
- profile = mkOption {
+ package = mkOption {
type = types.path;
default = "/nix/var/nix/profiles/default";
- defaultText = "pkgs.nix";
+ example = "pkgs.nix";
description = ''
- This option specifies the profile that contains the Nix package instance to use throughout the system.
+ This option specifies the package or profile that contains the version of Nix to use throughout the system.
'';
};
@@ -337,7 +337,7 @@ in
}
// optionalAttrs cfg.distributedBuilds {
- NIX_BUILD_HOOK = "${cfg.profile}/libexec/nix/build-remote.pl";
+ NIX_BUILD_HOOK = "${cfg.package}/libexec/nix/build-remote.pl";
NIX_REMOTE_SYSTEMS = "/etc/nix/machines";
NIX_CURRENT_LOAD = "/run/nix/current-load";
};
@@ -347,5 +347,11 @@ in
{ NIX_PATH = concatStringsSep ":" cfg.nixPath;
};
+ system.activationScripts.nix.text = mkIf cfg.distributedBuilds ''
+ if [ ! -d ${cfg.envVars.NIX_CURRENT_LOAD} ]; then
+ mkdir -p ${cfg.envVars.NIX_CURRENT_LOAD}
+ fi
+ '';
+
};
}
diff --git a/modules/services/activate-system.nix b/modules/services/activate-system.nix
index 3eca25a..404cec6 100644
--- a/modules/services/activate-system.nix
+++ b/modules/services/activate-system.nix
@@ -19,6 +19,8 @@ let
# Prevent the current configuration from being garbage-collected.
ln -sfn /run/current-system /nix/var/nix/gcroots/current-system
+
+ ${config.system.activationScripts.nix.text}
'';
in
diff --git a/modules/services/nix-daemon.nix b/modules/services/nix-daemon.nix
index 45f7d09..59f280b 100644
--- a/modules/services/nix-daemon.nix
+++ b/modules/services/nix-daemon.nix
@@ -38,7 +38,7 @@ in
'';
launchd.daemons.nix-daemon = {
- serviceConfig.ProgramArguments = [ "/bin/sh" "-c" "exec ${config.nix.profile}/bin/nix-daemon" ];
+ serviceConfig.ProgramArguments = [ "/bin/sh" "-c" "exec ${config.nix.package}/bin/nix-daemon" ];
serviceConfig.KeepAlive = true;
serviceConfig.ProcessType = "Background";
serviceConfig.LowPriorityIO = config.nix.daemonIONice;
@@ -47,7 +47,7 @@ in
serviceConfig.EnvironmentVariables = config.nix.envVars
# // { CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"; }
- // { SSL_CERT_FILE = "${config.nix.profile}/etc/ssl/certs/ca-bundle.crt"; }
+ // { SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; }
// { TMPDIR = "${cfg.tempDir}"; };
};
};
diff --git a/modules/system/activation-scripts.nix b/modules/system/activation-scripts.nix
index 4e24098..4a66996 100644
--- a/modules/system/activation-scripts.nix
+++ b/modules/system/activation-scripts.nix
@@ -59,6 +59,8 @@ in
# Prevent the current configuration from being garbage-collected.
ln -sfn /run/current-system /nix/var/nix/gcroots/current-system
+ ${cfg.activationScripts.nix.text}
+
${cfg.activationScripts.etc.text}
${cfg.activationScripts.launchd.text}
${cfg.activationScripts.time.text}