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 \
