Source: dracut
Severity: normal
Tags: patch

Dear Maintainer,

first let me thank you for providing dracut to debian! Replacing 
initramfs-tools with dracut went amazingly smooth. There is only one little 
problem with dracut and plymouth:

The current version of dracut (037-2) in Debian Jessie is not able to locate 
Plymouth. It fails with something like 
'.../usr/libexec/plymouth/plymouth-populate-initrd: No such file or 
directory...' when running dracut. The reason can be found in file 
'/usr/lib/dracut/modules.d/50plymouth/module-setup.sh'. This script is 
expecting plymouth to be found at '/usr/libexec/...', but this path does not 
exist in debian. Correct would be e.g. '/usr/lib/x86_64-linux-gnu/...' on 
amd64. As dracut is not able to locate plymouth it falls back to its own 
plymouth installation script 
'/usr/lib/dracut/modules.d/50plymouth/plymouth-populate-initrd.sh'. But that 
script is faulty too, because it expects a file 
'/usr/share/pixmaps/system-logo-white.png', which again does not exist in 
debian.

To fix the first error, i've attached a patch to this bug report. This patch 
changes '.../50plymouth/module-setup.sh' in such a way, that the script first 
extracts the current system architecture triplet (e.g. 'x86_64-linux-gnu' for 
amd64) and then uses this information to locate plymouth. However, this 
requires 'dpkg-architecture' which is part of the 'dpkg-dev' package. Thus the 
package dependencies need an update, too. Until now i haven't found a 
satisfying solution without 'dpkg-architecture' :-(

Cheers
Jakob

-- System Information:
Debian Release: jessie/sid
  APT prefers testing-proposed-updates
  APT policy: (500, 'testing-proposed-updates'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.14-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
--- /usr/lib/dracut/modules.d/50plymouth/module-setup.sh.orig	2014-06-27 11:58:43.387775226 +0200
+++ /usr/lib/dracut/modules.d/50plymouth/module-setup.sh	2014-06-27 12:15:06.687493675 +0200
@@ -15,12 +15,13 @@
 
 # called by dracut
 install() {
-    if grep -q nash /usr/libexec/plymouth/plymouth-populate-initrd \
-        || [ ! -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then
+    DEB_HOST_MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH)
+    if grep -q nash /usr/lib/${DEB_HOST_MULTIARCH}/plymouth/plymouth-populate-initrd \
+        || [ ! -x /usr/lib/${DEB_HOST_MULTIARCH}/plymouth/plymouth-populate-initrd ]; then
         . "$moddir"/plymouth-populate-initrd.sh
     else
         PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$dracutfunctions" \
-            /usr/libexec/plymouth/plymouth-populate-initrd -t "$initdir"
+            /usr/lib/${DEB_HOST_MULTIARCH}/plymouth/plymouth-populate-initrd -t "$initdir"
     fi
 
     inst_hook emergency 50 "$moddir"/plymouth-emergency.sh

Reply via email to