From 316259817c8d1a7414ac71bf714076de74e4055d Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 24 Sep 2019 12:45:57 +0200 Subject: [PATCH] Add NOVA, update release.nix --- NOVA/default.nix | 34 ++++++++++++++++++++++++++++++++++ default.nix | 11 ++++++----- release.nix | 11 +++-------- 3 files changed, 43 insertions(+), 13 deletions(-) create mode 100644 NOVA/default.nix diff --git a/NOVA/default.nix b/NOVA/default.nix new file mode 100644 index 0000000..d69b0d7 --- /dev/null +++ b/NOVA/default.nix @@ -0,0 +1,34 @@ +{ stdenv, buildPackages, fetchFromGitHub }: + +let + ARCH = + if stdenv.isx86_32 then "x86_32" else + if stdenv.isx86_64 then "x86_64" else + null; +in if ARCH == null then null else + +buildPackages.stdenv.mkDerivation { + # Borrow the build host compiler, + name = "NOVA"; + inherit ARCH; + + src = fetchFromGitHub { + owner = "alex-ab"; + repo = "NOVA"; + rev = "0ebcb4fc5a25d1df4451a89cbc87d88e099acbd3"; + sha256 = "0rkp59496032kq8a3l5fs771m5f7s5yywkxjk7j9qhmsidgk40wd"; + }; + + makeFlags = [ "--directory=build" ]; + + preInstall = "export INS_DIR=$out"; + + meta = with stdenv.lib; { + description = + "The NOVA OS Virtualization Architecture is a project aimed at constructing a secure virtualization environment with a small trusted computing base."; + homepage = "http://hypervisor.org/"; + license = licenses.gpl2; + maintainers = [ maintainers.ehmry ]; + }; + +} diff --git a/default.nix b/default.nix index 1c7323f..4cbbf27 100644 --- a/default.nix +++ b/default.nix @@ -1,9 +1,10 @@ let pkgOverlay = self: super: # Overlay of locally defined packages - { - genode = super.callPackage ./upstream { }; - dhall = super.callPackage ./dhall { }; + with self; { + dhall = callPackage ./dhall { }; + genode = callPackage ./upstream { }; + nova = callPackage ./NOVA { }; }; toolchainOverlay = import ./toolchain-overlay; @@ -16,9 +17,9 @@ let rev = "e4d734ace275cae70a776771d034c051956c9cab"; }; -in { nixpkgs ? import nixpkgs' }: +in { nixpkgs ? nixpkgs' }: -nixpkgs { +import nixpkgs { # Evaluate an overlayed Nixpkgs for a Genode target config.allowUnsupportedSystem = true; crossSystem = { diff --git a/release.nix b/release.nix index 0fa443e..f7768b3 100644 --- a/release.nix +++ b/release.nix @@ -1,11 +1,6 @@ -{ genodepkgs ? builtins.fetchGit ./. }: +{ genodepkgs ? builtins.fetchGit ./., nixpkgs ? }: { - build.x86_64 = let - pkgs = - import ./default.nix { system = { config = "x86_64-unknown-genode"; }; }; - in { - nixpkgs = { inherit (pkgs.nixpkgs) stdenv; }; - inherit (pkgs) upstream; - }; + build.x86_64 = let pkgs = import ./default.nix { inherit nixpkgs; }; + in { inherit (pkgs) genode nova stdenv; }; }