dracutdevs / dracut

dracut the event driven initramfs infrastructure
https://github.com/dracutdevs/dracut/wiki
GNU General Public License v2.0
586 stars 395 forks source link

Dracut does not pull in everything necessary for theme #996

Open MuddyArch opened 3 years ago

MuddyArch commented 3 years ago

Describe the bug Dracut fails to include necessary file for certain themes. Specifically in my case the necessary files to show a password prompt in the Plymouth splash. Splash background was visible.

Distribution used Arch

Dracut version dracut-git 050.r213.3a12309c-1 from the AUR

Init system systemd

To Reproduce Probably can grab any theme from https://github.com/adi1090x/plymouth-themes, but I was using colorful_loop. Unpacking with lsinitrd showed files were missing in my .efi builds that failed to show the prompt.

Expected behavior Dracut pulls all necessary files specified in the theme.

Additional context I was able to get the password prompt after reading through these two links, which are issues opened at the theme repository and the Plymouth repository.

https://github.com/adi1090x/plymouth-themes/issues/10 https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/116

I added install_items+=" /usr/lib/plymouth/label.so /usr/lib/plymouth/text.so /usr/share/fonts/TTF/DejaVuSans.ttf /etc/fonts/fonts.conf "

to /etc/dracut.conf.d/plymouth.conf to fix the issue (Dracut was correctly pulling text.so, but I added it to be safe in case I change themes).

johannbg commented 3 years ago

@haraldh, @danimo do either of you have any clue what's going on in plymouth land? Looking into our module it's nowhere near what's being shipped upstream and based on Rays comment comment there, the plymouth people seem to have taken upon themselves to write and maintain their own "initramfs" tool to generate/populate/update ( plymouth-generate-initrd, plymouth-populate-initrd,plymouth-update-initrd ) the initramfs and expect downstream to be using that which is arguably silly that a "graphical boot animation application" has suddenly evolved into become some kind of initramfs generating tool o_O

Now I'm unsure of the proper course of action forward but afaikt we are faced with three options a) Update the plymouth module to include and use/reflect what's being done in these scripts. b) Expect downstream to ships these script and update the plymouth module to call these scripts (/usr/libexec/plymouth/plymouth-$foo-initrd ) . c) Drop the plymouth module altogether and let downstream handle this.

@MuddyArch are these scripts even being shipped in Arch?

MuddyArch commented 3 years ago

Yes, from /usr/lib/plymouth http://ix.io/2MCh

I am using https://aur.archlinux.org/packages/plymouth/ as well, not https://aur.archlinux.org/packages/plymouth-git/ So I am downloading a tar.gz, not cloning the repo. Those two are far and away the most popular versions so pretty much everyone using plymouth on Arch should have those scripts.