about summary refs log tree commit diff
path: root/pkgs/applications/virtualization
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-12-24 15:02:29 +0100
committerJan Tojnar <jtojnar@gmail.com>2018-12-24 15:02:29 +0100
commitef935fa1016ba6209a8882f4ccd776c5272a4359 (patch)
tree8d4c66fda8f30dc3bb2a1c5ce5da5b7fca999dd8 /pkgs/applications/virtualization
parentd5d15828b51a7d4fd7eee82c6e9a1b261aa49115 (diff)
parentdd3eea4b476552cbdf95388179bfdd668d04b8b7 (diff)
downloadnixlib-ef935fa1016ba6209a8882f4ccd776c5272a4359.tar
nixlib-ef935fa1016ba6209a8882f4ccd776c5272a4359.tar.gz
nixlib-ef935fa1016ba6209a8882f4ccd776c5272a4359.tar.bz2
nixlib-ef935fa1016ba6209a8882f4ccd776c5272a4359.tar.lz
nixlib-ef935fa1016ba6209a8882f4ccd776c5272a4359.tar.xz
nixlib-ef935fa1016ba6209a8882f4ccd776c5272a4359.tar.zst
nixlib-ef935fa1016ba6209a8882f4ccd776c5272a4359.zip
Merge branch 'master' into staging
Diffstat (limited to 'pkgs/applications/virtualization')
-rw-r--r--pkgs/applications/virtualization/firecracker/default.nix35
-rw-r--r--pkgs/applications/virtualization/runc/default.nix30
2 files changed, 45 insertions, 20 deletions
diff --git a/pkgs/applications/virtualization/firecracker/default.nix b/pkgs/applications/virtualization/firecracker/default.nix
new file mode 100644
index 000000000000..7d8772da73d7
--- /dev/null
+++ b/pkgs/applications/virtualization/firecracker/default.nix
@@ -0,0 +1,35 @@
+{ fetchurl, stdenv }:
+
+let
+  version = "0.12.0";
+  baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download";
+
+  fetchbin = name: sha256: fetchurl {
+    url    = "${baseurl}/v${version}/${name}-v${version}";
+    inherit sha256;
+  };
+
+  firecracker-bin = fetchbin "firecracker" "0jk9w5kagqp3w668c1x0g4yyahmy7696pm0bkhv066rrdpcqpw66";
+  jailer-bin      = fetchbin "jailer"      "1fcxzpnapnccklgbi4bis3f6c9fki2daxvzg9l7433vfqz2zbyjl";
+in
+stdenv.mkDerivation {
+  name = "firecracker-${version}";
+  inherit version;
+
+  srcs = [ firecracker-bin jailer-bin ];
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -D ${firecracker-bin} $out/bin/firecracker
+    install -D ${jailer-bin}      $out/bin/jailer
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Secure, fast, minimal micro-container virtualization";
+    homepage    = http://firecracker-microvm.io;
+    license     = licenses.asl20;
+    platforms   = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index be5b8f621089..b89ef1dd7bff 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, lib, fetchFromGitHub, removeReferencesTo, go-md2man
-, go, pkgconfig, libapparmor, apparmor-parser, libseccomp }:
+{ stdenv, lib, fetchFromGitHub, buildGoPackage, go-md2man
+, pkgconfig, libapparmor, apparmor-parser, libseccomp, which }:
 
 with lib;
 
-stdenv.mkDerivation rec {
+buildGoPackage rec {
   name = "runc-${version}";
   version = "1.0.0-rc6";
 
@@ -14,32 +14,26 @@ stdenv.mkDerivation rec {
     sha256 = "1jwacb8xnmx5fr86gximhbl9dlbdwj3rpf27hav9q1si86w5pb1j";
   };
 
-  outputs = [ "out" "man" ];
+  goPackagePath = "github.com/opencontainers/runc";
+  outputs = [ "bin" "out" "man" ];
 
   hardeningDisable = ["fortify"];
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ removeReferencesTo go-md2man go libseccomp libapparmor apparmor-parser ];
+  buildInputs = [ go-md2man libseccomp libapparmor apparmor-parser which ];
 
   makeFlags = ''BUILDTAGS+=seccomp BUILDTAGS+=apparmor'';
 
-  preConfigure = ''
-    # Extract the source
-    cd "$NIX_BUILD_TOP"
-    mkdir -p "go/src/github.com/opencontainers"
-    mv "$sourceRoot" "go/src/github.com/opencontainers/runc"
-    export GOPATH=$NIX_BUILD_TOP/go:$GOPATH
-  '';
-
-  preBuild = ''
-    cd go/src/github.com/opencontainers/runc
+  buildPhase = ''
+    cd go/src/${goPackagePath}
     patchShebangs .
     substituteInPlace libcontainer/apparmor/apparmor.go \
       --replace /sbin/apparmor_parser ${apparmor-parser}/bin/apparmor_parser
+    make ${makeFlags} runc
   '';
 
   installPhase = ''
-    install -Dm755 runc $out/bin/runc
+    install -Dm755 runc $bin/bin/runc
 
     # Include contributed man pages
     man/md2man-all.sh -q
@@ -55,10 +49,6 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  preFixup = ''
-    find $out/bin -type f -exec remove-references-to -t ${go} '{}' +
-  '';
-
   meta = {
     homepage = https://runc.io/;
     description = "A CLI tool for spawning and running containers according to the OCI specification";