Package: plymouth Version: 0.8.5.1-4 Severity: important File: /usr/share/initramfs-tools/hooks/plymouth Tags: patch User: eve...@debian.org Usertags: events-hardware
Hi there! ATM there is no way to use the details theme without plymouth-drm: ===== root@gismo:/etc# plymouth-set-default-theme --list details text root@gismo:/etc# plymouth-set-default-theme -R details update-initramfs: Generating /boot/initrd.img-3.4-trunk-amd64 [...] + THEME=details + THEMES=/usr/share/plymouth/themes + [ -n details ] + THEME=/usr/share/plymouth/themes/details/details.plymouth [...] + copy_exec /usr/lib/x86_64-linux-gnu/plymouth//label.so + local src target x nonoptlib + local libname dirname + src=/usr/lib/x86_64-linux-gnu/plymouth//label.so + target=/usr/lib/x86_64-linux-gnu/plymouth//label.so + [ -f /usr/lib/x86_64-linux-gnu/plymouth//label.so ] + return 1 E: /usr/share/initramfs-tools/hooks/plymouth failed with return 1. update-initramfs: failed for /boot/initrd.img-3.4-trunk-amd64 with 1. root@gismo:/etc# ===== The problem is in /usr/share/initramfs-tools/hooks/plymouth: --8<---------------cut here---------------start------------->8--- case "$(basename ${THEME} .plymouth)" in text) PLUGINS="details.so text.so" ;; *) PLUGINS="details.so text.so label.so" ;; esac --8<---------------cut here---------------end--------------->8--- Trying to force text=details in the file above results in a usable boot screen, which means that the details theme does not actually need label.so. Here is a conditional patch with no indentation fixes: --8<---------------cut here---------------start------------->8--- --- plymouth-0.8.5.1.ORG/debian/local/plymouth.hook 2012-07-04 08:15:04.000000000 -0600 +++ plymouth-0.8.5.1/debian/local/plymouth.hook 2012-07-07 18:12:41.075248159 -0600 @@ -36,7 +36,13 @@ ;; *) - PLUGINS="details.so text.so label.so" + # allow 'details' theme without plymouth-drm + if [ -r "${PLUGIN_PATH}/label.so" ] + then + PLUGINS="details.so text.so label.so" + else + PLUGINS="details.so text.so" + fi ;; esac @@ -82,6 +88,10 @@ ;; *) + # allow 'details' theme without plymouth-drm + if [ -r "${PLUGIN_PATH}/label.so" ] + then + cp /usr/share/plymouth/debian-logo.png "${DESTDIR}/usr/share/plymouth" # copy files for font rendering @@ -110,6 +120,8 @@ # add drm modules copy_modules_dir kernel/drivers/gpu/drm mga r128 savage sis tdfx via + + fi ;; esac --8<---------------cut here---------------end--------------->8--- However, according to my tests, the 'details' theme output does not change at all if plymouth-drm is installed or not, so I would suggests to completely remove the label.so dependency for the 'details' theme. Here is the patch, again with no indentation fixes: --8<---------------cut here---------------start------------->8--- --- plymouth-0.8.5.1.ORG/debian/local/plymouth.hook 2012-07-04 08:15:04.000000000 -0600 +++ plymouth-0.8.5.1/debian/local/plymouth.hook 2012-07-07 18:19:14.233211946 -0600 @@ -23,6 +23,7 @@ if [ -n "${THEME}" ] then + THEME_NAME="${THEME}" THEME="${THEMES}/${THEME}/${THEME}.plymouth" else exit 0 @@ -30,15 +31,11 @@ PLUGIN_PATH="$(plymouth --get-splash-plugin-path)" -case "$(basename ${THEME} .plymouth)" in - text) - PLUGINS="details.so text.so" - ;; - - *) - PLUGINS="details.so text.so label.so" - ;; -esac +PLUGINS="details.so text.so" +if [ "${THEME_NAME}" != text -a "${THEME_NAME}" != details ] +then + PLUGINS="${PLUGINS} label.so" +fi MODULE="${PLUGIN_PATH}/$(sed -n 's/^ModuleName=\(.*\)/\1/p' ${THEME}).so" @@ -76,12 +73,9 @@ cp /etc/os-release "${DESTDIR}/etc" fi -case "$(basename ${THEME} .plymouth)" in - text) - - ;; +if [ "${THEME_NAME}" != text -a "${THEME_NAME}" != details ] +then - *) cp /usr/share/plymouth/debian-logo.png "${DESTDIR}/usr/share/plymouth" # copy files for font rendering @@ -110,8 +104,8 @@ # add drm modules copy_modules_dir kernel/drivers/gpu/drm mga r128 savage sis tdfx via - ;; -esac + +fi # copy config files mkdir -p "${DESTDIR}/etc/plymouth" --8<---------------cut here---------------end--------------->8--- I then tried if 'details.so' is really needed by the 'text' theme and it seems not, so here a patch on top of the last one: --8<---------------cut here---------------start------------->8--- --- plymouth-0.8.5.1/debian/local/plymouth.hook 2012-07-07 18:19:14.233211946 -0600 +++ plymouth-0.8.5.1/debian/local/plymouth.hook.BETTER 2012-07-07 19:13:14.822458299 -0600 @@ -31,11 +31,17 @@ PLUGIN_PATH="$(plymouth --get-splash-plugin-path)" -PLUGINS="details.so text.so" -if [ "${THEME_NAME}" != text -a "${THEME_NAME}" != details ] -then - PLUGINS="${PLUGINS} label.so" -fi +case "${THEME_NAME}" in + text) + PLUGINS="${THEME_NAME}.so" + ;; + details) + PLUGINS="${THEME_NAME}.so text.so" + ;; + *) + PLUGINS="details.so text.so label.so" + ;; +esac MODULE="${PLUGIN_PATH}/$(sed -n 's/^ModuleName=\(.*\)/\1/p' ${THEME}).so" --8<---------------cut here---------------end--------------->8--- All patches above have been tested without and with plymouth-drm, with both 'text' and 'details' themes. Please forgive me if I miss something, but documentation is not really helpful. In case plymouth-drm is absolutely needed (e.g. to fix #680689), then add "Depends: plymouth-drm | plymouth-x11". Thx, bye, Gismo / Luca -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (990, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.4-trunk-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages plymouth depends on: ii initramfs-tools 0.106 ii libc6 2.13-34 ii multiarch-support 2.13-34 plymouth recommends no packages. Versions of packages plymouth suggests: pn desktop-base <none> pn plymouth-drm <none> -- Configuration Files: /etc/plymouth/plymouthd.conf changed: [Daemon] Theme=details -- no debconf information
pgpYrbpE7wZjx.pgp
Description: PGP signature