mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-21 12:38:41 +03:00
* Move the definition of the Nix build users out of user-groups.nix to
nix-daemon.nix. * Add an option ‘nix.nrBuildUsers’ to allow the number of build users to be overriden. svn path=/nixos/trunk/; revision=20571
This commit is contained in:
parent
131b1e57fe
commit
a104f07a07
@ -24,20 +24,6 @@ let
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
makeNixBuildUser = nr:
|
|
||||||
{ name = "nixbld${toString nr}";
|
|
||||||
description = "Nix build user ${toString nr}";
|
|
||||||
|
|
||||||
/* For consistency with the setgid(2), setuid(2), and setgroups(2)
|
|
||||||
calls in `libstore/build.cc', don't add any supplementary group
|
|
||||||
here. */
|
|
||||||
uid = builtins.add ids.uids.nixbld nr;
|
|
||||||
group = "nixbld";
|
|
||||||
extraGroups = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixBuildUsers = map makeNixBuildUser (pkgs.lib.range 1 10);
|
|
||||||
|
|
||||||
addAttrs =
|
addAttrs =
|
||||||
{ name
|
{ name
|
||||||
, description
|
, description
|
||||||
@ -52,7 +38,7 @@ let
|
|||||||
}:
|
}:
|
||||||
{ inherit name description uid group extraGroups home shell createHome password; };
|
{ inherit name description uid group extraGroups home shell createHome password; };
|
||||||
|
|
||||||
in map addAttrs (defaultUsers ++ nixBuildUsers ++ config.users.extraUsers);
|
in map addAttrs (defaultUsers ++ config.users.extraUsers);
|
||||||
|
|
||||||
|
|
||||||
# Groups to be created/updated by NixOS.
|
# Groups to be created/updated by NixOS.
|
||||||
|
@ -6,6 +6,18 @@ let
|
|||||||
|
|
||||||
inherit (config.environment) nix;
|
inherit (config.environment) nix;
|
||||||
|
|
||||||
|
makeNixBuildUser = nr:
|
||||||
|
{ name = "nixbld${toString nr}";
|
||||||
|
description = "Nix build user ${toString nr}";
|
||||||
|
|
||||||
|
/* For consistency with the setgid(2), setuid(2), and setgroups(2)
|
||||||
|
calls in `libstore/build.cc', don't add any supplementary group
|
||||||
|
here. */
|
||||||
|
uid = builtins.add config.ids.uids.nixbld nr;
|
||||||
|
group = "nixbld";
|
||||||
|
extraGroups = [];
|
||||||
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -148,6 +160,17 @@ in
|
|||||||
Environment variables used by Nix.
|
Environment variables used by Nix.
|
||||||
";
|
";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nrBuildUsers = mkOption {
|
||||||
|
default = 10;
|
||||||
|
description = ''
|
||||||
|
Number of <literal>nixbld</literal> user accounts created to
|
||||||
|
perform secure concurrent builds. If you receive an error
|
||||||
|
message saying that “all build users are currently in use”,
|
||||||
|
you should increase this value.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -213,6 +236,9 @@ in
|
|||||||
''
|
''
|
||||||
export PATH=${if config.nix.distributedBuilds then "${pkgs.openssh}/bin:${pkgs.gzip}/bin:" else ""}${pkgs.openssl}/bin:${nix}/bin:$PATH
|
export PATH=${if config.nix.distributedBuilds then "${pkgs.openssh}/bin:${pkgs.gzip}/bin:" else ""}${pkgs.openssl}/bin:${nix}/bin:$PATH
|
||||||
${config.nix.envVars}
|
${config.nix.envVars}
|
||||||
|
# To reduce the load on Hydra, don't start all those
|
||||||
|
# unnecessary substituter processes.
|
||||||
|
export NIX_SUBSTITUTERS=
|
||||||
exec \
|
exec \
|
||||||
nice -n ${builtins.toString config.nix.daemonNiceLevel} \
|
nice -n ${builtins.toString config.nix.daemonNiceLevel} \
|
||||||
${pkgs.utillinux}/bin/ionice -n ${builtins.toString config.nix.daemonIONiceLevel} \
|
${pkgs.utillinux}/bin/ionice -n ${builtins.toString config.nix.daemonIONiceLevel} \
|
||||||
@ -261,6 +287,8 @@ in
|
|||||||
export ftp_proxy=${config.nix.proxy}
|
export ftp_proxy=${config.nix.proxy}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
users.extraUsers = map makeNixBuildUser (pkgs.lib.range 1 config.nix.nrBuildUsers);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user