Hello community, here is the log from the commit of package dracut for openSUSE:Factory checked in at 2020-10-15 13:48:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dracut (Old) and /work/SRC/openSUSE:Factory/.dracut.new.3486 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dracut" Thu Oct 15 13:48:02 2020 rev:167 rq:841563 version:050+suse.250.ge6b6e843 Changes: -------- --- /work/SRC/openSUSE:Factory/dracut/dracut.changes 2020-09-28 12:02:49.498757370 +0200 +++ /work/SRC/openSUSE:Factory/.dracut.new.3486/dracut.changes 2020-10-15 13:48:22.929248719 +0200 @@ -1,0 +2,32 @@ +Tue Oct 13 14:09:17 UTC 2020 - [email protected] + +- Update to version 050+suse.250.ge6b6e843: + * Revert "Revert "install: also install post weak dependencies of kernel modules"" + * 98dracut-systemd: don't wait for root device if remote cryptsetup active + * cryptroot-ask: unify /etc/crypttab and rd.luks.key + * 90kernel-modules: arm: add drivers/hwmon for arm/arm64 + * rootfs-block: only write root argument for block device + * 90crypt: pull in remote-cryptsetup.target enablement + * 00systemd: add missing cryptsetup-related targets + * 95nvmf: Implement 'fc,auto' commandline syntax + * 95nvmf: add nvmf-autoconnect script + * 95nvmf: Fixup FC connections + * 95nvmf: add documentation + * 95nvmf: rework parameter handling + * dracut-install: fix edge-case regression with weak modules + * dracut-install: ignore bogus preload libs + * dracut.spec: Use make macros + * dracut.spec: remove fedora pre 30 quirks + * 50drm: Check drm_encoder_init along drm_crtc_init + * 50drm: Include drm platform drivers in hostonly + * 50drm: fix ambiguous redirects + * Include devfreq drivers in initrd + * dracut.spec: include the 04watchdog-modules module + +------------------------------------------------------------------- +Mon Oct 12 11:59:19 UTC 2020 - [email protected] + +- Update to version 050+suse.228.gd0d6792d: + * 99memstrack: use /bin/bash + +------------------------------------------------------------------- Old: ---- dracut-050+suse.227.g7a9b782d.obscpio New: ---- dracut-050+suse.250.ge6b6e843.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dracut.spec ++++++ --- /var/tmp/diff_new_pack.ysFPuC/_old 2020-10-15 13:48:25.117249634 +0200 +++ /var/tmp/diff_new_pack.ysFPuC/_new 2020-10-15 13:48:25.121249636 +0200 @@ -19,7 +19,7 @@ %define dracutlibdir %{_prefix}/lib/dracut Name: dracut -Version: 050+suse.227.g7a9b782d +Version: 050+suse.250.ge6b6e843 Release: 0 Summary: Initramfs generator using udev License: GPL-2.0-or-later AND LGPL-2.1-or-later ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.ysFPuC/_old 2020-10-15 13:48:25.177249660 +0200 +++ /var/tmp/diff_new_pack.ysFPuC/_new 2020-10-15 13:48:25.177249660 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/opensuse/dracut.git</param> - <param name="changesrevision">7a9b782d2002da2b2c0a9611e3400d2a51bbe069</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">e6b6e84384ac9f7afbfcf87fd8c6f43b1739d4d9</param></service></servicedata> \ No newline at end of file ++++++ dracut-050+suse.227.g7a9b782d.obscpio -> dracut-050+suse.250.ge6b6e843.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/dracut.cmdline.7.asc new/dracut-050+suse.250.ge6b6e843/dracut.cmdline.7.asc --- old/dracut-050+suse.227.g7a9b782d/dracut.cmdline.7.asc 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/dracut.cmdline.7.asc 2020-10-13 16:08:01.000000000 +0200 @@ -861,6 +861,23 @@ + NOTE: letters in the MAC-address must be lowercase! +NVMf +~~~~ +**rd.nvmf.hostnqn=**__<hostNQN>__:: + NVMe host NQN to use + +**rd.nvmf.hostid=**__<hostID>__:: + NVMe host id to use + +**rd.nvmf.discover=**__{rdma|fc|tcp}__,__<traddr>__,[__<host_traddr>__],[__<trsvcid>__]:: + Discover and connect to a NVMe-over-Fabric controller specified by + _<traddr>_ and the optionally _<host_traddr>_ or _<trsvcid>_. + The first argument specifies the transport to use; currently only + 'rdma', 'fc', or 'tcp' are supported. + The _<traddr>_ parameter can be set to 'auto' to select + autodiscovery; in that case all other parameters are ignored. + This parameter can be specified multiple times. + NBD ~~~ **root=**??? **netroot=**nbd:__<server>__:__<port/exportname>__[:__<fstype>__[:__<mountopts>__[:__<nbdopts>__]]]:: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/dracut.spec new/dracut-050+suse.250.ge6b6e843/dracut.spec --- old/dracut-050+suse.227.g7a9b782d/dracut.spec 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/dracut.spec 2020-10-13 16:08:01.000000000 +0200 @@ -203,11 +203,10 @@ %endif ${NULL} -make %{?_smp_mflags} +%make_build %install -make %{?_smp_mflags} install \ - DESTDIR=$RPM_BUILD_ROOT \ +%make_install %{?_smp_mflags} \ libdir=%{_prefix}/lib echo "DRACUT_VERSION=%{version}-%{release}" > $RPM_BUILD_ROOT/%{dracutlibdir}/dracut-version.sh @@ -279,7 +278,7 @@ echo 'hostonly="no"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-generic-image.conf echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/02-rescue.conf -%if 0%{?fedora} <= 30 || 0%{?rhel} <= 8 +%if 0%{?rhel} > 0 && 0%{?rhel} <= 8 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d install -m 0755 51-dracut-rescue-postinst.sh $RPM_BUILD_ROOT%{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh %endif @@ -348,6 +347,7 @@ %{dracutlibdir}/modules.d/03modsign %{dracutlibdir}/modules.d/03rescue %{dracutlibdir}/modules.d/04watchdog +%{dracutlibdir}/modules.d/04watchdog-modules %{dracutlibdir}/modules.d/05busybox %{dracutlibdir}/modules.d/06rngd %{dracutlibdir}/modules.d/10i18n @@ -477,8 +477,7 @@ %files config-rescue %{dracutlibdir}/dracut.conf.d/02-rescue.conf %{_prefix}/lib/kernel/install.d/51-dracut-rescue.install -%if 0%{?fedora} <= 30 || 0%{?rhel} <= 8 -# FIXME: remove after F30 +%if 0%{?rhel} > 0 && 0%{?rhel} <= 8 %{_sysconfdir}/kernel/postinst.d/51-dracut-rescue-postinst.sh %endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/install/dracut-install.c new/dracut-050+suse.250.ge6b6e843/install/dracut-install.c --- old/dracut-050+suse.227.g7a9b782d/install/dracut-install.c 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/install/dracut-install.c 2020-10-13 16:08:01.000000000 +0200 @@ -570,6 +570,9 @@ if (strstr(buf, "cannot read header")) break; + if (strstr(buf, "cannot be preloaded")) + break; + if (strstr(buf, destrootdir)) break; @@ -808,123 +811,123 @@ log_debug("'%s' already exists", fulldstpath); /* dst does already exist */ - return ret; - } + } else { - /* check destination directory */ - fulldstdir = strdup(fulldstpath); - if (!fulldstdir) { - log_error("Out of memory!"); - return 1; - } - fulldstdir[dir_len(fulldstdir)] = '\0'; + /* check destination directory */ + fulldstdir = strdup(fulldstpath); + if (!fulldstdir) { + log_error("Out of memory!"); + return 1; + } + fulldstdir[dir_len(fulldstdir)] = '\0'; - ret = stat(fulldstdir, &db); + ret = stat(fulldstdir, &db); - if (ret < 0) { - _cleanup_free_ char *dname = NULL; + if (ret < 0) { + _cleanup_free_ char *dname = NULL; - if (errno != ENOENT) { - log_error("ERROR: stat '%s': %m", fulldstdir); - return 1; - } - /* create destination directory */ - log_debug("dest dir '%s' does not exist", fulldstdir); - dname = strdup(dst); - if (!dname) - return 1; + if (errno != ENOENT) { + log_error("ERROR: stat '%s': %m", fulldstdir); + return 1; + } + /* create destination directory */ + log_debug("dest dir '%s' does not exist", fulldstdir); + dname = strdup(dst); + if (!dname) + return 1; - dname[dir_len(dname)] = '\0'; - ret = dracut_install(dname, dname, true, false, true); + dname[dir_len(dname)] = '\0'; + ret = dracut_install(dname, dname, true, false, true); - if (ret != 0) { - log_error("ERROR: failed to create directory '%s'", fulldstdir); - return 1; + if (ret != 0) { + log_error("ERROR: failed to create directory '%s'", fulldstdir); + return 1; + } } - } - if (src_isdir) { - if (dst_exists) { - if (S_ISDIR(sb.st_mode)) { - log_debug("dest dir '%s' already exists", fulldstpath); - return 0; + if (src_isdir) { + if (dst_exists) { + if (S_ISDIR(sb.st_mode)) { + log_debug("dest dir '%s' already exists", fulldstpath); + return 0; + } + log_error("dest dir '%s' already exists but is not a directory", fulldstpath); + return 1; } - log_error("dest dir '%s' already exists but is not a directory", fulldstpath); - return 1; - } - log_info("mkdir '%s'", fulldstpath); - ret = dracut_mkdir(fulldstpath); - if (ret == 0) { - i = strdup(dst); - if (!i) - return -ENOMEM; + log_info("mkdir '%s'", fulldstpath); + ret = dracut_mkdir(fulldstpath); + if (ret == 0) { + i = strdup(dst); + if (!i) + return -ENOMEM; - hashmap_put(items, i, i); + hashmap_put(items, i, i); + } + return ret; } - return ret; - } - /* ready to install src */ + /* ready to install src */ - if (src_islink) { - _cleanup_free_ char *abspath = NULL; + if (src_islink) { + _cleanup_free_ char *abspath = NULL; - abspath = get_real_file(src, false); + abspath = get_real_file(src, false); - if (abspath == NULL) - return 1; + if (abspath == NULL) + return 1; - if (dracut_install(abspath, abspath, false, resolvedeps, hashdst)) { - log_debug("'%s' install error", abspath); - return 1; - } + if (dracut_install(abspath, abspath, false, resolvedeps, hashdst)) { + log_debug("'%s' install error", abspath); + return 1; + } - if (lstat(abspath, &sb) != 0) { - log_debug("lstat '%s': %m", abspath); - return 1; - } + if (lstat(abspath, &sb) != 0) { + log_debug("lstat '%s': %m", abspath); + return 1; + } - if (lstat(fulldstpath, &sb) != 0) { - _cleanup_free_ char *absdestpath = NULL; + if (lstat(fulldstpath, &sb) != 0) { + _cleanup_free_ char *absdestpath = NULL; - ret = asprintf(&absdestpath, "%s/%s", destrootdir, (abspath[0]=='/' ? (abspath+1) : abspath) + sysrootdirlen); - if (ret < 0) { - log_error("Out of memory!"); - exit(EXIT_FAILURE); + ret = asprintf(&absdestpath, "%s/%s", destrootdir, (abspath[0]=='/' ? (abspath+1) : abspath) + sysrootdirlen); + if (ret < 0) { + log_error("Out of memory!"); + exit(EXIT_FAILURE); + } + + ln_r(absdestpath, fulldstpath); } - ln_r(absdestpath, fulldstpath); - } + if (arg_hmac) { + /* copy .hmac files also */ + hmac_install(src, dst, NULL); + } - if (arg_hmac) { - /* copy .hmac files also */ - hmac_install(src, dst, NULL); + return 0; } - return 0; - } - - if (src_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) { - if (resolvedeps) - ret += resolve_deps(fullsrcpath + sysrootdirlen); - if (arg_hmac) { - /* copy .hmac files also */ - hmac_install(src, dst, NULL); + if (src_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) { + if (resolvedeps) + ret += resolve_deps(fullsrcpath + sysrootdirlen); + if (arg_hmac) { + /* copy .hmac files also */ + hmac_install(src, dst, NULL); + } } - } - log_debug("dracut_install ret = %d", ret); + log_debug("dracut_install ret = %d", ret); - if (arg_hostonly && !arg_module) - mark_hostonly(dst); + if (arg_hostonly && !arg_module) + mark_hostonly(dst); - if (isdir) { - log_info("mkdir '%s'", fulldstpath); - ret += dracut_mkdir(fulldstpath); - } else { - log_info("cp '%s' '%s'", fullsrcpath, fulldstpath); - ret += cp(fullsrcpath, fulldstpath); + if (isdir) { + log_info("mkdir '%s'", fulldstpath); + ret += dracut_mkdir(fulldstpath); + } else { + log_info("cp '%s' '%s'", fullsrcpath, fulldstpath); + ret += cp(fullsrcpath, fulldstpath); + } } if (ret == 0) { @@ -1523,9 +1526,13 @@ ret = install_dependent_modules(modlist); if (ret == 0) { ret = kmod_module_get_softdeps(mod, &modpre, &modpost); - if (ret == 0) - ret = install_dependent_modules(modpre); - } + if (ret == 0) { + int r; + ret = install_dependent_modules(modpre); + r = install_dependent_modules(modpost); + ret = ret ? : r; + } + } } else { log_error("dracut_install '%s' '%s' ERROR", path, &path[kerneldirlen]); } @@ -1592,8 +1599,12 @@ if (ret == 0) { ret = kmod_module_get_softdeps(mod, &modpre, &modpost); - if (ret == 0) - ret = install_dependent_modules(modpre); + if (ret == 0) { + int r; + ret = install_dependent_modules(modpre); + r = install_dependent_modules(modpost); + ret = ret ? : r; + } } return ret; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/00systemd/module-setup.sh new/dracut-050+suse.250.ge6b6e843/modules.d/00systemd/module-setup.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/00systemd/module-setup.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/00systemd/module-setup.sh 2020-10-13 16:08:01.000000000 +0200 @@ -65,6 +65,8 @@ $systemdutildir/system-generators/systemd-gpt-auto-generator \ \ $systemdsystemunitdir/cryptsetup.target \ + $systemdsystemunitdir/cryptsetup-pre.target \ + $systemdsystemunitdir/remote-cryptsetup.target \ $systemdsystemunitdir/emergency.target \ $systemdsystemunitdir/sysinit.target \ $systemdsystemunitdir/basic.target \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/50drm/module-setup.sh new/dracut-050+suse.250.ge6b6e843/modules.d/50drm/module-setup.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/50drm/module-setup.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/50drm/module-setup.sh 2020-10-13 16:08:01.000000000 +0200 @@ -31,15 +31,15 @@ # as we could e.g. be in the installer; nokmsboot boot parameter will disable # loading of the driver if needed if [[ $hostonly ]]; then - for i in /sys/bus/{pci/devices,virtio/devices,soc/devices/soc?}/*/modalias; do + for i in /sys/bus/{pci/devices,platform/devices,virtio/devices,soc/devices/soc?}/*/modalias; do [[ -e $i ]] || continue - if hostonly="" dracut_instmods --silent -s "drm_crtc_init|drm_dev_register" -S "iw_handler_get_spy" $(<$i); then - if strstr "$(modinfo -F filename $(<$i) 2>/dev/null)" radeon.ko; then + if hostonly="" dracut_instmods --silent -s "drm_crtc_init|drm_dev_register|drm_encoder_init" -S "iw_handler_get_spy" $(<"$i"); then + if strstr "$(modinfo -F filename $(<"$i") 2>/dev/null)" radeon.ko; then hostonly='' instmods amdkfd fi fi done else - dracut_instmods -o -s "drm_crtc_init|drm_dev_register" "=drivers/gpu/drm" "=drivers/staging" + dracut_instmods -o -s "drm_crtc_init|drm_dev_register|drm_encoder_init" "=drivers/gpu/drm" "=drivers/staging" fi } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/90crypt/cryptroot-ask.sh new/dracut-050+suse.250.ge6b6e843/modules.d/90crypt/cryptroot-ask.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/90crypt/cryptroot-ask.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/90crypt/cryptroot-ask.sh 2020-10-13 16:08:01.000000000 +0200 @@ -137,7 +137,8 @@ ask_passphrase=1 if [ -n "$luksfile" -a "$luksfile" != "none" -a -e "$luksfile" ]; then - if cryptsetup --key-file "$luksfile" $cryptsetupopts luksOpen "$device" "$luksname"; then + if readkey "$luksfile" / "$device" \ + | cryptsetup -d - $cryptsetupopts luksOpen "$device" "$luksname"; then ask_passphrase=0 fi elif [ "$is_keysource" -ne 0 ]; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/90crypt/module-setup.sh new/dracut-050+suse.250.ge6b6e843/modules.d/90crypt/module-setup.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/90crypt/module-setup.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/90crypt/module-setup.sh 2020-10-13 16:08:01.000000000 +0200 @@ -151,6 +151,7 @@ $systemdsystemunitdir/systemd-ask-password-console.service \ $systemdsystemunitdir/cryptsetup.target \ $systemdsystemunitdir/sysinit.target.wants/cryptsetup.target \ + $systemdsystemunitdir/initrd-root-fs.target.wants/remote-cryptsetup.target \ systemd-ask-password systemd-tty-ask-password-agent fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/90kernel-modules/module-setup.sh new/dracut-050+suse.250.ge6b6e843/modules.d/90kernel-modules/module-setup.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/90kernel-modules/module-setup.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/90kernel-modules/module-setup.sh 2020-10-13 16:08:01.000000000 +0200 @@ -65,9 +65,11 @@ _blockfuncs+='|dw_mc_probe|dw_mci_pltfm_register' instmods \ "=drivers/clk" \ + "=drivers/devfreq" \ "=drivers/dma" \ "=drivers/extcon" \ "=drivers/gpio" \ + "=drivers/hwmon" \ "=drivers/hwspinlock" \ "=drivers/i2c/busses" \ "=drivers/mfd" \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/95nvmf/95-nvmf-initqueue.rules new/dracut-050+suse.250.ge6b6e843/modules.d/95nvmf/95-nvmf-initqueue.rules --- old/dracut-050+suse.227.g7a9b782d/modules.d/95nvmf/95-nvmf-initqueue.rules 1970-01-01 01:00:00.000000000 +0100 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/95nvmf/95-nvmf-initqueue.rules 2020-10-13 16:08:01.000000000 +0200 @@ -0,0 +1,10 @@ +# +# nvmf-initqueue.rules +# +# D-Bus doesn't run in the initrd, which means that we cannot use our +# usual trick of starting custom systemd services. +# So use a rule to create initqueue entries instead. + +ACTION=="change", SUBSYSTEM=="fc", ENV{FC_EVENT}=="nvmediscovery", \ + ENV{NVMEFC_HOST_TRADDR}=="*", ENV{NVMEFC_TRADDR}=="*", \ + RUN+="/sbin/initqueue --onetime --unique --name nvmf-connect-$env{NVMEFC_TRADDR}-$env{NVMEFC_HOST_TRADDR} /usr/sbin/nvme connect-all --transport=fc --traddr=$env{NVMEFC_TRADDR} --host-traddr=$env{NVMEFC_HOST_TRADDR}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/95nvmf/module-setup.sh new/dracut-050+suse.250.ge6b6e843/modules.d/95nvmf/module-setup.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/95nvmf/module-setup.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/95nvmf/module-setup.sh 2020-10-13 16:08:01.000000000 +0200 @@ -57,6 +57,31 @@ cmdline() { local _hostnqn local _hostid + + gen_nvmf_cmdline() { + local _dev=$1 + local trtype + + [[ -L "/sys/dev/block/$_dev" ]] || return 0 + cd -P "/sys/dev/block/$_dev" || return 0 + if [ -f partition ] ; then + cd .. + fi + for d in device/nvme* ; do + [ -L "$d" ] || continue + if readlink "$d" | grep -q nvme-fabrics ; then + trtype=$(cat "$d"/transport) + break + fi + done + + [ -z "$trtype" ] && return 0 + nvme list-subsys ${PWD##*/} | while read x dev trtype traddr host_traddr state ana; do + [ "$trtype" != "${trtype#NQN}" ] && continue + echo -n " nvmf.discover=$trtype,${traddr#traddr=},${host_traddr#host_traddr=}" + done + } + if [ -f /etc/nvme/hostnqn ] ; then _hostnqn=$(cat /etc/nvme/hostnqn) echo -n " nvmf.hostnqn=${_hostnqn}" @@ -65,7 +90,12 @@ _hostid=$(cat /etc/nvme/hostid) echo -n " nvmf.hostid=${_hostid}" fi - echo "" + + [[ $hostonly ]] || [[ $mount_needs ]] && { + pushd . >/dev/null + for_each_host_dev_and_slaves gen_nvmf_cmdline + popd >/dev/null + } } # called by dracut @@ -79,13 +109,12 @@ inst_multiple ip sed + inst_script "${moddir}/nvmf-autoconnect.sh" /sbin/nvmf-autoconnect.sh + inst_multiple nvme - inst_multiple -o \ - "$systemdsystemunitdir/nvm*[email protected]" \ - "$systemdsystemunitdir/nvm*-connect.target" inst_hook cmdline 99 "$moddir/parse-nvmf-boot-connections.sh" inst_simple "/etc/nvme/discovery.conf" - inst_rules /usr/lib/udev/rules.d/70-nvm*-autoconnect.rules inst_rules /usr/lib/udev/rules.d/71-nvmf-iopolicy-netapp.rules + inst_rules "$moddir/95-nvmf-initqueue.rules" dracut_need_initqueue } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/95nvmf/nvmf-autoconnect.sh new/dracut-050+suse.250.ge6b6e843/modules.d/95nvmf/nvmf-autoconnect.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/95nvmf/nvmf-autoconnect.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/95nvmf/nvmf-autoconnect.sh 2020-10-13 16:08:01.000000000 +0200 @@ -0,0 +1,5 @@ +#!/bin/bash + +[ -f /sys/class/fc/fc_udev_device/nvme_discovery ] || exit 1 +echo add > /sys/class/fc/fc_udev_device/nvme_discovery +exit 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/95nvmf/parse-nvmf-boot-connections.sh new/dracut-050+suse.250.ge6b6e843/modules.d/95nvmf/parse-nvmf-boot-connections.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/95nvmf/parse-nvmf-boot-connections.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/95nvmf/parse-nvmf-boot-connections.sh 2020-10-13 16:08:01.000000000 +0200 @@ -3,14 +3,15 @@ # Supported formats: # nvmf.hostnqn=<hostnqn> # nvmf.hostid=<hostid> -# nvmf.discover=<transport>:<traddr>:<host-traddr>:<trsvcid> +# nvmf.discover=<transport>,<traddr>,<host-traddr>,<trsvcid> # # Examples: # nvmf.hostnqn=nqn.2014-08.org.nvmexpress:uuid:37303738-3034-584d-5137-333230423843 -# nvmf.discover=rdma:192.168.1.3::4420 -# nvmf.discover=tcp:192.168.1.3::4420 -# nvmf.discover=tcp:192.168.1.3 -# nvmf.discover=fc:auto +# nvmf.discover=rdma,192.168.1.3,,4420 +# nvmf.discover=tcp,192.168.1.3,,4420 +# nvmf.discover=tcp,192.168.1.3 +# nvmf.discover=fc,nn-0x200400a098d85236:pn-0x201400a098d85236,nn-0x200000109b7db455:pn-0x100000109b7db455 +# nvmf.discover=fc,auto # # Note: FC does autodiscovery, so typically there is no need to # specify any discover parameters for FC. @@ -25,11 +26,6 @@ initqueue --onetime modprobe --all -b -q nvme nvme_tcp nvme_core nvme_fabrics -traddr="none" -trtype="none" -hosttraddr="none" -trsvcid=4420 - validate_ip_conn() { if ! getargbool 0 rd.neednet ; then warn "$trtype transport requires rd.neednet=1" @@ -59,8 +55,12 @@ } parse_nvmf_discover() { + traddr="none" + trtype="none" + hosttraddr="none" + trsvcid=4420 OLDIFS="$IFS" - IFS=: + IFS=, set $1 IFS="$OLDIFS" @@ -82,26 +82,35 @@ ;; *) warn "Invalid arguments for nvmf.discover=$1" - return 1 + return 0 ;; esac if [ "$traddr" = "none" ] ; then warn "traddr is mandatory for $trtype" - return 1; + return 0; fi if [ "$trtype" = "fc" ] ; then + if [ "$traddr" = "auto" ] ; then + rm /etc/nvme/discovery.conf + return 1 + fi if [ "$hosttraddr" = "none" ] ; then warn "host traddr is mandatory for fc" - return 1 + return 0 fi elif [ "$trtype" != "rdma" ] && [ "$trtype" != "tcp" ] ; then warn "unsupported transport $trtype" - return 1 + return 0 fi if [ "$trtype" = "tcp" ]; then validate_ip_conn fi - echo "--transport=$trtype --traddr=$traddr --host-traddr=$hosttraddr --trsvcid=$trsvcid" >> /etc/nvme/discovery.conf + if [ "$trtype" = "fc" ] ; then + echo "--transport=$trtype --traddr=$traddr --host-traddr=$hosttraddr" >> /etc/nvme/discovery.conf + else + echo "--transport=$trtype --traddr=$traddr --host-traddr=$hosttraddr --trsvcid=$trsvcid" >> /etc/nvme/discovery.conf + fi + return 0 } nvmf_hostnqn=$(getarg nvmf.hostnqn=) @@ -114,7 +123,7 @@ fi for d in $(getargs nvmf.discover=); do - parse_nvmf_discover "$d" + parse_nvmf_discover "$d" || break done # Host NQN and host id are mandatory for NVMe-oF @@ -122,17 +131,13 @@ [ -f "/etc/nvme/hostid" ] || exit 0 if [ -f "/etc/nvme/discovery.conf" ] ; then + /sbin/initqueue --settled --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all if [ "$trtype" = "tcp" ] ; then - /sbin/initqueue --settled --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all > /tmp/net.$ifname.did-setup - else - /sbin/initqueue --onetime --unique --name nvme-discover /usr/sbin/nvme connect-all fi else - if [ "$trtype" = "tcp" ] ; then - /sbin/initqueue --settled --onetime --unique /usr/sbin/nvme connect-all -t tcp -a $traddr -s $trsvcid - > /tmp/net.$ifname.did-setup - else - /sbin/initqueue --finished --unique --name nvme-fc-autoconnect echo 1 > /sys/class/fc/fc_udev_device/nvme_discovery + # No nvme command line arguments present, try autodiscovery + if [ "$trtype" = "fc" ] ; then + /sbin/initqueue --finished --onetime --unique --name nvme-fc-autoconnect /sbin/nvmf-autoconnect.sh fi fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/95rootfs-block/module-setup.sh new/dracut-050+suse.250.ge6b6e843/modules.d/95rootfs-block/module-setup.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/95rootfs-block/module-setup.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/95rootfs-block/module-setup.sh 2020-10-13 16:08:01.000000000 +0200 @@ -30,7 +30,8 @@ } cmdline_rootfs() { - local _dev=/dev/block/$(find_root_block_device) + local _block=$(find_root_block_device) + local _dev=/dev/block/$_block local _fstype _flags _subvol # "--no-hostonly-default-device" can result in empty root_devs @@ -38,17 +39,21 @@ return fi - if [ -e $_dev ]; then + if [ -n "$_block" -a -b $_dev ]; then printf " root=%s" "$(shorten_persistent_dev "$(get_persistent_dev "$_dev")")" - _fstype="$(find_mp_fstype /)" - _flags="$(find_mp_fsopts /)" + fi + _fstype="$(find_mp_fstype /)" + _flags="$(find_mp_fsopts /)" + if [ -n "$_fstype" ]; then printf " rootfstype=%s" "$_fstype" - if [[ $use_fstab != yes ]] && [[ $_fstype = btrfs ]]; then - _subvol=$(findmnt -e -v -n -o FSROOT --target /) \ - && _subvol=${_subvol#/} - _flags="$_flags,${_subvol:+subvol=$_subvol}" - fi - printf " rootflags=%s" "${_flags#,}" + fi + if [[ $use_fstab != yes ]] && [[ $_fstype = btrfs ]]; then + _subvol=$(findmnt -e -v -n -o FSROOT --target /) \ + && _subvol=${_subvol#/} + _flags="$_flags${_subvol:+,subvol=$_subvol}" + fi + if [ -n "$_flags" ]; then + printf " rootflags=%s" "$_flags" fi } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/98dracut-systemd/rootfs-generator.sh new/dracut-050+suse.250.ge6b6e843/modules.d/98dracut-systemd/rootfs-generator.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/98dracut-systemd/rootfs-generator.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/98dracut-systemd/rootfs-generator.sh 2020-10-13 16:08:01.000000000 +0200 @@ -13,8 +13,15 @@ if ! [ -e "$hookdir/initqueue/finished/devexists-${_name}.sh" ]; then - printf '[ -e "%s" ]\n' $1 \ - >> "$hookdir/initqueue/finished/devexists-${_name}.sh" + # If a LUKS device needs unlocking via systemd in the initrd, assume + # it's for the root device. In that case, don't block on it if it's + # after remote-fs-pre.target since the initqueue is ordered before it so + # it will never actually show up (think Tang-pinned rootfs). + cat > "$hookdir/initqueue/finished/devexists-${_name}.sh" << EOF +if ! grep -q After=remote-fs-pre.target /run/systemd/generator/systemd-cryptsetup@*.service 2>/dev/null; then + [ -e "$1" ] +fi +EOF { printf '[ -e "%s" ] || ' $1 printf 'warn "\"%s\" does not exist"\n' $1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/99memstrack/memstrack-report.sh new/dracut-050+suse.250.ge6b6e843/modules.d/99memstrack/memstrack-report.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/99memstrack/memstrack-report.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/99memstrack/memstrack-report.sh 2020-10-13 16:08:01.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/bash . /lib/dracut-lib.sh if ! [ "$DEBUG_MEM_LEVEL" -ge 4 ]; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dracut-050+suse.227.g7a9b782d/modules.d/99memstrack/module-setup.sh new/dracut-050+suse.250.ge6b6e843/modules.d/99memstrack/module-setup.sh --- old/dracut-050+suse.227.g7a9b782d/modules.d/99memstrack/module-setup.sh 2020-09-28 11:50:08.000000000 +0200 +++ new/dracut-050+suse.250.ge6b6e843/modules.d/99memstrack/module-setup.sh 2020-10-13 16:08:01.000000000 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/bash +#!/bin/bash check() { if type -P memstrack >/dev/null; then ++++++ dracut.obsinfo ++++++ --- /var/tmp/diff_new_pack.ysFPuC/_old 2020-10-15 13:48:25.465249780 +0200 +++ /var/tmp/diff_new_pack.ysFPuC/_new 2020-10-15 13:48:25.465249780 +0200 @@ -1,5 +1,5 @@ name: dracut -version: 050+suse.227.g7a9b782d -mtime: 1601286608 -commit: 7a9b782d2002da2b2c0a9611e3400d2a51bbe069 +version: 050+suse.250.ge6b6e843 +mtime: 1602598081 +commit: e6b6e84384ac9f7afbfcf87fd8c6f43b1739d4d9
