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
