--- Begin Message ---
Source: netavark
Version: 1.12.1-8
Severity: normal
Tags: patch
X-Debbugs-Cc: noisyc...@tutanota.com
Hi,
zbus v5 was recently uploaded to experimental and we intend to downlift it to
unstable in the near future. In attachment you'll find a patch (to be applied
in git) to update src:netavark's dependency on zbus. All changes are trivial
except for one: zvariant (re-exported as zbus::zvariant) introduced a new
zvariant::signature::Error which must be mapped to a NetavarkError enum
variant; instead of defining a new error which the rest of the code would be
unaware of, I mapped zvariant::signature::Error to NetavarkError::DbusVariant,
which is the same one zvariant::Error is mapped to.
Cheers!
>From b85c110193b759061d170163c5bbe2dc7dca7b63 Mon Sep 17 00:00:00 2001
From: NoisyCoil <noisyc...@tutanota.com>
Date: Tue, 21 Jan 2025 01:23:45 +0100
Subject: [PATCH] Bump zbus dependency to v5
---
debian/control | 2 +-
.../patches/0007-relax-url-dependency.patch | 4 +-
.../0010-relax-serde-json-dependency.patch | 4 +-
.../patches/0011-relax-nix-dependency.patch | 4 +-
debian/patches/relax-zbus.patch | 76 ++++++++++++++++---
5 files changed, 72 insertions(+), 18 deletions(-)
diff --git a/debian/control b/debian/control
index c44a058..c3d51e1 100644
--- a/debian/control
+++ b/debian/control
@@ -40,7 +40,7 @@ Build-Depends: cargo:native <!nocheck>,
librust-tonic-build-dev,
librust-tonic-dev,
librust-url-dev,
- librust-zbus-4-dev (>= 4.3.1),
+ librust-zbus-5-dev (>= 5),
librust-zvariant-dev,
libstd-rust-dev,
rustc:native <!nocheck>
diff --git a/debian/patches/0007-relax-url-dependency.patch
b/debian/patches/0007-relax-url-dependency.patch
index 644ffe8..cdc285a 100644
--- a/debian/patches/0007-relax-url-dependency.patch
+++ b/debian/patches/0007-relax-url-dependency.patch
@@ -7,7 +7,7 @@ Subject: relax url dependency
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Cargo.toml b/Cargo.toml
-index 41523bf..a91cdfc 100644
+index eccb3b5..bbace7a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -41,7 +41,7 @@ serde = { version = "1.0.199", features = ["derive"],
optional = true }
@@ -16,6 +16,6 @@ index 41523bf..a91cdfc 100644
sysctl = "0.5.5"
-url = "2.5.2"
+url = "2.5"
- zbus = { version = ">= 4.3" }
+ zbus = { version = ">= 5" }
nix = { version = "0.29.0", features = ["sched", "signal", "user"] }
rand = "0.8.5"
diff --git a/debian/patches/0010-relax-serde-json-dependency.patch
b/debian/patches/0010-relax-serde-json-dependency.patch
index e613cf3..7c05c55 100644
--- a/debian/patches/0010-relax-serde-json-dependency.patch
+++ b/debian/patches/0010-relax-serde-json-dependency.patch
@@ -7,7 +7,7 @@ Subject: relax serde-json dependency
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Cargo.toml b/Cargo.toml
-index 6d4601e..aca0d3c 100644
+index cc5d077..841428e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -39,7 +39,7 @@ libc = "0.2.154"
@@ -18,4 +18,4 @@ index 6d4601e..aca0d3c 100644
+serde_json = { version = ">= 1.0" }
sysctl = "0.5.5"
url = "2.5"
- zbus = { version = ">= 4.3" }
+ zbus = { version = ">= 5" }
diff --git a/debian/patches/0011-relax-nix-dependency.patch
b/debian/patches/0011-relax-nix-dependency.patch
index 4469637..c1f927d 100644
--- a/debian/patches/0011-relax-nix-dependency.patch
+++ b/debian/patches/0011-relax-nix-dependency.patch
@@ -7,13 +7,13 @@ Subject: relax nix dependency
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Cargo.toml b/Cargo.toml
-index aca0d3c..e9097cf 100644
+index 841428e..41e25af 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -43,7 +43,7 @@ serde_json = { version = ">= 1.0" }
sysctl = "0.5.5"
url = "2.5"
- zbus = { version = ">= 4.3" }
+ zbus = { version = ">= 5" }
-nix = { version = "0.29.0", features = ["sched", "signal", "user"] }
+nix = { version = ">= 0.27", features = ["sched", "signal", "user"] }
rand = "0.8.5"
diff --git a/debian/patches/relax-zbus.patch b/debian/patches/relax-zbus.patch
index 0916596..30fa044 100644
--- a/debian/patches/relax-zbus.patch
+++ b/debian/patches/relax-zbus.patch
@@ -1,19 +1,24 @@
From: Blair Noctis <n...@sail.ng>
Date: Fri, 12 Jul 2024 21:52:07 +0800
-Subject: fix(deps): update zbus to 4.3.1
+Subject: fix(deps): update zbus to v5
Forwarded: https://github.com/containers/netavark/pull/1025/
-Signed-off-by: Blair Noctis <n...@sail.ng>
+zvariant v5 introduced a new zvariant::signature::Error which needs
+to be mapped to a NetavarkError. Instead of defining a new enum
+variant, we reuse NetavarkError::DbusVariant.
+
+Updated-by: NoisyCoil <noisyc...@tutanota.com>
---
Cargo.toml | 2 +-
src/commands/firewalld_reload.rs | 6 +-
src/dhcp_proxy/lib.rs | 5 +-
- src/firewall/firewalld.rs | 185 ++++++++++++++++-----------------------
- 4 files changed, 79 insertions(+), 119 deletions(-)
+ src/error/mod.rs | 8 ++
+ src/firewall/firewalld.rs | 193 ++++++++++++++++-----------------------
+ 5 files changed, 91 insertions(+), 123 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
-index 30952ba..c2ac980 100644
+index 30952ba..59b0413 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -42,7 +42,7 @@ serde-value = "0.7.0"
@@ -21,12 +26,12 @@ index 30952ba..c2ac980 100644
sysctl = "0.5.5"
url = "2.5.2"
-zbus = { version = "3.15.2" }
-+zbus = { version = ">= 4.3" }
++zbus = { version = ">= 5" }
nix = { version = "0.29.0", features = ["sched", "signal", "user"] }
rand = "0.8.5"
sha2 = "0.10.8"
diff --git a/src/commands/firewalld_reload.rs
b/src/commands/firewalld_reload.rs
-index 0e1d884..5f3e00c 100644
+index 0e1d884..5a72386 100644
--- a/src/commands/firewalld_reload.rs
+++ b/src/commands/firewalld_reload.rs
@@ -3,7 +3,7 @@ use std::{
@@ -34,7 +39,7 @@ index 0e1d884..5f3e00c 100644
};
-use zbus::{blocking::Connection, dbus_proxy, CacheProperties};
-+use zbus::{blocking::Connection, proxy, CacheProperties};
++use zbus::{blocking::Connection, proxy, proxy::CacheProperties};
use crate::{
error::{ErrorWrap, NetavarkResult},
@@ -72,8 +77,27 @@ index 848b76b..cb35bc0 100644
let mtu = l.mtu.unwrap_or(0) as u32;
Lease {
+diff --git a/src/error/mod.rs b/src/error/mod.rs
+index bb6bbb6..ade216d 100644
+--- a/src/error/mod.rs
++++ b/src/error/mod.rs
+@@ -192,6 +192,14 @@ impl From<zbus::zvariant::Error> for NetavarkError {
+ }
+ }
+
++// Debian: map the new zvariant::signature::Error to a
++// NetavarkError::DbusVariant, like zvariant::Error
++impl From<zbus::zvariant::signature::Error> for NetavarkError {
++ fn from(err: zbus::zvariant::signature::Error) -> NetavarkError {
++ NetavarkError::DbusVariant(err.into())
++ }
++}
++
+ impl From<sysctl::SysctlError> for NetavarkError {
+ fn from(err: sysctl::SysctlError) -> NetavarkError {
+ NetavarkError::Sysctl(err)
diff --git a/src/firewall/firewalld.rs b/src/firewall/firewalld.rs
-index 635b262..4c4623d 100644
+index 635b262..7bfb15b 100644
--- a/src/firewall/firewalld.rs
+++ b/src/firewall/firewalld.rs
@@ -1,8 +1,8 @@
@@ -128,6 +152,15 @@ index 635b262..4c4623d 100644
None => {
// No existing rules
// Make us a new array.
+@@ -163,7 +158,7 @@ impl firewall::FirewallDriver for FirewallD {
+ }
+ };
+
+- port_forwarding_rules = Array::new(sig);
++ port_forwarding_rules = Array::new(&sig);
+ }
+ }
+
@@ -199,15 +194,16 @@ impl firewall::FirewallDriver for FirewallD {
let mut rich_rules_option: Option<Array> = None;
if setup_portfw.dns_port != 53 &&
!setup_portfw.dns_server_ips.is_empty() {
@@ -152,6 +185,15 @@ index 635b262..4c4623d 100644
None => {
// No existing rules
// Make us a new array.
+@@ -220,7 +216,7 @@ impl firewall::FirewallDriver for FirewallD {
+ ))
+ }
+ };
+- rich_rules = Array::new(sig);
++ rich_rules = Array::new(&sig);
+ }
+ }
+ for dns_ip in setup_portfw.dns_server_ips {
@@ -277,28 +273,23 @@ impl firewall::FirewallDriver for FirewallD {
"getPolicySettings",
&(PORTPOLICYNAME),
@@ -193,6 +235,15 @@ index 635b262..4c4623d 100644
None => {
// No existing rules - skip
None
+@@ -316,7 +307,7 @@ impl firewall::FirewallDriver for FirewallD {
+ ))
+ }
+ };
+- let mut port_forwarding_rules = Array::new(sig);
++ let mut port_forwarding_rules = Array::new(&sig);
+ // use an invalid string if we don't have a valid v4 or v6
address.
+ // This is ugly, but easiest code-wise.
+ let ipv4 = match teardown_pf.config.container_ip_v4 {
@@ -333,19 +324,22 @@ impl firewall::FirewallDriver for FirewallD {
for port_tuple in old_port_forwarding_rules.iter() {
match port_tuple {
@@ -243,9 +294,12 @@ index 635b262..4c4623d 100644
}
}
if let Some(old_rich_rules) = old_rich_rules_option {
-@@ -397,17 +390,13 @@ impl firewall::FirewallDriver for FirewallD {
+@@ -395,19 +388,15 @@ impl firewall::FirewallDriver for FirewallD {
+ ))
+ }
};
- let mut rich_rules = Array::new(sig);
+- let mut rich_rules = Array::new(sig);
++ let mut rich_rules = Array::new(&sig);
for rule in old_rich_rules.iter() {
- match rule {
- Value::Str(old_rule) => {
--
2.45.2
--- End Message ---