2012-01-03 00:16:29 +00:00
|
|
|
with import <nix/config.nix>;
|
|
|
|
|
2012-04-14 16:48:11 +00:00
|
|
|
{ derivations, manifest }:
|
2003-11-19 17:27:16 +00:00
|
|
|
|
2012-12-04 13:20:36 +00:00
|
|
|
derivation {
|
2003-11-19 17:27:16 +00:00
|
|
|
name = "user-environment";
|
2012-04-14 16:48:11 +00:00
|
|
|
system = builtins.currentSystem;
|
2012-01-03 00:16:29 +00:00
|
|
|
builder = perl;
|
|
|
|
args = [ "-w" ./buildenv.pl ];
|
2012-12-04 13:20:36 +00:00
|
|
|
|
2003-11-19 17:27:16 +00:00
|
|
|
manifest = manifest;
|
2007-04-27 22:40:59 +00:00
|
|
|
|
|
|
|
# !!! grmbl, need structured data for passing this in a clean way.
|
2012-12-04 13:20:36 +00:00
|
|
|
derivations =
|
|
|
|
map (d:
|
2012-12-04 13:30:34 +00:00
|
|
|
[ (d.meta.active or "true")
|
2012-12-04 13:20:36 +00:00
|
|
|
(d.meta.priority or 5)
|
|
|
|
(builtins.length d.outputs)
|
|
|
|
] ++ map (output: builtins.getAttr output d) d.outputs)
|
|
|
|
derivations;
|
2010-08-04 12:13:58 +00:00
|
|
|
|
|
|
|
# Building user environments remotely just causes huge amounts of
|
|
|
|
# network traffic, so don't do that.
|
|
|
|
preferLocalBuild = true;
|
2012-05-10 02:14:36 +00:00
|
|
|
|
2015-11-13 06:51:52 +00:00
|
|
|
__sandboxProfile = ''
|
|
|
|
(allow sysctl-read)
|
|
|
|
(allow file-read*
|
|
|
|
(literal "/usr/lib/libSystem.dylib")
|
|
|
|
(literal "/usr/lib/libSystem.B.dylib")
|
|
|
|
(literal "/usr/lib/libobjc.A.dylib")
|
|
|
|
(literal "/usr/lib/libobjc.dylib")
|
|
|
|
(literal "/usr/lib/libauto.dylib")
|
|
|
|
(literal "/usr/lib/libc++abi.dylib")
|
|
|
|
(literal "/usr/lib/libc++.1.dylib")
|
|
|
|
(literal "/usr/lib/libDiagnosticMessagesClient.dylib")
|
|
|
|
(subpath "/usr/lib/system")
|
|
|
|
(subpath "/dev"))
|
|
|
|
'';
|
2015-09-29 16:03:19 +00:00
|
|
|
|
2015-03-24 10:15:45 +00:00
|
|
|
inherit chrootDeps;
|
2003-11-19 17:27:16 +00:00
|
|
|
}
|