about summary refs log tree commit diff
path: root/lib/call-machine.nix
Commit message (Collapse)AuthorAgeFilesLines
* Fix up call-network and rename withPkgsPathaszlig2018-04-031-3/+3
| | | | | | | | | | | | | Using __withPkgsPath is a way better name, because two underscores in front of it commonly designate an internal attribute, which it is. The callNetwork function now works in a similar vain as callMachine, having a canonical way to specify the path to nixpkgs. I've also changed the recursive search of machines to use the __withPkgsPath attribute as a way to detect whether it's a machine. Signed-off-by: aszlig <aszlig@nix.build>
* call-machine: Allow to work in restrict-eval modeaszlig2018-04-031-50/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | It's a bit unfortunate that I removed the extraConfig attribute from <vuizvui/machines> back then (49dc58c6f8d72a4e142176f25da52666ef9ae268). Now we could have used this argument to pass the nixpkgs path from release.nix back into call-machine.nix, but introducing that extra argument again would break the configs of all of the systems using Vuizvui. So instead, I've added a function exposed by call-machine called withPkgs, which overrides the whole attribute set returned by callMachine to use nixpkgs from the given argument. This allows us to run in restricted evaluation mode as enforced by Hydra and Nix 2.0 and while we could simply disable restricted eval, it's even better if we comply with it. Unfortunately I lied a bit, because we've been running in restricted eval mode before. This time however it seems that some change in Nix has caused this to be even more restrictive because now Nix search paths are not allowed as well. Relying on those within a Hydra jobset however is discouraged anyway. Signed-off-by: aszlig <aszlig@nix.build>
* lib/call-machine: Shorten line lengthsaszlig2016-05-031-3/+3
| | | | | | | No changes of functionality, but having paths with a common ancestor that flood the horizontal space isn't really nice to view side-by-side. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* lib/call-machine: Get rid of extraConfig attributeaszlig2016-05-031-10/+3
| | | | | | | | | | | | Right now we're not using the system attribute at all and we can still use nixpkgs.system to set the attribute for a particular machine. So we now can pass configuration attributes to the second argument of callMachine *directly* instead of using specific subattributes, which I think feels is a more natural way so users don't need to look up that "extraConfig" is for adding configuration values. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* lib/call-machine: Fix passing extraConfig in mkIsoaszlig2016-05-031-2/+2
| | | | | | | | | | Commit 31809189d5126979e51b4fb4cf0fa7a35a401e53 introduced this. Unfortunately using extraConfig as a fallback isn't really how this was intended to work, so let's make sure we _always_ supply the extraConfig to the module. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* lib/call-machine: Allow to pass extra configaszlig2016-05-031-3/+7
| | | | | | | | | | | | | | | | | | | | So far callMachine only accepted the system attribute as its sole argument, but especially if there are more machines with common attributes, it makes sense to actually call the machines with option definitions that are for example enabling a specific profile module. For example: let commonAttrs.extraConfig = { common.profile.enable = true; }; in { foo = callMachine ./foo commonAttrs; bar = callMachine ./bar commonAttrs; } Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* lib/call-machine: add installer imageProfpatsch2016-04-271-19/+23
| | | | | | Factor out the common iso code and use the minimal installer module to create a vuizvui installer for the current config. Add vuizvui to the NIX_PATH in the resulting system.
* lib/call-machine: Use a list for FS optionsaszlig2016-03-021-1/+1
| | | | | | | | | | | In NixOS/nixpkgs@edb8991 the version got bumped to 16.09, so fileSystem.*.options no longer takes a plain string. The original change has been introduced in NixOS/nixpkgs@3c5fca9 and we already use it everywhere in vuizvui but not for the ISO image builder yet. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* lib/call-machine: Introduce .build shortcutaszlig2016-02-081-0/+1
| | | | | | | | | | | | | | | | | | | The shortcut is mainly to make things a bit easier, instead of: nix-build '<vuizvui/machines>' \ -A aszlig.tishtushi.eval.config.system.build.toplevel We can now do something like this: nix-build '<vuizvui/machines>' \ -A aszlig.tishtushi.build ... in order to get a system store path out of a machine definition. This also fixes an evaluation error in the top-level default.nix. Thanks to @Profpatsch for bringing this to my attention. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* call-machine: Don't patch iso-image.nix anymoreaszlig2016-01-291-12/+7
| | | | | | | | | This reverts commit 3bf7b0dc9d087d7c141f317456e7abdd60ceda2a. Since NixOS/nixpkgs@269f261 there is a separate "nomodeset" boot menu option, so we no longer need this workaround. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* lib/call-machine: Fix evaluation of ISO imagesaszlig2015-12-151-1/+1
| | | | | | | | | Regression introduced by 8c1b7661ae7801233df2ef5cacb07c7382d74fdd. We now have an "eval" attribute, so we shouldn't try to reference or shadow it. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* lib/call-machine: Clean up expressionaszlig2015-12-151-17/+21
| | | | | | | | | | | | | | | This gets rid of the use attribute, which is now called "config". We had the "config" attribute before but it was kinda pointless, because it was just the import of the path and nothing else. So the config attribute now is the machine configuration with all of the vuizvui modules imported as well. The "build" attribute is now called "eval", which is more appropriate, because it's the evaluation of the configuration and not the finished system build. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* machines: Move callMachine function to lib/.aszlig2015-12-101-0/+65
The function is gettin rather large, so it makes sense to move it into another file so that the default.nix in machines/ won't be cluttered up with all the implementation-specific details. Signed-off-by: aszlig <aszlig@redmoonstudios.org>