crosvm: precompile seccomp policy files
This saves crosvm having to compile them at runtime, and allows us to catch more errors at build time.
This commit is contained in:
parent
eb38d95b8a
commit
ad7f06781b
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, lib, rustPlatform, fetchgit
|
{ stdenv, lib, rustPlatform, fetchgit
|
||||||
, pkg-config, wayland-scanner
|
, minijail-tools, pkg-config, wayland-scanner
|
||||||
, libcap, libdrm, libepoxy, minijail, virglrenderer, wayland, wayland-protocols
|
, libcap, libdrm, libepoxy, minijail, virglrenderer, wayland, wayland-protocols
|
||||||
, linux
|
, linux
|
||||||
}:
|
}:
|
||||||
@ -29,7 +29,7 @@ in
|
|||||||
|
|
||||||
cargoLock.lockFile = ./Cargo.lock;
|
cargoLock.lockFile = ./Cargo.lock;
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config wayland-scanner ];
|
nativeBuildInputs = [ minijail-tools pkg-config wayland-scanner ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libcap libdrm libepoxy minijail virglrenderer wayland wayland-protocols
|
libcap libdrm libepoxy minijail virglrenderer wayland wayland-protocols
|
||||||
@ -37,19 +37,24 @@ in
|
|||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
cp ${./Cargo.lock} Cargo.lock
|
cp ${./Cargo.lock} Cargo.lock
|
||||||
sed -i "s|/usr/share/policy/crosvm/|$out/share/policy/|g" \
|
sed -i "s|/usr/share/policy/crosvm/|$PWD/seccomp/${arch}/|g" \
|
||||||
seccomp/*/*.policy
|
seccomp/${arch}/*.policy
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
export DEFAULT_SECCOMP_POLICY_DIR=$out/share/policy
|
export DEFAULT_SECCOMP_POLICY_DIR=$out/share/policy
|
||||||
|
|
||||||
|
for policy in seccomp/${arch}/*.policy; do
|
||||||
|
compile_seccomp_policy \
|
||||||
|
--default-action trap $policy ''${policy%.policy}.bpf
|
||||||
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildFeatures = [ "default" "virgl_renderer" "virgl_renderer_next" ];
|
buildFeatures = [ "default" "virgl_renderer" "virgl_renderer_next" ];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/share/policy/
|
mkdir -p $out/share/policy/
|
||||||
cp seccomp/${arch}/* $out/share/policy/
|
cp -v seccomp/${arch}/*.bpf $out/share/policy/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
CROSVM_CARGO_TEST_KERNEL_BINARY =
|
CROSVM_CARGO_TEST_KERNEL_BINARY =
|
||||||
|
Loading…
Reference in New Issue
Block a user