[Mageia-dev] dracut/plymouth broken...

Anssi Hannula anssi at mageia.org
Mon Dec 19 05:23:24 CET 2011


On 19.12.2011 00:22, Thomas Backlund wrote:
> Colin Guthrie skrev 19.12.2011 00:18:
>> 'Twas brillig, and Thomas Backlund at 18/12/11 21:57 did gyre and gimble:
>>> I: Wrote /boot/initrd-3.1.6-desktop-0.rc1.1.1.mga2.img:
>>> I: -rw-r--r-- 1 root root 6934831 dec 18 23:50
>>> /boot/initrd-3.1.6-desktop-0.rc1.1.1.mga2.img
>>> Need 'inst' function, try setting PLYMOUTH_POPULATE_SOURCE_FUNCTIONS to
>>> a file that defines it
>>> Option exclude requires an argument
>>> usage: cpio-filter [--exclude<PATTERN>] [--in-place] [<cpio file>]
>>
>> How did you trigger this? I've not seen this error. Do you have a
>> special/different plymouth theme set as default?
>>
>> Col
>>
> 
> Nope, default plymouth theme.
> 
> Triggered by simply installing a kernel with urpmi --auto-update

/usr/lib/libDrakX/bootloader.pm (drakxtools-backend):
sub mkinitrd {
    [...]
    # after mkinitrd command:
    add_boot_splash($initrd, $entry->{vga} || $bootloader->{vga});
    [...]
}
sub add_boot_splash {
    [...]
    run_program::rooted($::prefix,
'/usr/share/bootsplash/scripts/make-boot-splash', $initrd, $res->{X});
    [...]
}

/usr/share/bootsplash/scripts/make-boot-splash (bootsplash):
[...]
$splash_dir/scripts/make-boot-splash-raw $initrd_file $THEME
[...]

/usr/share/bootsplash/scripts/make-boot-splash-raw (bootsplash):
[...]
/usr/libexec/plymouth/plymouth-populate-initrd -t $tmp_dir/plymouth
[...]

/usr/libexec/plymouth/plymouth-populate-initrd (plymouth-scripts):
[...]
    if [ -f "${PLYMOUTH_LIBEXECDIR}/initrd-functions" ]; then

PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="${PLYMOUTH_LIBEXECDIR}/initrd-functions"
    elif [ -f "${MKINITRD_LIBEXECDIR}/functions" ]; then

PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="${MKINITRD_LIBEXECDIR}/functions"
    fi

    if [ -f "${PLYMOUTH_DATADIR}/dracut/dracut-functions" ]; then

PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="${PLYMOUTH_DATADIR}/dracut/dracut-functions"
    fi
[...]

So plymouth-scripts breaks as dracut-functions got moved, and the old
mkinitrd functions are no longer present after the obsoletes was added.
In addition, make-boot-splash-raw seems to not handle the failure
properly, creating empty initramfs instead.

I'm going to look at this right now to fix at least the first one. I'm
not 100% sure if this add_boot_splash() stuff is needed at all (for
customs bootsplashes maybe?), but I'll leave that for Colin to look at :)

-- 
Anssi Hannula


More information about the Mageia-dev mailing list