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

Attachment: pgpYrbpE7wZjx.pgp
Description: PGP signature

Reply via email to