about summary refs log tree commit diff
path: root/release.nix
Commit message (Collapse)AuthorAgeFilesLines
* lib/call-machine: Introduce .build shortcutaszlig2016-02-081-3/+3
| | | | | | | | | | | | | | | | | | | 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>
* lib/call-machine: Clean up expressionaszlig2015-12-151-7/+7
| | | | | | | | | | | | | | | 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>
* release.nix: Unconditionally add vuizvui tests.aszlig2015-12-111-1/+3
| | | | | | | | | | We want to have non-machine-specific tests as well, so let's ensure that we build all tests listed in the tests directory. This is especially useful if we want to have tests on build products within release.nix or tests which are unrelated to machines. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Improve arg name in gatherTests.aszlig2015-12-111-1/+1
| | | | | | No change in functionality, I'm just dead tired so I fucked up the name. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Fix channel constituents.aszlig2015-12-111-6/+9
| | | | | | | | After switching the requiresTests option to be a list of paths we no longer can just pass them verbatim to the constituents but rather do a lookup on all of these paths to get the derivations. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Properly import vuizvui tests.aszlig2015-12-111-2/+4
| | | | | | | | The tests from vuizvui itself weren't properly included in release.nix, because we're patching up our own source tree and thus the evaluator is unable to find the right path. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* modules: Make requiresTests a list of paths.aszlig2015-12-111-11/+5
| | | | | | | | | | | 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>
* release.nix: Include all tests that are enabled.aszlig2015-12-111-2/+16
| | | | | | | | | | | | | | This now includes both upstream NixOS and Vuizvui tests. Unfortunately, evaluation now takes a ton of time and also a ton of memory, so let's hope our Hydra can sustain it. The reason is that we need to look through all of the available tests and recurse through _all_ machine configurations to see if they're defined there. If it is too heavyweight we might need to find a better solution for that. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Only import machines once.aszlig2015-12-111-4/+6
| | | | | | | | This removes a bit of redundant code and also makes instantiation with --eval-only a bit more convenient, because we're testing whether we have vuizvuiSrc and if not we're importing a plain path directly. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* profiles/common: Add a new requiresTests option.aszlig2015-12-111-1/+2
| | | | | | | | | | 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>
* release: Turn manual into serveral chunks.aszlig2015-12-111-5/+23
| | | | | | | | | | | This allows us to write separate chapters/parts of documentation without getting one big HTML page with everything at once. Now the chunk.xsl by default chunks of <preface/> elements, so we'd like to control this by patching docbook5_xsl directly and prevent it from doing that. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release: Factor out manual into doc/ directory.aszlig2015-12-101-14/+4
| | | | | | | | So far this has been inlined in release.nix, but if we want to have more documentation, we should modularize it into subdirectories. As an additional benefit we get better syntax highlighting for docbook files. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Only build ISOs if createISO is set.aszlig2015-08-131-1/+2
| | | | | | | | | | | | | | | | Here we have our actual implementation. Note however, that one can still build an ISO image out of any machine by using: nix-build machines -A machine.attr.iso.config.system.build.isoImage However, none of these ISOs are built by default, except for kzerza, which has vuizvui.createISO enabled. The implementation has one little goof as it creates empty attrsets if a particular machine doesn't have createISO enabled. But for our current purposes that's okay "enough". Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Don't patch <nixpkgs> anymore.aszlig2015-06-301-15/+2
| | | | | | | | | | Since d2ff1a9, we now set a new NIX_PATH instead of patching <nixpkgs>, which is way less error-prone and get less unexpecting results if we evaluate against an unmodified <nixpkgs>. So, patching <nixpkgs> is obsolete and thus removed. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Build ISO images for all machines.aszlig2015-06-271-0/+15
| | | | | | | | | Originally only needed for "kzerza", because that machine has always resided on an USB stick, but could be useful for "arilou" and others as well. That way you always have a (hopefully working) USB and CD image available for all machines. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Preserve modes in <nixpkgs>.aszlig2015-05-081-1/+2
| | | | | | | | | | | This is cruicial for scripts such as nix-prefetch-git, which have the executable bit set and a builder is trying to call it. Instead, we're now preserving mode and set it writable for the current user directly afterwards, which essentially was my original motivation to not preserve modes. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Fix evaluation error with mkChannel.aszlig2015-05-071-1/+1
| | | | | | | | Since we now have everything within the vuizvui namespace at the top- level Nix expression we also need to reference mkChannel from within that namespace. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Don't build upstream nixpkgs.aszlig2015-05-051-1/+1
| | | | | | | | We don't want to build the whole <nixpkgs> package set, which I accidentally introduced when rewriting the package namespacing in 6ffc2e86150e625266e6836a1404a3e79fc74d49. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Fix get-version-suffix in tarball.aszlig2015-05-041-0/+2
| | | | | | | | | | | | | | This gets rid of an ugly error message during nixos-rebuild, because the stock get-version-suffix tries to find <nixpkgs>, which will either lead to the wrong channel (if it even exists at all) or an ugly error. In both cases however, it doesn't have an effect, because the channel expression store path is read-only and ships with a .version-suffix already. It really only gets rid of ugly error messages. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release: Patch --find-file in nixos-rebuild.aszlig2015-05-041-1/+3
| | | | | | | We only did simple substitutions of <path/references/like/this/one> but completely ignored the --find-file argument of nix-instantiate. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Also patch vuizvui itself.aszlig2015-04-291-16/+29
| | | | | | | | | | | | | This is needed because we're relying on nixpkgs-path.nix to point to a valid nixpkgs tree, which we deliberately don't have anymore because we wanted to avoid references to <nixpkgs>. So providing vuizvuiSrc instead of vuizvui has another advantage that we now are no longer dependant on the channel name and also have a safety net (Hydra) to inform us of references to <vuizvui> in the form of failed builds and/or evaluations. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Provide a name to patchedNixpkgs.aszlig2015-04-291-2/+4
| | | | | | Yeah, probably will work a bit better without evaluation errors ;-) Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Refactor to use patched nixpkgs.aszlig2015-04-291-13/+20
| | | | | | | | | | | | | | We now use nixpkgsSrc to make sure that Hydra builds will fail as soon as we hit a reference of <nixpkgs> in either vuizvui of nixpkgs. This also means, that we don't rewrite all of vuizvui and nixpkgs anymore and we only really need to rewrite nixos-rebuild.sh. Although we're using patched nixpkgs for Hydra builds, the release.nix still has a fallback to <nixpkgs> to make development easier (patching nixpkgs on every tiny change will take a long time otherwise). Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* Handle all <nixpkgs> paths with nixpkgs-path.nix.aszlig2015-04-291-7/+13
| | | | | | | | | This file is just defaulting to <nixpkgs>, but we're going to substitue it by the channel generator. We also need to make sure that we don't have any other references to <nixpkgs>, but the latter can best be done on Hydra's side if we don't make <nixpkgs> available to vuizvui builds. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Add ".update-on-nixos-rebuild".aszlig2015-04-281-0/+1
| | | | | | | | | | We want to update the vuizvui channel alongside of the nixos channel in "nixos-rebuild subcommand --upgrade", because we include machines and NixOS modules. Might be splitted off into the machine-specific channels later. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Include nixpkgs tarball in channel.aszlig2015-04-281-19/+8
| | | | | | | | | | | | | | | Symlinking is actually a pretty bad idea, because we can only have one channel expression tarball. Evaluation however doesn't realize the referenced store paths, so we need to include them directly in the channel tarball. This also simplifies rewriting of the NIX_PATH references, because we need to recurse the directory structure only once. In order to be correctly recognized by nixos-rebuild and display useful version info, we generate .git-version and .version-suffix now as well. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Use vuizvui/nixpkgs in nixos-rebuild.aszlig2015-04-281-2/+7
| | | | | | | | | | We're now symlinking the nixpkgs store path into vuizvui/nixpkgs and reference it from within nixos-rebuild. Unfortunately we can't simply patch it with the hardcoded store path because we'll end up having the *previous* version on every nixos-rebuild instead of the new version delivered by the channel. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Provide src attr to patchedNixpkgs.aszlig2015-04-281-0/+1
| | | | | | Well, it won't work without it, duh! Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Tie nixpkgs to channel tarball.aszlig2015-04-281-0/+15
| | | | | | | | | | | Right now, this is done by replacing all NIX_PATH references with <nixpkgs...> by the path from Hydra input and silently hope that we won't replace the wrong reference ;-) Of course we're only replacing it in files that end with a .nix suffix, so we shouldn't accidentally replace documentation. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Generate channels for all machines.aszlig2015-04-151-4/+14
| | | | | | | | | | | Those channels only depend on whether the build of the particular machine succeed and currently don't include any VM tests. Also, this is quite repetitious, because we're recursing through the whole set of machines again instead of re-using the corresponding Hydra jobs. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* mkChannel: Remove channelName attribute.aszlig2015-04-151-1/+0
| | | | | | | The third argument in hydra-build-products is actually the base directory and not a name, Alzheimer's near! Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Fix evaluation of manual.aszlig2015-04-151-3/+3
| | | | | | Regression introduced by a610560bb4b5a05eb480a4dbab3e24c553727047. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Switch channel over to mkChannel.aszlig2015-04-151-10/+3
| | | | | | | | The channel now serves more or less as a generic channel, which has no constituents and thus should always be the most up-to-date channel for vuizvui. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* Add a default.nix which servers as vuizvui root.aszlig2015-04-151-3/+1
| | | | | | | | | In the end we want to have something like (import <vuizvui> {}), which exports all stuff we need for building machines, packages, providing custom helper functions and much more. And all that by using a channel instead of setting NIX_PATH directly :-) Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Rename upstream pkgs to pkgsUpstream.aszlig2015-04-151-4/+4
| | | | | | | | Mainly to make it a bit easier to distinguish, but also because we want to make the release attribute set recursive, so we don't run into weird evaluation errors. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Remove unnecessary double slash.aszlig2015-04-131-1/+1
| | | | | | | Forgot to remove the slash from the end of the replacement of the transformation expression in tar. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Fix Hydra product file name.aszlig2015-04-131-1/+1
| | | | | | | DUH! Finger fart, as I was writing a tar.bz2 in the first place and later changed it to tar.xz. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Put channel exprs into a tarball.aszlig2015-04-131-1/+10
| | | | | | | | | | With my previous implementation (NixOS/hydra#203) the tarball was created by Hydra itself on the fly. Our new implementation actually generates the tarball via Nix and Hydra only picks up the build product. And exactly that's what we're doing here. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Add channel expression files.aszlig2015-04-011-1/+10
| | | | | | | | This is actually a store path consisting of the vuizvui sources themselves and currently doesn't depend on anything else, so it usually won't fail when mandatory tests or builds fail. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release.nix: Rename packagesWithMetaPlatform.aszlig2015-03-291-1/+1
| | | | | | | Since NixOS/nixpkgs@738cf42, the attribute is now simply called "packagePlatforms". Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release: Constrain set of packages to build.aszlig2015-03-181-4/+8
| | | | | | | | | We don't want to build non-free stuff on our Hydra and also we want to have builds for all supported systems. In addition, this should get rid of a few evaluation errors that happen because Hydra tries to create jobs out of attributes which are not derivations. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* Incorporate labernix's release.nix into vuizvui's.aszlig2015-03-181-0/+6
| | | | | | The only thing that was missing was the pkgs attribute. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* tests: Refactor to something similar as machines/.aszlig2015-03-181-4/+3
| | | | | | | | | Similar to callMachine, we now have callTest. The latter uses make-test.nix, so we don't need to import the file explicitly anymore and can just write our VM test by using either an attrset or a lambda function which also gets our own packages in a vuizvui namespace. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* tests: Properly namespace the VM tests.aszlig2015-03-181-2/+2
| | | | | | | We're going to write much more tests and don't want to clutter up the tests/ directory. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* tests: Integrate heinrich VM test from labernix.aszlig2015-03-181-0/+1
| | | | | | | | Using "import ../machines" is a bit ugly here, so we might want to integrate this into make-test.nix, but other than that it should work nevertheless. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* machines: Move own machines into machines/aszlig.aszlig2015-03-181-3/+3
| | | | | | | | | | | Introduces callMachine in machines/default.nix, which returns an attribute set containing the (input) configuration and also a build attribute containing the output configuration and thus also the builds. However, we still have references to ../../common-workstation.nix which we need to refactor very soon. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* release: Add manual for Vuizvui-specific options.aszlig2014-10-211-3/+59
| | | | Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* Move all aszligEnv packages to systemPackages.aszlig2014-08-041-4/+0
| | | | | | | | | As we have a build farm at our disposal, it really makes sense to put the whole set of packages + overrides into systemPackages. The new packages list is now sorted by name rather than category so it's easier to spot duplicates. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* Revert "release: Drop envs attribute."aszlig2014-08-021-0/+4
| | | | | | | | | | | | This reverts commit 886cf96f68172021d0ac9f8fbe32e4085b7487bb. Right now, this is still needed for aszligEnv until we have refactored it to be a proper module. Signed-off-by: aszlig <aszlig@redmoonstudios.org> Conflicts: release.nix
* release: Add preliminary test for i3 module.aszlig2014-08-011-0/+4
| | | | Signed-off-by: aszlig <aszlig@redmoonstudios.org>