Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package wicked2nm for openSUSE:Factory 
checked in at 2025-10-11 22:49:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wicked2nm (Old)
 and      /work/SRC/openSUSE:Factory/.wicked2nm.new.5300 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "wicked2nm"

Sat Oct 11 22:49:08 2025 rev:6 rq:1310596 version:1.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/wicked2nm/wicked2nm.changes      2025-09-26 
22:27:09.260668963 +0200
+++ /work/SRC/openSUSE:Factory/.wicked2nm.new.5300/wicked2nm.changes    
2025-10-11 22:50:17.093384354 +0200
@@ -1,0 +2,9 @@
+Fri Oct 10 13:47:03 UTC 2025 - Jorik Cronenberg <[email protected]>
+
+- Update to v1.4.0
+  * Activate only connections if present in the current system
+  * Improve error output, exit codes and add flag to disable user
+    hints
+  * Add support for autoip-fallback
+
+-------------------------------------------------------------------

Old:
----
  wicked2nm-1.3.0.obscpio

New:
----
  wicked2nm-1.4.0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ wicked2nm.spec ++++++
--- /var/tmp/diff_new_pack.mrp9Zr/_old  2025-10-11 22:50:18.245432719 +0200
+++ /var/tmp/diff_new_pack.mrp9Zr/_new  2025-10-11 22:50:18.249432886 +0200
@@ -16,7 +16,7 @@
 #
 
 Name:           wicked2nm
-Version:        1.3.0
+Version:        1.4.0
 Release:        0
 Summary:        Migration tool from wicked to NetworkManager
 License:        GPL-2.0-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.mrp9Zr/_old  2025-10-11 22:50:18.285434398 +0200
+++ /var/tmp/diff_new_pack.mrp9Zr/_new  2025-10-11 22:50:18.289434566 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/openSUSE/wicked2nm</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v1.3.0</param>
+    <param name="revision">v1.4.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/wicked2nm/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.wicked2nm.new.5300/vendor.tar.gz differ: char 31, 
line 1

++++++ wicked2nm-1.3.0.obscpio -> wicked2nm-1.4.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/Cargo.lock 
new/wicked2nm-1.4.0/Cargo.lock
--- old/wicked2nm-1.3.0/Cargo.lock      2025-09-26 11:46:05.000000000 +0200
+++ new/wicked2nm-1.4.0/Cargo.lock      2025-10-10 15:41:21.000000000 +0200
@@ -20,7 +20,7 @@
 [[package]]
 name = "agama-network"
 version = "0.1.0"
-source = 
"git+https://github.com/agama-project/agama#06c86349b1785aaad1074582d030e86f6c6ef88d";
+source = 
"git+https://github.com/agama-project/agama#07fb25d080fa66b58038fc0f7e56221b09765125";
 dependencies = [
  "agama-utils",
  "anyhow",
@@ -46,7 +46,7 @@
 [[package]]
 name = "agama-utils"
 version = "0.1.0"
-source = 
"git+https://github.com/agama-project/agama#06c86349b1785aaad1074582d030e86f6c6ef88d";
+source = 
"git+https://github.com/agama-project/agama#07fb25d080fa66b58038fc0f7e56221b09765125";
 dependencies = [
  "serde_json",
  "utoipa",
@@ -1700,7 +1700,7 @@
 
 [[package]]
 name = "wicked2nm"
-version = "1.3.0"
+version = "1.4.0"
 dependencies = [
  "agama-network",
  "anyhow",
@@ -1710,6 +1710,7 @@
  "globset",
  "log",
  "macaddr",
+ "nix",
  "quick-xml",
  "regex",
  "serde",
@@ -1722,6 +1723,7 @@
  "strum 0.25.0",
  "strum_macros 0.25.3",
  "testing_logger",
+ "thiserror",
  "tokio",
  "uuid",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/Cargo.toml 
new/wicked2nm-1.4.0/Cargo.toml
--- old/wicked2nm-1.3.0/Cargo.toml      2025-09-26 11:46:05.000000000 +0200
+++ new/wicked2nm-1.4.0/Cargo.toml      2025-10-10 15:41:21.000000000 +0200
@@ -1,6 +1,6 @@
 [package]
 name = "wicked2nm"
-version = "1.3.0"
+version = "1.4.0"
 edition = "2021"
 
 # See more keys and their definitions at 
https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -27,6 +27,8 @@
 dotenv = "0.15.0"
 serde_path_to_error = "0.1.16"
 globset = { version = "0.4.16", default-features = false }
+nix = { version = "0.30.1", features = ["net"] }
+thiserror = "2.0.12"
 
 [dev-dependencies]
 testing_logger = "0.1.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/src/interface.rs 
new/wicked2nm-1.4.0/src/interface.rs
--- old/wicked2nm-1.3.0/src/interface.rs        2025-09-26 11:46:05.000000000 
+0200
+++ new/wicked2nm-1.4.0/src/interface.rs        2025-10-10 15:41:21.000000000 
+0200
@@ -9,12 +9,14 @@
 use crate::wireless::Wireless;
 use crate::MIGRATION_SETTINGS;
 use agama_network::model::{
-    self, Dhcp4Settings, Dhcp6Settings, IpConfig, IpRoute, Ipv4Method, 
Ipv6Method, MacAddress,
+    self, Dhcp4Settings, Dhcp6Settings, IpConfig, IpRoute, Ipv4Method, 
Ipv6Method, LinkLocal,
+    MacAddress,
 };
 use agama_network::types::Status;
 use cidr::IpInet;
 use serde::{Deserialize, Serialize};
 use serde_with::{serde_as, skip_serializing_none, DeserializeFromStr, 
SerializeDisplay};
+use std::collections::HashSet;
 use std::{net::IpAddr, str::FromStr};
 use strum_macros::{Display, EnumString};
 
@@ -30,6 +32,8 @@
     pub ipv4_static: Option<Ipv4Static>,
     #[serde(rename = "ipv4-dhcp")]
     pub ipv4_dhcp: Option<Ipv4Dhcp>,
+    #[serde(rename = "ipv4-auto")]
+    pub ipv4_auto: Option<Ipv4Auto>,
     pub ipv6: Ipv6,
     #[serde(rename = "ipv6-static")]
     pub ipv6_static: Option<Ipv6Static>,
@@ -172,6 +176,12 @@
     pub release_lease: bool,
 }
 
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
+pub struct Ipv4Auto {
+    pub enabled: bool,
+    pub flags: Option<String>,
+}
+
 fn default_flags() -> String {
     "group".to_string()
 }
@@ -540,6 +550,8 @@
             Ipv4Method::Disabled
         } else if self.ipv4_dhcp.is_some() {
             Ipv4Method::Auto
+        } else if self.ipv4_auto.is_some() {
+            Ipv4Method::LinkLocal
         } else {
             Ipv4Method::Disabled
         };
@@ -553,6 +565,26 @@
             Ipv6Method::Auto
         };
 
+        let link_local4 = if let Some(auto4) = &self.ipv4_auto {
+            if auto4.enabled {
+                if let Some(flags) = &auto4.flags {
+                    if flags.contains("fallback") {
+                        LinkLocal::Fallback
+                    } else if flags.contains("primary") {
+                        LinkLocal::Enabled
+                    } else {
+                        LinkLocal::Auto
+                    }
+                } else {
+                    LinkLocal::Auto
+                }
+            } else {
+                LinkLocal::Disabled
+            }
+        } else {
+            LinkLocal::Default
+        };
+
         let mut addresses: Vec<IpInet> = vec![];
         let mut routes4: Vec<IpRoute> = vec![];
         let mut routes6: Vec<IpRoute> = vec![];
@@ -693,6 +725,7 @@
             dhcp4_settings,
             dhcp6_settings,
             ip6_privacy,
+            link_local4,
             ..Default::default()
         };
         Ok(ipconfig_result)
@@ -736,6 +769,29 @@
     }
 }
 
+pub fn check_extra_flags(flags_a: &str, flags_b: &str, diff_flags: &str) -> 
bool {
+    let flags_a: HashSet<&str> = flags_a
+        .split(',')
+        .map(|s| s.trim())
+        .filter(|s| !s.is_empty())
+        .collect();
+
+    let flags_b: HashSet<&str> = flags_b
+        .split(',')
+        .map(|s| s.trim())
+        .filter(|s| !s.is_empty())
+        .collect();
+
+    let diff_flags: HashSet<&str> = diff_flags
+        .split(',')
+        .map(|s| s.trim())
+        .filter(|s| !s.is_empty())
+        .collect();
+
+    let calculated_diff: HashSet<&str> = 
flags_a.symmetric_difference(&flags_b).copied().collect();
+    calculated_diff == diff_flags
+}
+
 fn has_unhandled_field(interface: &Interface) -> bool {
     let mut warnings = false;
 
@@ -763,7 +819,13 @@
 
     if let Some(ipv4_dhcp) = &interface.ipv4_dhcp {
         let ipv4_dhcp_default = Ipv4Dhcp::default();
-        if ipv4_dhcp.flags != ipv4_dhcp_default.flags {
+        if ipv4_dhcp.flags != ipv4_dhcp_default.flags
+            && !(check_extra_flags(
+                ipv4_dhcp.flags.as_str(),
+                ipv4_dhcp_default.flags.as_str(),
+                "primary",
+            ) && interface.ipv4_auto.is_some())
+        {
             log::warn!(
                 "Unhandled field in interface {}: {}",
                 interface.name,
@@ -1079,6 +1141,89 @@
     }
 
     #[test]
+    fn test_check_extra_flags() {
+        assert!(check_extra_flags("A, B,C ", " C,D ,E", "A,B,D,E"));
+        assert!(!check_extra_flags("A, B,C ", " C,D ,E", "A,B,D,E,X"));
+        assert!(check_extra_flags("A,B,C", "C,B,A", ""));
+        assert!(check_extra_flags("A,B,C", "C,B,A,E", "E"));
+    }
+
+    #[test]
+    fn test_autoip() {
+        setup_default_migration_settings();
+        testing_logger::setup();
+        let ifc = Interface {
+            ipv4_dhcp: Some(Ipv4Dhcp {
+                flags: String::from("primary,group"),
+                update: 
String::from("default-route,dns,nis,ntp,nds,mtu,tz,boot"),
+                ..Default::default()
+            }),
+            ipv4_auto: Some(Ipv4Auto {
+                enabled: true,
+                flags: Some("fallback".to_string()),
+            }),
+            ..Default::default()
+        };
+        let conn_res = ifc.to_connection(&None).unwrap();
+        let connection = &conn_res.connections[0];
+
+        testing_logger::validate(|captured_logs| {
+            captured_logs
+                .iter()
+                .for_each(|f| println!("[{}] {}", f.level, f.body));
+            assert_eq!(
+                captured_logs
+                    .iter()
+                    .filter(|l| l.level == Level::Warn)
+                    .count(),
+                0
+            );
+        });
+
+        assert!(connection.ip_config.link_local4 == LinkLocal::Fallback);
+        assert!(!conn_res.has_warnings);
+
+        let ifc = Interface {
+            ipv4_auto: Some(Ipv4Auto {
+                enabled: true,
+                flags: Some("".to_string()),
+            }),
+            ..Default::default()
+        };
+        let conn_res = ifc.to_connection(&None).unwrap();
+        let connection = &conn_res.connections[0];
+        assert!(connection.ip_config.method4 == Ipv4Method::LinkLocal);
+        assert!(connection.ip_config.link_local4 == LinkLocal::Auto);
+        assert!(!conn_res.has_warnings);
+
+        let ifc = Interface {
+            ipv4_auto: Some(Ipv4Auto {
+                enabled: true,
+                flags: None,
+            }),
+            ..Default::default()
+        };
+        let conn_res = ifc.to_connection(&None).unwrap();
+        let connection = &conn_res.connections[0];
+        assert!(connection.ip_config.method4 == Ipv4Method::LinkLocal);
+        assert!(connection.ip_config.link_local4 == LinkLocal::Auto);
+        assert!(!conn_res.has_warnings);
+
+        let ifc = Interface {
+            ipv4_auto: Some(Ipv4Auto {
+                enabled: true,
+                flags: Some("primary".to_string()),
+            }),
+            ..Default::default()
+        };
+        let conn_res = ifc.to_connection(&None).unwrap();
+        let connection = &conn_res.connections[0];
+        assert!(connection.ip_config.method4 == Ipv4Method::LinkLocal);
+        assert!(connection.ip_config.link_local4 == LinkLocal::Enabled);
+        assert!(!conn_res.has_warnings);
+    }
+
+    #[test]
     fn test_broadcast() {
         let ifc = Interface {
             ipv4_static: Some(Ipv4Static {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/src/main.rs 
new/wicked2nm-1.4.0/src/main.rs
--- old/wicked2nm-1.3.0/src/main.rs     2025-09-26 11:46:05.000000000 +0200
+++ new/wicked2nm-1.4.0/src/main.rs     2025-10-10 15:41:21.000000000 +0200
@@ -20,12 +20,13 @@
 use simplelog::ConfigBuilder;
 use std::path::PathBuf;
 use std::process::{ExitCode, Termination};
+use thiserror::Error;
 use tokio::sync::OnceCell;
 
 use crate::interface::Interface;
 use crate::netconfig::Netconfig;
 
-#[derive(Parser)]
+#[derive(Parser, Clone)]
 #[command(name = "wicked2nm", version, about, long_about = None)]
 struct Cli {
     #[clap(flatten)]
@@ -35,7 +36,7 @@
     pub command: Commands,
 }
 
-#[derive(Debug, Args)]
+#[derive(Debug, Args, Clone)]
 struct GlobalOpts {
     #[arg(long, global = true, default_value_t = LevelFilter::Info, 
value_parser = clap::builder::PossibleValuesParser::new(["TRACE", "DEBUG", 
"INFO", "WARN", "ERROR"]).map(|s| s.parse::<LevelFilter>().unwrap()),)]
     pub log_level: LevelFilter,
@@ -61,9 +62,13 @@
     /// If not set, defaults to $W2NM_NETCONFIG_BASE_DIR/dhcp
     #[arg(long, global = true, env = "W2NM_NETCONFIG_DHCP_PATH")]
     pub netconfig_dhcp_path: Option<PathBuf>,
+
+    /// Disable user hints.
+    #[arg(long, global = true, env = "W2NM_DISABLE_HINTS")]
+    pub disable_hints: bool,
 }
 
-#[derive(Subcommand)]
+#[derive(Subcommand, Clone)]
 pub enum Commands {
     /// Shows the current xml wicked configuration
     Show {
@@ -105,7 +110,17 @@
     Text,
 }
 
-async fn run_command(cli: Cli) -> anyhow::Result<()> {
+#[derive(Error, Debug)]
+pub enum MigrationError {
+    #[error("Migration failed because of warnings")]
+    Warnings,
+    #[error("Show failed: {0}")]
+    ShowError(anyhow::Error),
+    #[error("Migration failed: {0}")]
+    MigrationError(anyhow::Error),
+}
+
+async fn run_command(cli: Cli) -> Result<(), MigrationError> {
     let mut migration_settings = MigrationSettings {
         continue_migration: true,
         activate_connections: true,
@@ -126,28 +141,7 @@
             MIGRATION_SETTINGS
                 .set(migration_settings)
                 .expect("MIGRATION_SETTINGS was set too early");
-
-            let interfaces_result = wicked_read(paths)?;
-
-            #[derive(Debug, Serialize)]
-            struct WickedConfig {
-                interface: Vec<Interface>,
-                netconfig: Option<Netconfig>,
-            }
-            let show_output = WickedConfig {
-                interface: interfaces_result.interfaces,
-                netconfig: interfaces_result.netconfig,
-            };
-
-            let output = match format {
-                Format::Json => serde_json::to_string(&show_output)?,
-                Format::PrettyJson => 
serde_json::to_string_pretty(&show_output)?,
-                Format::Yaml => serde_yaml::to_string(&show_output)?,
-                Format::Xml => 
quick_xml::se::to_string_with_root("wicked-config", &show_output)?,
-                Format::Text => format!("{show_output:?}"),
-            };
-            println!("{output}");
-            Ok(())
+            show_command(paths, format).map_err(MigrationError::ShowError)
         }
         Commands::Migrate {
             paths,
@@ -166,11 +160,12 @@
                 MIGRATION_SETTINGS.get().unwrap()
             );
 
-            let interfaces_result = wicked_read(paths)?;
-            let mut network_state_result = 
to_networkstate(&interfaces_result)?;
+            let interfaces_result = 
wicked_read(paths).map_err(MigrationError::MigrationError)?;
+            let mut network_state_result =
+                
to_networkstate(&interfaces_result).map_err(MigrationError::MigrationError)?;
 
             if !continue_migration && network_state_result.has_warnings {
-                anyhow::bail!("Migration failed because of warnings, use the 
`--continue-migration` flag to ignore");
+                return Err(MigrationError::Warnings);
             }
 
             if dry_run {
@@ -187,18 +182,44 @@
             .await
             {
                 Ok(()) => Ok(()),
-                Err(e) => Err(anyhow::anyhow!("Migration failed: {}", e)),
+                Err(e) => Err(MigrationError::MigrationError(e)),
             }
         }
     }
 }
 
+fn show_command(paths: Vec<String>, format: Format) -> anyhow::Result<()> {
+    let interfaces_result = wicked_read(paths)?;
+
+    #[derive(Debug, Serialize)]
+    struct WickedConfig {
+        interface: Vec<Interface>,
+        netconfig: Option<Netconfig>,
+    }
+    let show_output = WickedConfig {
+        interface: interfaces_result.interfaces,
+        netconfig: interfaces_result.netconfig,
+    };
+
+    let output = match format {
+        Format::Json => serde_json::to_string(&show_output)?,
+        Format::PrettyJson => serde_json::to_string_pretty(&show_output)?,
+        Format::Yaml => serde_yaml::to_string(&show_output)?,
+        Format::Xml => quick_xml::se::to_string_with_root("wicked-config", 
&show_output)?,
+        Format::Text => format!("{show_output:?}"),
+    };
+    println!("{output}");
+    Ok(())
+}
+
 /// Represents the result of execution.
 pub enum CliResult {
     /// Successful execution.
     Ok = 0,
     /// Something went wrong.
     Error = 1,
+    /// Failed due to warnings.
+    Warnings = 3,
 }
 
 impl Termination for CliResult {
@@ -249,9 +270,19 @@
     )
     .unwrap();
 
-    if let Err(error) = run_command(cli).await {
+    if let Err(error) = run_command(cli.clone()).await {
         log::error!("{error}");
-        return CliResult::Error;
+        match error {
+            MigrationError::Warnings => {
+                if !cli.global_opts.disable_hints {
+                    log::info!("Use the `--continue-migration` flag to ignore 
warnings");
+                }
+                return CliResult::Warnings;
+            }
+            _ => {
+                return CliResult::Error;
+            }
+        }
     }
 
     CliResult::Ok
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/src/migrate.rs 
new/wicked2nm-1.4.0/src/migrate.rs
--- old/wicked2nm-1.3.0/src/migrate.rs  2025-09-26 11:46:05.000000000 +0200
+++ new/wicked2nm-1.4.0/src/migrate.rs  2025-10-10 15:41:21.000000000 +0200
@@ -1,12 +1,15 @@
 use crate::interface::{ConnectionResult, Link, LinkPort, LinkPortType};
 use crate::netconfig::{apply_dns_policy, Netconfig};
 use crate::reader::InterfacesResult;
+use crate::MIGRATION_SETTINGS;
 use agama_network::model::{Connection, ConnectionConfig, IpConfig, 
MatchConfig, StateConfig};
 use agama_network::{model, Adapter, NetworkManagerAdapter, NetworkState};
 use cidr::IpInet;
+use nix::ifaddrs::getifaddrs;
+use std::collections::HashMap;
+use std::collections::HashSet;
 use std::fmt;
 use std::str::FromStr;
-use std::{collections::HashMap, error::Error};
 use uuid::Uuid;
 
 #[derive(Debug)]
@@ -136,6 +139,7 @@
 pub fn to_networkstate(
     interface_result: &InterfacesResult,
 ) -> Result<NetworkStateResult, anyhow::Error> {
+    let settings = MIGRATION_SETTINGS.get().unwrap();
     let mut parents: HashMap<Uuid, Link> = HashMap::new();
     let mut connection_result: ConnectionResult = ConnectionResult {
         has_warnings: interface_result.has_warnings,
@@ -207,6 +211,36 @@
         }
     }
 
+    if settings.activate_connections {
+        let system_interfaces = list_system_interfaces()?;
+        for con in &mut connection_result.connections {
+            let interface_name = match &con.config {
+                ConnectionConfig::Dummy => continue,
+                ConnectionConfig::Bond(_) => continue,
+                ConnectionConfig::Loopback => continue,
+                ConnectionConfig::Vlan(_) => continue,
+                ConnectionConfig::Bridge(_) => continue,
+                ConnectionConfig::Tun(_) => continue,
+                ConnectionConfig::OvsBridge(_) => continue,
+                ConnectionConfig::OvsPort(_) => continue,
+                ConnectionConfig::OvsInterface(_) => continue,
+                ConnectionConfig::Ethernet => 
con.interface.as_ref().unwrap_or(&con.id),
+                ConnectionConfig::Wireless(_) => 
con.interface.as_ref().unwrap_or(&con.id),
+                ConnectionConfig::Infiniband(config) => {
+                    if let Some(parent) = &config.parent {
+                        parent
+                    } else {
+                        continue;
+                    }
+                }
+            };
+
+            if con.autoconnect && !system_interfaces.contains(interface_name) {
+                con.status = agama_network::types::Status::Down;
+            }
+        }
+    }
+
     let mut state_result = NetworkStateResult {
         has_warnings: connection_result.has_warnings,
         ..Default::default()
@@ -224,7 +258,7 @@
 pub async fn apply_networkstate(
     state: &mut NetworkState,
     netconfig: Option<Netconfig>,
-) -> Result<(), Box<dyn Error>> {
+) -> Result<(), anyhow::Error> {
     let nm = NetworkManagerAdapter::from_system().await?;
 
     if let Some(netconfig) = netconfig {
@@ -258,3 +292,13 @@
     nm.write(state).await?;
     Ok(())
 }
+
+fn list_system_interfaces() -> Result<HashSet<String>, anyhow::Error> {
+    let mut interface_names = HashSet::new();
+
+    for ifaddr in getifaddrs()? {
+        interface_names.insert(ifaddr.interface_name);
+    }
+
+    Ok(interface_names)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/tests/autoconnect/ENV 
new/wicked2nm-1.4.0/tests/autoconnect/ENV
--- old/wicked2nm-1.3.0/tests/autoconnect/ENV   1970-01-01 01:00:00.000000000 
+0100
+++ new/wicked2nm-1.4.0/tests/autoconnect/ENV   2025-10-10 15:41:21.000000000 
+0200
@@ -0,0 +1,2 @@
+W2NM_WITHOUT_NETCONFIG=true
+W2NM_ACTIVATE_CONNECTIONS=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wicked2nm-1.3.0/tests/autoconnect/system-connections/eth9.nmconnection 
new/wicked2nm-1.4.0/tests/autoconnect/system-connections/eth9.nmconnection
--- old/wicked2nm-1.3.0/tests/autoconnect/system-connections/eth9.nmconnection  
1970-01-01 01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoconnect/system-connections/eth9.nmconnection  
2025-10-10 15:41:21.000000000 +0200
@@ -0,0 +1,19 @@
+[connection]
+id=eth9
+uuid=da886e32-22a9-4d83-8c04-421ec59d274b
+type=ethernet
+interface-name=eth9
+
+[ethernet]
+
+[match]
+
+[ipv4]
+method=disabled
+
+[ipv6]
+addr-gen-mode=default
+ip6-privacy=1
+method=auto
+
+[proxy]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wicked2nm-1.3.0/tests/autoconnect/wicked_xml/autoconnect.xml 
new/wicked2nm-1.4.0/tests/autoconnect/wicked_xml/autoconnect.xml
--- old/wicked2nm-1.3.0/tests/autoconnect/wicked_xml/autoconnect.xml    
1970-01-01 01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoconnect/wicked_xml/autoconnect.xml    
2025-10-10 15:41:21.000000000 +0200
@@ -0,0 +1,15 @@
+<interface origin="compat:suse:/etc/sysconfig/network/ifcfg-eth9">
+  <name>eth9</name>
+  <control>
+    <mode>boot</mode>
+  </control>
+  <firewall/>
+  <link/>
+  <ipv4>
+    <arp-verify>true</arp-verify>
+  </ipv4>
+  <ipv6>
+    <privacy>prefer-public</privacy>
+    <accept-redirects>false</accept-redirects>
+  </ipv6>
+</interface>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/tests/autoip/ENV 
new/wicked2nm-1.4.0/tests/autoip/ENV
--- old/wicked2nm-1.3.0/tests/autoip/ENV        1970-01-01 01:00:00.000000000 
+0100
+++ new/wicked2nm-1.4.0/tests/autoip/ENV        2025-10-10 15:41:21.000000000 
+0200
@@ -0,0 +1 @@
+W2NM_NETCONFIG_BASE_DIR=./netconfig
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/tests/autoip/netconfig/ifcfg-en5 
new/wicked2nm-1.4.0/tests/autoip/netconfig/ifcfg-en5
--- old/wicked2nm-1.3.0/tests/autoip/netconfig/ifcfg-en5        1970-01-01 
01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoip/netconfig/ifcfg-en5        2025-10-10 
15:41:21.000000000 +0200
@@ -0,0 +1,2 @@
+STARTMODE=auto
+BOOTPROTO=autoip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wicked2nm-1.3.0/tests/autoip/system-connections/en5.nmconnection 
new/wicked2nm-1.4.0/tests/autoip/system-connections/en5.nmconnection
--- old/wicked2nm-1.3.0/tests/autoip/system-connections/en5.nmconnection        
1970-01-01 01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoip/system-connections/en5.nmconnection        
2025-10-10 15:41:21.000000000 +0200
@@ -0,0 +1,22 @@
+[connection]
+id=en5
+uuid=988c43ec-efc3-449d-bee0-e7ecc42c840a
+type=ethernet
+interface-name=en5
+
+[ethernet]
+
+[match]
+
+[ipv4]
+ignore-auto-dns=true
+link-local=1
+method=link-local
+
+[ipv6]
+addr-gen-mode=default
+ignore-auto-dns=true
+ip6-privacy=1
+method=auto
+
+[proxy]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/tests/autoip/wicked_xml/config.xml 
new/wicked2nm-1.4.0/tests/autoip/wicked_xml/config.xml
--- old/wicked2nm-1.3.0/tests/autoip/wicked_xml/config.xml      1970-01-01 
01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoip/wicked_xml/config.xml      2025-10-10 
15:41:21.000000000 +0200
@@ -0,0 +1,17 @@
+<interface origin="compat:suse:/tests/autoip/netconfig/ifcfg-en5">
+  <name>en5</name>
+  <control>
+    <mode>boot</mode>
+  </control>
+  <link/>
+  <ipv4>
+    <enabled>true</enabled>
+  </ipv4>
+  <ipv4:auto>
+    <enabled>true</enabled>
+  </ipv4:auto>
+  <ipv6>
+    <enabled>true</enabled>
+    <privacy>prefer-public</privacy>
+  </ipv6>
+</interface>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/tests/autoip_fallback/ENV 
new/wicked2nm-1.4.0/tests/autoip_fallback/ENV
--- old/wicked2nm-1.3.0/tests/autoip_fallback/ENV       1970-01-01 
01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoip_fallback/ENV       2025-10-10 
15:41:21.000000000 +0200
@@ -0,0 +1,3 @@
+W2NM_NETCONFIG_BASE_DIR=./netconfig
+NM_VERSION_ge=1.52
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wicked2nm-1.3.0/tests/autoip_fallback/netconfig/ifcfg-en5 
new/wicked2nm-1.4.0/tests/autoip_fallback/netconfig/ifcfg-en5
--- old/wicked2nm-1.3.0/tests/autoip_fallback/netconfig/ifcfg-en5       
1970-01-01 01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoip_fallback/netconfig/ifcfg-en5       
2025-10-10 15:41:21.000000000 +0200
@@ -0,0 +1,2 @@
+STARTMODE=auto
+BOOTPROTO=dhcp+autoip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wicked2nm-1.3.0/tests/autoip_fallback/system-connections/en5.nmconnection 
new/wicked2nm-1.4.0/tests/autoip_fallback/system-connections/en5.nmconnection
--- 
old/wicked2nm-1.3.0/tests/autoip_fallback/system-connections/en5.nmconnection   
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/wicked2nm-1.4.0/tests/autoip_fallback/system-connections/en5.nmconnection   
    2025-10-10 15:41:21.000000000 +0200
@@ -0,0 +1,32 @@
+[connection]
+id=en5
+uuid=1ea32b91-40ed-4f57-87fd-93f572c9d8bf
+type=ethernet
+interface-name=en5
+
+[ethernet]
+
+[match]
+
+[ipv4]
+dhcp-client-id=ipv6-duid
+dhcp-iaid=mac
+dhcp-send-hostname-deprecated=false
+dhcp-send-hostname=0
+dhcp-send-release=0
+ignore-auto-dns=true
+link-local=4
+method=auto
+
+[ipv6]
+addr-gen-mode=default
+dhcp-duid=llt
+dhcp-iaid=mac
+dhcp-send-hostname-deprecated=false
+dhcp-send-hostname=0
+dhcp-send-release=0
+ignore-auto-dns=true
+ip6-privacy=1
+method=auto
+
+[proxy]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wicked2nm-1.3.0/tests/autoip_fallback/wicked_xml/config.xml 
new/wicked2nm-1.4.0/tests/autoip_fallback/wicked_xml/config.xml
--- old/wicked2nm-1.3.0/tests/autoip_fallback/wicked_xml/config.xml     
1970-01-01 01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoip_fallback/wicked_xml/config.xml     
2025-10-10 15:41:21.000000000 +0200
@@ -0,0 +1,35 @@
+<interface origin="compat:suse:/tests/autoip_fallback/netconfig/ifcfg-en5">
+  <name>en5</name>
+  <control>
+    <mode>boot</mode>
+  </control>
+  <link/>
+  <ipv4>
+    <enabled>true</enabled>
+  </ipv4>
+  <ipv4:dhcp>
+    <enabled>true</enabled>
+    <flags>group,primary</flags>
+    <update>default-route,dns,nis,ntp,nds,mtu,tz,boot</update>
+    <recover-lease>true</recover-lease>
+    <release-lease>false</release-lease>
+  </ipv4:dhcp>
+  <ipv4:auto>
+    <enabled>true</enabled>
+    <flags>fallback</flags>
+  </ipv4:auto>
+  <ipv6>
+    <enabled>true</enabled>
+    <privacy>prefer-public</privacy>
+  </ipv6>
+  <ipv6:dhcp>
+    <enabled>true</enabled>
+    <flags>group</flags>
+    <update>dns,nis,ntp,tz,boot</update>
+    <mode>auto</mode>
+    <rapid-commit>true</rapid-commit>
+    <recover-lease>true</recover-lease>
+    <refresh-lease>false</refresh-lease>
+    <release-lease>false</release-lease>
+  </ipv6:dhcp>
+</interface>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/wicked2nm-1.3.0/tests/autoip_fallback2/ENV 
new/wicked2nm-1.4.0/tests/autoip_fallback2/ENV
--- old/wicked2nm-1.3.0/tests/autoip_fallback2/ENV      1970-01-01 
01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoip_fallback2/ENV      2025-10-10 
15:41:21.000000000 +0200
@@ -0,0 +1,3 @@
+W2NM_NETCONFIG_BASE_DIR=./netconfig
+NM_VERSION_lt=1.52
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wicked2nm-1.3.0/tests/autoip_fallback2/netconfig/ifcfg-en5 
new/wicked2nm-1.4.0/tests/autoip_fallback2/netconfig/ifcfg-en5
--- old/wicked2nm-1.3.0/tests/autoip_fallback2/netconfig/ifcfg-en5      
1970-01-01 01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoip_fallback2/netconfig/ifcfg-en5      
2025-10-10 15:41:21.000000000 +0200
@@ -0,0 +1,2 @@
+STARTMODE=auto
+BOOTPROTO=dhcp+autoip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wicked2nm-1.3.0/tests/autoip_fallback2/system-connections/en5.nmconnection 
new/wicked2nm-1.4.0/tests/autoip_fallback2/system-connections/en5.nmconnection
--- 
old/wicked2nm-1.3.0/tests/autoip_fallback2/system-connections/en5.nmconnection  
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/wicked2nm-1.4.0/tests/autoip_fallback2/system-connections/en5.nmconnection  
    2025-10-10 15:41:21.000000000 +0200
@@ -0,0 +1,28 @@
+[connection]
+id=en5
+uuid=cce4bb0d-657c-473f-8215-37d7893a73fd
+type=ethernet
+interface-name=en5
+
+[ethernet]
+
+[match]
+
+[ipv4]
+dhcp-client-id=ipv6-duid
+dhcp-iaid=mac
+dhcp-send-hostname=false
+ignore-auto-dns=true
+link-local=3
+method=auto
+
+[ipv6]
+addr-gen-mode=default
+dhcp-duid=llt
+dhcp-iaid=mac
+dhcp-send-hostname=false
+ignore-auto-dns=true
+ip6-privacy=1
+method=auto
+
+[proxy]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/wicked2nm-1.3.0/tests/autoip_fallback2/wicked_xml/config.xml 
new/wicked2nm-1.4.0/tests/autoip_fallback2/wicked_xml/config.xml
--- old/wicked2nm-1.3.0/tests/autoip_fallback2/wicked_xml/config.xml    
1970-01-01 01:00:00.000000000 +0100
+++ new/wicked2nm-1.4.0/tests/autoip_fallback2/wicked_xml/config.xml    
2025-10-10 15:41:21.000000000 +0200
@@ -0,0 +1,35 @@
+<interface origin="compat:suse:/tests/autoip_fallback2/netconfig/ifcfg-en5">
+  <name>en5</name>
+  <control>
+    <mode>boot</mode>
+  </control>
+  <link/>
+  <ipv4>
+    <enabled>true</enabled>
+  </ipv4>
+  <ipv4:dhcp>
+    <enabled>true</enabled>
+    <flags>group,primary</flags>
+    <update>default-route,dns,nis,ntp,nds,mtu,tz,boot</update>
+    <recover-lease>true</recover-lease>
+    <release-lease>false</release-lease>
+  </ipv4:dhcp>
+  <ipv4:auto>
+    <enabled>true</enabled>
+    <flags>fallback</flags>
+  </ipv4:auto>
+  <ipv6>
+    <enabled>true</enabled>
+    <privacy>prefer-public</privacy>
+  </ipv6>
+  <ipv6:dhcp>
+    <enabled>true</enabled>
+    <flags>group</flags>
+    <update>dns,nis,ntp,tz,boot</update>
+    <mode>auto</mode>
+    <rapid-commit>true</rapid-commit>
+    <recover-lease>true</recover-lease>
+    <refresh-lease>false</refresh-lease>
+    <release-lease>false</release-lease>
+  </ipv6:dhcp>
+</interface>

++++++ wicked2nm.obsinfo ++++++
--- /var/tmp/diff_new_pack.mrp9Zr/_old  2025-10-11 22:50:18.757454214 +0200
+++ /var/tmp/diff_new_pack.mrp9Zr/_new  2025-10-11 22:50:18.765454550 +0200
@@ -1,5 +1,5 @@
 name: wicked2nm
-version: 1.3.0
-mtime: 1758879965
-commit: 8d099647b11f9fc7c2decd9afd45fab72325bd33
+version: 1.4.0
+mtime: 1760103681
+commit: 00afa49fbb892eb6db475793d5e44188452cec17
 

Reply via email to