plymouth

  • Done
  • quality assurance status badge
Details
2 participants
  • ng0
  • Ricardo Wurmus
Owner
unassigned
Submitted by
ng0
Severity
normal
N
(address . guix-patches@gnu.org)
20170517195112.cun2swywlwe75fsp@abyayala
This patch adds plymouth, the early bootprocess daemon.
It provides a 'boot splash'.

Users will not install this on their own (or be able to
use it freestanding) which is why we need at least a
system-service for this.

I'd hate to be the bottleneck for this, so here is my work
from back in december (builds okay!).

According to Gentoo, we will need to apply changes to the
GRUB menu and are advised to disable the linux boot logo

I also advise like we concluded in a chat in december,
that we write a system test for this.

--
R
R
Ricardo Wurmus wrote on 30 May 2017 23:14
(name . ng0)(address . ng0@pragmatique.xyz)(address . 26970@debbugs.gnu.org)
87shjm2gkc.fsf@elephly.net
Toggle quote (5 lines)
> Subject: [PATCH] gnu: Add plymouth.
>
> * gnu/packages/freedesktop.scm (plymouth): New variable.
> ---

Thanks!

[…]

Toggle quote (15 lines)
> + (arguments
> + `(#:configure-flags (list (string-append "--sbindir="
> + (assoc-ref %outputs "out")
> + "/sbin")
> + (string-append "--bindir="
> + (assoc-ref %outputs "out")
> + "/bin")
> + (string-append "--prefix="
> + (assoc-ref %outputs "out"))
> + (string-append "--exec-prefix="
> + (assoc-ref %outputs "out"))
> + (string-append "--libexecdir="
> + (assoc-ref %outputs "out")
> + "/lib")

Is it really necessary to set *all* of these? Usually it’s sufficient
to just set “--prefix” and that’s done by default.

Toggle quote (3 lines)
> + (string-append "--sysconfdir="
> + "/etc")

You don’t need string-append here. Is it *necessary* to use the global
/etc here, or can it be told (at runtime) to read its configuration
files from elsewhere?

Toggle quote (5 lines)
> + (string-append "--localstatedir="
> + "/var")
> + (string-append "--with-logo="
> + "/etc/plymouth/logo.png")

I would prefer if we didn’t have to use the global /etc here. You don’t
need string-append here.

Toggle quote (7 lines)
> + (string-append "--with-background-color="
> + "0x000000")
> + (string-append "--with-background-start-color-stop="
> + "0x000000")
> + (string-append "--with-background-end-color-stop="
> + "0x000000")

Why are these provided?

Toggle quote (8 lines)
> + "--without-system-root-install"
> + "--without-rhgb-compat-link"
> + "--enable-tracing"
> + "--disable-systemd-integration"
> + "--enable-pango"
> + "--enable-gdm-transition"
> + "--enable-gtk")

And what about these? Does “disable-systemd-integration” mean that it
won’t work with elogind?

Toggle quote (7 lines)
> + #:make-flags (list (string-append "plymouthd_defaultsdir="
> + (assoc-ref %outputs "out")
> + "/share/plymouth")
> + (string-append "plymouthd_confdir="
> + (assoc-ref %outputs "out")
> + "/etc/plymouth"))

These differ from the configure flags above that say that the global
/etc should be used. Is this on purpose?

Toggle quote (32 lines)
> + #:phases
> + (modify-phases %standard-phases
> + (add-before 'configure 'fix-docbook
> + (lambda* (#:key inputs #:allow-other-keys)
> + (substitute* "docs/Makefile.in"
> + (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
> + (string-append (assoc-ref inputs "docbook-xsl")
> + "/xml/xsl/docbook-xsl-"
> + ,(package-version docbook-xsl)
> + "/manpages/docbook.xsl")))
> + (setenv "XML_CATALOG_FILES"
> + (string-append (assoc-ref inputs "docbook-xml")
> + "/xml/dtd/docbook/catalog.xml"))
> + #t)))))
> + (inputs
> + `(("gtk+" ,gtk+)
> + ("glib" ,glib)
> + ("cairo" ,cairo)
> + ("libdrm" ,libdrm)
> + ("pango" ,pango)
> + ("libpng" ,libpng)
> + ("eudev" ,eudev)))
> + (native-inputs
> + `(("pkg-config" ,pkg-config)
> + ("libxslt" ,libxslt)
> + ("docbook-xsl" ,docbook-xsl)
> + ("docbook-xml" ,docbook-xml)))
> + (synopsis "Graphical boot animation (splash) and logger")
> + (home-page "https://www.freedesktop.org/wiki/Software/Plymouth/")
> + (description
> + "Plymouth is an application that runs very early in the boot
> +process (even before the root filesystem is mounted!) that provides
“and” ——————————————^

Toggle quote (3 lines)
> +a graphical boot animation while the boot process happens in the
> +background.

I wonder how this will work “before the root filesystem is mounted” when
the store actually sits on the root filesystem. I would prefer to only
add this once it actually works, so I’d very much like to see a proof of
concept for how to use it in a system.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC
R
R
Ricardo Wurmus wrote on 30 May 2017 23:15
control message for bug #26970
(address . control@debbugs.gnu.org)
E1dFoUQ-0006Qg-NM@debbugs.gnu.org
tags 26970 moreinfo
R
R
Ricardo Wurmus wrote on 7 May 2020 10:41
plymouth
(address . 26970-done@debbugs.gnu.org)
87368c3zn4.fsf@elephly.net
Commit 5b9bdeb52cc25e35e74bbc10fa102e3fcc4baab9 adds Plymouth.

I updated to 0.9.4, removed all the unnecessary configure and make
flags, removed GTK support because it blew up the closure size from
~200MB to 800MB, which isn’t suitable for use in an initrd.

I tried using it in a VM, but I haven’t yet been able to make the splash
appear. It seems to be unable to find a graphical display and switches
to the “detailed” view, which merely prints to the console.

I did try loading uvesafb in the initrd, but all I get is a garbled
screen.

On the plus side, plymouth does work as expected on my booted machine,
so I went ahead and pushed the commit.

--
Ricardo
Closed
?