tags 1042194 +patch
thanks
During a rebuild of all packages in sid, your package failed to build
on amd64.
The attached patch makes netavark build again (note: some of the packages
it depends on have only just been accepted, so it may be a little time
before binaries are available in sid).
diff -Nru netavark-1.4.0/debian/changelog netavark-1.4.0/debian/changelog
--- netavark-1.4.0/debian/changelog 2023-02-03 11:31:00.000000000 +0000
+++ netavark-1.4.0/debian/changelog 2023-08-10 22:42:37.000000000 +0000
@@ -1,3 +1,13 @@
+netavark (1.4.0-3.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Apply upstream patches for new netlink crates. (Closes: #1042194)
+ * Bump env-logger dependency.
+ * Stop patching zbus cargo dependency and update debian dependency, Debian
+ now has zbus 3.x
+
+ -- Peter Michael Green <plugw...@debian.org> Thu, 10 Aug 2023 22:42:37 +0000
+
netavark (1.4.0-3) unstable; urgency=medium
* Install aardvark-dns by default with netavark
diff -Nru netavark-1.4.0/debian/control netavark-1.4.0/debian/control
--- netavark-1.4.0/debian/control 2023-02-03 11:31:00.000000000 +0000
+++ netavark-1.4.0/debian/control 2023-08-10 22:42:37.000000000 +0000
@@ -9,7 +9,7 @@
librust-atty-dev,
librust-chrono-dev,
librust-clap-3+derive-dev (>= 3.2.23),
- librust-env-logger-dev (>> 0.9),
+ librust-env-logger-0.10-dev,
librust-futures-dev,
librust-fs2-dev,
librust-humantime-dev,
@@ -17,7 +17,7 @@
librust-iptables-dev,
librust-libc-dev,
librust-log-dev,
- librust-netlink-packet-route-dev,
+ librust-netlink-packet-route-0.17-dev,
librust-nix-dev,
librust-rand-dev,
librust-rtnetlink-dev,
@@ -31,7 +31,7 @@
librust-termcolor-dev,
librust-tokio+full-dev,
librust-url-dev,
- librust-zbus-dev (>= 1.9.2-4),
+ librust-zbus-3-dev (>= 3.6.1),
librust-zvariant-dev,
libstd-rust-dev,
rustc:native <!nocheck>,
diff -Nru netavark-1.4.0/debian/patches/netlink-0.5.patch
netavark-1.4.0/debian/patches/netlink-0.5.patch
--- netavark-1.4.0/debian/patches/netlink-0.5.patch 1970-01-01
00:00:00.000000000 +0000
+++ netavark-1.4.0/debian/patches/netlink-0.5.patch 2023-08-10
22:42:37.000000000 +0000
@@ -0,0 +1,65 @@
+This patch is based on the upstream commit described below, adapted for
+use in the Debian package by Peter Michael Green.
+
+commit 88a2a7a5a896d9b64d48b95f12e78cf91ee2b05f
+Author: Paul Holzinger <pholz...@redhat.com>
+Date: Fri Feb 17 15:03:19 2023 +0100
+
+ update netlink-packet-{route,core} to 0.15 and 0.5
+
+ They contain breaking changes but nothing major, just moved same type
+ definitions.
+
+ Signed-off-by: Paul Holzinger <pholz...@redhat.com>
+
+diff --git a/Cargo.toml b/Cargo.toml
+index de0b465..2620f80 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -44,2 +44,2 @@ zbus = { version = "3.10.0" }
+-netlink-packet-route = "0.13"
+-netlink-packet-core = "0.4.2"
++netlink-packet-route = "0.15"
++netlink-packet-core = "0.5"
+diff --git a/src/network/netlink.rs b/src/network/netlink.rs
+index 4b11a28..dcf165a 100644
+--- a/src/network/netlink.rs
++++ b/src/network/netlink.rs
+@@ -9,11 +9,14 @@ use crate::{
+ wrap,
+ };
+ use log::{info, trace};
++use netlink_packet_core::{
++ NetlinkHeader, NetlinkMessage, NetlinkPayload, NLM_F_ACK, NLM_F_CREATE,
NLM_F_DUMP, NLM_F_EXCL,
++ NLM_F_REQUEST,
++};
+ use netlink_packet_route::{
+ nlas::link::{Info, InfoData, InfoKind, Nla},
+- AddressMessage, LinkMessage, NetlinkHeader, NetlinkMessage,
NetlinkPayload, RouteMessage,
+- RtnlMessage, AF_INET, AF_INET6, IFF_UP, NLM_F_ACK, NLM_F_CREATE,
NLM_F_DUMP, NLM_F_EXCL,
+- NLM_F_REQUEST, RTN_UNICAST, RTPROT_STATIC, RTPROT_UNSPEC,
RT_SCOPE_UNIVERSE, RT_TABLE_MAIN,
++ AddressMessage, LinkMessage, RouteMessage, RtnlMessage, AF_INET,
AF_INET6, IFF_UP, RTN_UNICAST,
++ RTPROT_STATIC, RTPROT_UNSPEC, RT_SCOPE_UNIVERSE, RT_TABLE_MAIN,
+ };
+ use netlink_sys::{protocols::NETLINK_ROUTE, SocketAddr};
+
+@@ -369,10 +372,7 @@ impl Socket {
+ }
+
+ fn send(&mut self, msg: RtnlMessage, flags: u16) -> NetavarkResult<()> {
+- let mut packet = NetlinkMessage {
+- header: NetlinkHeader::default(),
+- payload: NetlinkPayload::from(msg),
+- };
++ let mut packet = NetlinkMessage::new(NetlinkHeader::default(),
NetlinkPayload::from(msg));
+ packet.header.flags = NLM_F_REQUEST | flags;
+ packet.header.sequence_number = {
+ self.sequence_number += 1;
+@@ -440,6 +440,7 @@ impl Socket {
+ return Ok(result);
+ }
+ }
++ _ => {}
+ };
+
+ offset += rx_packet.header.length as usize;
diff -Nru netavark-1.4.0/debian/patches/netlink-0.7.patch
netavark-1.4.0/debian/patches/netlink-0.7.patch
--- netavark-1.4.0/debian/patches/netlink-0.7.patch 1970-01-01
00:00:00.000000000 +0000
+++ netavark-1.4.0/debian/patches/netlink-0.7.patch 2023-08-10
22:42:37.000000000 +0000
@@ -0,0 +1,83 @@
+This patch is based on the upstream commit described below, adjusted for use
+in the Debian package by Peter Michael Green.
+
+commit f92a065483828ba172c858e6cbc46f75a8b933d9
+Author: Paul Holzinger <pholz...@redhat.com>
+Date: Mon Jul 10 14:54:12 2023 +0200
+
+ bump netlink deps
+
+ There are breaking changes here so fix them, sigh.
+
+ Signed-off-by: Paul Holzinger <pholz...@redhat.com>
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 2cd2df8..4d12567 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -52,2 +52,2 @@ zbus = { version = "3.14.1" }
+-netlink-packet-route = "0.15"
+-netlink-packet-core = "0.5"
++netlink-packet-route = "0.17.0"
++netlink-packet-core = "0.7.0"
+diff --git a/src/network/bridge.rs b/src/network/bridge.rs
+index f749f42..9658edf 100644
+--- a/src/network/bridge.rs
++++ b/src/network/bridge.rs
+@@ -483,7 +483,7 @@ fn create_interfaces(
+ Ok(bridge) => check_link_is_bridge(bridge,
&data.bridge_interface_name)?,
+ Err(err) => match err.unwrap() {
+ NetavarkError::Netlink(e) => {
+- if -e.code != libc::ENODEV {
++ if -e.raw_code() != libc::ENODEV {
+ // if bridge does not exists we will create it below,
+ // for all other errors we want to return the error
+ return Err(err).wrap("get bridge interface");
+@@ -563,7 +563,7 @@ fn create_veth_pair(
+ host_veth.info_data = Some(InfoData::Veth(VethInfo::Peer(peer)));
+
+ host.create_link(host_veth).map_err(|err| match err {
+- NetavarkError::Netlink(ref e) if -e.code == libc::EEXIST =>
NetavarkError::wrap(
++ NetavarkError::Netlink(ref e) if -e.raw_code() == libc::EEXIST =>
NetavarkError::wrap(
+ format!(
+ "create veth pair: interface {} already exists on container
namespace",
+ data.container_interface_name
+diff --git a/src/network/netlink.rs b/src/network/netlink.rs
+index b5c1a6f..fdb36a0 100644
+--- a/src/network/netlink.rs
++++ b/src/network/netlink.rs
+@@ -217,7 +217,7 @@ impl Socket {
+ Ok(result) => result,
+ Err(err) => match err {
+ // kernel returns EACCES when we try to add an ipv6 but ipv6
is disabled in the kernel
+- NetavarkError::Netlink(ref e) if -e.code == libc::EACCES =>
match addr {
++ NetavarkError::Netlink(ref e) if -e.raw_code() ==
libc::EACCES => match addr {
+ ipnet::IpNet::V6(_) => {
+ return Err(NetavarkError::wrap(
+ "failed to add ipv6 address, is ipv6 enabled in
the kernel?",
+@@ -449,9 +449,9 @@ impl Socket {
+ }
+
+ match rx_packet.payload {
+- NetlinkPayload::Done => return Ok(result),
+- NetlinkPayload::Error(e) | NetlinkPayload::Ack(e) => {
+- if e.code != 0 {
++ NetlinkPayload::Done(_) => return Ok(result),
++ NetlinkPayload::Error(e) => {
++ if e.code.is_some() {
+ return Err(e.into());
+ }
+ return Ok(result);
+diff --git a/src/network/macvlan.rs b/src/network/macvlan.rs
+index acaa6fb..d43437a 100644
+--- a/src/network/macvlan.rs
++++ b/src/network/macvlan.rs
+@@ -314,7 +314,7 @@ fn setup(
+ Ok(_) => break,
+
+ Err(err) => match err {
+- NetavarkError::Netlink(ref e) if -e.code == libc::EEXIST => {
++ NetavarkError::Netlink(ref e) if -e.raw_code() ==
libc::EEXIST => {
+ let random = Alphanumeric.sample_string(&mut
rand::thread_rng(), 10);
+ let tmp_name = "mv-".to_string() + &random;
+ let mut opts = opts.clone();
diff -Nru netavark-1.4.0/debian/patches/relax-deps.patch
netavark-1.4.0/debian/patches/relax-deps.patch
--- netavark-1.4.0/debian/patches/relax-deps.patch 2023-02-03
11:31:00.000000000 +0000
+++ netavark-1.4.0/debian/patches/relax-deps.patch 2023-08-10
22:42:37.000000000 +0000
@@ -1,13 +1,13 @@
-Index: netavark/Cargo.toml
+Index: netavark-1.4.0/Cargo.toml
===================================================================
---- netavark.orig/Cargo.toml
-+++ netavark/Cargo.toml
-@@ -20,21 +20,21 @@ deps-serde = ["chrono/serde", "url/serde
+--- netavark-1.4.0.orig/Cargo.toml
++++ netavark-1.4.0/Cargo.toml
+@@ -20,20 +20,20 @@ deps-serde = ["chrono/serde", "url/serde
[dependencies]
anyhow = "1.0"
clap = { version = "3.2.23", features = ["derive"] }
-env_logger = "0.10.0"
-+env_logger = "0.9"
++env_logger = "0.10"
ipnet = { version = "2", features = ["serde"] }
iptables = "0.5"
libc = "0.2"
@@ -21,15 +21,12 @@
+serde_json = "1"
+sysctl = "0.4"
url = "2.3.1"
--zbus = { version = "3.6.1" }
-+zbus = { version = "1.9" }
+ zbus = { version = "3.6.1" }
nix = "0.26.1"
-rand = "0.8.5"
-sha2 = "0.10.6"
--netlink-packet-route = "0.13"
+rand = "0.8"
+sha2 = "0.10"
-+netlink-packet-route = "0.12"
+ netlink-packet-route = "0.13"
netlink-packet-core = "0.4.2"
fs2 = "0.4.3"
- netlink-sys = "0.8.3"
diff -Nru netavark-1.4.0/debian/patches/series
netavark-1.4.0/debian/patches/series
--- netavark-1.4.0/debian/patches/series 2023-02-03 11:31:00.000000000
+0000
+++ netavark-1.4.0/debian/patches/series 2023-08-10 22:42:37.000000000
+0000
@@ -1,4 +1,5 @@
relax-deps.patch
-use-zbus-1.9.patch
relax-tests.patch
debian-paths.patch
+netlink-0.5.patch
+netlink-0.7.patch
diff -Nru netavark-1.4.0/debian/patches/use-zbus-1.9.patch
netavark-1.4.0/debian/patches/use-zbus-1.9.patch
--- netavark-1.4.0/debian/patches/use-zbus-1.9.patch 2023-02-03
11:31:00.000000000 +0000
+++ netavark-1.4.0/debian/patches/use-zbus-1.9.patch 1970-01-01
00:00:00.000000000 +0000
@@ -1,99 +0,0 @@
-Index: netavark/src/firewall/iptables.rs
-===================================================================
---- netavark.orig/src/firewall/iptables.rs
-+++ netavark/src/firewall/iptables.rs
-@@ -12,7 +12,7 @@ use crate::network::types;
- use iptables;
- use iptables::IPTables;
- use log::{debug, warn};
--use zbus::blocking::Connection;
-+use zbus::Connection;
-
- pub(crate) const MAX_HASH_SIZE: usize = 13;
-
-@@ -249,7 +249,7 @@ fn is_firewalld_running(conn: &Connectio
- /// If possible, add a firewalld rule to allow traffic.
- /// Ignore all errors, beyond possibly logging them.
- fn add_firewalld_if_possible(net: &types::Subnet) {
-- let conn = match Connection::system() {
-+ let conn = match Connection::new_system() {
- Ok(conn) => conn,
- Err(_) => return,
- };
-@@ -274,7 +274,7 @@ fn add_firewalld_if_possible(net: &types
- // If possible, remove a firewalld rule to allow traffic.
- // Ignore all errors, beyond possibly logging them.
- fn rm_firewalld_if_possible(net: &types::Subnet) {
-- let conn = match Connection::system() {
-+ let conn = match Connection::new_system() {
- Ok(conn) => conn,
- Err(_) => return,
- };
-Index: netavark/src/firewall/mod.rs
-===================================================================
---- netavark.orig/src/firewall/mod.rs
-+++ netavark/src/firewall/mod.rs
-@@ -4,7 +4,7 @@ use crate::network::internal_types::{
- };
- use log::{debug, info};
- use std::env;
--use zbus::blocking::Connection;
-+use zbus::Connection;
-
- pub mod firewalld;
- pub mod iptables;
-@@ -39,7 +39,7 @@ fn get_firewall_impl() -> NetavarkResult
- debug!("Forcibly using firewall driver {}", var);
- match var.to_lowercase().as_str() {
- "firewalld" => {
-- let conn = match Connection::system() {
-+ let conn = match Connection::new_system() {
- Ok(c) => c,
- Err(e) => {
- return Err(NetavarkError::wrap(
-Index: netavark/src/error/mod.rs
-===================================================================
---- netavark.orig/src/error/mod.rs
-+++ netavark/src/error/mod.rs
-@@ -70,6 +70,7 @@ pub enum NetavarkError {
- Io(std::io::Error),
-
- Dbus(zbus::Error),
-+ DbusMessage(zbus::MessageError),
- DbusVariant(zbus::zvariant::Error),
-
- Sysctl(sysctl::SysctlError),
-@@ -142,6 +143,7 @@ impl fmt::Display for NetavarkError {
- NetavarkError::Chain(s, e) => write!(f, "{}: {}", s, e),
- NetavarkError::Io(e) => write!(f, "IO error: {}", e),
- NetavarkError::Dbus(e) => write!(f, "DBus error: {}", e),
-+ NetavarkError::DbusMessage(e) => write!(f, "DBusMessage error:
{}", e),
- NetavarkError::DbusVariant(e) => write!(f, "DBus Variant Error:
{}", e),
- NetavarkError::Sysctl(e) => write!(f, "Sysctl error: {}", e),
- NetavarkError::Serde(e) => write!(f, "JSON Decoding error: {}",
e),
-@@ -175,6 +177,12 @@ impl From<zbus::Error> for NetavarkError
- }
- }
-
-+impl From<zbus::MessageError> for NetavarkError {
-+ fn from(err: zbus::MessageError) -> NetavarkError {
-+ NetavarkError::DbusMessage(err)
-+ }
-+}
-+
- impl From<zbus::zvariant::Error> for NetavarkError {
- fn from(err: zbus::zvariant::Error) -> NetavarkError {
- NetavarkError::DbusVariant(err)
-Index: netavark/src/firewall/firewalld.rs
-===================================================================
---- netavark.orig/src/firewall/firewalld.rs
-+++ netavark/src/firewall/firewalld.rs
-@@ -8,7 +8,7 @@ use log::{debug, info};
- use std::collections::HashMap;
- use std::vec::Vec;
- use zbus::{
-- blocking::Connection,
-+ Connection,
- zvariant::{Array, Signature, Value},
- };
-