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-07-08 17:34:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
 and      /work/SRC/openSUSE:Factory/.dracut.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dracut"

Wed Jul  8 17:34:48 2026 rev:262 rq:1363959 version:110+suse.41.g38f7c003

Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes    2026-06-22 
18:05:03.552444897 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new.1982/dracut.changes  2026-07-08 
17:36:28.361330721 +0200
@@ -1,0 +2,11 @@
+Mon Jul 06 06:03:20 UTC 2026 - [email protected]
+
+- Update to version 110+suse.41.g38f7c003:
+  * fix(devicetree-firmware): do not call inst_multiple if there are no fw 
files
+  * fix(systemd-pcrextend): add missing systemd-pcr{nvdone,osseparator}.service
+  * fix(systemd-pcrextend): add NVPCR definition files
+  * fix(tpm2-tss): add missing systemd-tpm2-setup-early.service
+  * feat(dracut): add module to load Qualcomm ADSP module pre-udev
+  * feat(dracut): add module to add fw files from DT firmware-name properties 
(bsc#1261649)
+
+-------------------------------------------------------------------

Old:
----
  dracut-110+suse.35.g9834432.tar.xz

New:
----
  dracut-110+suse.41.g38f7c003.tar.xz

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

Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.J6Q1UG/_old  2026-07-08 17:36:29.441368521 +0200
+++ /var/tmp/diff_new_pack.J6Q1UG/_new  2026-07-08 17:36:29.445368661 +0200
@@ -26,7 +26,7 @@
 %endif
 
 Name:           dracut
-Version:        110+suse.35.g9834432
+Version:        110+suse.41.g38f7c003
 Release:        0
 Summary:        Event driven initramfs infrastructure
 License:        GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later
@@ -154,6 +154,9 @@
 %make_install DRACUT_FULL_VERSION="%{version}-%{rbrelease}"
 
 # Remove architecture specific modules.
+%ifnarch aarch64
+rm -rf %{buildroot}%{dracutlibdir}/modules.d/70qcom-adsp
+%endif
 %ifnarch ppc ppc64 ppc64le ppc64p7
 rm -rf %{buildroot}%{dracutlibdir}/modules.d/70ppcmac
 %endif
@@ -409,6 +412,7 @@
 %{dracutlibdir}/modules.d/70bluetooth
 %{dracutlibdir}/modules.d/70btrfs
 %{dracutlibdir}/modules.d/70crypt
+%{dracutlibdir}/modules.d/70devicetree-firmware
 %{dracutlibdir}/modules.d/70dm
 %{dracutlibdir}/modules.d/70dmraid
 %{dracutlibdir}/modules.d/70dmsquash-live
@@ -429,6 +433,9 @@
 %{dracutlibdir}/modules.d/70nvdimm
 %{dracutlibdir}/modules.d/70overlayfs
 %{dracutlibdir}/modules.d/70pcmcia
+%ifarch aarch64
+%{dracutlibdir}/modules.d/70qcom-adsp
+%endif
 %{dracutlibdir}/modules.d/70qemu
 %{dracutlibdir}/modules.d/70qemu-net
 %{dracutlibdir}/modules.d/70uefi-lib

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.J6Q1UG/_old  2026-07-08 17:36:29.517371181 +0200
+++ /var/tmp/diff_new_pack.J6Q1UG/_new  2026-07-08 17:36:29.525371461 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/opensuse/dracut-ng.git</param>
-              <param 
name="changesrevision">9834432df50f8427267047919393c73d127dfbe5</param></service></servicedata>
+              <param 
name="changesrevision">38f7c0038b33d5f8f86c04f8a5ea69cd0f494262</param></service></servicedata>
 (No newline at EOF)
 

++++++ dracut-110+suse.35.g9834432.tar.xz -> 
dracut-110+suse.41.g38f7c003.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-110+suse.35.g9834432/.github/labeler.yml 
new/dracut-110+suse.41.g38f7c003/.github/labeler.yml
--- old/dracut-110+suse.35.g9834432/.github/labeler.yml 2026-06-19 
09:48:05.000000000 +0200
+++ new/dracut-110+suse.41.g38f7c003/.github/labeler.yml        2026-07-06 
07:59:48.000000000 +0200
@@ -251,6 +251,10 @@
     - changed-files:
           - any-glob-to-any-file: 'modules.d/[0-9][0-9]connman/*'
 
+devicetree-firmware:
+    - changed-files:
+          - any-glob-to-any-file: 'modules.d/[0-9][0-9]devicetree-firmware/*'
+
 network-legacy:
     - changed-files:
           - any-glob-to-any-file: 'modules.d/[0-9][0-9]network-legacy/*'
@@ -371,6 +375,10 @@
     - changed-files:
           - any-glob-to-any-file: 'modules.d/[0-9][0-9]ppcmac/*'
 
+qcom-adsp:
+    - changed-files:
+          - any-glob-to-any-file: 'modules.d/[0-9][0-9]qcom-adsp/*'
+
 qemu:
     - changed-files:
           - any-glob-to-any-file: 'modules.d/[0-9][0-9]qemu/*'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-110+suse.35.g9834432/doc_site/modules/ROOT/pages/modules/core.adoc 
new/dracut-110+suse.41.g38f7c003/doc_site/modules/ROOT/pages/modules/core.adoc
--- 
old/dracut-110+suse.35.g9834432/doc_site/modules/ROOT/pages/modules/core.adoc   
    2026-06-19 09:48:05.000000000 +0200
+++ 
new/dracut-110+suse.41.g38f7c003/doc_site/modules/ROOT/pages/modules/core.adoc  
    2026-07-06 07:59:48.000000000 +0200
@@ -65,6 +65,10 @@
 | debug features
 |
 
+| devicetree-firmware
+| add firmware files from DT firmware-name properties
+|
+
 | dm
 | device-mapper
 | library
@@ -193,6 +197,10 @@
 | polls CD-ROM
 |
 
+| qcom-adsp
+| Load Qualcomm ADSP module pre-udev
+|
+
 | rescue
 | utilities for rescue mode (such as ping, ssh, vi, fsck.*)
 | utils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-110+suse.35.g9834432/modules.d/11systemd-pcrextend/module-setup.sh 
new/dracut-110+suse.41.g38f7c003/modules.d/11systemd-pcrextend/module-setup.sh
--- 
old/dracut-110+suse.35.g9834432/modules.d/11systemd-pcrextend/module-setup.sh   
    2026-06-19 09:48:05.000000000 +0200
+++ 
new/dracut-110+suse.41.g38f7c003/modules.d/11systemd-pcrextend/module-setup.sh  
    2026-07-06 07:59:48.000000000 +0200
@@ -25,7 +25,7 @@
     return 0
 }
 
-# called by dracut
+# Config adjustments before installing anything.
 config() {
     add_dlopen_features+=" libsystemd-shared-*.so:libcrypto "
 }
@@ -37,13 +37,26 @@
         "$systemdutildir"/systemd-pcrextend \
         "$systemdsystemunitdir"/systemd-pcrphase-initrd.service \
         "$systemdsystemunitdir/systemd-pcrphase-initrd.service.d/*.conf" \
-        
"$systemdsystemunitdir"/initrd.target.wants/systemd-pcrphase-initrd.service
+        "$systemdsystemunitdir"/systemd-pcrnvdone.service \
+        "$systemdsystemunitdir/systemd-pcrnvdone.service.d/*.conf" \
+        "$systemdsystemunitdir"/systemd-pcrosseparator.service \
+        "$systemdsystemunitdir/systemd-pcrosseparator.service.d/*.conf" \
+        
"$systemdsystemunitdir"/initrd.target.wants/systemd-pcrphase-initrd.service \
+        "$systemdsystemunitdir"/sysinit.target.wants/systemd-pcrnvdone.service 
\
+        
"$systemdsystemunitdir"/sysinit.target.wants/systemd-pcrosseparator.service \
+        "/usr/lib/nvpcr/*.nvpcr"
 
     # Install the hosts local user configurations if enabled.
     if [[ $hostonly ]]; then
         inst_multiple -H -o \
             "$systemdsystemconfdir"/systemd-pcrphase-initrd.service \
             "$systemdsystemconfdir/systemd-pcrphase-initrd.service.d/*.conf" \
-            
"$systemdsystemconfdir"/initrd.target.wants/systemd-pcrphase-initrd.service
+            "$systemdsystemconfdir"/systemd-pcrnvdone.service \
+            "$systemdsystemconfdir/systemd-pcrnvdone.service.d/*.conf" \
+            "$systemdsystemconfdir"/systemd-pcrosseparator.service \
+            "$systemdsystemconfdir/systemd-pcrosseparator.service.d/*.conf" \
+            
"$systemdsystemconfdir"/initrd.target.wants/systemd-pcrphase-initrd.service \
+            
"$systemdsystemconfdir"/sysinit.target.wants/systemd-pcrnvdone.service \
+            
"$systemdsystemconfdir"/sysinit.target.wants/systemd-pcrosseparator.service
     fi
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-110+suse.35.g9834432/modules.d/70devicetree-firmware/module-setup.sh 
new/dracut-110+suse.41.g38f7c003/modules.d/70devicetree-firmware/module-setup.sh
--- 
old/dracut-110+suse.35.g9834432/modules.d/70devicetree-firmware/module-setup.sh 
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/dracut-110+suse.41.g38f7c003/modules.d/70devicetree-firmware/module-setup.sh
    2026-07-06 07:59:48.000000000 +0200
@@ -0,0 +1,71 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# Devicetree based platforms may need board / model specific firmwares in
+# the initrd. E.g. Qualcomm Snapdragon Windows-on-Arm (WoA) laptops need model
+# specific firmware files in the initrd for the ADSP/Type-C controller.
+# The filenames for these firmware files are specified in "firmware-name"
+# devicetree properties, this module copies any such files to the initrd.
+
+# called by dracut
+check() {
+    if [[ $hostonly ]]; then
+        [ -d /sys/firmware/devicetree/base ] || return 1
+    else
+        # ATM install_generic only copies aarch64 qcom model specific firmwares
+        [ "$DRACUT_ARCH" = "aarch64" ] || return 1
+    fi
+    return 0
+}
+
+# hostonly install (hostonly / generic use completely different approaches)
+install_hostonly() {
+    local _fw_names=()
+    # contents of firmware-name file is 0 delimited
+    while read -r -d $'\0' _fw; do
+        _fw_names+=("$_fw")
+    done < <(find /sys/firmware/devicetree/base -name firmware-name -exec cat 
{} \;)
+
+    local _fw_files=()
+    for _fw_name in "${_fw_names[@]}"; do
+        # shellcheck disable=SC2154 # fw_dir is set by dracut.sh
+        for _fwdir in $fw_dir; do
+            # add '*' after firmware-name for .gz, etc. compression
+            for _fw in "$_fwdir/$_fw_name"*; do
+                [ -f "$_fw" ] || continue
+                _fw=${_fw#"${dracutsysrootdir-}"}
+                _fw_files+=("$_fw")
+                break 2
+            done
+        done
+    done
+    ((${#_fw_files[@]} > 0)) && inst_multiple -o "${_fw_files[@]}"
+}
+
+# generic install (hostonly / generic use completely different approaches)
+install_generic() {
+    local _fw_files=()
+    # ATM only qcom WoA laptops need this
+    for _soc in qcom/sc8280xp qcom/x1e80100; do
+        # shellcheck disable=SC2154 # fw_dir is set by dracut.sh
+        for _fwdir in $fw_dir; do
+            # add '*' after mbn, elf for .gz, etc. compression
+            for _fw in "$_fwdir/$_soc"/*/*/*.mbn* "$_fwdir/$_soc"/*/*/*.elf*; 
do
+                [ -f "$_fw" ] || continue
+                _fw=${_fw#"${dracutsysrootdir-}"}
+                _fw_files+=("$_fw")
+            done
+        done
+    done
+    ((${#_fw_files[@]} > 0)) && inst_multiple -o "${_fw_files[@]}"
+}
+
+# called by dracut
+install() {
+    if [[ $hostonly ]]; then
+        install_hostonly
+    else
+        install_generic
+    fi
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-110+suse.35.g9834432/modules.d/70qcom-adsp/module-setup.sh 
new/dracut-110+suse.41.g38f7c003/modules.d/70qcom-adsp/module-setup.sh
--- old/dracut-110+suse.35.g9834432/modules.d/70qcom-adsp/module-setup.sh       
1970-01-01 01:00:00.000000000 +0100
+++ new/dracut-110+suse.41.g38f7c003/modules.d/70qcom-adsp/module-setup.sh      
2026-07-06 07:59:48.000000000 +0200
@@ -0,0 +1,40 @@
+#!/bin/bash
+# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
+# ex: ts=8 sw=4 sts=4 et filetype=sh
+
+# On Qualcomm sc8280xp and x1e laptops the kernel reboots the ADSP with new
+# firmware because the BIOS loads ADSP firmware with limited functionality
+# without sound or battery charge/status reading support.
+#
+# Unfortunately the ADSP also controls the TCPM (Type-C Port Manager) and
+# rebooting the ADSP also resets the TCPM, causing any USB devices connected
+# over Type-C ports to get disconnected as all devices on the USB bus are
+# removed and re-enumerated.
+#
+# This breaks booting from USB-drives as the drive gets disconnected and
+# re-enumerated as a new block device, leaving any filesystems mounted
+# before the ADSP reset without any backing device.
+#
+# To workaround this, this module load the ADSP driver from a pre-udev hook
+# so that the USB re-enumeration happens before the rootfs is mounted.
+
+# called by dracut
+check() {
+    [ "$DRACUT_ARCH" = "aarch64" ] || return 1
+    if [[ $hostonly ]]; then
+        grep -q -E 'qcom,sc8280xp-adsp-pas|qcom,x1e80100-adsp-pas' \
+            /sys/bus/platform/devices/*.remoteproc/modalias 2> /dev/null || 
return 1
+    fi
+    return 0
+}
+
+# called by dracut
+installkernel() {
+    instmods qcom_q6v5_pas
+}
+
+# called by dracut
+install() {
+    inst grep
+    inst_hook pre-udev 30 "$moddir/qcom-adsp-pre-udev.sh"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-110+suse.35.g9834432/modules.d/70qcom-adsp/qcom-adsp-pre-udev.sh 
new/dracut-110+suse.41.g38f7c003/modules.d/70qcom-adsp/qcom-adsp-pre-udev.sh
--- old/dracut-110+suse.35.g9834432/modules.d/70qcom-adsp/qcom-adsp-pre-udev.sh 
1970-01-01 01:00:00.000000000 +0100
+++ 
new/dracut-110+suse.41.g38f7c003/modules.d/70qcom-adsp/qcom-adsp-pre-udev.sh    
    2026-07-06 07:59:48.000000000 +0200
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# Ensure ADSP module is loaded and Type-C USB busses are reset before
+# filesystems are mounted
+
+if grep -q -E 'qcom,sc8280xp-adsp-pas|qcom,x1e80100-adsp-pas' \
+    /sys/bus/platform/devices/*.remoteproc/modalias 2> /dev/null; then
+    modprobe qcom_q6v5_pas
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-110+suse.35.g9834432/modules.d/73tpm2-tss/module-setup.sh 
new/dracut-110+suse.41.g38f7c003/modules.d/73tpm2-tss/module-setup.sh
--- old/dracut-110+suse.35.g9834432/modules.d/73tpm2-tss/module-setup.sh        
2026-06-19 09:48:05.000000000 +0200
+++ new/dracut-110+suse.41.g38f7c003/modules.d/73tpm2-tss/module-setup.sh       
2026-07-06 07:59:48.000000000 +0200
@@ -23,6 +23,11 @@
 
 }
 
+# Config adjustments before installing anything.
+config() {
+    add_dlopen_features+=" libsystemd-shared-*.so:libcrypto "
+}
+
 # Install kernel module(s).
 installkernel() {
     hostonly=$(optional_hostonly) instmods '=drivers/char/tpm'
@@ -39,11 +44,22 @@
         "$tmpfilesdir"/tpm2-tss-fapi.conf \
         "$udevrulesdir"/60-tpm-udev.rules \
         "$udevrulesdir"/90-tpm.rules \
+        "$systemdutildir"/systemd-tpm2-setup \
         "$systemdutildir"/system-generators/systemd-tpm2-generator \
         "$systemdsystemunitdir/tpm2.target" \
+        "$systemdsystemunitdir"/systemd-tpm2-setup-early.service \
+        "$systemdsystemunitdir/systemd-tpm2-setup-early.service.d/*.conf" \
+        
"$systemdsystemunitdir"/sysinit.target.wants/systemd-tpm2-setup-early.service \
         tpm2_pcrread tpm2_pcrextend tpm2_createprimary tpm2_createpolicy \
         tpm2_create tpm2_load tpm2_unseal tpm2
 
+    if [[ $hostonly ]]; then
+        inst_multiple -H -o \
+            "$systemdsystemconfdir"/systemd-tpm2-setup-early.service \
+            "$systemdsystemconfdir/systemd-tpm2-setup-early.service.d/*.conf" \
+            
"$systemdsystemconfdir"/sysinit.target.wants/systemd-tpm2-setup-early.service
+    fi
+
     # Install library file(s)
     _arch=${DRACUT_ARCH:-$(uname -m)}
     inst_libdir_file \

Reply via email to