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 2025-04-17 16:10:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-proton-vpn-local-agent (Old)
and /work/SRC/openSUSE:Factory/.python-proton-vpn-local-agent.new.30101
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-proton-vpn-local-agent"
Thu Apr 17 16:10:15 2025 rev:2 rq:1270230 version:1.4.5
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-proton-vpn-local-agent/python-proton-vpn-local-agent.changes
2025-04-02 17:12:25.774998928 +0200
+++
/work/SRC/openSUSE:Factory/.python-proton-vpn-local-agent.new.30101/python-proton-vpn-local-agent.changes
2025-04-20 20:08:03.041317994 +0200
@@ -1,0 +2,10 @@
+Mon Apr 14 10:59:10 UTC 2025 - Richard Rahl <[email protected]>
+
+- update to 1.4.5:
+ * local_agent_rs/Cargo.toml: Relax on dependency versions
+ * python-proton-vpn-local-agent/src: replaced pyo3_asyncio_0_21 by
pyo3_async_runtimes
+ * python-proton-vpn-local-agent/Cargo.toml
+ * Improve how pyo3-async-runtimes is used
+ * fix: [VPNLINUX-1195] merge community update
+
+-------------------------------------------------------------------
Old:
----
1.4.4.tar.gz
New:
----
1.4.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-proton-vpn-local-agent.spec ++++++
--- /var/tmp/diff_new_pack.gv2H2Z/_old 2025-04-20 20:08:04.409375493 +0200
+++ /var/tmp/diff_new_pack.gv2H2Z/_new 2025-04-20 20:08:04.413375660 +0200
@@ -19,7 +19,7 @@
%{?sle15_python_module_pythons}
%define _name python-proton-vpn-local-agent
Name: python-proton-vpn-local-agent
-Version: 1.4.4
+Version: 1.4.5
Release: 0
Summary: Proton VPN local agent written in Rust
License: GPL-3.0-only
++++++ 1.4.4.tar.gz -> 1.4.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/local-agent-rs-1.4.4/local_agent_rs/Cargo.lock
new/local-agent-rs-1.4.5/local_agent_rs/Cargo.lock
--- old/local-agent-rs-1.4.4/local_agent_rs/Cargo.lock 2025-03-05
09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/local_agent_rs/Cargo.lock 2025-04-09
15:16:46.000000000 +0200
@@ -475,7 +475,7 @@
[[package]]
name = "local-agent-rs"
-version = "0.10.0"
+version = "0.10.1"
dependencies = [
"async-trait",
"bincode",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/local-agent-rs-1.4.4/local_agent_rs/Cargo.toml
new/local-agent-rs-1.4.5/local_agent_rs/Cargo.toml
--- old/local-agent-rs-1.4.4/local_agent_rs/Cargo.toml 2025-03-05
09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/local_agent_rs/Cargo.toml 2025-04-09
15:16:46.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "local-agent-rs"
-version = "0.10.0"
+version = "0.10.1"
edition = "2021"
# See more keys and their definitions at
https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -12,15 +12,15 @@
rustls-pki-types = "1.7.0"
rustls-pemfile = "2.1.2"
serde_json = "1.0.117"
-thiserror = "1.0.60"
+thiserror = ">=1.0.60"
webpki = "0.22.4"
-webpki-roots = "0.26.3"
+webpki-roots = "^0.26.3"
log = "0.4.22"
env_logger = "0.11.5"
socket2 = "0.5.7"
async-trait = "0.1.81"
bincode = "1.3.3"
-test-log = "0.2.16"
+test-log = ">=0.2.16"
static_assertions = "1.1.0"
[dev-dependencies]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/Cargo.lock
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/Cargo.lock
--- old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/Cargo.lock
2025-03-05 09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/Cargo.lock
2025-04-09 15:16:46.000000000 +0200
@@ -83,7 +83,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
@@ -168,7 +168,7 @@
"regex",
"rustc-hash",
"shlex",
- "syn 2.0.72",
+ "syn",
"which",
]
@@ -342,7 +342,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
@@ -400,9 +400,9 @@
[[package]]
name = "heck"
-version = "0.4.1"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
@@ -497,7 +497,7 @@
[[package]]
name = "local-agent-rs"
-version = "0.10.0"
+version = "0.10.1"
dependencies = [
"async-trait",
"bincode",
@@ -685,29 +685,29 @@
checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
dependencies = [
"proc-macro2",
- "syn 2.0.72",
+ "syn",
]
[[package]]
name = "proc-macro2"
-version = "1.0.86"
+version = "1.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84"
dependencies = [
"unicode-ident",
]
[[package]]
name = "pyo3"
-version = "0.21.2"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8"
+checksum = "7f1c6c3591120564d64db2261bec5f910ae454f01def849b9c22835a84695e86"
dependencies = [
"cfg-if",
"indoc",
"libc",
"memoffset",
- "parking_lot",
+ "once_cell",
"portable-atomic",
"pyo3-build-config",
"pyo3-ffi",
@@ -716,35 +716,35 @@
]
[[package]]
-name = "pyo3-asyncio-0-21"
-version = "0.21.0"
+name = "pyo3-async-runtimes"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fde289486f7d5cee0ac7c20b2637a0657654681079cc5eedc90d9a2a79af1e5"
+checksum = "dd0b83dc42f9d41f50d38180dad65f0c99763b65a3ff2a81bf351dd35a1df8bf"
dependencies = [
"futures",
"once_cell",
"pin-project-lite",
"pyo3",
- "pyo3-asyncio-macros-0-21",
+ "pyo3-async-runtimes-macros",
"tokio",
]
[[package]]
-name = "pyo3-asyncio-macros-0-21"
-version = "0.21.0"
+name = "pyo3-async-runtimes-macros"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e5ffc4e987e866bf54b781235a6c3b91e7e67df14f73ce716625ee78728554a"
+checksum = "cf103ba4062fbb1e8022d9ed9b9830fbab074b2db0a0496c78e45a62f4330bcd"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn",
]
[[package]]
name = "pyo3-build-config"
-version = "0.21.2"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50"
+checksum = "e9b6c2b34cf71427ea37c7001aefbaeb85886a074795e35f161f5aecc7620a7a"
dependencies = [
"once_cell",
"target-lexicon",
@@ -752,9 +752,9 @@
[[package]]
name = "pyo3-ffi"
-version = "0.21.2"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403"
+checksum = "5507651906a46432cdda02cd02dd0319f6064f1374c9147c45b978621d2c3a9c"
dependencies = [
"libc",
"pyo3-build-config",
@@ -762,37 +762,37 @@
[[package]]
name = "pyo3-macros"
-version = "0.21.2"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c"
+checksum = "b0d394b5b4fd8d97d48336bb0dd2aebabad39f1d294edd6bcd2cccf2eefe6f42"
dependencies = [
"proc-macro2",
"pyo3-macros-backend",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
name = "pyo3-macros-backend"
-version = "0.21.2"
+version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c"
+checksum = "fd72da09cfa943b1080f621f024d2ef7e2773df7badd51aa30a2be1f8caa7c8e"
dependencies = [
"heck",
"proc-macro2",
"pyo3-build-config",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
name = "python-proton-vpn-local-agent"
-version = "1.4.4"
+version = "1.4.5"
dependencies = [
"local-agent-rs",
"log",
"pyo3",
- "pyo3-asyncio-0-21",
+ "pyo3-async-runtimes",
"thiserror",
"tokio",
]
@@ -971,7 +971,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
@@ -1055,20 +1055,9 @@
[[package]]
name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.72"
+version = "2.0.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
+checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
dependencies = [
"proc-macro2",
"quote",
@@ -1077,9 +1066,9 @@
[[package]]
name = "target-lexicon"
-version = "0.12.16"
+version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
+checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a"
[[package]]
name = "test-log"
@@ -1100,7 +1089,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
@@ -1120,7 +1109,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
@@ -1159,7 +1148,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
[[package]]
@@ -1400,5 +1389,5 @@
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.72",
+ "syn",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/Cargo.toml
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/Cargo.toml
--- old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/Cargo.toml
2025-03-05 09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/Cargo.toml
2025-04-09 15:16:46.000000000 +0200
@@ -1,6 +1,6 @@
[package]
name = "python-proton-vpn-local-agent"
-version = "1.4.4"
+version = "1.4.5"
edition = "2021"
# See more keys and their definitions at
https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -13,8 +13,8 @@
[dependencies]
local-agent-rs = { path = "../local_agent_rs" }
-pyo3 = {version="0.21.2", features = ["extension-module", "abi3-py38"]}
-pyo3-asyncio-0-21 = {version="0.21.0", features = ["attributes",
"tokio-runtime"]}
+pyo3 = {version="0.24", features = ["extension-module", "abi3-py38"]}
+pyo3-async-runtimes = {version="0.24.0", features = ["attributes",
"tokio-runtime"]}
tokio = { version = "1.38.0", features = ["full"] }
-thiserror = "1.0.60"
log = "0.4.22"
+thiserror = "1.0.60"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/agent_connector.rs
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/agent_connector.rs
---
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/agent_connector.rs
2025-03-05 09:26:23.000000000 +0100
+++
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/agent_connector.rs
2025-04-09 15:16:46.000000000 +0200
@@ -62,7 +62,7 @@
///
/// # Arguments
///
- /// * `responses` - A string of json containing reponses.
+ /// * `responses` - A string of json containing responses.
///
#[pyo3(signature = (responses))]
pub fn playback<'p>(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/exception.rs
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/exception.rs
--- old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/exception.rs
2025-03-05 09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/exception.rs
2025-04-09 15:16:46.000000000 +0200
@@ -41,17 +41,14 @@
);
pub fn register(m: &Bound<'_, PyModule>) -> PyResult<()> {
- m.add(
- "LocalAgentError",
- m.py().get_type_bound::<LocalAgentError>(),
- )?;
+ m.add("LocalAgentError", m.py().get_type::<LocalAgentError>())?;
m.add(
"ExpiredCertificateError",
- m.py().get_type_bound::<ExpiredCertificateError>(),
+ m.py().get_type::<ExpiredCertificateError>(),
)?;
- m.add("APIError", m.py().get_type_bound::<APIError>())?;
- m.add("SyntaxAPIError", m.py().get_type_bound::<SyntaxAPIError>())?;
- m.add("PolicyAPIError", m.py().get_type_bound::<PolicyAPIError>())?;
+ m.add("APIError", m.py().get_type::<APIError>())?;
+ m.add("SyntaxAPIError", m.py().get_type::<SyntaxAPIError>())?;
+ m.add("PolicyAPIError", m.py().get_type::<PolicyAPIError>())?;
Ok(())
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/future.rs
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/future.rs
--- old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/future.rs
2025-03-05 09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/future.rs
2025-04-09 15:16:46.000000000 +0200
@@ -2,7 +2,6 @@
// Copyright (c) 2024 Proton AG
//
-----------------------------------------------------------------------------
use crate::Result;
-use pyo3::IntoPy;
/// Converts a rust future into a python future, making sure to convert errors
/// into Python exceptions.
@@ -15,9 +14,9 @@
) -> pyo3::PyResult<pyo3::Bound<pyo3::PyAny>>
where
W: std::future::Future<Output = Result<R>> + Send + 'static,
- R: IntoPy<pyo3::Py<pyo3::PyAny>>,
+ R: for<'py> pyo3::IntoPyObject<'py>,
{
- pyo3_asyncio_0_21::tokio::future_into_py(py, async move {
+ pyo3_async_runtimes::tokio::future_into_py(py, async move {
work.await.map_err(pyo3::PyErr::from)
})
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/listener.rs
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/listener.rs
--- old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/listener.rs
2025-03-05 09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/listener.rs
2025-04-09 15:16:46.000000000 +0200
@@ -74,7 +74,7 @@
if let Err(error) = cb_result {
log::error!(
"Error calling callback: {:?}",
- error.value_bound(py).to_string()
+ error.value(py).to_string()
);
}
});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/logger.rs
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/logger.rs
--- old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/logger.rs
2025-03-05 09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/logger.rs
2025-04-09 15:16:46.000000000 +0200
@@ -63,10 +63,11 @@
/// Creates a new Logger instance.
pub fn new(py: Python, get_py_logger: PyObject) -> PyResult<Self> {
// Add the getLogger function to the locals
- let locals = PyDict::new_bound(py);
+ let locals = PyDict::new(py);
locals.set_item(GET_LOGGER, get_py_logger)?;
- py.run_bound(&create_new_py_logger(), Some(&locals), None)?;
+ let c_string =
std::ffi::CString::new(create_new_py_logger().as_str())?;
+ py.run(&c_string, Some(&locals), None)?;
let py_logger = locals.get_item(LOGGER)?.ok_or(PyErr::new::<
pyo3::exceptions::PyException,
@@ -111,12 +112,11 @@
// Call the Python logger method
let result = Python::with_gil(|py| -> PyResult<()> {
- let rust_info = pyo3::types::PyDict::new_bound(py);
+ let rust_info = pyo3::types::PyDict::new(py);
// Add the file and line number if available
if let Some(file_path) = record.file() {
- if let Some(file) =
- std::path::Path::new(file_path).file_name()
+ if let Some(file) = std::path::Path::new(file_path).file_name()
{
if let Some(filename) = file.to_str() {
let filename = filename.to_string();
@@ -131,7 +131,7 @@
rust_info.set_item("lineno", line)?;
}
- let extras = pyo3::types::PyDict::new_bound(py);
+ let extras = pyo3::types::PyDict::new(py);
extras.set_item("rust_info", rust_info)?;
if let Ok(log) = self
@@ -139,7 +139,7 @@
.bind(py)
.getattr(Logger::get_level(record.level()))
{
- let kwargs = pyo3::types::PyDict::new_bound(py);
+ let kwargs = pyo3::types::PyDict::new(py);
kwargs.set_item("extra", extras)?;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/reason.rs
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/reason.rs
--- old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/reason.rs
2025-03-05 09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/reason.rs
2025-04-09 15:16:46.000000000 +0200
@@ -4,8 +4,8 @@
pub use local_agent_rs as la;
use pyo3::prelude::*;
-#[pyclass]
-#[derive(Clone, Debug)]
+#[pyclass(eq, eq_int)]
+#[derive(Clone, Debug, PartialEq)]
#[allow(non_camel_case_types)]
pub enum ReasonCode {
UNKNOWN,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/state.rs
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/state.rs
--- old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/src/state.rs
2025-03-05 09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/src/state.rs
2025-04-09 15:16:46.000000000 +0200
@@ -4,8 +4,8 @@
pub use local_agent_rs as la;
use pyo3::prelude::*;
-#[pyclass]
-#[derive(Clone, Debug)]
+#[pyclass(eq, eq_int)]
+#[derive(Clone, Debug, PartialEq)]
#[allow(non_camel_case_types)]
pub enum State {
CONNECTED,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/versions.yml
new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/versions.yml
--- old/local-agent-rs-1.4.4/python-proton-vpn-local-agent/versions.yml
2025-03-05 09:26:23.000000000 +0100
+++ new/local-agent-rs-1.4.5/python-proton-vpn-local-agent/versions.yml
2025-04-09 15:16:46.000000000 +0200
@@ -1,3 +1,12 @@
+version: 1.4.5
+time: 2025/04/09 14:00
+author: Alexandru Cheltuitor
+email: [email protected]
+urgency: low
+stability: unstable
+description:
+- Merge and adapt community MR proposed by Nilsonfsilva
+---
version: 1.4.4
time: 2025/02/18 17:15
author: Luke Titley
++++++ 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.30101/vendor.tar.zst
differ: char 7, line 1