Normally systemd is very mute about messages. It's important,
though for it to be chatty when plymouth is running so we can
show verbose messages to the user when they hit escape.
This commit adds a new --enable-systemd-integration configure
flag which explicitly tells systemd when to print messages to
the console.
This may get dropped in the future in lieu of init script
changes doing this instead of plymouth directly.
It's really annoying when you're running plymouthd in
debug mode and don't happen to have "splash" on your kernel
command line and then need to reboot.
This commit adds a new debug option to override the kernel
command line for ths system.
This commit adds a new program, plymouth-upstart-bridge,
the listens for upstart state changes and sends them to plymouth,
or prints them out as appropriate.
This commit lightens the hard requirement that every
client request has to have a function handling the reply.
There's really no reason to be so strict, and it makes
life easier for none /bin/plymouth clients this way.
If a monitor is dark when plymouth is started, we shouldn't
try to light it up. There are rules on which outputs can be
attached to which controllers and we're very likely to break
those rules just assigning things willy-nilly.
The kernel should set us up in the way it thinks is best anyway.
There's no reason to second guess the kernel here.
If the tty hangs up on us, the kernel will return EIO while it's
closing down. As far as I know, there's no way to get notified
when it's back up again, so just keep retrying in a loop over
the course of a second or so. Eventually give up, though.
This is really suboptimal and suggests we should get away from
using ttys for input at some point.
Currently plymouth --wait will wait forever if daemon is not
started. This does not look right - we were asked to wait for
daemon to stop and daemon is obviously stopped. So make it
exit right away in this case.
This avoids timeouts during systemd boot if plymouth happened to be
stopped (or never started) before plymouth-quit-wait had chance to
start.
Signed-off-by: Andrey Borzenkov <arvidjaar@gmail.com>
They aren't unit tests so running them in make check is wrong.
Eventually, I'd like them to be unit tests, though, and not
just little scratch programs.
It seems that sometimes when the tty is stolen from us
it remains locked when we get it back. That would be okay
if the attributes were still kosher, but they aren't.
This commit unlocks the tty before trying to reinitialize
the terminal with suitable attributes.
Debugged by Andrey Borzenkov <arvidjaar@gmail.com>
This patch adds the respective configure options to make it possible to
disable libdrm_intel, libdrm_radeon, libdrm_nouveau, and libkms
independently from each other.
https://bugs.freedesktop.org/show_bug.cgi?id=29804
It was using 16bit types to hold the intermiediate
results of the blend, but for high intensity,
low opacity input values it could need up to
17 bits to prevent overflow.
https://bugs.freedesktop.org/show_bug.cgi?id=33129
Another bug in check_for_consoles...
We can't ever write to tty0 directly, because
it is redirected (just like /dev/console). Previously
we would translate the call to tty1, but commit
c40fd792b6
broke that. This commit fixes it again.
Commit 3ec007a482 did not
properly check for success when connecting to the fallback
socket path and instead always failed.
This commit fixes the code to properly check for success and
proceed.
Signed-off-by: Andrey Borzenkov <arvidjaar@gmail.com>
Commit 9de731ed29 caused
plymouth to erroneously drop the leading '\0' on the old
abstract socket making fallback socket support not work.
As result new clients (after update) can no longer communicate
with old running daemons (such as from the initrd).
This commit restores the leading '\0' for both
abstract sockets, trimmed and non-trimmed.
Commit 3ec007a482 did not
check for success with old socket path and failed
always. Properly check for success and proceed.
Signed-off-by: Andrey Borzenkov <arvidjaar@gmail.com>
plymouthd would previously pause() when crashing if debug
mode was enabled so that it could be attached to with a debugger.
pausing indefinitely during boot up is often a bad idea though.
This commit changes it to sleep 30 seconds instead.