commit: 43434daccba27b682d9975de2a895a9a0b9200e2
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 3 19:51:11 2025 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Apr 20 11:42:54 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=43434dac
net-proxy/mitmproxy-linux: New package, 0.11.5
Required for net-proxy/mitmproxy-rs bump.
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
net-proxy/mitmproxy-linux/Manifest | 12 +++
.../mitmproxy-linux-0.11.5-no-host-aya-ebpf.patch | 36 +++++++
net-proxy/mitmproxy-linux/metadata.xml | 12 +++
.../mitmproxy-linux/mitmproxy-linux-0.11.5.ebuild | 103 +++++++++++++++++++++
4 files changed, 163 insertions(+)
diff --git a/net-proxy/mitmproxy-linux/Manifest
b/net-proxy/mitmproxy-linux/Manifest
new file mode 100644
index 000000000000..636b43c2af3f
--- /dev/null
+++ b/net-proxy/mitmproxy-linux/Manifest
@@ -0,0 +1,12 @@
+DIST boringtun-e3252d9c4f4c8fc628995330f45369effd4660a1.gh.tar.gz 219190
BLAKE2B
d20cb9619cee7d2f8db118deb14c13ddc1ec1574902f1fa24d2cebc5d2838f95ab3fb252413616d8af4d4d362b2031fdd447021bde4baf554cb8c7eb68cee77b
SHA512
3dd2bdcc2e94714b448df72eab54bfddb9e436a4799fe0b266777b3bac5debdeb4495f31495736c98f86725921758ccbdd0c25a2404e4a4472dd8c6d14771b7c
+DIST compiler_builtins-0.1.146.crate 212475 BLAKE2B
9036a9e643ad310932c7943ce5e41c53029f08e604e8ed0a6255d49cf98ecea832dd19ffd109c34a83873880f1c281dc5991bf3f34b9e04f6e9562d40926fd48
SHA512
51db04a4e2b7fbc8a7b7407d57a9c82884f9950f5937cf422d14d4c53bc6b942d90e443857cf0c363b0365202713ecbaea3977e9c1cf534c54b041a1f6efd409
+DIST dlmalloc-0.2.7.crate 84295 BLAKE2B
8ab86016f66e18fc367645ea3871babdb6077895abf59534514c1ff6a5f072cb06d86c8585798d90822f1e7a45180f5ec5cc82811a93e8bafc16e7b28d375faf
SHA512
d3da8fb71e6f02ee3f4cbb9fd63170f7b6dc16aa2fcad5d19a718a0872dbc3596bc98d9ee6ae17dafcfd18d295582bd611c8bf86916aaa17a7849f4c6cc81f3e
+DIST fortanix-sgx-abi-0.5.0.crate 13334 BLAKE2B
ccdfdd2e7a0592b0efcd4269695b7367e1e6fd2da7aac3b6e2b174375e787ec00134c3156286656155839367c031aabb748e50c15aa539ab3b3da22de3fef132
SHA512
4239bd0fe3a2c9e0b4a0e0eb82bacb417e1f798fb4d908bb5cc021ddfe6e41688f8ee16f9a18cda692ef78afb264a440af7444cfde43a0c29d0299781ea43ccb
+DIST getopts-0.2.21.crate 18457 BLAKE2B
10651e947e49acc768d99ae56ca5a7f37c1f61bbd1674e2ca58e3ae563fd64f3563d53ccdd0ae7a878710a39e13a99ac8c274974157db2c691f8c222de14992d
SHA512
5515ae6ccb0f03efb783683f46cfd1755342c4e83bb673ff8914c7f9dea0dae333f8d9703865e992659a359067df0e8b0e2253de0d4b0c7707cbe7d73401bb1f
+DIST miniz_oxide-0.8.3.crate 61827 BLAKE2B
ae8626de8711a8b7c2bce52d2e226a3e973ba6919ed33904883ae6287f848fcf40642afdb9ad71bba19db181fe9ea354c85cd81c1dad889588d5df8fcc99b9f2
SHA512
b79cd67a477851b18ed87c887bfd9f40f97059eb3fedbdc3a52eac66b5fcea42cae833eea39fd62becdb057b337f91d27f2087a407d02770feeaea934c0b1e1c
+DIST mitmproxy_linux-0.11.5.tar.gz 1285776 BLAKE2B
5ba240481abab07e399fb94732c47e9d6f4ebb33a00d4966f44766d270123af43eceda7ae8b1d190b3e29f080568f4d92df52d785c5b60d67a6f1c3889032404
SHA512
faf99e52dbc0f52e95f108fa252c153e1c7a3177a9f2c990e768f5e0289f247dda4c85a150407ccc750a3e171f984d10b77ee9759138935f2d2631f09bd223e1
+DIST mitmproxy_rs-0.11.5-crates.tar.xz 50121936 BLAKE2B
1f4645c44c42b904c300661b4314c0245e16a6bec6cdc7198d38e0492cccc4704cfdf479c5943ab73b6806ad62f9385289b5a7e9cee582d3e0def8381dac5869
SHA512
70facfa58bc45e2e0ee854b8d3fbd53818a93b319a117019f4713ab15793e065ea263ad6edae5086938755433c20756c7d23c3b023451e4cc052f2a98f956f60
+DIST r-efi-4.5.0.crate 63921 BLAKE2B
ea8c1c5f9d7ce0a3dc5b541dbd276895872143b6337aa2269914a89a4da1f9da278fa4a153cc3d30fd1a86f2b61abd2431ce0d607d38540bdfa642e3e09b03c3
SHA512
5a66e9425bcd4babed85e7a79d09fa5beee65a4d2cacb3916fcc12518d6b927f557630415bdc446ff21c31cd4c78fe7cea6031b5557ee8c98d6dbae6a5e0198d
+DIST r-efi-alloc-1.0.0.crate 13351 BLAKE2B
aae3d9bf923e3757871caeac7b13c17917ad595ff7d281ba7a4dcae822aaa85c5aef8de208121fdbcdc1d80174e041d794c515a0a8866b37848ae173957ef29c
SHA512
4c37970eb78ce19d85701f7b6e24b066b3dfa6dda6823701d1312561b48f4aab5aa2be6be3277ac753a8a046bfd04c8d90010415687426cd4de4c6d5db474b13
+DIST unicode-width-0.1.14.crate 271615 BLAKE2B
dd2e1504caedecb5d37c397ba05446d3d762b8b6833a8032ebbc213e324d53d89db5e96ed2f7223096e5754d800b39a54105906effc88d9437d7acb9e7beb81e
SHA512
3c58a18776aa82cc13c761789a47901616cd98a30356f93d7eb05ae457314209d0a66213e2bbfa5eb8b59be6beacf62438234ce8daafa31b128dbf7d5d6fcadb
+DIST unwinding-0.2.5.crate 28025 BLAKE2B
48ec97462daa9d42f6f257daa4dbf72dfc40c58a04f154264892d4918cbde01faf50bff08c8400789b4147388c1fb3a958a1f323b09f0dc20cc3fe60c9a5c63b
SHA512
67608b01fa7adde11510520d5136239732e0361e34c004bf89e3f8e29587adbbaed2e333d9c799169e97dcd2cbbc644189c9f3c294fa905d5eaf904a5bea7dd5
diff --git
a/net-proxy/mitmproxy-linux/files/mitmproxy-linux-0.11.5-no-host-aya-ebpf.patch
b/net-proxy/mitmproxy-linux/files/mitmproxy-linux-0.11.5-no-host-aya-ebpf.patch
new file mode 100644
index 000000000000..6b8a5888e0c6
--- /dev/null
+++
b/net-proxy/mitmproxy-linux/files/mitmproxy-linux-0.11.5-no-host-aya-ebpf.patch
@@ -0,0 +1,36 @@
+diff --git a/mitmproxy-linux-ebpf-common/Cargo.toml
b/mitmproxy-linux-ebpf-common/Cargo.toml
+index aed3112..90254e3 100644
+--- a/mitmproxy-linux-ebpf-common/Cargo.toml
++++ b/mitmproxy-linux-ebpf-common/Cargo.toml
+@@ -8,9 +8,5 @@ edition.workspace = true
+ rust-version.workspace = true
+ publish.workspace = true
+
+-# aya-ebpf currently does not compile on Windows.
+-[target.'cfg(target_os = "linux")'.dependencies]
+-aya-ebpf = { workspace = true }
+-
+ [lib]
+ path = "src/lib.rs"
+diff --git a/mitmproxy-linux-ebpf-common/src/lib.rs
b/mitmproxy-linux-ebpf-common/src/lib.rs
+index 0562ba7..1378f78 100644
+--- a/mitmproxy-linux-ebpf-common/src/lib.rs
++++ b/mitmproxy-linux-ebpf-common/src/lib.rs
+@@ -1,9 +1,5 @@
+ #![no_std]
+
+-// aya-ebpf currently does not compile on Windows.
+-#[cfg(target_os = "linux")]
+-use aya_ebpf::TASK_COMM_LEN;
+-#[cfg(not(target_os = "linux"))]
+ const TASK_COMM_LEN: usize = 16;
+
+ type Pid = u32;
+diff --git a/mitmproxy-linux/Cargo.toml b/mitmproxy-linux/Cargo.toml
+index 55e3c57..0b02dd9 100644
+--- a/mitmproxy-linux/Cargo.toml
++++ b/mitmproxy-linux/Cargo.toml
+@@ -35,3 +35,2 @@ const-sha1 = "0.3.0"
+-mitmproxy-linux-ebpf = { path = "../mitmproxy-linux-ebpf" }
+
+ [target.'cfg(target_os = "linux")'.dev-dependencies]
diff --git a/net-proxy/mitmproxy-linux/metadata.xml
b/net-proxy/mitmproxy-linux/metadata.xml
new file mode 100644
index 000000000000..eccf5e75b573
--- /dev/null
+++ b/net-proxy/mitmproxy-linux/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>[email protected]</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">mitmproxy/mitmproxy_rs</remote-id>
+ <remote-id type="pypi">mitmproxy-linux</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-proxy/mitmproxy-linux/mitmproxy-linux-0.11.5.ebuild
b/net-proxy/mitmproxy-linux/mitmproxy-linux-0.11.5.ebuild
new file mode 100644
index 000000000000..10cd9e25f278
--- /dev/null
+++ b/net-proxy/mitmproxy-linux/mitmproxy-linux-0.11.5.ebuild
@@ -0,0 +1,103 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Extra crates required at runtime via rustc-build-sysroot crate.
+# Note: versions are locked in
/usr/lib/rust/*/lib/rustlib/src/rust/library/Cargo.lock.
+CRATES="
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+ [email protected]
+"
+
+# Implied by crates above.
+RUST_MIN_VER=1.86.0
+RUST_MAX_VER=1.86.0
+
+declare -A GIT_CRATES=(
+
[boringtun]='https://github.com/cloudflare/boringtun;e3252d9c4f4c8fc628995330f45369effd4660a1;boringtun-%commit%/boringtun'
+)
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+PYTHON_COMPAT=( python3_{12..13} )
+RUST_REQ_USE="llvm_targets_BPF"
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="mitmproxy's Rust bits"
+HOMEPAGE="
+ https://github.com/mitmproxy/mitmproxy_rs/
+ https://pypi.org/project/mitmproxy-rs/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+
https://github.com/gentoo-crate-dist/mitmproxy_rs/releases/download/v${PV}/mitmproxy_rs-${PV}-crates.tar.xz
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC
+ LGPL-3+ MIT Unicode-3.0 WTFPL-2 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ dev-util/bpf-linker
+"
+
+src_prepare() {
+ local PATCHES=(
+ # aya-ebpf overwrites libc functions with incompatible
+ # implementations that break everything, and therefore
+ # can only be used for bpf* targets
+ # https://github.com/aya-rs/aya/issues/1254
+ "${FILESDIR}/${PN}-0.11.5-no-host-aya-ebpf.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # replace upstream crate substitution with our crate substitution, sigh
+ local bor_dep=$(grep ^boringtun "${ECARGO_HOME}"/config.toml || die)
+ sed -i -e "/boringtun/s;^.*$;${bor_dep};" Cargo.toml || die
+
+ # this only implicitly builds mitmproxy-linux-ebpf, and is broken
+ # https://github.com/mitmproxy/mitmproxy/issues/7663
+ rm mitmproxy-linux/build.rs || die
+}
+
+src_configure() {
+ # first, we must build mitmproxy-linux-ebpf for the bpf target
+ # bpf-linker requires BPF target that is only available in nightly
+ local -x RUSTC_BOOTSTRAP=1
+ # no clue why this needs to be explicit
+ local -x RUSTFLAGS="-C linker=bpf-linker"
+
+ local cmd=(
+ "${CARGO}" build
+ -Z build-std=core
+ --bins
+ --release
+ --target=bpfel-unknown-none
+ )
+
+ pushd mitmproxy-linux-ebpf >/dev/null || die
+ echo "${cmd[*]}" >&2
+ "${cmd[@]}" || die "${cmd[*]} failed"
+ popd >/dev/null || die
+
+ export OUT_DIR="${S}/target/bpfel-unknown-none/release"
+}
+
+python_test() {
+ cargo_src_test --manifest-path mitmproxy-linux/Cargo.toml
+}