My Setup:
Fedora 44 (KDE), dracut 108-7.fc44, neovim-0.12.4-3.fc44. No nano, vim, or vim-minimal installed — vi/vim were both managed via alternatives, pointing to /usr/bin/nvim (the only registered alternative).
Symptom:
After a routine dnf update that pulled in kernel 7.0.12-201.fc44 and 7.1.3-200.fc44, neither kernel would boot — GRUB loaded vmlinuz, then failed and restarted on Enter. Root cause: no initramfs was ever generated for either kernel (/boot/initramfs-*.img missing for both).
Running dracut manually failed with:
dracut-install: ERROR: could not locate dependency /usr/lib64/lua/5.1/lpeg.so requested by '/var/tmp/dracut.XXXXX/initramfs/usr/bin/nvim'
xargs: /usr/lib/dracut/dracut-install: exited with status 255; aborting
dracut\[F\]: Resolving executable dependencies failed
Root cause:
Fedora’s dracut default config (/usr/lib/dracut/dracut.conf.d/01-dist.conf) always attempts to optionally stage vi:
install_optional_items+=" vi /usr/libexec/vi /etc/virc ps grep cat rm "
On systems where vi/vim resolve to nvim via alternatives, dracut-install tries to resolve nvim’s full dependency chain. readelf -d /usr/bin/nvim shows:
NEEDED Shared library: [/usr/lib64/lua/5.1/lpeg.so]
That’s an absolute path in the NEEDED entry, unlike every other dependency (libluv.so.1 , libtree-sitter.so.0.26 , etc., which use bare sonames). lpeg.so is a Lua C module with no SONAME.
Workaround:
I installed nano and overrode dracut’s install list to use it in place of vi, without changing what vi/vim point to system-wide:
dnf install nano
/etc/dracut.conf.d/99-editor-override.conf:
install_optional_items=" nano ps grep cat rm "
After that, dracut --force regenerated both initramfs images successfully and both kernels boot normally.
Should this be reported? If so, where? I believe this is a packaging bug in Fedora’s neovim RPM (or possibly a dracut-install limitation), but I’m not sure which project owns the fix. Some direction would be appreciated.