about summary refs log tree commit diff
path: root/modules/profiles/common.nix
Commit message (Collapse)AuthorAgeFilesLines
* profiles/common: Move requiresTests to tests.aszlig2015-12-111-13/+0
| | | | | | | That way we have everything regarding the vuizvui testing system in one module instead of two. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* modules: Make requiresTests a list of paths.aszlig2015-12-111-7/+7
| | | | | | | | | | | Unfortunately, we went into trouble and the Hydra machine not only consumed lots of ram during evaluation but it also triggered a bunch of evaluation errors because the available tests were strictly evaluated. Using attribute paths consisting of plain strings doesn't have the same problem, even though they look a bit uglier. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Move gathering tests to lib/.aszlig2015-12-111-13/+2
| | | | | | | | | | So my gut feeling in 90c080e was't wrong after all, so we need to create jobs for all the tests the machines include. In order to make this easier, we're going to re-use the collection of all test attributes from release.nix so putting it in lib/ makes sense. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Pass tests attribute to modules.aszlig2015-12-111-2/+20
| | | | | | | | | | | | | | | | | | | | | | | This is going to be used in modules or configurations to include tests specific to the module, for example let's say you have a foo.nix module that defines a foo service and you have a test named "foo" in the tests.vuizvui namespace. You can use it like this: { config, tests, lib, ... }: { ... other options of the foo service module ... config = lib.mkIf config.foo.enable { vuizvui.requiresTests = [ tests.vuizvui.foo ]; }; } If a machine config enables the module foo (foo.enable = true) then the "foo" test is also a constituent of the machine channel for the machine. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Add a new requiresTests option.aszlig2015-12-111-0/+9
| | | | | | | | | | The idea is that modules can define a list of test jobs which need to succeed whenever the module is used. In the end this should make channel updates a bit less frightening for people not already confident in using NixOS. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Add NIXPKGS_CONFIG env variable.aszlig2015-12-051-0/+8
| | | | | | | | | | | | | Having <nixpkgs-config> in PATH doesn't help in anything if we actually forget to add the right environment variable where we import the <nixpkgs-config> from NIX_PATH. The reason why I choose to use <nixpkgs-config> instead of directly specifying the config in NIXPKGS_CONFIG is that we now have _one_ environment variable (NIX_PATH) to override everything from the <nixpkgs> version to its config. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* common: Add option for global nixpkgs config.aszlig2015-12-011-7/+26
| | | | | | | | | | | | This should make creating ~/.nixpkgs/config.nix obsolete and we can solely decide whether we actually want these overrides by modifying NIX_PATH alone. The option isn't enabled by default, because this doesn't work if for example /etc/nixos/configuration.nix is not readable by the user using nix-env or importing <nixpkgs> by other means. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Force rebuilding GHC+packages.aszlig2015-09-101-0/+8
| | | | | | | | | | | | | | | | | | | | | I was glad that the issues because of the longstanding GHC determinism bug (https://ghc.haskell.org/trac/ghc/ticket/4012) happened less frequently with GHC 7.10. Unfortunately, they still happen, as reported by @Profpatsch at headcounter/deployment#19 so we're going to override the GHC derivation with an additional attribute that is exported into the environment of the builder. This attribute causes GHC and all dependant packages to be rebuilt on the Headcounter Hydra. The original issue was because we're using the official NixOS binary cache as well as building everything from source. It's helpful for not needing to rebuild the entire world, but for Haskell packages it's harmful until the mentioned GHC bug has been fixed. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Use nix.nixPath to set NIX_PATH.aszlig2015-08-221-9/+7
| | | | | | | | | | | | | | | We were using environment.sessionVariables before, but NixOS/nixpkgs@3f1354a added an option exclusively for this. It internally still sets environment.sessionVariables, so it doesn't change anything for us because we're overriding the full list anyway. But should we switch from overriding to appending/prepending someday, we could get unexpected behaviour, so that's why I'm switching to nix.nixPath here. Thanks to @devhell for bringing this to my attention. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Add headcounter.org signing key.aszlig2015-07-291-0/+4
| | | | | | | Since NixOS/nixpkgs@e3a5bca, signed binary caches are mandatory, so let's set it in our default profile for vuizvui. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Fix override of sessionVariables.aszlig2015-06-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Ugh... I must have been quite distracted while writing this. Of course, doing a mkOverride on environment.sessionVariables instead of environment.sessionVariables.NIX_PATH is going to clear *all* sessionVariables instead of just replacing NIX_PATH. This time however, I did a short test with: nix-instantiate --eval --strict -E ' (import <nixpkgs/nixos/lib/eval-config.nix> { modules = [ ./modules/profiles/common.nix ]; }).config.environment.sessionVariables ' ... to make sure I just didn't break it *again*. Also, I'm going to immediately test this after the next evaluation, as my current system is lacking quite a lot of necessary sessionVariables. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Modify NIX_PATH for the channel.aszlig2015-06-111-7/+44
| | | | | | | | | | | That way we no longer need to rewrite anything from <nixpkgs> anymore, because we only need to build one generation of the system and have the right system-wide NIX_PATH for vuizvui. For now however, let's test this properly before we can drop the rewrite of nixos-rebuild and friends. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* pkgs: Properly namespace package under "vuizvui".aszlig2015-05-041-2/+2
| | | | | | | | | | | | | | | | For packageOverrides, we only want to return the vuizvui attribute set and nothing more. But if we want to import <vuizvui/pkgs>, we want to have access to <nixpkgs> as well, which is especially useful when using the <vuizvui> channel. However, in callPackageWith we're explicitely using the vuizvui attribute which should override the whole set of <nixpkgs>, so that references to vuizvui packages don't need to be explicitly namespaced within vuizvui itself and we can easily override existing packages with this method as well (like just define a vuizvui package and it overrides the dependency for all of vuizvui's packages). Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* Refactor overrides into my base profile.aszlig2015-03-181-0/+11
Just moving the overrides into the base profile isn't enough here, as we wouldn't be able to refer to packages anymore, because the global nixpkgs.config override is now gone. Instead, we're now putting pkgs.vuizvui.* into the NixOS module system by a new profiles/common.nix, which is used unconditionally for all machines. Of course, the result of this is that we now need to change all references to vuizvui-related packages, which also is a good thing, because we will no longer shadow existing packages from upstream nixpkgs. Signed-off-by: aszlig <aszlig@redmoonstudios.org>