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"; }; + }; }; };