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},
- };
- 

Reply via email to