Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package dracut for openSUSE:Factory checked 
in at 2026-03-31 15:22:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
 and      /work/SRC/openSUSE:Factory/.dracut.new.1999 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dracut"

Tue Mar 31 15:22:05 2026 rev:257 rq:1343591 version:110+suse.23.g5d9502c7

Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes    2026-03-27 
06:38:19.742336180 +0100
+++ /work/SRC/openSUSE:Factory/.dracut.new.1999/dracut.changes  2026-03-31 
15:22:19.452438420 +0200
@@ -1,0 +2,12 @@
+Mon Mar 30 06:57:43 UTC 2026 - Antonio Feijoo <[email protected]>
+
+- Update to version 110+suse.23.g5d9502c7:
+
+  NVMeoF boot: avoid network interface renaming (jsc#PED-14341):
+  * feat(nvmf): set rd.nvmf.nm=1 if NetworkManager 1.54 is detected
+  * feat(nvmf): allow using system interface naming policy
+  * feat(nvmf): add dracut.conf option nvmf_nbft_mode
+  * feat(nvmf): enable adapting to NBFT reconfiguration
+  * fix(dracut.conf.5): move fstab/chroot warning to hostonly_mode section
+
+-------------------------------------------------------------------

Old:
----
  dracut-110+suse.18.g5a7a17b3.tar.xz

New:
----
  dracut-110+suse.23.g5d9502c7.tar.xz

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

Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.wBVdx6/_old  2026-03-31 15:22:21.456522114 +0200
+++ /var/tmp/diff_new_pack.wBVdx6/_new  2026-03-31 15:22:21.464522447 +0200
@@ -26,7 +26,7 @@
 %endif
 
 Name:           dracut
-Version:        110+suse.18.g5a7a17b3
+Version:        110+suse.23.g5d9502c7
 Release:        0
 Summary:        Event driven initramfs infrastructure
 License:        GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.wBVdx6/_old  2026-03-31 15:22:21.544525788 +0200
+++ /var/tmp/diff_new_pack.wBVdx6/_new  2026-03-31 15:22:21.552526123 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/opensuse/dracut-ng.git</param>
-              <param 
name="changesrevision">5a7a17b301fa788ec37a72abbea60ac8e5dbe934</param></service></servicedata>
+              <param 
name="changesrevision">5d9502c714d7ce6ddb67f2d632d7326cc41614a0</param></service></servicedata>
 (No newline at EOF)
 

++++++ dracut-110+suse.18.g5a7a17b3.tar.xz -> 
dracut-110+suse.23.g5d9502c7.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-110+suse.18.g5a7a17b3/dracut.sh 
new/dracut-110+suse.23.g5d9502c7/dracut.sh
--- old/dracut-110+suse.18.g5a7a17b3/dracut.sh  2026-03-25 14:33:48.000000000 
+0100
+++ new/dracut-110+suse.23.g5d9502c7/dracut.sh  2026-03-30 08:48:10.000000000 
+0200
@@ -1188,6 +1188,7 @@
 [[ $kernel_image_l ]] && kernel_image=$(path_rel_to_abs "$kernel_image_l")
 [[ $sbat_l ]] && sbat="$sbat_l"
 [[ $machine_id_l ]] && machine_id="$machine_id_l"
+[[ $nvmf_nbft_mode ]] || nvmf_nbft_mode=match
 
 TMPDIR="$(realpath -e "$tmpdir")"
 readonly TMPDIR
@@ -2052,6 +2053,14 @@
 fi
 unset threecpio_help_output
 
+case $nvmf_nbft_mode in
+    nbft | match | static) ;;
+    *)
+        dwarn "Invalid value \"$nvmf_nbft_mode\" for nvmf_nbft_mode. Assuming 
\"match\"."
+        nvmf_nbft_mode=match
+        ;;
+esac
+
 if [[ $no_kernel != yes ]] && ! [[ -d $srcmods ]]; then
     dfatal "Cannot find module directory $srcmods"
     dfatal "and --no-kernel was not specified"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-110+suse.18.g5a7a17b3/man/dracut.cmdline.7.adoc 
new/dracut-110+suse.23.g5d9502c7/man/dracut.cmdline.7.adoc
--- old/dracut-110+suse.18.g5a7a17b3/man/dracut.cmdline.7.adoc  2026-03-25 
14:33:48.000000000 +0100
+++ new/dracut-110+suse.23.g5d9502c7/man/dracut.cmdline.7.adoc  2026-03-30 
08:48:10.000000000 +0200
@@ -946,6 +946,13 @@
     the initramfs was built. Targets specified with rd.nvmf.discover on the
     kernel command line will still be tried.
 
+**rd.nvmf.nm**::
+    Rely on NetworkManagers nm-initrd-generator tool to set up network
+    interfaces from the NVMe Boot Firmware Table (NBFT). This has the effect
+    that the network interfaces generated from the NBFT will have regular
+    interface names rather than ++nbft0++ etc. *This requires NetworkManager
+    1.54.0 or higher*.
+
 **rd.nvmf.hostnqn=**__<hostNQN>__::
     NVMe host NQN to use
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-110+suse.18.g5a7a17b3/man/dracut.conf.5.adoc 
new/dracut-110+suse.23.g5d9502c7/man/dracut.conf.5.adoc
--- old/dracut-110+suse.18.g5a7a17b3/man/dracut.conf.5.adoc     2026-03-25 
14:33:48.000000000 +0100
+++ new/dracut-110+suse.23.g5d9502c7/man/dracut.conf.5.adoc     2026-03-30 
08:48:10.000000000 +0200
@@ -192,6 +192,9 @@
 efforts to save more space. Minor changes in hardware or environment can make
 the image unbootable.
 
+WARNING: If chrooted to another root other than the real root device, use
+`--fstab` and provide a valid _/etc/fstab_.
+
 *hostonly_cmdline=*"__{yes|no}__"::
 If set to "yes", store the kernel command line arguments needed in the
 initramfs. If **hostonly="yes"** and this option is not configured, it's
@@ -209,9 +212,6 @@
 *tmpdir=*"__<temporary directory>__"::
 Specify temporary directory to use.
 +
-WARNING: If chrooted to another root other than the real root device, use
-`--fstab` and provide a valid _/etc/fstab_.
-
 *use_fstab=*"__{yes|no}__"::
 Use _/etc/fstab_ instead of _/proc/self/mountinfo_ (default=no).
 
@@ -400,6 +400,21 @@
 Let kernel-install create a rescue image (default=no).
 This configuration option applies only to kernel-install.
 
+*nvmf_nbft_mode*="__{match|nbft|static}__"::
+For systems that use the ++nvmf++ module for booting from NVMe over Fabrics
+(NVMeoF), specify how to set command line options for NVMe subsystems that are
+listed in the NVMe Boot Firmware Table (NBFT). This option only has an effect
+if ++hostonly_cmdline++ is set to ++yes++.  If set to ++static++, generate
+cmdline entries for all NVMe subsystems detected while the initramfs was
+built. If set to ++nbft++, don't generate any entries for NVMe subsystems using
+the ++tcp++ transport (i.e. rely on NBFT parsing for detecting NVMe subsystems
+at boot time). If set to ++match++ (default), only add cmdline entries for
+++tcp++ subsystems that do not match any entry in the NBFT, comparing subsystem
+IP address (traddr) and port (trsvcid).  Use ++nbft++ or ++match++ if you want
+the system to adapt if the content of the NBFT changes between reboots. Use
+++static++ if you want connect to the same subsystems, always, no matter what
+the content of the NBFT is.  The default is ++match++.
+
 == Files
 _/etc/dracut.conf_::
 Old configuration file. It is recommended to use individual files in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-110+suse.18.g5a7a17b3/modules.d/74nvmf/module-setup.sh 
new/dracut-110+suse.23.g5d9502c7/modules.d/74nvmf/module-setup.sh
--- old/dracut-110+suse.18.g5a7a17b3/modules.d/74nvmf/module-setup.sh   
2026-03-25 14:33:48.000000000 +0100
+++ new/dracut-110+suse.23.g5d9502c7/modules.d/74nvmf/module-setup.sh   
2026-03-30 08:48:10.000000000 +0200
@@ -1,5 +1,15 @@
 #!/bin/bash
 
+__nvmf_has_nbft() {
+    local f found=
+    for f in /sys/firmware/acpi/tables/NBFT*; do
+        [ -f "$f" ] || continue
+        found=1
+        break
+    done
+    [[ $found ]]
+}
+
 # called by dracut
 check() {
     local -A nvmf_trtypes
@@ -32,16 +42,6 @@
         fi
     }
 
-    has_nbft() {
-        local f found=
-        for f in /sys/firmware/acpi/tables/NBFT*; do
-            [ -f "$f" ] || continue
-            found=1
-            break
-        done
-        [[ $found ]]
-    }
-
     [[ $hostonly ]] || [[ $mount_needs ]] && {
         [ -f /etc/nvme/hostnqn ] || return 255
         [ -f /etc/nvme/hostid ] || return 255
@@ -53,7 +53,7 @@
         require_kernel_modules "${!nvmf_trtypes[@]}" || return 1
         if [ ! -f /sys/class/fc/fc_udev_device/nvme_discovery ] \
             && [ ! -f /etc/nvme/discovery.conf ] \
-            && [ ! -f /etc/nvme/config.json ] && ! has_nbft; then
+            && [ ! -f /etc/nvme/config.json ] && ! __nvmf_has_nbft; then
             echo "No discovery arguments present"
             return 255
         fi
@@ -86,6 +86,7 @@
 cmdline() {
     local _hostnqn
     local _hostid
+    local -a _nbft_subsystems
 
     # shellcheck disable=SC2317,SC2329  # called later by 
for_each_host_dev_and_slaves
     gen_nvmf_cmdline() {
@@ -96,6 +97,8 @@
         local trsvcid
         local _address
         local -a _address_parts
+        local nbft_entry
+        local -a version
 
         [[ -L "/sys/dev/block/$_dev" ]] || return 0
         cd -P "/sys/dev/block/$_dev" || return 0
@@ -123,6 +126,20 @@
                 [[ $i =~ ^trsvcid= ]] && trsvcid="${i#trsvcid=}"
             done
             [[ -z $traddr && -z $host_traddr && -z $trsvcid ]] && continue
+            [[ $trtype == tcp && $nvmf_nbft_mode == nbft ]] \
+                && __nvmf_has_nbft && continue
+            # _nbft_subsystems is set in cmdline() scope below.
+            # It lists all subsystems found in the NBFT in the format
+            # "traddr,trsvcid"
+            # If the subsystem found is listed in the NBFT, don't add it
+            # explicitly to the command line.
+            if [[ $trtype == tcp && $nvmf_nbft_mode == match ]]; then
+                for nbft_entry in "${_nbft_subsystems[@]}"; do
+                    if [[ "$traddr,$trsvcid" == "$nbft_entry" ]]; then
+                        continue 2
+                    fi
+                done
+            fi
             echo -n " rd.nvmf.discover=$trtype,$traddr,$host_traddr,$trsvcid"
         done
     }
@@ -136,7 +153,17 @@
         echo -n " rd.nvmf.hostid=${_hostid}"
     fi
 
+    if dracut_module_included network-manager; then
+        mapfile -t -d . version < <(NetworkManager --version)
+        [[ ${#version[@]} == 3 &&
+            $((10000 * version[0] + 100 * version[1] + version[2])) -ge 15400 
]] \
+            && echo -n " rd.nvmf.nm=1 "
+    fi
+
     [[ $hostonly ]] || [[ $mount_needs ]] && {
+        mapfile -t _nbft_subsystems < \
+            <(nvme nbft show -s -o json \
+                | jq -r '.[].subsystem[] | select(.transport == "tcp") | 
[.traddr, .trsvcid] | join(",")')
         pushd . > /dev/null
         for_each_host_dev_and_slaves gen_nvmf_cmdline
         popd > /dev/null || exit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-110+suse.18.g5a7a17b3/modules.d/74nvmf/parse-nvmf-boot-connections.sh
 
new/dracut-110+suse.23.g5d9502c7/modules.d/74nvmf/parse-nvmf-boot-connections.sh
--- 
old/dracut-110+suse.18.g5a7a17b3/modules.d/74nvmf/parse-nvmf-boot-connections.sh
    2026-03-25 14:33:48.000000000 +0100
+++ 
new/dracut-110+suse.23.g5d9502c7/modules.d/74nvmf/parse-nvmf-boot-connections.sh
    2026-03-30 08:48:10.000000000 +0200
@@ -203,6 +203,12 @@
 
     nbft_json=$(nvme nbft show -H -o json) || return 0
     n_nbft=$(nbft_run_jq ". | length" "$nbft_json") || return 0
+    if [ "$n_nbft" -gt 0 ] && getargbool 0 rd.nvmf.nm; then
+        # nm-initrd-generator will take care of the interface setup.
+        # We set valid_nbft_entry_found to enable netroot (see below).
+        : > /tmp/valid_nbft_entry_found
+        return 0
+    fi
 
     while [ "$j" -lt "$n_nbft" ]; do
         all_hfi_json=$(nbft_run_jq ".[$j].hfi" "$nbft_json") || continue

Reply via email to