summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-03-27 09:47:57 +0000
committerAlyssa Ross <hi@alyssa.is>2020-03-27 09:47:57 +0000
commit976736727fa6c20a8b3db92f387ec07c02cd1710 (patch)
treec492633aaa59676e67b9b26049fa32816d76fe33
parentf636d191f3d3ab53368c6ac29aba669ad4f8f41b (diff)
parentb77a9aeec19a22702ae234c2c3c7d27aae469de6 (diff)
downloadnixpkgs-976736727fa6c20a8b3db92f387ec07c02cd1710.tar
nixpkgs-976736727fa6c20a8b3db92f387ec07c02cd1710.tar.gz
nixpkgs-976736727fa6c20a8b3db92f387ec07c02cd1710.tar.bz2
nixpkgs-976736727fa6c20a8b3db92f387ec07c02cd1710.tar.lz
nixpkgs-976736727fa6c20a8b3db92f387ec07c02cd1710.tar.xz
nixpkgs-976736727fa6c20a8b3db92f387ec07c02cd1710.tar.zst
nixpkgs-976736727fa6c20a8b3db92f387ec07c02cd1710.zip
Merge branch 'master' into crosvm-demo
-rw-r--r--pkgs/tools/system/minijail/default.nix47
-rw-r--r--pkgs/tools/system/minijail/tools.nix13
-rw-r--r--pkgs/top-level/all-packages.nix4
3 files changed, 47 insertions, 17 deletions
diff --git a/pkgs/tools/system/minijail/default.nix b/pkgs/tools/system/minijail/default.nix
index 2b4d1deb9f9..2f5adc3f4c9 100644
--- a/pkgs/tools/system/minijail/default.nix
+++ b/pkgs/tools/system/minijail/default.nix
@@ -1,45 +1,60 @@
-{ stdenv, fetchFromGitiles, libcap }:
+{ stdenv, lib, fetchFromGitiles, glibc, libcap, qemu }:
+
+let
+  dumpConstants =
+    if stdenv.buildPlatform == stdenv.hostPlatform then "./dump_constants"
+    else if stdenv.hostPlatform.isAarch32 then "qemu-arm dump_constants"
+    else if stdenv.hostPlatform.isAarch64 then "qemu-aarch64 dump_constants"
+    else if stdenv.hostPlatform.isx86_64 then "qemu-x86_64 dump_constants"
+    else throw "Unsupported host platform";
+in
 
 stdenv.mkDerivation rec {
   pname = "minijail";
-  version = "android-10.0.0_r9";
+  version = "14";
 
   src = fetchFromGitiles {
     url = "https://android.googlesource.com/platform/external/minijail";
-    rev = version;
-    sha256 = "0gcfsyim1krrddcklydqfxl8mamaxgail2xl5qp9yclq60km8f22";
+    rev = "linux-v${version}";
+    sha256 = "00dq854n4zg3ca2b46f90k15n32zn2sgabi76mnq2w985k9v977n";
   };
 
+  nativeBuildInputs =
+    lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) qemu;
   buildInputs = [ libcap ];
 
   makeFlags = [ "LIBDIR=$(out)/lib" ];
-
-  preConfigure = ''
-    substituteInPlace common.mk --replace /bin/echo echo
-    sed -i '/#include <asm\/siginfo.h>/ d' signal_handler.c
-  '';
+  dumpConstantsFlags = lib.optional (stdenv.hostPlatform.libc == "glibc")
+    "LDFLAGS=-L${glibc.static}/lib";
 
   postPatch = ''
+    substituteInPlace common.mk --replace /bin/echo echo
     patchShebangs platform2_preinstall.sh
   '';
 
   postBuild = ''
-    ./platform2_preinstall.sh ${version} $out/include/chromeos
+    make $makeFlags $buildFlags $dumpConstantsFlags dump_constants
+    ${dumpConstants} > constants.json
   '';
 
   installPhase = ''
-    mkdir -p $out/lib/pkgconfig $out/include/chromeos $out/bin
+    ./platform2_preinstall.sh ${version} $out/include/chromeos
+
+    mkdir -p $out/lib/pkgconfig $out/include/chromeos $out/bin \
+        $out/share/minijail
+
     cp -v *.so $out/lib
     cp -v *.pc $out/lib/pkgconfig
     cp -v libminijail.h scoped_minijail.h $out/include/chromeos
     cp -v minijail0 $out/bin
+    cp -v constants.json $out/share/minijail
   '';
 
-  meta = {
-    homepage = https://android.googlesource.com/platform/external/minijail/;
+  meta = with lib; {
+    homepage = "https://android.googlesource.com/platform/external/minijail/";
     description = "Sandboxing library and application using Linux namespaces and capabilities";
-    license = stdenv.lib.licenses.bsd3;
-    maintainers = with stdenv.lib.maintainers; [pcarrier];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ pcarrier qyliss ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/minijail/tools.nix b/pkgs/tools/system/minijail/tools.nix
new file mode 100644
index 00000000000..875ea0dbff9
--- /dev/null
+++ b/pkgs/tools/system/minijail/tools.nix
@@ -0,0 +1,13 @@
+{ buildPythonApplication, lib, minijail }:
+
+buildPythonApplication {
+  pname = "minijail-tools";
+  inherit (minijail) version src;
+
+  meta = with lib; {
+    homepage = "https://android.googlesource.com/platform/external/minijail/+/refs/heads/master/tools/";
+    description = "A set of tools for minijail";
+    license = licenses.asl20;
+    inherit (minijail.meta) maintainers platforms;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 12f941c05ee..63c02ce6cc7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5206,6 +5206,8 @@ in
 
   minijail = callPackage ../tools/system/minijail { };
 
+  minijail-tools = python3.pkgs.callPackage ../tools/system/minijail/tools.nix { };
+
   minixml = callPackage ../development/libraries/minixml { };
 
   mir-qualia = callPackage ../tools/text/mir-qualia {
@@ -15903,7 +15905,7 @@ in
   mysql = mariadb; # TODO: move to aliases.nix
 
   mongodb = hiPrio mongodb-3_4;
-  
+
   mongodb-3_4 = callPackage ../servers/nosql/mongodb/v3_4.nix {
     sasl = cyrus_sasl;
     boost = boost160;