From 15ca7fabf3fe488501bf7d17b0898ad35815c4bf Mon Sep 17 00:00:00 2001 From: amielke Date: Sat, 18 Apr 2026 14:54:31 +0200 Subject: [PATCH] dev-python: update ProtonVPN dependency stack Signed-off-by: amielke --- .../proton-core/proton-core-0.7.0.ebuild | 2 +- dev-python/proton-keyring-linux/Manifest | 1 + .../proton-keyring-linux-0.2.1.ebuild | 33 +++ dev-python/proton-vpn-api-core/Manifest | 1 + .../proton-vpn-api-core-4.19.1.ebuild | 52 +++++ dev-python/proton-vpn-local-agent/Manifest | 1 + .../proton-vpn-local-agent-1.6.1.ebuild | 219 ++++++++++++++++++ .../proton-vpn-network-manager/Manifest | 1 + .../proton-vpn-network-manager-0.13.5.ebuild | 56 +++++ 9 files changed, 365 insertions(+), 1 deletion(-) create mode 100644 dev-python/proton-keyring-linux/proton-keyring-linux-0.2.1.ebuild create mode 100644 dev-python/proton-vpn-api-core/proton-vpn-api-core-4.19.1.ebuild create mode 100644 dev-python/proton-vpn-local-agent/proton-vpn-local-agent-1.6.1.ebuild create mode 100644 dev-python/proton-vpn-network-manager/proton-vpn-network-manager-0.13.5.ebuild diff --git a/dev-python/proton-core/proton-core-0.7.0.ebuild b/dev-python/proton-core/proton-core-0.7.0.ebuild index ae2096fb58..0429627f07 100644 --- a/dev-python/proton-core/proton-core-0.7.0.ebuild +++ b/dev-python/proton-core/proton-core-0.7.0.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{12..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 diff --git a/dev-python/proton-keyring-linux/Manifest b/dev-python/proton-keyring-linux/Manifest index 43068fcc16..cae47c4ecb 100644 --- a/dev-python/proton-keyring-linux/Manifest +++ b/dev-python/proton-keyring-linux/Manifest @@ -1 +1,2 @@ DIST proton-keyring-linux-0.2.0.tar.gz 17903 BLAKE2B 112562c61a02b05fb972cd1fff435e3ac2584fe869ae6a918d644579a667b750a0a594724f3b29e947d8c92fcc04e7fc75e0623d00e4d3a5ca08df1bcb55c2a8 SHA512 a3a79a11a8ad238d379fb050826a3941df960dd6eb0feba6bcea76c49842b46aac232dc7d40f647a7f0e2b574ff0b274bc409aa9424154621b4dc1c4de4c3cbe +DIST proton-keyring-linux-0.2.1.tar.gz 18055 BLAKE2B cb107c11c028f2c173cfbca8496ff27eab3038f2741878ecc95a92c183e61e9402da206d7740f76a8c8faed9f859702f7495b2f55713fd2dd3b673ade0386563 SHA512 293c764814489a8503f60b88cf65c4b8f146f8e2e62ccfb7a9848d430200c472f2a9931ca1e8cca7597af9a5f754c79d161cfe9e9538962efeb5b7f17329f4cd diff --git a/dev-python/proton-keyring-linux/proton-keyring-linux-0.2.1.ebuild b/dev-python/proton-keyring-linux/proton-keyring-linux-0.2.1.ebuild new file mode 100644 index 0000000000..3bada02dd1 --- /dev/null +++ b/dev-python/proton-keyring-linux/proton-keyring-linux-0.2.1.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 + +DESCRIPTION="Proton Technologies keyring plugins for linux" +HOMEPAGE="https://github.com/ProtonVPN/python-proton-keyring-linux" +SRC_URI="https://github.com/ProtonVPN/python-proton-keyring-linux/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/python-${P}" +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-python/keyring[${PYTHON_USEDEP}] + dev-python/proton-core[${PYTHON_USEDEP}] + virtual/secret-service +" + +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + sed -i "/--cov/d" setup.cfg || die +} diff --git a/dev-python/proton-vpn-api-core/Manifest b/dev-python/proton-vpn-api-core/Manifest index 958f6b1989..016b3bcb62 100644 --- a/dev-python/proton-vpn-api-core/Manifest +++ b/dev-python/proton-vpn-api-core/Manifest @@ -1,2 +1,3 @@ DIST proton-vpn-api-core-0.46.1-remove-anonymous-bug-report.patch 29567 BLAKE2B 660c30d219d41dd6b3259186015b312126adf48e83e0f15d6431b2dd08ae784ee6194bfaad98d64990230ed52e55460b58aa4d73c897c5fccd9ce90a3616e560 SHA512 83a0f35befaa26a0c5664cab3772e90ec873a304a49275ebda9c73488a888b98d9b47c6026c384e4cd54faa705bb7b7a4353809b836da86141ef0bfd18d448cf DIST proton-vpn-api-core-0.46.1.tar.gz 118320 BLAKE2B 89500b4ae26f3f521573189c1b938b5353a087e7e265ba7bc6b9828856de581fee64f67007979af3cc1f30c9d2e202fd40e43a9ca8fcf90be6842072a06c6435 SHA512 7279ad3cc0fe28b456e91c0081b7f6f5d512598405d60821e844cfffcec07f3383768370b5192b99e7347e83a80d73572a4b4a4859accd8dc4a63e7c788136ea +DIST proton-vpn-api-core-4.19.1.tar.gz 165858 BLAKE2B d573e34b8c09340a98875b18fea5407dd50330fb9f5fbd312f9587c67ff97365efe38416b4b3da3b8ef1f7f62ebbb4aa0dc4e8e05c31b6572259fabeb5f03a6c SHA512 2e7299ed8f3d142ad7a4cc362ba5d86d5e3db3ae226f37c1ca0bd1901d162fce6fb06f2c73ad4ea38137c595d47ecd6369304666b017697ca651089050ce1dcb diff --git a/dev-python/proton-vpn-api-core/proton-vpn-api-core-4.19.1.ebuild b/dev-python/proton-vpn-api-core/proton-vpn-api-core-4.19.1.ebuild new file mode 100644 index 0000000000..715ab7d97c --- /dev/null +++ b/dev-python/proton-vpn-api-core/proton-vpn-api-core-4.19.1.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 + +DESCRIPTION="Proton AG VPN Core API" +HOMEPAGE="https://github.com/ProtonVPN/python-proton-vpn-api-core" + +SRC_URI=" + https://github.com/ProtonVPN/python-proton-vpn-api-core/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz +" + +S="${WORKDIR}/python-${P}" +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND="test? ( dev-python/pytest-asyncio[${PYTHON_USEDEP}] )" + +RDEPEND=" + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/distro[${PYTHON_USEDEP}] + >=dev-python/proton-core-0.5.0[${PYTHON_USEDEP}] + dev-python/pynacl[${PYTHON_USEDEP}] +" + +distutils_enable_sphinx docs +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + sed -i "/--cov/d" setup.cfg || die +} + +python_test() { + # VPN connection cannot be tested within sandbox + local EPYTEST_IGNORE=( + tests/connection + tests/core/refresher + tests/core/test_{connection,settings}.py + ) + + XDG_RUNTIME_DIR="${T}/python_test" epytest +} diff --git a/dev-python/proton-vpn-local-agent/Manifest b/dev-python/proton-vpn-local-agent/Manifest index a0897063e1..072c140395 100644 --- a/dev-python/proton-vpn-local-agent/Manifest +++ b/dev-python/proton-vpn-local-agent/Manifest @@ -90,6 +90,7 @@ DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495 DIST prettyplease-0.2.20.crate 57809 BLAKE2B 7c0b96177508fb61f76e45cb1df901f09a48611494d807acde17fede4c62f79053a09737ab6d31562bb60edfb2edc43028e62a2c4136ed799ab247086531db46 SHA512 fd6aa2cfbbb953227653eb5cc9f48d8ae6a7120026144578a9250397511416af461fff9b3f4a0fcf565d9ae589d4c0ed7523951ef36c491270d740efb61427ec DIST proc-macro2-1.0.94.crate 52391 BLAKE2B c50986bb34468379e22215c6572c2b722f54381c02258fcba6805eef0166e4bb591d20b94b9084b5d68972df8ef12476ce0d1081588cf80dad3c4ffffa347660 SHA512 3fc4552187d4130f0fdb415f94e625c156a1fdc6cc955fda8a68b49983ac8a83b897f43d1caa130c4f0932fbd9651140b7670601faa2b9b936947c3fd89f7769 DIST proton-vpn-local-agent-1.4.8.tar.gz 55228 BLAKE2B 2b0db7e38d21818f5e82d2e3a1d2749a6cdb21c95bcf13cac25bac4d0f9c8e79543b67f01863782966b761d5ed8c02e72f82a04e9433487c8a0283cd3ddf9d6a SHA512 76d635a008598b737fc239f76e8e0293be451a43d88512c9045b7cd169e9e09390383be49a4ad99aa4938454e957bcd0676d5bd1c8ab814dc5e28d4a3c900b95 +DIST proton-vpn-local-agent-1.6.1.tar.gz 55622 BLAKE2B fcce5e120fadd30883fae7ae68825ddcb2cd64fded69a46a1a2d2c39fe4e084f5c3add3e4f213e5254bd213119d2a96060e8ca3f462af02871c01510e225d542 SHA512 8c2dce71d8b45dbeb50c647fc37b1b0974211e7b95344ca46674d7197e3737851fb0dacf7ff789927468a8f271c472179fae4e080cd09d89ca9794aaa193acc1 DIST pyo3-0.24.0.crate 1108432 BLAKE2B 03098e1ed1f2bcb489ab5fbaf2605631f75804ad138591ae88975c287b8e7544e5f70ef7e3261625075498ac00545b79f6c0b5aab3bcdee2897cbbfabc3f7e87 SHA512 2b9be3cc780c48198ccad08c304053c5248d7c3b7a32e8a3eeba48246b962aa71cbf31ab8c49cab9b555933cccd447412761017b477019a35dc2598999fe63ad DIST pyo3-async-runtimes-0.24.0.crate 54014 BLAKE2B 42f3a32abd6752116d621b001331da04dfc5d10f50f1da55f1f59abe78952913b72546f47b26d3c2e20ff94a0352f94c3fd49de8be550e6d3aa1253e914dad91 SHA512 f634ddfecb749fdc8f57016edd7e4b91570ababf7b9d9f9c2705a873a47f70efabac2ce5ebccd14dc544f42f3a8ad0b85e90132cbbaba59b9db6c042df1a0b4b DIST pyo3-async-runtimes-macros-0.24.0.crate 13676 BLAKE2B ff6d855d5a2243a69b825d366090894c5fb859df578cf41e87f396f7f5ad0527d899b8af599468f522c8270690e7396506d6c5275eb8188e4515107be557474a SHA512 72a58559b87d7a60bb6e79b8c7acc0785ece0537ba289490c6c9e2c308f4d25ec58bc071e0230cbd956998430024541a9e47f6a3ace4e841edde3fb77101e87d diff --git a/dev-python/proton-vpn-local-agent/proton-vpn-local-agent-1.6.1.ebuild b/dev-python/proton-vpn-local-agent/proton-vpn-local-agent-1.6.1.ebuild new file mode 100644 index 0000000000..2c9c1f4f79 --- /dev/null +++ b/dev-python/proton-vpn-local-agent/proton-vpn-local-agent-1.6.1.ebuild @@ -0,0 +1,219 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Autogenerated by pycargoebuild 0.14.0 + +EAPI=8 + +CRATES=" + addr2line@0.22.0 + adler@1.0.2 + aho-corasick@1.1.3 + anstream@0.6.15 + anstyle-parse@0.2.5 + anstyle-query@1.1.1 + anstyle-wincon@3.0.4 + anstyle@1.0.8 + asn1-rs-derive@0.5.1 + asn1-rs-impl@0.2.0 + asn1-rs@0.6.2 + async-trait@0.1.81 + autocfg@1.3.0 + aws-lc-rs@1.8.1 + aws-lc-sys@0.20.1 + backtrace@0.3.73 + base64@0.22.1 + bincode@1.3.3 + bindgen@0.69.4 + bitflags@2.6.0 + bytes@1.7.1 + cc@1.1.8 + cexpr@0.6.0 + cfg-if@1.0.0 + clang-sys@1.8.1 + cmake@0.1.50 + colorchoice@1.0.2 + data-encoding@2.9.0 + der-parser@9.0.0 + deranged@0.5.3 + displaydoc@0.2.5 + dunce@1.0.5 + either@1.13.0 + env_filter@0.1.2 + env_logger@0.11.5 + errno@0.3.9 + fs_extra@1.3.0 + futures-channel@0.3.31 + futures-core@0.3.31 + futures-executor@0.3.31 + futures-io@0.3.31 + futures-macro@0.3.31 + futures-sink@0.3.31 + futures-task@0.3.31 + futures-util@0.3.31 + futures@0.3.31 + getrandom@0.2.15 + gimli@0.29.0 + glob@0.3.1 + heck@0.5.0 + hermit-abi@0.3.9 + home@0.5.9 + humantime@2.1.0 + indoc@2.0.5 + is_terminal_polyfill@1.70.1 + itertools@0.12.1 + itoa@1.0.11 + jobserver@0.1.32 + lazy_static@1.5.0 + lazycell@1.3.0 + libc@0.2.155 + libloading@0.8.5 + linux-raw-sys@0.4.14 + lock_api@0.4.12 + log@0.4.22 + matchers@0.1.0 + memchr@2.7.4 + memoffset@0.9.1 + minimal-lexical@0.2.1 + miniz_oxide@0.7.4 + mio@1.0.1 + mirai-annotations@1.12.0 + nom@7.1.3 + nu-ansi-term@0.46.0 + num-bigint@0.4.6 + num-conv@0.1.0 + num-integer@0.1.46 + num-traits@0.2.19 + object@0.36.3 + oid-registry@0.7.1 + once_cell@1.19.0 + overload@0.1.1 + parking_lot@0.12.3 + parking_lot_core@0.9.10 + paste@1.0.15 + pin-project-lite@0.2.14 + pin-utils@0.1.0 + portable-atomic@1.7.0 + powerfmt@0.2.0 + prettyplease@0.2.20 + proc-macro2@1.0.94 + pyo3-async-runtimes-macros@0.24.0 + pyo3-async-runtimes@0.24.0 + pyo3-build-config@0.24.0 + pyo3-ffi@0.24.0 + pyo3-macros-backend@0.24.0 + pyo3-macros@0.24.0 + pyo3@0.24.0 + quote@1.0.36 + redox_syscall@0.5.3 + regex-automata@0.1.10 + regex-automata@0.4.7 + regex-syntax@0.6.29 + regex-syntax@0.8.4 + regex@1.10.6 + ring@0.17.8 + rustc-demangle@0.1.24 + rustc-hash@1.1.0 + rusticata-macros@4.1.0 + rustix@0.38.34 + rustls-pemfile@2.1.3 + rustls-pki-types@1.8.0 + rustls-webpki@0.102.6 + rustls@0.23.12 + ryu@1.0.18 + scopeguard@1.2.0 + serde@1.0.204 + serde_derive@1.0.204 + serde_json@1.0.122 + sharded-slab@0.1.7 + shlex@1.3.0 + signal-hook-registry@1.4.2 + slab@0.4.9 + smallvec@1.13.2 + socket2@0.5.7 + spin@0.9.8 + static_assertions@1.1.0 + subtle@2.6.1 + syn@2.0.100 + synstructure@0.13.2 + target-lexicon@0.13.2 + test-log-macros@0.2.16 + test-log@0.2.16 + thiserror-impl@1.0.63 + thiserror@1.0.63 + thread_local@1.1.8 + time-core@0.1.6 + time-macros@0.2.24 + time@0.3.43 + tokio-macros@2.4.0 + tokio-rustls@0.26.0 + tokio@1.39.2 + tracing-core@0.1.33 + tracing-log@0.2.0 + tracing-subscriber@0.3.19 + tracing@0.1.41 + unicode-ident@1.0.12 + unindent@0.2.3 + untrusted@0.9.0 + utf8parse@0.2.2 + valuable@0.1.0 + wasi@0.11.0+wasi-snapshot-preview1 + webpki-roots@0.26.6 + webpki@0.22.4 + which@4.4.2 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-x86_64-pc-windows-gnu@0.4.0 + winapi@0.3.9 + windows-sys@0.52.0 + windows-targets@0.52.6 + windows_aarch64_gnullvm@0.52.6 + windows_aarch64_msvc@0.52.6 + windows_i686_gnu@0.52.6 + windows_i686_gnullvm@0.52.6 + windows_i686_msvc@0.52.6 + windows_x86_64_gnu@0.52.6 + windows_x86_64_gnullvm@0.52.6 + windows_x86_64_msvc@0.52.6 + x509-parser@0.16.0 + zeroize@1.8.1 + zeroize_derive@1.4.2 +" + +RUST_MIN_VER="1.81.0" +PYTHON_COMPAT=( python3_{11..14} ) + +inherit cargo python-r1 + +DESCRIPTION="Proton VPN local agent written in Rust" +HOMEPAGE="https://github.com/ProtonVPN/local-agent-rs" + +SRC_URI=" + https://github.com/ProtonVPN/local-agent-rs/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz + ${CARGO_CRATE_URIS} +" + +S="${WORKDIR}/local-agent-rs-${PV}/python-proton-vpn-local-agent" +LICENSE="GPL-3+" + +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0 + openssl Unicode-DFS-2016 +" + +SLOT="0" +KEYWORDS="~amd64" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="${PYTHON_DEPS}" + +src_install() { + einstalldocs + + pushd target/release &>> /dev/null || die + mv libpython_proton_vpn_local_agent.so local_agent.abi3.so || die + popd &>> /dev/null || die + + python_moduleinto proton/vpn + python_foreach_impl python_domodule target/release/local_agent.abi3.so +} diff --git a/dev-python/proton-vpn-network-manager/Manifest b/dev-python/proton-vpn-network-manager/Manifest index 3223eba458..bc3776fcd8 100644 --- a/dev-python/proton-vpn-network-manager/Manifest +++ b/dev-python/proton-vpn-network-manager/Manifest @@ -1 +1,2 @@ DIST proton-vpn-network-manager-0.13.0.tar.gz 61201 BLAKE2B 92963e146621d793d0a01412a023e7fcd8103828d157f5add44409226e2d049ca5461c09b4bea27f64cc1ab35e0b020f580f69544daee219b0a52ab47e53d85b SHA512 f938d70e971f1115c95c9fd4d12a7ffc7ba7b411cedee0c9d9c27729bd7b1c8fc01ae19efc1ec455c0e623b21badd0f7cfa067a411cbc2c97322b430eb8d4069 +DIST proton-vpn-network-manager-0.13.5.tar.gz 61456 BLAKE2B 3a855f6e0f1d0b6cfd611a755cf8f06d4563bde0944f842c6c8205a4b495bf28222ee466af94efa144aaf995345634735aa5bd1511f1a4ea33e6d10d5859eddf SHA512 103f0a1aac808a71921adf11a93a5cdf2f2add0e6b93e19fe9ec88b6c7871f8acbcbdda04e2255f355e2bd982a264d74b2b10c5c2f9046c1551e9ef04e08b02c diff --git a/dev-python/proton-vpn-network-manager/proton-vpn-network-manager-0.13.5.ebuild b/dev-python/proton-vpn-network-manager/proton-vpn-network-manager-0.13.5.ebuild new file mode 100644 index 0000000000..46053d3554 --- /dev/null +++ b/dev-python/proton-vpn-network-manager/proton-vpn-network-manager-0.13.5.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 linux-info + +DESCRIPTION="Proton VPN Network Manager handler" +HOMEPAGE="https://github.com/ProtonVPN/python-proton-vpn-network-manager" +SRC_URI="https://github.com/ProtonVPN/python-proton-vpn-network-manager/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/python-${P}" +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND="test? ( dev-python/pytest-asyncio[${PYTHON_USEDEP}] )" + +RDEPEND=" + dev-python/jinja2[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/proton-core[${PYTHON_USEDEP}] + >=dev-python/proton-vpn-api-core-0.45.1[${PYTHON_USEDEP}] + >=dev-python/proton-vpn-local-agent-1.4.4[${PYTHON_USEDEP}] + dev-python/pygobject[${PYTHON_USEDEP}] + net-misc/networkmanager[introspection] + net-vpn/networkmanager-openvpn +" + +CONFIG_CHECK="~DUMMY ~WIREGUARD" + +PATCHES=( + "${FILESDIR}/${PN}-0.12.13-fix-networkmanager-plugin-loading.patch" + "${FILESDIR}/${PN}-0.12.13-remove-call-to-apt.patch" +) + +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + sed -i "/--cov/d" setup.cfg || die +} + +python_test() { + # VPN connection cannot be tested within sandbox + local EPYTEST_IGNORE=( + tests/unit/core/test_networkmanager.py + tests/unit/wireguard/test_wireguard.py + ) + + XDG_RUNTIME_DIR="${T}/python_test" epytest +}