Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-proton-vpn-local-agent for
openSUSE:Factory checked in at 2026-08-09 21:41:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-proton-vpn-local-agent (Old)
and /work/SRC/openSUSE:Factory/.python-proton-vpn-local-agent.new.16738
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-proton-vpn-local-agent"
Sun Aug 9 21:41:25 2026 rev:7 rq:1370231 version:1.6.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-proton-vpn-local-agent/python-proton-vpn-local-agent.changes
2026-07-31 16:10:06.410272256 +0200
+++
/work/SRC/openSUSE:Factory/.python-proton-vpn-local-agent.new.16738/python-proton-vpn-local-agent.changes
2026-08-09 21:41:33.410978913 +0200
@@ -1,0 +2,8 @@
+Fri Jul 31 19:25:45 UTC 2026 - Ákos Szőts <[email protected]>
+
+- The package is now a proper Python package with the Rust .so file shipped in
its correct directory
+ - proton-vpn-local-agent sub-package got removed (because the .so file is
the Python package)
+- Build is done via maturin, without manual cargo calls, symlinking, or
copying for installation
+- Tests are enabled
+
+-------------------------------------------------------------------
Old:
----
1.6.3.tar.gz
New:
----
python-proton-vpn-local-agent-1.6.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-proton-vpn-local-agent.spec ++++++
--- /var/tmp/diff_new_pack.Q9SfqB/_old 2026-08-09 21:41:35.315043966 +0200
+++ /var/tmp/diff_new_pack.Q9SfqB/_new 2026-08-09 21:41:35.315043966 +0200
@@ -16,61 +16,90 @@
#
-%{?sle15_python_module_pythons}
%define _name python-proton-vpn-local-agent
+%{?sle15_python_module_pythons}
Name: python-proton-vpn-local-agent
Version: 1.6.3
Release: 0
Summary: Proton VPN local agent written in Rust
License: GPL-3.0-only
URL: https://github.com/ProtonVPN/local-agent-rs
-Source0: %{url}/archive/refs/tags/%{version}.tar.gz
+Source0: %{url}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1: vendor.tar.zst
BuildRequires: %{python_module base}
+BuildRequires: %{python_module cryptography}
+BuildRequires: %{python_module maturin}
+BuildRequires: %{python_module pip}
+BuildRequires: %{python_module pytest-asyncio}
+BuildRequires: %{python_module pytest}
+BuildRequires: %{python_module wheel}
BuildRequires: cargo-packaging
+BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: proton-vpn-local-agent = %{version}
+Requires: python-cryptography
%python_subpackages
%description
-This repo contains a rust crate for communicating with a proton LocalAgent,
-server, and python bindings for that crate.
-
-%package -n proton-vpn-local-agent
-Summary: The library file for the local agent
-
-%description -n proton-vpn-local-agent
-%{summary}.
+It is a rust crate for communicating with the Proton LocalAgent, and Python
bindings for that crate.
%prep
%autosetup -a1 -n local-agent-rs-%{version}
-# See https://github.com/ProtonVPN/local-agent-rs/pull/11
+
+# https://github.com/ProtonVPN/local-agent-rs/pull/11
pushd local_agent_rs
sed -i 's/socket2 = "0.5.7"/socket2 = { version = "0.5.7", features = ["all"]
}/' Cargo.toml
popd
+# https://github.com/ProtonVPN/local-agent-rs/issues/18
+cat > %{_name}/pyproject.toml <<'EOF'
+[build-system]
+requires = ["maturin>=1.0,<2.0"]
+build-backend = "maturin"
+
+[project]
+name = "proton-vpn-local-agent"
+version = "1.6.3"
+requires-python = ">=3.9"
+description = "Proton VPN local agent written in Rust"
+classifiers = [
+ "Programming Language :: Rust",
+ "Programming Language :: Python :: Implementation :: CPython",
+]
+
+[tool.maturin]
+manifest-path = "Cargo.toml"
+module-name = "proton.vpn.local_agent"
+python-source = "."
+bindings = "pyo3"
+EOF
+
+pushd %{_name}
+# https://github.com/ProtonVPN/local-agent-rs/issues/16
+sed -i '/^\[lib\]/a name = "local_agent"' Cargo.toml
+
+# https://github.com/ProtonVPN/local-agent-rs/issues/17
+install -d proton/vpn
+popd
+
%build
pushd %{_name}
-%{cargo_build}
+%pyproject_wheel
popd
%install
-%if 0%{?suse_version} >= 1600 && 0%{?suse_version} < 1650
pushd %{_name}
-%endif
-for p in $(echo "%{pythons}" | sed s/python31/python3.1/g); do
-install -d %{buildroot}%{_libdir}/$p/site-packages/{proton,proton/vpn};
-ln -sr %{buildroot}%{_libdir}/proton/local_agent.so
%{buildroot}%{_libdir}/$p/site-packages/proton/vpn/local_agent.so;
-done
-install -Dm0644 target/release/libpython_proton_vpn_local_agent.so
%{buildroot}%{_libdir}/proton/local_agent.so
+%pyproject_install
+%python_expand %fdupes %{buildroot}%{$python_sitearch}/proton
+popd
+
+%check
+pushd %{_name}
+export PYTHONPATH=%{buildroot}%{python_sitearch}
+%pytest
+popd
%files %{python_files}
%doc README.md
-%dir %{python_sitearch}/proton
-%dir %{python_sitearch}/proton/vpn
-%{python_sitearch}/proton/vpn/local_agent.so
-
-%files -n proton-vpn-local-agent
-%dir %{_libdir}/proton
-%{_libdir}/proton/local_agent.so
+%{python_sitearch}/proton
+%{python_sitearch}/proton_vpn_local_agent*.dist-info
++++++ _service ++++++
--- /var/tmp/diff_new_pack.Q9SfqB/_old 2026-08-09 21:41:35.359045469 +0200
+++ /var/tmp/diff_new_pack.Q9SfqB/_new 2026-08-09 21:41:35.363045606 +0200
@@ -2,8 +2,9 @@
<services>
<service name="download_files" mode="manual" />
<service name="cargo_vendor" mode="manual">
- <param name="src">*.tar.gz</param>
+ <param name="src">python-proton-vpn-local-agent-*.tar.gz</param>
<param name="cargotoml">python-proton-vpn-local-agent/Cargo.toml</param>
+ <param name="update">true</param>
</service>
</services>
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/python-proton-vpn-local-agent/vendor.tar.zst
/work/SRC/openSUSE:Factory/.python-proton-vpn-local-agent.new.16738/vendor.tar.zst
differ: char 7, line 1