I get messages "Skipping program $env{DM_SBIN_PATH}/..." when generating initramfs. This happens because some udev rules contains variables in path to command: $ egrep -r 'IMPORT\{program\}=\"\$' /lib64/udev/rules.d/ /lib64/udev/rules.d/10-dm.rules:ENV{DM_COOKIE}=="?*", IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup udevflags $env{DM_COOKIE}" /lib64/udev/rules.d/10-dm.rules:TEST!="dm", IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o name,uuid,suspended" /lib64/udev/rules.d/10-dm.rules:ENV{DM_SUSPENDED}!="?*", IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o suspended" /lib64/udev/rules.d/11-dm-lvm.rules:IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup splitname --nameprefixes --noheadings --rows $env{DM_NAME}" /lib64/udev/rules.d/13-dm-disk.rules:IMPORT{program}="$env{DM_SBIN_PATH}/blkid -o udev -p $tempnode" $ sudo dracut -f "" 3.5.4-hardened-r1 I: Dracut module 'i18n' will not be installed, because it's in the list to be omitted! I: Dracut module 'i18n' will not be installed, because it's in the list to be omitted! I: *** Including module: dash *** I: *** Including module: dm *** I: Skipping program $env{DM_SBIN_PATH}/dmsetup using in udev rule 10-dm.rules as it cannot be found I: Skipping program $env{DM_SBIN_PATH}/dmsetup using in udev rule 10-dm.rules as it cannot be found I: Skipping program $env{DM_SBIN_PATH}/dmsetup using in udev rule 10-dm.rules as it cannot be found I: Skipping program $env{DM_SBIN_PATH}/blkid using in udev rule 13-dm-disk.rules as it cannot be found I: Skipping udev rule: 64-device-mapper.rules I: *** Including module: kernel-modules *** I: Skipping program /lib/modprobe.d/*.conf as it cannot be found and is flagged to be optional I: Omitting driver nfsd I: *** Including module: lvm *** I: Skipping program $env{DM_SBIN_PATH}/dmsetup using in udev rule 11-dm-lvm.rules as it cannot be found I: Skipping udev rule: 64-device-mapper.rules I: *** Including module: resume *** I: *** Including module: rootfs-block *** I: *** Including module: terminfo *** I: *** Including module: udev-rules *** I: Skipping program /sbin/mdadm using in udev rule 59-persistent-storage.rules as it cannot be found I: Skipping program /lib/udev/firmware.sh as it cannot be found and is flagged to be optional I: Skipping program /lib/udev/firmware.agent as it cannot be found and is flagged to be optional I: Skipping program /lib/udev/hotplug.functions as it cannot be found and is flagged to be optional I: Skipping program /lib/udev/fw_unit_symlinks.sh as it cannot be found and is flagged to be optional I: Skipping program /lib/udev/pcmcia-socket-startup as it cannot be found and is flagged to be optional I: Skipping program /lib/udev/pcmcia-check-broken-cis as it cannot be found and is flagged to be optional I: *** Including module: virtfs *** I: *** Including module: usrmount *** I: *** Including module: base *** I: *** Including module: fs-lib *** I: Skipping program jfs_fsck as it cannot be found and is flagged to be optional I: Skipping program reiserfsck as it cannot be found and is flagged to be optional I: *** Including module: shutdown *** I: Skipping program kexec as it cannot be found and is flagged to be optional I: *** Including modules done *** I: *** Installing kernel module dependencies and firmware *** I: *** Installing kernel module dependencies and firmware done *** I: *** Creating image file *** I: *** Creating image file done *** I: Wrote /boot/initramfs-3.5.4-hardened-r1.img: I: -rw-r--r-- 1 root root 5444531 окт. 5 12:22 /boot/initramfs-3.5.4-hardened-r1.img Reproducible: Always
Created attachment 325702 [details, diff] dracut-functions.sh.patch Simple patch to fix this
$ emerge -pv udev dracut These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-fs/udev-171-r6 USE="extras gudev hwdb rule_generator -action_modeswitch -build -debug -edd -floppy -introspection -keymap (-selinux) -test" 0 kB [ebuild R ~] sys-kernel/dracut-023 USE="device-mapper -debug -net -optimization (-selinux)" DRACUT_MODULES="lvm -biosdevname -bootchart -btrfs -caps -cifs -crypt -crypt-gpg -crypt-loop -dmraid -dmsquash-live -gensplash -iscsi -livenet -mdraid -multipath -nbd -nfs -plymouth -ssh-client -syslog -systemd" 0 kB Total: 2 packages (2 reinstalls), Size of downloads: 0 kB
Created attachment 325912 [details] 0002-dracut-functions.sh-find_binary-path-starting-with-v.patch I have send your patch with a comment (see that credits go to you) to dracut mailing list. The patch is going to be applied into dracut-023-r1.ebuild today.
Thank you for the report and the patch! +*dracut-023-r1 (07 Oct 2012) + + 07 Oct 2012; Amadeusz Żołnowski <aidecoe@gentoo.org> + +files/023-0001-dracut-functions.sh-find_binary-path-s.patch, + +files/023-0002-90crypt-call-systemd-commands-only-if-.patch, + +dracut-023-r1.ebuild: + Fixes for bug #436712, bug #437142 and bug #437270. + + Thanks to Jonathan Callen <abcd@gentoo.org>, Nikoli <nikoli@lavabit.com> and + Alexander Tsoy <bugs+gentoo@puleglot.ru>. +
See bug 437700. If you make dracut-023 depend on >=sys-fs/udev-176 this patch is not needed anymore. At least in udev-189 there is no paths starting with variable. gentoo systemd-189 # pwd /var/tmp/portage/sys-fs/udev-189/work/systemd-189 gentoo systemd-189 # egrep -r 'IMPORT\{program\}=\"\$' ./ gentoo systemd-189 #
The patch is applied upstream anyway, so this bug is solved by this patch.