diff --git a/.gitignore b/.gitignore index 4bea9fc..740a42c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/nmstate-2.2.58.tar.gz -SOURCES/nmstate-vendor-2.2.58.tar.xz +SOURCES/nmstate-2.2.60.tar.gz +SOURCES/nmstate-vendor-2.2.60.tar.xz diff --git a/.nmstate.metadata b/.nmstate.metadata index 6cde4be..f9c8e3a 100644 --- a/.nmstate.metadata +++ b/.nmstate.metadata @@ -1,2 +1,2 @@ -314fbd26f1f5bbafbfd78bc0232aa44d7b992987 SOURCES/nmstate-2.2.58.tar.gz -4b3c5af41356c3dcab9a302d9aa81aef7e77b835 SOURCES/nmstate-vendor-2.2.58.tar.xz +c0fac9220cfc06e6d1e53faff7491aadc75bace9 SOURCES/nmstate-2.2.60.tar.gz +bf188a605750e38132df90b4709297b749915521 SOURCES/nmstate-vendor-2.2.60.tar.xz diff --git a/SOURCES/0001-nispor-fix-ipoib-iface-type.patch b/SOURCES/0001-nispor-fix-ipoib-iface-type.patch new file mode 100644 index 0000000..6a4aabb --- /dev/null +++ b/SOURCES/0001-nispor-fix-ipoib-iface-type.patch @@ -0,0 +1,63 @@ +From 18fce5de48c2687131eab604c31c4738ffc2554c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= +Date: Mon, 4 May 2026 07:24:15 +0200 +Subject: [PATCH] infiniband: restore detection of Ipoib iface type +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes 5e13d3f "Prefer LinkInfo::Kind as interface type". This commit +made to always prefer InfoKind over anything for Ethernet, but at the +same time it made to prefer LinkLayerType over InfoKind for Infiniband. +This causes that the Ipoib iface typeis not detected anymore, causing +two problems: +- Interfaces previously detected as Ipoib are now detected as + Infiniband, breaking some clients like nmstate. +- The Ipoib data is not parsed, as it is only done for Ipoib iface type. + +Fix it by prefering the "Infiniband" generic type only if no InfoKind +was detected, or InfoKind::Other was detected. + +Signed-off-by: Íñigo Huguet +--- + src/lib/query/iface.rs | 23 ++++++++++++++++------- + 1 file changed, 16 insertions(+), 7 deletions(-) + +diff --git a/src/lib/query/iface.rs b/src/lib/query/iface.rs +index 9e21070..cce4f40 100644 +--- a/vendor/nispor/query/iface.rs ++++ b/vendor/nispor/query/iface.rs +@@ -420,14 +420,23 @@ pub(crate) fn parse_nl_msg_to_iface( + }, + _ => IfaceType::Other(format!("{t:?}").to_lowercase()), + }; +- // Always prefer InfoKind unless link type is loopback or +- // infiniband. +- if !matches!( +- iface_state.iface_type, +- IfaceType::Loopback | IfaceType::Infiniband +- ) { +- iface_state.iface_type = iface_type; ++ ++ // We prefer LinkLayerType over InfoKind for loopback, as it ++ // is more accurate in this case. We also prefer it for ++ // infiniband, but only if we didn't detect a specific ++ // InfoKind (we detected Other). For example, Ipoib is more ++ // specific than Infiniband, but Other is not. ++ if iface_state.iface_type == IfaceType::Loopback ++ || (iface_state.iface_type == IfaceType::Infiniband ++ && matches!(iface_type, IfaceType::Other(_))) ++ { ++ continue; + } ++ ++ // For any other case, we prefer InfoKind over LinkLayerType ++ // as it is almost always more accurate. LinkLayerType is ++ // set as ethernet for most device types. ++ iface_state.iface_type = iface_type; + } + } + for info in infos { +-- +2.53.0 + diff --git a/SOURCES/nmstate-2.2.58.tar.gz.asc b/SOURCES/nmstate-2.2.58.tar.gz.asc deleted file mode 100644 index 5feead5..0000000 --- a/SOURCES/nmstate-2.2.58.tar.gz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCgAdFiEESP1vrlFad7SENoIch4lWe4cVzrwFAmmBms0ACgkQh4lWe4cV -zrzmcg/8C7w/0bKC6apqcux+HJb4J38fBy1ZLrvItBhT9gPka8VmbbUWKziBzHa6 -+4bRKxKJGY76RCZ88zlMR3hvKvWbir60WxsMi+Wk8pa8x4nWsvxJUTCZSJW437K7 -DWuaGui8OAMwLyiocUcf2BXTv0fwlj77PY4h9i6tI81BQoWbD2YHB7/oUxER9SgT -E4Yh/UO9HTlwxtEbM9qQ3m6mnA8vVsdJ6d4vaeqoGGHvLHtr+2jN1nGZb14MyqTU -ke0tS1JWPK5zMeyPs8H4I6cXUbiryeGhLBVr6G4OL5ipA2j6T1HXfQM4VKFgd9oR -z68AP1lNm7zmuEURyd0mCxRSF55I06RvQ48U41SYbTkGJ4sGBcf+cSmNFm6C3u92 -QfJGwa2+FXQQC0vte8p7K/5nLXn13qFPgmVv7BuDoaBytg4Ph3jBuVEP5T0ciADK -Vd9MHNLVL/bUHKkoCtGy9Jl4orxC/7tKxOSq2/eG9z+lFS/1J6P/KotIwWMN6udp -PNDhTFTAJT8QKl/syETGpnQbfeZ0q8612UQB0VzwoIiQM+stTJQ8HRejUCtL0dp6 -kkBAdPrKEdHzU6dmfZWwnKU9Y9a7B8h9IdRjsMkwQMY2E071ZmgQToU//Vst2rsf -++p7gYVfCH9AVXht4N6eNeaTCD4A5JLk66OTXlxyu/aIpmFCbfI= -=OoqX ------END PGP SIGNATURE----- diff --git a/SOURCES/nmstate-2.2.60.tar.gz.asc b/SOURCES/nmstate-2.2.60.tar.gz.asc new file mode 100644 index 0000000..7808e37 --- /dev/null +++ b/SOURCES/nmstate-2.2.60.tar.gz.asc @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- + +iQEzBAABCgAdFiEEB/muyGFEOG2VdiELZqRHgbTrwtAFAmnojNsACgkQZqRHgbTr +wtAuOgf/fgqzvQh+cAUPLa1J1W1sA0ij8eXtOxRAK1wweUi9sS3Yg72rubTAtDGL +vgm6rGMNRHkrt13IKt1e/VwhM1IlZplj5mF4615+NnimokJksU2l9r0gw8KwkZvz +9LO2D6LNtz/qpHISX4VCULwZrW0JpTTpc+L0vJxtwhL5ZApG3n4jKipZ+x1o7f5l +oswDyTf90VcLhgiCMiSJdoVCfhxZJuttJVpIpYvPxD44tjpuFaa24e30k6S/zSop +tBFHnvDu6S0/pjKNG7/vzkSUWrbGeaOcopIQLeQQIE7XcFd1x0FrKUHkVAmXq9lu +k0Fi8L9C3+zuw1lCPEloVgCMcKAX6w== +=5HTd +-----END PGP SIGNATURE----- diff --git a/SPECS/nmstate.spec b/SPECS/nmstate.spec index 2fb43c8..8ec9e48 100644 --- a/SPECS/nmstate.spec +++ b/SPECS/nmstate.spec @@ -3,7 +3,7 @@ %define libname libnmstate Name: nmstate -Version: 2.2.58 +Version: 2.2.60 Release: 1%{?dist} Summary: Declarative network manager API License: LGPLv2+ @@ -12,6 +12,7 @@ Source0: https://github.com/nmstate/nmstate/releases/download/v%{version} Source1: https://github.com/nmstate/nmstate/releases/download/v%{version}/nmstate-%{version}.tar.gz.asc Source2: https://nmstate.io/nmstate.gpg Source3: https://github.com/nmstate/nmstate/releases/download/v%{version}/nmstate-vendor-%{version}.tar.xz +Patch1: 0001-nispor-fix-ipoib-iface-type.patch BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: gnupg2 @@ -78,12 +79,23 @@ This package contains the Python 3 library for Nmstate. %prep gpg2 --import --import-options import-export,import-minimal %{SOURCE2} > ./gpgkey-mantainers.gpg gpgv2 --keyring ./gpgkey-mantainers.gpg %{SOURCE1} %{SOURCE0} -%autosetup -p1 + +%autosetup -n %{name}-%{version_no_tilde} -p1 %{?rhel:-a3} + +# If we have a patch for a vendored dependency, cargo refuses to build, +# in order to prevent accidental manual changes to vendored crates. +# This is not needed in an rpm build. Clear the list of files for which +# to check the checksum. +find vendor -name .cargo-checksum.json \ + -exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+' pushd rust -# Source3 is vendored dependencies -%cargo_prep -V 3 - +%if 0%{?rhel} +mv ../vendor ./ +%cargo_prep -v vendor +%else +%cargo_prep +%endif popd %build @@ -92,6 +104,11 @@ pushd rust/src/python popd pushd rust %cargo_build +%cargo_license_summary +%{cargo_license} > ../LICENSE.dependencies +%if 0%{?rhel} +%cargo_vendor_manifest +%endif popd %install @@ -108,6 +125,10 @@ popd %files %doc README.md +%license LICENSE.dependencies +%if 0%{?rhel} +%license rust/cargo-vendor.txt +%endif %doc examples/ %{_mandir}/man8/nmstate.service.8* %{_mandir}/man8/nmstatectl.8* @@ -143,6 +164,14 @@ popd /sbin/ldconfig %changelog +* Thu May 06 2026 Ján Václav - 2.2.60-1 +- Upgrade to 2.2.60 +- ipv4: Add new parameter prefix-route-metric RHEL-170695 + +* Thu Mar 05 2026 Rahul Rajesh - 2.2.59-1 +- Upgrade to 2.2.59 +- Add support for lock-mtu option. RHEL-151933. + * Wed Feb 11 2026 Mingyu Shi - 2.2.58-1 - Upgrade to 2.2.58 - vrf: Handle ignore interface when verifying desired state. RHEL-141606