From 4df8ba5a63bf318668df5feed6e1a399b0b9b11a Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sat, 14 Dec 2019 10:58:56 +0000 Subject: [PATCH] Update README to refer to flakes --- README.md | 46 ++++++++----------------------------- flake.nix | 5 ++++ nixos/test.nix | 62 +++++++++++++++++++++++++++----------------------- 3 files changed, 48 insertions(+), 65 deletions(-) diff --git a/README.md b/README.md index 946ebdf..c486bcb 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,19 @@ -# An overlayed Nixpkgs for the Genode OS framework +# Genode Packages This repo contains Nix expressions for building Genode with Nixpkgs and building Nixpkgs for Genode. At the moment the former is experimental and broken in many cases, the later is probably broken for all cases. +Furthermore, this repository is structured as a Nim flake, with is in itself an +experimental extension of the Nix utility. + ## Toolchain -The LLVM cross-compiler may useful already, Clang apparently builds Genode -without serious problems. Bootstrapping GCC is not feasible. +The LLVM cross-compiler may useful already, Clang apparently builds trivial +Genode componenents without serious problems. Bootstrapping GCC is not practical +due to the recursive autotools build system. -To compiler environment may be accessed via the `nix-shell` utility and the -`genode.base` attribute defined here. +To compiler environment for x86_64 may be accessed by invoking `nix devShell`. -```sh -nix-shell «path-to-this-repo» -A genode.base -``` - -Bootstrapping the environment on a laptop can take hours. - -## Continuous builds - -### C3D2 hydra - -Hardware for continuous builds provided by [Chaos Computer Club Dresden](https://c3d2.de/). - -The first hydra is located at https://hydra.hq.c3d2.de/project/genodepkgs. - -The following NixOS module will enable use of this Hydra as a cache: - -```nix -{ ... }: { - nix = { - trustedUsers = [ «your-user» ]; - - trustedBinaryCaches = [ - "https://nix-serve.hq.c3d2.de" - ]; - - binaryCachePublicKeys = [ - "nix-serve.hq.c3d2.de:FEi9GyFkou1Ua8INaEKmuGaww9E5y3XwrNGNRfKYeLo=" - ]; - }; -} -``` +Bootstrapping the environment on a laptop can take hours. Get yourself a +[Hydra](https://nixos.org/hydra/). diff --git a/flake.nix b/flake.nix index 81afeec..1a38ea8 100644 --- a/flake.nix +++ b/flake.nix @@ -51,12 +51,17 @@ x86_64-linux.nixos = let pkgs' = nixpkgs.legacyPackages.x86_64-linux // { }; in import ./nixos/test.nix { + inherit self; nixpkgs = nixpkgs.outPath; genodepkgs = self.packages.x86_64-linux-x86_64-genode; depot = genode-depot.packages.x86_64-linux-x86_64-genode; } { system = "x86_64-linux"; }; }; + nixosModule = import ./nixos; + + devShell.x86_64-linux = self.packages.x86_64-linux-x86_64-genode.stdenv; + }; } diff --git a/nixos/test.nix b/nixos/test.nix index da42a7f..ce427ce 100644 --- a/nixos/test.nix +++ b/nixos/test.nix @@ -1,40 +1,44 @@ -{ nixpkgs, genodepkgs, depot }: +{ self, nixpkgs, genodepkgs, depot }: import (nixpkgs + "/nixos/tests/make-test.nix") ({ pkgs, ... }: rec { name = "genode-base-linux"; - machine = { pkgs, ... }: + machine = + + { config, pkgs, lib, ... }: { - imports = [ ./. ]; - genode.signal-test = { - config = '' - - - - - - - - - - - - - - - - - - - - - ''; - depot = depot; - pkgs = genodepkgs; - rom = { "test-signal" = "${genodepkgs.os}/bin/test-signal"; }; + imports = [ "${self.outPath}/nixos" ]; + genode = { + signal-test = { + config = '' + + + + + + + + + + + + + + + + + + + + + ''; + depot = depot; + pkgs = genodepkgs; + rom = { "test-signal" = "${genodepkgs.os}/bin/test-signal"; }; + }; }; };