Package: plymouth Version: 0.8.5.1-4 Severity: important File: /usr/share/initramfs-tools/hooks/plymouth Tags: patch User: [email protected] 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

