diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-03-27 09:47:57 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-03-27 09:47:57 +0000 |
commit | 976736727fa6c20a8b3db92f387ec07c02cd1710 (patch) | |
tree | c492633aaa59676e67b9b26049fa32816d76fe33 | |
parent | f636d191f3d3ab53368c6ac29aba669ad4f8f41b (diff) | |
parent | b77a9aeec19a22702ae234c2c3c7d27aae469de6 (diff) | |
download | nixpkgs-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.nix | 47 | ||||
-rw-r--r-- | pkgs/tools/system/minijail/tools.nix | 13 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
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; |