1{ 2 lib, 3 buildPythonPackage, 4 bpf-linker, 5 rustPlatform, 6 mitmproxy-rs, 7}: 8 9buildPythonPackage { 10 pname = "mitmproxy-linux"; 11 inherit (mitmproxy-rs) version src cargoDeps; 12 pyproject = true; 13 14 postPatch = '' 15 substituteInPlace ../mitmproxy-rs-*-vendor/aya-build-*/src/lib.rs \ 16 --replace-fail '"+nightly",' "" \ 17 --replace-fail '"-Z",' "" \ 18 --replace-fail '"build-std=core",' "" 19 20 substituteInPlace mitmproxy-linux-ebpf/.cargo/config.toml \ 21 --replace-fail 'build-std = ["core"]' "" 22 23 cp ${./fix-mitmproxy-linux-redirector-path.diff} tmp.diff 24 substituteInPlace tmp.diff \ 25 --replace-fail @mitmproxy-linux-redirector@ $out/bin/mitmproxy-linux-redirector 26 patch -p1 < tmp.diff 27 ''; 28 29 RUSTFLAGS = "-C target-feature="; 30 RUSTC_BOOTSTRAP = 1; 31 32 buildAndTestSubdir = "mitmproxy-linux"; 33 34 nativeBuildInputs = [ 35 bpf-linker 36 rustPlatform.cargoSetupHook 37 rustPlatform.maturinBuildHook 38 ]; 39 40 # repo has no python tests 41 doCheck = false; 42 43 pythonImportsCheck = [ "mitmproxy_linux" ]; 44 45 meta = { 46 inherit (mitmproxy-rs.meta) changelog license maintainers; 47 description = "Linux Rust bits in mitmproxy"; 48 homepage = "https://github.com/mitmproxy/mitmproxy_rs/tree/main/mitmproxy-linux"; 49 platforms = lib.platforms.linux; 50 }; 51}