Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package dracut for openSUSE:Factory checked 
in at 2024-04-26 23:26:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
 and      /work/SRC/openSUSE:Factory/.dracut.new.1880 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dracut"

Fri Apr 26 23:26:38 2024 rev:225 rq:1170253 version:059+suse.581.g19b7c06c

Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes    2024-04-17 
14:45:16.745844077 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new.1880/dracut.changes  2024-04-26 
23:26:49.607973961 +0200
@@ -1,0 +2,19 @@
+Fri Apr 26 06:19:27 UTC 2024 - antonio.fei...@suse.com
+
+- Update to version 059+suse.581.g19b7c06c:
+  * fix(dracut): move hooks directory from /usr/lib to /var/lib (bsc#1218068)
+  * feat(tpm2-tss): add tpm2.target and systemd-tpm2-generator
+  * fix(systemd): explicitly install some libs that will not be statically 
included
+  * fix(dracut-lib): only remove initqueue/finished scripts, not the hook dir
+  * fix(dracut-util): avoid memory leak
+  * fix(dracut-install): memory leak in two `hashmap_put` calls if key exists
+  * fix(dracut-install): release memory allocated for regular expressions
+  * fix(dracut-install): memory leak in `--modalias` option
+  * refactor(dracut-install): strerror(errno) -> %m
+  * perf(dracut-install): don't strdup() environment block
+  * perf(dracut-install): don't reallocate {src,dst}path in hmac_install()
+  * perf(dracut-install): don't strdup() excessively for dracut_install()
+  * perf(dracut-install): stat() w/unused buf -> access(F_OK) in dracut-install
+  * perf(dracut-install): multiple single-character strstr()s -> strpbrk()
+
+-------------------------------------------------------------------

Old:
----
  dracut-059+suse.563.g4900899a.obscpio

New:
----
  dracut-059+suse.581.g19b7c06c.obscpio

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

Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.1UdCA4/_old  2024-04-26 23:26:50.404003059 +0200
+++ /var/tmp/diff_new_pack.1UdCA4/_new  2024-04-26 23:26:50.404003059 +0200
@@ -25,7 +25,7 @@
 %endif
 
 Name:           dracut
-Version:        059+suse.563.g4900899a
+Version:        059+suse.581.g19b7c06c
 Release:        0
 Summary:        Event driven initramfs infrastructure
 License:        GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later

++++++ README.susemaint ++++++
--- /var/tmp/diff_new_pack.1UdCA4/_old  2024-04-26 23:26:50.444004521 +0200
+++ /var/tmp/diff_new_pack.1UdCA4/_new  2024-04-26 23:26:50.448004667 +0200
@@ -89,8 +89,9 @@
 the upgrade to dracut-059 (0aa08f0e docs: update NEWS.md and AUTHORS), 
extracted
 using `git log --oneline 0aa08f0e..HEAD`:
 
+MERGED  5d2bda46 fix(zfcp_rules): correct shellcheck regression when parsing 
ccw args
         4980bad3 fix(configure): misleading error if C compiler is not 
installed
-        de8ac630 fix(github): update format of labeler
+MERGED  de8ac630 fix(github): update format of labeler
 MERGED  4971f443 fix(systemd-journald): add systemd-sysusers dependency
 MERGED  4d594210 fix(dracut-initramfs-restore.sh): do not set selinux labels 
if disabled
 MERGED  1586af09 fix(systemd-repart): correct undefined $libdir
@@ -295,13 +296,13 @@
 MERGED  93339444 fix(dmsquash-live): live:/dev/*
 MERGED  10cf8e46 fix(load_fstype): avoid false positive searchs
 MERGED  08b63a25 fix: shellcheck 0.8.0
-        94dcac7c refactor(dracut-install): strerror(errno) -> %m
-        efd4ca27 perf(dracut-install): don't strdup() environment block
-        77226cb4 perf(dracut-install): don't reallocate {src,dst}path in 
hmac_install()
-        a20556f0 perf(dracut-install): don't strdup() excessively for 
dracut_install()
-        e7ed8337 perf(dracut-install): stat() w/unused buf -> access(F_OK) in 
dracut-install
-        751a110f perf(dracut-install): multiple single-character strstr()s -> 
strpbrk()
-        1e5237dd chore: remove src/install/hashmap.lo
+MERGED  94dcac7c refactor(dracut-install): strerror(errno) -> %m
+MERGED  efd4ca27 perf(dracut-install): don't strdup() environment block
+MERGED  77226cb4 perf(dracut-install): don't reallocate {src,dst}path in 
hmac_install()
+MERGED  a20556f0 perf(dracut-install): don't strdup() excessively for 
dracut_install()
+MERGED  e7ed8337 perf(dracut-install): stat() w/unused buf -> access(F_OK) in 
dracut-install
+MERGED  751a110f perf(dracut-install): multiple single-character strstr()s -> 
strpbrk()
+MERGED  1e5237dd chore: remove src/install/hashmap.lo
 MERGED  9dbbebb1 feat(network-wicked): remove module
 
 
@@ -325,10 +326,15 @@
 2557    feat(kernel-modules): install SPMI modules on ARM/RISC-V
 2559    feat(install.d): add sort-key field to rescue BLS entries
 2560    feat(resume): do not attempt to install 
systemd-hibernate-resume@.service
+2571    fix(dracut-install): memory leak in `--modalias` option
+2573    fix(dracut-install): release memory allocated for regular expressions
+2574    fix(dracut-install): memory leak in two `hashmap_put` calls if key 
exists
 2593    fix(dracut.sh): do not add device if find_block_device returns an error
 2593    feat(dracut.sh): protect push_host_devs function
+2601    feat(tpm2-tss): add tpm2.target and systemd-tpm2-generator
 2607    fix(dracut-util): do not call strcmp if the value argument is NULL
 2607    fix(dracut): correct regression with multiple `rd.break=` options
+2608    fix(dracut-util): avoid memory leak
 2611    fix(livenet): propagate error code
 2611    fix(livenet): check also `content-length` from live image header
 2611    fix(livenet): split `imgsize` calculation to avoid misleading error 
message
@@ -336,6 +342,13 @@
 2614    fix(dracut-systemd): replace `rd.udev.log-priority` with 
`rd.udev.log_level`
 2618    fix(i18n): handle keymap includes with `--sysroot`
 2618    fix(dracut-init.sh): handle decompress with `--sysroot`
-2630    fix(zfcp_rules): correct shellcheck regression when parsing ccw args
+2623    fix(dracut-lib): only remove initqueue/finished scripts, not the hook 
dir
+2643    fix(systemd): explicitly install some libs that will not be statically 
included
+
+
+3. Commits from the new https://github.com/dracut-ng/dracut-ng upstream that
+were already merged
+
+a45048b8 fix(dracut): move hooks directory from /usr/lib to /var/lib
 
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.1UdCA4/_old  2024-04-26 23:26:50.488006130 +0200
+++ /var/tmp/diff_new_pack.1UdCA4/_new  2024-04-26 23:26:50.492006276 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/opensuse/dracut.git</param>
-              <param 
name="changesrevision">f2e2d088dc19e2477d348fa712e67f85dad0de5e</param></service></servicedata>
+              <param 
name="changesrevision">19b7c06cbf2d96befb9ba0fb24c482a0da40dcef</param></service></servicedata>
 (No newline at EOF)
 

++++++ dracut-059+suse.563.g4900899a.obscpio -> 
dracut-059+suse.581.g19b7c06c.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-059+suse.563.g4900899a/.github/labeler.yml 
new/dracut-059+suse.581.g19b7c06c/.github/labeler.yml
--- old/dracut-059+suse.563.g4900899a/.github/labeler.yml       2024-04-16 
15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/.github/labeler.yml       2024-04-26 
08:18:04.000000000 +0200
@@ -1,292 +1,543 @@
 repository:
-  - ./*
+  - changed-files:
+    - any-glob-to-any-file: './*'
 
 github:
-  - .github/*
-  - .github/**/*
+  - changed-files:
+    - any-glob-to-any-file: ['.github/*', '.github/**/*']
+
+docs:
+  - changed-files:
+    - any-glob-to-any-file: 'docs/*'
+
+man:
+  - changed-files:
+    - any-glob-to-any-file: 'man/*'
+
+kernel-install:
+  - changed-files:
+    - any-glob-to-any-file: 'install.d/*'
+
+shell-completion:
+  - changed-files:
+    - any-glob-to-any-file: ['shell-completion/*', 'shell-completion/**/*']
+
+dracut-cpio:
+  - changed-files:
+    - any-glob-to-any-file: ['src/dracut-cpio/*', 'src/dracut-cpio/**/*']
 
 dracut-install:
-  - install/*
-  - install/**/*
+  - changed-files:
+    - any-glob-to-any-file: 'src/install/*'
 
-example:
-  - examples/*
-  - examples/**/*
-  - examples/**/**/*
+dracut-util:
+  - changed-files:
+    - any-glob-to-any-file: 'src/util/*'
+
+logtee:
+  - changed-files:
+    - any-glob-to-any-file: 'src/logtee/*'
+
+skipcpio:
+  - changed-files:
+    - any-glob-to-any-file: 'src/skipcpio/*'
 
 modules:
-  - modules.d/*
-  - modules.d/**/*
+  - changed-files:
+    - any-glob-to-any-file: ['modules.d/*', 'modules.d/**/*']
 
 bash:
-  - modules.d/00bash/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/00bash/*'
 
 dash:
-  - modules.d/00dash/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/00dash/*'
 
 mksh:
-  - modules.d/00mksh/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/00mksh/*'
 
 systemd:
-  - modules.d/00systemd/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/00systemd/*'
 
 warpclock:
-  - modules.d/00warpclock/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/00warpclock/*'
 
 fips:
-  - modules.d/01fips/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01fips/*'
+
+systemd-ac-power:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-ac-power/*'
+
+systemd-ask-password:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-ask-password/*'
+
+systemd-coredump:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-coredump/*'
+
+systemd-creds:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-creds/*'
+
+systemd-hostnamed:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-hostnamed/*'
 
 systemd-initrd:
-  - modules.d/01systemd-initrd/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-initrd/*'
 
-caps:
-  - modules.d/02caps/*
+systemd-integritysetup:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-integritysetup/*'
+
+systemd-journald:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-journald/*'
+
+systemd-ldconfig:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-ldconfig/*'
+
+systemd-modules-load:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-modules-load/*'
 
 systemd-networkd:
-  - modules.d/02systemd-networkd/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-networkd/*'
+
+systemd-pcrphase:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-pcrphase/*'
+
+systemd-portabled:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-portabled/*'
+
+systemd-pstore:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-pstore/*'
+
+systemd-repart:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-repart/*'
+
+systemd-resolved:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-resolved/*'
+
+systemd-sysctl:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-sysctl/*'
+
+systemd-sysext:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-sysext/*'
+
+systemd-sysusers:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-sysusers/*'
+
+systemd-timedated:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-timedated/*'
+
+systemd-timesyncd:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-timesyncd/*'
+
+systemd-tmpfiles:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-tmpfiles/*'
+
+systemd-udevd:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-udevd/*'
+
+systemd-veritysetup:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/01systemd-veritysetup/*'
+
+caps:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/02caps/*'
 
 modsign:
-  - modules.d/03modsign/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/03modsign/*'
 
 rescue:
-  - modules.d/03rescue/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/03rescue/*'
 
 watchdog:
-  - modules.d/04watchdog/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/04watchdog/*'
+
+watchdog-modules:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/04watchdog-modules/*'
 
 busybox:
-  - modules.d/05busybox/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/05busybox/*'
+
+dbus-broker:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/06dbus-broker/*'
+
+dbus-daemon:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/06dbus-daemon/*'
 
 rngd:
-  - modules.d/06rngd/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/06rngd/*'
+
+dbus:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/09dbus/*'
 
 i18n:
-  - modules.d/10i18n/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/10i18n/*'
 
 convertfs:
-  - modules.d/30convertfs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/30convertfs/*'
+
+connman:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/35connman/*'
 
 network-legacy:
-  - modules.d/35network-legacy/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/35network-legacy/*'
 
 network-manager:
- - modules.d/35network-manager/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/35network-manager/*'
 
 network:
-  - modules.d/40network/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/40network/*'
 
 ifcfg:
-  - modules.d/45ifcfg/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/45ifcfg/*'
 
 url-lib:
-  - modules.d/45url-lib/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/45url-lib/*'
 
 drm:
-  - modules.d/50drm/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/50drm/*'
 
 plymouth:
-  - modules.d/50plymouth/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/50plymouth/*'
+
+bluetooth:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/62bluetooth/*'
 
 cms:
-  - modules.d/80cms/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/80cms/*'
 
 lvmmerge:
-  - modules.d/80lvmmerge/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/80lvmmerge/*'
+
+lvmthinpool-monitor:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/80lvmthinpool-monitor/*'
 
 cio_ignore:
-  - modules.d/81cio_ignore/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/81cio_ignore/*'
 
 btrfs:
-  - modules.d/90btrfs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90btrfs/*'
 
 crypt:
-  - modules.d/90crypt/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90crypt/*'
 
 dm:
-  - modules.d/90dm/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90dm/*'
 
 dmraid:
-  - modules.d/90dmraid/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90dmraid/*'
 
 dmsquash-live:
-  - modules.d/90dmsquash-live/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90dmsquash-live/*'
+
+dmsquash-live-autooverlay:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90dmsquash-live-autooverlay/*'
 
 dmsquash-live-ntfs:
-  - modules.d/90dmsquash-live-ntfs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90dmsquash-live-ntfs/*'
 
 kernel-modules:
-  - modules.d/90kernel-modules/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90kernel-modules/*'
 
 kernel-modules-extra:
-  - modules.d/90kernel-modules-extra/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90kernel-modules-extra/*'
 
 kernel-network-modules:
-  - modules.d/90kernel-network-modules/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90kernel-network-modules/*'
 
 livenet:
-  - modules.d/90livenet/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90livenet/*'
 
 lvm:
-  - modules.d/90lvm/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90lvm/*'
 
 mdraid:
-  - modules.d/90mdraid/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90mdraid/*'
 
 multipath:
-  - modules.d/90multipath/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90multipath/*'
 
 nvdimm:
-  - modules.d/90nvdimm/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90nvdimm/*'
 
 overlayfs:
-  - modules.d/90overlayfs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90overlayfs/*'
 
 ppcmac:
-  - modules.d/90ppcmac/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90ppcmac/*'
 
 qemu:
-  - modules.d/90qemu/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90qemu/*'
 
 qemu-net:
-  - modules.d/90qemu-net/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/90qemu-net/*'
 
 crypt-gpg:
-  - modules.d/91crypt-gpg/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/91crypt-gpg/*'
 
 crypt-loop:
-  - modules.d/91crypt-loop/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/91crypt-loop/*'
+
+fido2:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/91fido2/*'
+
+pcsc:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/91pcsc/*'
+
+pkcs11:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/91pkcs11/*'
+
+tpm2-tss:
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/91tpm2-tss/*'
 
 zipl:
-  - modules.d/91zipl/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/91zipl/*'
 
 cifs:
-  - modules.d/95cifs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95cifs/*'
 
 dasd:
-  - modules.d/95dasd/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95dasd/*'
 
 dasd_mod:
-  - modules.d/95dasd_mod/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95dasd_mod/*'
 
 dasd_rules:
-  - modules.d/95dasd_rules/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95dasd_rules/*'
 
 dcssblk:
-  - modules.d/95dcssblk/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95dcssblk/*'
 
 debug:
-  - modules.d/95debug/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95debug/*'
 
 fcoe:
-  - modules.d/95fcoe/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95fcoe/*'
 
 fcoe-uefi:
-  - modules.d/95fcoe-uefi/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95fcoe-uefi/*'
 
 fstab-sys:
-  - modules.d/95fstab-sys/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95fstab-sys/*'
 
 iscsi:
-  - modules.d/95iscsi/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95iscsi/*'
 
 lunmask:
-  - modules.d/95lunmask/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95lunmask/*'
 
 nbd:
-  - modules.d/95nbd/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95nbd/*'
 
 nfs:
-  - modules.d/95nfs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95nfs/*'
 
 nvmf:
-  - modules.d/95nvmf/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95nvmf/*'
 
 qeth_rules:
-  - modules.d/95qeth_rules/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95qeth_rules/*'
 
 resume:
-  - modules.d/95resume/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95resume/*'
 
 rootfs-block:
-  - modules.d/95rootfs-block/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95rootfs-block/*'
 
 ssh-client:
-  - modules.d/95ssh-client/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95ssh-client/*'
 
 terminfo:
-  - modules.d/95terminfo/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95terminfo/*'
 
 udev-rules:
-  - modules.d/95udev-rules/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95udev-rules/*'
 
 virtfs:
-  - modules.d/95virtfs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95virtfs/*'
 
 virtiofs:
-  - modules.d/95virtiofs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95virtiofs/*'
 
 zfcp:
-  - modules.d/95zfcp/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95zfcp/*'
 
 zfcp_rules:
-  - modules.d/95zfcp_rules/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95zfcp_rules/*'
 
 znet:
-  - modules.d/95znet/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/95znet/*'
 
 securityfs:
-  - modules.d/96securityfs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/96securityfs/*'
 
 biosdevname:
-  - modules.d/97biosdevname/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/97biosdevname/*'
 
 masterkey:
-- modules.d/97masterkey/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/97masterkey/*'
 
 dracut-systemd:
-  - modules.d/98dracut-systemd/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/98dracut-systemd/*'
 
 ecryptfs:
-  - modules.d/98ecryptfs/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/98ecryptfs/*'
 
 integrity:
-  - modules.d/98integrity/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/98integrity/*'
 
 pollcdrom:
-  - modules.d/98pollcdrom/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/98pollcdrom/*'
 
 selinux:
-  - modules.d/98selinux/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/98selinux/*'
 
 syslog:
-  - modules.d/98syslog/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/98syslog/*'
 
 usrmount:
-  - modules.d/98usrmount/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/98usrmount/*'
 
 base:
-  - modules.d/99base/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/99base/*'
 
 fs-lib:
-  - modules.d/99fs-lib/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/99fs-lib/*'
 
 img-lib:
-  - modules.d/99img-lib/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/99img-lib/*'
 
 memstrack:
-  - modules.d/99memstrack/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/99memstrack/*'
 
 shutdown:
-  - modules.d/99shutdown/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/99shutdown/*'
 
 squash:
-  - modules.d/99squash/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/99squash/*'
 
 uefi-lib:
-  - modules.d/99uefi-lib/*
+  - changed-files:
+    - any-glob-to-any-file: 'modules.d/99uefi-lib/*'
 
 test:
-  - test/*
-  - test/**/*
-  - modules.d/80test*
-  - modules.d/80test*/*
+  - changed-files:
+    - any-glob-to-any-file: ['test/*', 'test/**/*', 'modules.d/80test*', 
'modules.d/80test*/*']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-059+suse.563.g4900899a/dracut-init.sh 
new/dracut-059+suse.581.g19b7c06c/dracut-init.sh
--- old/dracut-059+suse.563.g4900899a/dracut-init.sh    2024-04-16 
15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/dracut-init.sh    2024-04-26 
08:18:04.000000000 +0200
@@ -637,7 +637,7 @@
         dfatal "No such hook type $1. Aborting initrd creation."
         exit 1
     fi
-    hook="/lib/dracut/hooks/${1}/${2}-${3##*/}"
+    hook="/var/lib/dracut/hooks/${1}/${2}-${3##*/}"
     inst_simple "$3" "$hook"
     chmod u+x "$initdir/$hook"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-059+suse.563.g4900899a/dracut.sh 
new/dracut-059+suse.581.g19b7c06c/dracut.sh
--- old/dracut-059+suse.563.g4900899a/dracut.sh 2024-04-16 15:33:54.000000000 
+0200
+++ new/dracut-059+suse.581.g19b7c06c/dracut.sh 2024-04-26 08:18:04.000000000 
+0200
@@ -1881,7 +1881,11 @@
 
 if [[ $kernel_only != yes ]]; then
     mkdir -p "${initdir}/etc/cmdline.d"
-    mkdir -m 0755 "${initdir}"/lib/dracut/hooks
+    mkdir -m 0755 -p "${initdir}"/var/lib/dracut/hooks
+
+    # symlink to old hooks location for compatibility
+    ln_r /var/lib/dracut/hooks /lib/dracut/hooks
+
     # shellcheck disable=SC2154
     for _d in $hookdirs; do
         # shellcheck disable=SC2174
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/modules.d/00systemd/module-setup.sh 
new/dracut-059+suse.581.g19b7c06c/modules.d/00systemd/module-setup.sh
--- old/dracut-059+suse.563.g4900899a/modules.d/00systemd/module-setup.sh       
2024-04-16 15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/modules.d/00systemd/module-setup.sh       
2024-04-26 08:18:04.000000000 +0200
@@ -262,6 +262,8 @@
     # Install library file(s)
     _arch=${DRACUT_ARCH:-$(uname -m)}
     inst_libdir_file \
+        {"tls/$_arch/",tls/,"$_arch/",}"libgcrypt.so*" \
+        {"tls/$_arch/",tls/,"$_arch/",}"libkmod.so*" \
         {"tls/$_arch/",tls/,"$_arch/",}"libnss_*"
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/modules.d/01systemd-coredump/module-setup.sh 
new/dracut-059+suse.581.g19b7c06c/modules.d/01systemd-coredump/module-setup.sh
--- 
old/dracut-059+suse.563.g4900899a/modules.d/01systemd-coredump/module-setup.sh  
    2024-04-16 15:33:54.000000000 +0200
+++ 
new/dracut-059+suse.581.g19b7c06c/modules.d/01systemd-coredump/module-setup.sh  
    2024-04-26 08:18:04.000000000 +0200
@@ -40,6 +40,13 @@
         "$sysusers"/systemd-coredump.conf \
         coredumpctl
 
+    # Install library file(s)
+    _arch=${DRACUT_ARCH:-$(uname -m)}
+    inst_libdir_file \
+        {"tls/$_arch/",tls/,"$_arch/",}"liblz4.so.*" \
+        {"tls/$_arch/",tls/,"$_arch/",}"liblzma.so.*" \
+        {"tls/$_arch/",tls/,"$_arch/",}"libzstd.so.*"
+
     # Install the hosts local user configurations if enabled.
     if [[ $hostonly ]]; then
         inst_multiple -H -o \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/modules.d/01systemd-journald/module-setup.sh 
new/dracut-059+suse.581.g19b7c06c/modules.d/01systemd-journald/module-setup.sh
--- 
old/dracut-059+suse.563.g4900899a/modules.d/01systemd-journald/module-setup.sh  
    2024-04-16 15:33:54.000000000 +0200
+++ 
new/dracut-059+suse.581.g19b7c06c/modules.d/01systemd-journald/module-setup.sh  
    2024-04-26 08:18:04.000000000 +0200
@@ -53,9 +53,10 @@
     # Install library file(s)
     _arch=${DRACUT_ARCH:-$(uname -m)}
     inst_libdir_file \
+        {"tls/$_arch/",tls/,"$_arch/",}"libgcrypt.so*" \
         {"tls/$_arch/",tls/,"$_arch/",}"liblz4.so.*" \
-        {"tls/$_arch/",tls/,"$_arch/",}"libzstd.so.*" \
-        {"tls/$_arch/",tls/,"$_arch/",}"liblzma.so.*"
+        {"tls/$_arch/",tls/,"$_arch/",}"liblzma.so.*" \
+        {"tls/$_arch/",tls/,"$_arch/",}"libzstd.so.*"
 
     # Install the hosts local user configurations if enabled.
     if [[ $hostonly ]]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/modules.d/35connman/cm-lib.sh 
new/dracut-059+suse.581.g19b7c06c/modules.d/35connman/cm-lib.sh
--- old/dracut-059+suse.563.g4900899a/modules.d/35connman/cm-lib.sh     
2024-04-16 15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/modules.d/35connman/cm-lib.sh     
2024-04-26 08:18:04.000000000 +0200
@@ -4,7 +4,6 @@
 
 cm_generate_connections() {
     if getargbool 0 rd.neednet; then
-        mkdir -p "$hookdir"/initqueue/finished
         echo '[ -f /tmp/cm.done ]' > "$hookdir"/initqueue/finished/cm.sh
         mkdir -p /run/connman/initrd
         : > /run/connman/initrd/neednet # activate ConnMan services
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/modules.d/35network-manager/nm-lib.sh 
new/dracut-059+suse.581.g19b7c06c/modules.d/35network-manager/nm-lib.sh
--- old/dracut-059+suse.563.g4900899a/modules.d/35network-manager/nm-lib.sh     
2024-04-16 15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/modules.d/35network-manager/nm-lib.sh     
2024-04-26 08:18:04.000000000 +0200
@@ -20,7 +20,6 @@
             /etc/NetworkManager/system-connections/* \
             /etc/sysconfig/network-scripts/ifcfg-*; do
             [ -f "$i" ] || continue
-            mkdir -p "$hookdir"/initqueue/finished
             echo '[ -f /tmp/nm.done ]' > "$hookdir"/initqueue/finished/nm.sh
             mkdir -p /run/NetworkManager/initrd
             : > /run/NetworkManager/initrd/neednet # activate NM services
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/modules.d/91tpm2-tss/module-setup.sh 
new/dracut-059+suse.581.g19b7c06c/modules.d/91tpm2-tss/module-setup.sh
--- old/dracut-059+suse.563.g4900899a/modules.d/91tpm2-tss/module-setup.sh      
2024-04-16 15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/modules.d/91tpm2-tss/module-setup.sh      
2024-04-26 08:18:04.000000000 +0200
@@ -35,6 +35,8 @@
         "$sysusers"/system-user-tss.conf \
         "$tmpfilesdir"/tpm2-tss-fapi*.conf \
         "$udevrulesdir"/90-tpm.rules \
+        "$systemdutildir"/system-generators/systemd-tpm2-generator \
+        "$systemdsystemunitdir/tpm2.target" \
         tpm2_pcrread tpm2_pcrextend tpm2_createprimary tpm2_createpolicy \
         tpm2_create tpm2_load tpm2_unseal tpm2
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/modules.d/99base/dracut-lib.sh 
new/dracut-059+suse.581.g19b7c06c/modules.d/99base/dracut-lib.sh
--- old/dracut-059+suse.563.g4900899a/modules.d/99base/dracut-lib.sh    
2024-04-16 15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/modules.d/99base/dracut-lib.sh    
2024-04-26 08:18:04.000000000 +0200
@@ -1131,7 +1131,7 @@
 }
 
 remove_hostonly_files() {
-    rm -fr /etc/cmdline /etc/cmdline.d/*.conf "$hookdir/initqueue/finished"
+    rm -fr /etc/cmdline /etc/cmdline.d/*.conf 
"$hookdir"/initqueue/finished/*.sh
     if [ -f /lib/dracut/hostonly-files ]; then
         while read -r line || [ -n "$line" ]; do
             [ -e "$line" ] || [ -h "$line" ] || continue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/modules.d/99base/module-setup.sh 
new/dracut-059+suse.581.g19b7c06c/modules.d/99base/module-setup.sh
--- old/dracut-059+suse.563.g4900899a/modules.d/99base/module-setup.sh  
2024-04-16 15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/modules.d/99base/module-setup.sh  
2024-04-26 08:18:04.000000000 +0200
@@ -45,7 +45,10 @@
 
     [ -e "${initdir}/lib" ] || mkdir -m 0755 -p "${initdir}"/lib
     mkdir -m 0755 -p "${initdir}"/lib/dracut
-    mkdir -m 0755 -p "${initdir}"/lib/dracut/hooks
+    mkdir -m 0755 -p "${initdir}"/var/lib/dracut/hooks
+
+    # symlink to old hooks location for compatibility
+    ln_r /var/lib/dracut/hooks /lib/dracut/hooks
 
     mkdir -p "${initdir}"/tmp
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/modules.d/99shutdown/module-setup.sh 
new/dracut-059+suse.581.g19b7c06c/modules.d/99shutdown/module-setup.sh
--- old/dracut-059+suse.563.g4900899a/modules.d/99shutdown/module-setup.sh      
2024-04-16 15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/modules.d/99shutdown/module-setup.sh      
2024-04-26 08:18:04.000000000 +0200
@@ -17,9 +17,11 @@
     inst_multiple umount poweroff reboot halt losetup stat sleep timeout
     inst_multiple -o kexec
     inst "$moddir/shutdown.sh" "$prefix/shutdown"
-    [ -e "${initdir}/lib" ] || mkdir -m 0755 -p "${initdir}"/lib
-    mkdir -m 0755 -p "${initdir}"/lib/dracut
-    mkdir -m 0755 -p "${initdir}"/lib/dracut/hooks
+    mkdir -m 0755 -p "${initdir}"/var/lib/dracut/hooks
+
+    # symlink to old hooks location for compatibility
+    ln_r /var/lib/dracut/hooks /lib/dracut/hooks
+
     for _d in $hookdirs shutdown shutdown-emergency; do
         mkdir -m 0755 -p "${initdir}"/lib/dracut/hooks/"$_d"
     done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dracut-059+suse.563.g4900899a/src/install/dracut-install.c 
new/dracut-059+suse.581.g19b7c06c/src/install/dracut-install.c
--- old/dracut-059+suse.563.g4900899a/src/install/dracut-install.c      
2024-04-16 15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/src/install/dracut-install.c      
2024-04-26 08:18:04.000000000 +0200
@@ -356,23 +356,23 @@
         char *q, *clibdir;
         int r, ret = 0;
 
-        p = strdup(lib);
-
-        r = dracut_install(p, p, false, false, true);
+        r = dracut_install(lib, lib, false, false, true);
         if (r != 0)
-                log_error("ERROR: failed to install '%s' for '%s'", p, src);
+                log_error("ERROR: failed to install '%s' for '%s'", lib, src);
         else
-                log_debug("Lib install: '%s'", p);
+                log_debug("Lib install: '%s'", lib);
         ret += r;
 
         /* also install lib.so for lib.so.* files */
-        q = strstr(p, ".so.");
+        q = strstr(lib, ".so.");
         if (q) {
-                q[3] = '\0';
+                p = strndup(lib, q - lib + 3);
 
                 /* ignore errors for base lib symlink */
                 if (dracut_install(p, p, false, false, true) == 0)
                         log_debug("Lib install: '%s'", p);
+
+                free(p);
         }
 
         /* Also try to install the same library from one directory above
@@ -384,7 +384,6 @@
            libc.so.6 (libc6,64bit, OS ABI: Linux 2.6.32) => /lib64/libc.so.6
          */
 
-        free(p);
         p = strdup(lib);
 
         pdir = dirname_malloc(p);
@@ -634,14 +633,9 @@
 /* Install ".<filename>.hmac" file for FIPS self-checks */
 static int hmac_install(const char *src, const char *dst, const char *hmacpath)
 {
-        _cleanup_free_ char *srcpath = strdup(src);
-        _cleanup_free_ char *dstpath = strdup(dst);
         _cleanup_free_ char *srchmacname = NULL;
         _cleanup_free_ char *dsthmacname = NULL;
 
-        if (!(srcpath && dstpath))
-                return -ENOMEM;
-
         size_t dlen = dir_len(src);
 
         if (endswith(src, ".hmac"))
@@ -654,16 +648,14 @@
                 hmac_install(src, dst, "/lib64/hmaccalc");
         }
 
-        srcpath[dlen] = '\0';
-        dstpath[dir_len(dst)] = '\0';
         if (hmacpath) {
                 _asprintf(&srchmacname, "%s/%s.hmac", hmacpath, &src[dlen + 
1]);
                 _asprintf(&dsthmacname, "%s/%s.hmac", hmacpath, &src[dlen + 
1]);
         } else {
-                _asprintf(&srchmacname, "%s/.%s.hmac", srcpath, &src[dlen + 
1]);
-                _asprintf(&dsthmacname, "%s/.%s.hmac", dstpath, &src[dlen + 
1]);
+                _asprintf(&srchmacname, "%.*s/.%s.hmac", (int)dlen,         
src, &src[dlen + 1]);
+                _asprintf(&dsthmacname, "%.*s/.%s.hmac", (int)dir_len(dst), 
dst, &src[dlen + 1]);
         }
-        log_debug("hmac cp '%s' '%s')", srchmacname, dsthmacname);
+        log_debug("hmac cp '%s' '%s'", srchmacname, dsthmacname);
         dracut_install(srchmacname, dsthmacname, false, false, true);
         return 0;
 }
@@ -727,11 +719,11 @@
                                 return 1;
                         }
                 } else if (errno != ENOENT) {
-                        log_error("ERROR: stat '%s': %s", parent, 
strerror(errno));
+                        log_error("ERROR: stat '%s': %m", parent);
                         return 1;
                 } else {
                         if (mkdir(parent, 0755) < 0) {
-                                log_error("ERROR: mkdir '%s': %s", parent, 
strerror(errno));
+                                log_error("ERROR: mkdir '%s': %m", parent);
                                 return 1;
                         }
                 }
@@ -747,7 +739,7 @@
 
 static int dracut_install(const char *orig_src, const char *orig_dst, bool 
isdir, bool resolvedeps, bool hashdst)
 {
-        struct stat sb, db;
+        struct stat sb;
         _cleanup_free_ char *fullsrcpath = NULL;
         _cleanup_free_ char *fulldstpath = NULL;
         _cleanup_free_ char *fulldstdir = NULL;
@@ -757,25 +749,24 @@
         mode_t src_mode = 0;
         bool dst_exists = true;
         char *i = NULL;
-        _cleanup_free_ char *src;
-        _cleanup_free_ char *dst;
+        const char *src, *dst;
 
         if (sysrootdirlen) {
                 if (strncmp(orig_src, sysrootdir, sysrootdirlen) == 0) {
-                        src = strdup(orig_src + sysrootdirlen);
+                        src = orig_src + sysrootdirlen;
                         fullsrcpath = strdup(orig_src);
                 } else {
-                        src = strdup(orig_src);
+                        src = orig_src;
                         _asprintf(&fullsrcpath, "%s%s", sysrootdir, src);
                 }
                 if (strncmp(orig_dst, sysrootdir, sysrootdirlen) == 0)
-                        dst = strdup(orig_dst + sysrootdirlen);
+                        dst = orig_dst + sysrootdirlen;
                 else
-                        dst = strdup(orig_dst);
+                        dst = orig_dst;
         } else {
-                src = strdup(orig_src);
+                src = orig_src;
                 fullsrcpath = strdup(src);
-                dst = strdup(orig_dst);
+                dst = orig_dst;
         }
 
         log_debug("dracut_install('%s', '%s', %d, %d, %d)", src, dst, isdir, 
resolvedeps, hashdst);
@@ -831,7 +822,7 @@
                         return 1;
                 }
 
-                ret = stat(fulldstdir, &db);
+                ret = access(fulldstdir, F_OK);
 
                 if (ret < 0) {
                         _cleanup_free_ char *dname = NULL;
@@ -891,12 +882,12 @@
                                 return 1;
                         }
 
-                        if (lstat(abspath, &sb) != 0) {
+                        if (faccessat(AT_FDCWD, abspath, F_OK, 
AT_SYMLINK_NOFOLLOW) != 0) {
                                 log_debug("lstat '%s': %m", abspath);
                                 return 1;
                         }
 
-                        if (lstat(fulldstpath, &sb) != 0) {
+                        if (faccessat(AT_FDCWD, fulldstpath, F_OK, 
AT_SYMLINK_NOFOLLOW) != 0) {
                                 _cleanup_free_ char *absdestpath = NULL;
 
                                 _asprintf(&absdestpath, "%s/%s", destrootdir,
@@ -941,7 +932,8 @@
                 if (!i)
                         return -ENOMEM;
 
-                hashmap_put(items, i, i);
+                if (hashmap_put(items, i, i) < 0)
+                        free(i);
 
                 if (logfile_f)
                         dracut_log_cp(src);
@@ -1093,10 +1085,10 @@
                         arg_module = true;
                         break;
                 case 'D':
-                        destrootdir = strdup(optarg);
+                        destrootdir = optarg;
                         break;
                 case 'r':
-                        sysrootdir = strdup(optarg);
+                        sysrootdir = optarg;
                         sysrootdirlen = strlen(sysrootdir);
                         break;
                 case 'p':
@@ -1135,10 +1127,10 @@
                         arg_mod_filter_noname = true;
                         break;
                 case 'L':
-                        logdir = strdup(optarg);
+                        logdir = optarg;
                         break;
                 case ARG_KERNELDIR:
-                        kerneldir = strdup(optarg);
+                        kerneldir = optarg;
                         break;
                 case ARG_FIRMWAREDIRS:
                         firmwaredirs = strv_split(optarg, ":");
@@ -1250,7 +1242,6 @@
         char *newsrc = NULL;
 
         STRV_FOREACH(q, pathdirs) {
-                struct stat sb;
                 char *fullsrcpath;
 
                 _asprintf(&newsrc, "%s/%s", *q, src);
@@ -1263,8 +1254,8 @@
                         continue;
                 }
 
-                if (lstat(fullsrcpath, &sb) != 0) {
-                        log_debug("stat(%s) != 0", fullsrcpath);
+                if (faccessat(AT_FDCWD, fullsrcpath, F_OK, 
AT_SYMLINK_NOFOLLOW) != 0) {
+                        log_debug("lstat(%s) != 0", fullsrcpath);
                         free(newsrc);
                         newsrc = NULL;
                         free(fullsrcpath);
@@ -1347,8 +1338,7 @@
 
                 } else {
                         if (strchr(argv[i], '*') == NULL) {
-                                _cleanup_free_ char *dest = strdup(argv[i]);
-                                ret = dracut_install(argv[i], dest, 
arg_createdir, arg_resolvedeps, true);
+                                ret = dracut_install(argv[i], argv[i], 
arg_createdir, arg_resolvedeps, true);
                         } else {
                                 _cleanup_free_ char *realsrc = NULL;
                                 _cleanup_globfree_ glob_t globbuf;
@@ -1360,11 +1350,9 @@
                                         size_t j;
 
                                         for (j = 0; j < globbuf.gl_pathc; j++) 
{
-                                                char *dest = 
strdup(globbuf.gl_pathv[j] + sysrootdirlen);
-                                                ret |=
-                                                        
dracut_install(globbuf.gl_pathv[j] + sysrootdirlen, dest,
-                                                                       
arg_createdir, arg_resolvedeps, true);
-                                                free(dest);
+                                                ret |= 
dracut_install(globbuf.gl_pathv[j] + sysrootdirlen,
+                                                                      
globbuf.gl_pathv[j] + sysrootdirlen,
+                                                                      
arg_createdir, arg_resolvedeps, true);
                                         }
                                 }
                         }
@@ -1382,9 +1370,8 @@
 {
         const char *fw = fwpath;
         _cleanup_free_ char *fwpath_compressed = NULL;
-        struct stat sb;
         int ret;
-        if (stat(fwpath, &sb) != 0) {
+        if (access(fwpath, F_OK) != 0) {
                 _asprintf(&fwpath_compressed, "%s.zst", fwpath);
                 if (access(fwpath_compressed, F_OK) != 0) {
                         strcpy(fwpath_compressed + strlen(fwpath) + 1, "xz");
@@ -1427,12 +1414,11 @@
                 ret = -1;
                 STRV_FOREACH(q, firmwaredirs) {
                         _cleanup_free_ char *fwpath = NULL;
-                        struct stat sb;
 
                         _asprintf(&fwpath, "%s/%s", *q, value);
 
-                        if ((strstr(value, "*") != 0 || strstr(value, "?") != 
0 || strstr(value, "[") != 0)
-                            && stat(fwpath, &sb) != 0) {
+                        if (strpbrk(value, "*?[") != NULL
+                            && access(fwpath, F_OK) != 0) {
                                 size_t i;
                                 _cleanup_globfree_ glob_t globbuf;
 
@@ -1719,7 +1705,8 @@
                         struct kmod_module *mod = kmod_module_get_module(l);
                         char *name = strdup(kmod_module_get_name(mod));
                         kmod_module_unref(mod);
-                        hashmap_put(modules_loaded, name, name);
+                        if (hashmap_put(modules_loaded, name, name) < 0)
+                                free(name);
                 }
         }
 
@@ -1734,8 +1721,11 @@
 
                         struct kmod_module *mod = kmod_module_get_module(itr);
                         char *name = strdup(kmod_module_get_name(mod));
-                        hashmap_put(modules_loaded, name, name);
                         kmod_module_unref(mod);
+                        if (hashmap_put(modules_loaded, name, name) < 0) {
+                                free(name);
+                                continue;
+                        }
 
                         /* also put the modules from the new kernel in the 
hashmap,
                          * which resolve the name as an alias, in case a 
kernel module is
@@ -1749,8 +1739,9 @@
                         kmod_list_foreach(l, modlist) {
                                 mod = kmod_module_get_module(l);
                                 char *name = strdup(kmod_module_get_name(mod));
-                                hashmap_put(modules_loaded, name, name);
                                 kmod_module_unref(mod);
+                                if (hashmap_put(modules_loaded, name, name) < 
0)
+                                        free(name);
                         }
                 }
                 kmod_module_unref_list(loaded_list);
@@ -1804,7 +1795,8 @@
 
                                         log_debug("Adding module '%s' to 
hostonly module list", name);
                                         dupname = strdup(name);
-                                        hashmap_put(modules_loaded, dupname, 
dupname);
+                                        if (hashmap_put(modules_loaded, 
dupname, dupname) < 0)
+                                                free(dupname);
                                 }
                         }
                 }
@@ -2042,7 +2034,8 @@
                 HASHMAP_FOREACH(name, modules_loaded, i) {
                         printf("%s\n", name);
                 }
-                exit(0);
+                r = EXIT_SUCCESS;
+                goto finish2;
         }
 
         log_debug("Program arguments:");
@@ -2079,7 +2072,6 @@
                         log_error("Environment DESTROOTDIR or argument -D is 
not set!");
                         usage(EXIT_FAILURE);
                 }
-                destrootdir = strdup(destrootdir);
         }
 
         if (strcmp(destrootdir, "/") == 0) {
@@ -2088,13 +2080,11 @@
         }
 
         i = destrootdir;
-        destrootdir = realpath(destrootdir, NULL);
-        if (!destrootdir) {
+        if (!(destrootdir = realpath(i, NULL))) {
                 log_error("Environment DESTROOTDIR or argument -D is set to 
'%s': %m", i);
                 r = EXIT_FAILURE;
-                goto finish;
+                goto finish2;
         }
-        free(i);
 
         items = hashmap_new(string_hash_func, string_compare_func);
         items_failed = hashmap_new(string_hash_func, string_compare_func);
@@ -2102,7 +2092,7 @@
         if (!items || !items_failed || !modules_loaded) {
                 log_error("Out of memory");
                 r = EXIT_FAILURE;
-                goto finish;
+                goto finish1;
         }
 
         if (logdir) {
@@ -2112,7 +2102,7 @@
                 if (logfile_f == NULL) {
                         log_error("Could not open %s for logging: %m", 
logfile);
                         r = EXIT_FAILURE;
-                        goto finish;
+                        goto finish1;
                 }
         }
 
@@ -2145,7 +2135,9 @@
         if (arg_optional)
                 r = EXIT_SUCCESS;
 
-finish:
+finish1:
+        free(destrootdir);
+finish2:
         if (logfile_f)
                 fclose(logfile_f);
 
@@ -2162,7 +2154,17 @@
         hashmap_free(items_failed);
         hashmap_free(modules_loaded);
 
-        free(destrootdir);
+        if (arg_mod_filter_path)
+                regfree(&mod_filter_path);
+        if (arg_mod_filter_nopath)
+                regfree(&mod_filter_nopath);
+        if (arg_mod_filter_symbol)
+                regfree(&mod_filter_symbol);
+        if (arg_mod_filter_nosymbol)
+                regfree(&mod_filter_nosymbol);
+        if (arg_mod_filter_noname)
+                regfree(&mod_filter_noname);
+
         strv_free(firmwaredirs);
         strv_free(pathdirs);
         return r;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-059+suse.563.g4900899a/src/install/hashmap.lo 
new/dracut-059+suse.581.g19b7c06c/src/install/hashmap.lo
--- old/dracut-059+suse.563.g4900899a/src/install/hashmap.lo    2024-04-16 
15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/src/install/hashmap.lo    1970-01-01 
01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-# src/shared/hashmap.lo - a libtool object file
-# Generated by libtool (GNU libtool) 2.4.2
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object='.libs/hashmap.o'
-
-# Name of the non-PIC object
-non_pic_object='hashmap.o'
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-059+suse.563.g4900899a/src/util/util.c 
new/dracut-059+suse.581.g19b7c06c/src/util/util.c
--- old/dracut-059+suse.563.g4900899a/src/util/util.c   2024-04-16 
15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/src/util/util.c   2024-04-26 
08:18:04.000000000 +0200
@@ -2,10 +2,11 @@
 
 // Parts are copied from the linux kernel
 
+#include <errno.h>
+#include <stdbool.h>
 #include <stdio.h>
-#include <string.h>
 #include <stdlib.h>
-#include <stdbool.h>
+#include <string.h>
 
 // CODE FROM LINUX KERNEL START
 
@@ -56,6 +57,13 @@
         return (char *)str;
 }
 
+#define _cleanup_(x) __attribute__((cleanup(x)))
+static inline void freep(void *p)
+{
+        free(*(void **)p);
+}
+#define _cleanup_free_ _cleanup_(freep)
+
 /*
  * Parse a string to get a param value pair.
  * You can use " around spaces, but can't escape ".
@@ -179,17 +187,20 @@
         char *search_value;
         char *end_value = NULL;
         bool bool_value = false;
-        char *cmdline = NULL;
+        _cleanup_free_ char *cmdline = NULL;
+        char *args = NULL;
+
+        if (argc != 2) {
+                usage(GETARG, EXIT_FAILURE, "Number of arguments invalid");
+        }
 
         char *p = getenv("CMDLINE");
         if (p == NULL) {
                 usage(GETARG, EXIT_FAILURE, "CMDLINE env not set");
         }
         cmdline = strdup(p);
-
-        if (argc != 2) {
-                usage(GETARG, EXIT_FAILURE, "Number of arguments invalid");
-        }
+        if (!cmdline)
+                return -ENOMEM;
 
         search_key = argv[1];
 
@@ -204,9 +215,10 @@
         if (strlen(search_key) == 0)
                 usage(GETARG, EXIT_FAILURE, "search key undefined");
 
+        args = cmdline;
         do {
                 char *key = NULL, *value = NULL;
-                cmdline = next_arg(cmdline, &key, &value);
+                args = next_arg(args, &key, &value);
                 if (strcmp(key, search_key) == 0) {
                         if (value) {
                                 end_value = value;
@@ -216,7 +228,7 @@
                                 bool_value = true;
                         }
                 }
-        } while (cmdline[0]);
+        } while (args[0]);
 
         if (search_value) {
                 if (end_value && strcmp(end_value, search_value) == 0) {
@@ -243,17 +255,20 @@
         char *search_key;
         char *search_value;
         bool found_value = false;
-        char *cmdline = NULL;
+        _cleanup_free_ char *cmdline = NULL;
+        char *args = NULL;
+
+        if (argc != 2) {
+                usage(GETARGS, EXIT_FAILURE, "Number of arguments invalid");
+        }
 
         char *p = getenv("CMDLINE");
         if (p == NULL) {
                 usage(GETARGS, EXIT_FAILURE, "CMDLINE env not set");
         }
         cmdline = strdup(p);
-
-        if (argc != 2) {
-                usage(GETARGS, EXIT_FAILURE, "Number of arguments invalid");
-        }
+        if (!cmdline)
+                return -ENOMEM;
 
         search_key = argv[1];
 
@@ -268,9 +283,10 @@
         if (strlen(search_key) == 0)
                 usage(GETARGS, EXIT_FAILURE, "search key undefined");
 
+        args = cmdline;
         do {
                 char *key = NULL, *value = NULL;
-                cmdline = next_arg(cmdline, &key, &value);
+                args = next_arg(args, &key, &value);
                 if (strcmp(key, search_key) == 0) {
                         if (search_value) {
                                 if (value && strcmp(value, search_value) == 0) 
{
@@ -286,7 +302,7 @@
                                 found_value = true;
                         }
                 }
-        } while (cmdline[0]);
+        } while (args[0]);
         return found_value ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dracut-059+suse.563.g4900899a/suse/README.susemaint 
new/dracut-059+suse.581.g19b7c06c/suse/README.susemaint
--- old/dracut-059+suse.563.g4900899a/suse/README.susemaint     2024-04-16 
15:33:54.000000000 +0200
+++ new/dracut-059+suse.581.g19b7c06c/suse/README.susemaint     2024-04-26 
08:18:04.000000000 +0200
@@ -89,8 +89,9 @@
 the upgrade to dracut-059 (0aa08f0e docs: update NEWS.md and AUTHORS), 
extracted
 using `git log --oneline 0aa08f0e..HEAD`:
 
+MERGED  5d2bda46 fix(zfcp_rules): correct shellcheck regression when parsing 
ccw args
         4980bad3 fix(configure): misleading error if C compiler is not 
installed
-        de8ac630 fix(github): update format of labeler
+MERGED  de8ac630 fix(github): update format of labeler
 MERGED  4971f443 fix(systemd-journald): add systemd-sysusers dependency
 MERGED  4d594210 fix(dracut-initramfs-restore.sh): do not set selinux labels 
if disabled
 MERGED  1586af09 fix(systemd-repart): correct undefined $libdir
@@ -295,13 +296,13 @@
 MERGED  93339444 fix(dmsquash-live): live:/dev/*
 MERGED  10cf8e46 fix(load_fstype): avoid false positive searchs
 MERGED  08b63a25 fix: shellcheck 0.8.0
-        94dcac7c refactor(dracut-install): strerror(errno) -> %m
-        efd4ca27 perf(dracut-install): don't strdup() environment block
-        77226cb4 perf(dracut-install): don't reallocate {src,dst}path in 
hmac_install()
-        a20556f0 perf(dracut-install): don't strdup() excessively for 
dracut_install()
-        e7ed8337 perf(dracut-install): stat() w/unused buf -> access(F_OK) in 
dracut-install
-        751a110f perf(dracut-install): multiple single-character strstr()s -> 
strpbrk()
-        1e5237dd chore: remove src/install/hashmap.lo
+MERGED  94dcac7c refactor(dracut-install): strerror(errno) -> %m
+MERGED  efd4ca27 perf(dracut-install): don't strdup() environment block
+MERGED  77226cb4 perf(dracut-install): don't reallocate {src,dst}path in 
hmac_install()
+MERGED  a20556f0 perf(dracut-install): don't strdup() excessively for 
dracut_install()
+MERGED  e7ed8337 perf(dracut-install): stat() w/unused buf -> access(F_OK) in 
dracut-install
+MERGED  751a110f perf(dracut-install): multiple single-character strstr()s -> 
strpbrk()
+MERGED  1e5237dd chore: remove src/install/hashmap.lo
 MERGED  9dbbebb1 feat(network-wicked): remove module
 
 
@@ -325,10 +326,15 @@
 2557    feat(kernel-modules): install SPMI modules on ARM/RISC-V
 2559    feat(install.d): add sort-key field to rescue BLS entries
 2560    feat(resume): do not attempt to install 
systemd-hibernate-resume@.service
+2571    fix(dracut-install): memory leak in `--modalias` option
+2573    fix(dracut-install): release memory allocated for regular expressions
+2574    fix(dracut-install): memory leak in two `hashmap_put` calls if key 
exists
 2593    fix(dracut.sh): do not add device if find_block_device returns an error
 2593    feat(dracut.sh): protect push_host_devs function
+2601    feat(tpm2-tss): add tpm2.target and systemd-tpm2-generator
 2607    fix(dracut-util): do not call strcmp if the value argument is NULL
 2607    fix(dracut): correct regression with multiple `rd.break=` options
+2608    fix(dracut-util): avoid memory leak
 2611    fix(livenet): propagate error code
 2611    fix(livenet): check also `content-length` from live image header
 2611    fix(livenet): split `imgsize` calculation to avoid misleading error 
message
@@ -336,5 +342,12 @@
 2614    fix(dracut-systemd): replace `rd.udev.log-priority` with 
`rd.udev.log_level`
 2618    fix(i18n): handle keymap includes with `--sysroot`
 2618    fix(dracut-init.sh): handle decompress with `--sysroot`
-2630    fix(zfcp_rules): correct shellcheck regression when parsing ccw args
+2623    fix(dracut-lib): only remove initqueue/finished scripts, not the hook 
dir
+2643    fix(systemd): explicitly install some libs that will not be statically 
included
+
+
+3. Commits from the new https://github.com/dracut-ng/dracut-ng upstream that
+were already merged
+
+a45048b8 fix(dracut): move hooks directory from /usr/lib to /var/lib
 

++++++ dracut.obsinfo ++++++
--- /var/tmp/diff_new_pack.1UdCA4/_old  2024-04-26 23:26:50.876020313 +0200
+++ /var/tmp/diff_new_pack.1UdCA4/_new  2024-04-26 23:26:50.880020460 +0200
@@ -1,5 +1,5 @@
 name: dracut
-version: 059+suse.563.g4900899a
-mtime: 1713274434
-commit: 4900899a25993aaf999e2f24e4b19d124e335cff
+version: 059+suse.581.g19b7c06c
+mtime: 1714112284
+commit: 19b7c06cbf2d96befb9ba0fb24c482a0da40dcef
 

Reply via email to