]> git.ipfire.org Git - thirdparty/plymouth.git/log
thirdparty/plymouth.git
10 years agodevice-manager: drop seat abstraction in public interface wip/deseatify
Ray Strode [Sat, 28 Mar 2015 05:08:03 +0000 (01:08 -0400)] 
device-manager: drop seat abstraction in public interface

The seat abstraction turns out to be pretty wrong headed.

It forces us to make a decision on which output devices to couple
the input device to, which doesn't really make sense in the face
of multiple video cards.

This commit drops the seat object from the device manager api,
and changes the users of the api to work on the underlying
device objects directly.

Under the hood the device manager code still uses ply_seat_t.
That will get mopped up in a future commit.

10 years agoseat: drop set_splash function
Ray Strode [Sat, 28 Mar 2015 05:05:38 +0000 (01:05 -0400)] 
seat: drop set_splash function

It's unused.

10 years agotwo-step: fix drawing of background image
Ray Strode [Sun, 22 Mar 2015 04:42:22 +0000 (21:42 -0700)] 
two-step: fix drawing of background image

The background image is tiled to cover the entire screen, so
we must pass a fill area that covers the screen or sampling
will be wrong. But we must also pass a clip area or we will
have expensive overdraw.

https://bugs.freedesktop.org/show_bug.cgi?id=84482

10 years agoscript: Don't draw backgrounds if they're obscured
Sjoerd Simons [Mon, 8 Dec 2014 10:50:47 +0000 (11:50 +0100)] 
script: Don't draw backgrounds if they're obscured

When drawing sprites it's a waste to draw the background if the target
area will be obscured by the sprit to draw. Optimize for the common case
where only one sprite is being drawn by peeking at the first item in the
sprite list to check if it is opaque and fills the area.

https://bugs.freedesktop.org/show_bug.cgi?id=87105

10 years agoply-image: Don't do alpha pre-multiplication for opaque pixels
Sjoerd Simons [Mon, 8 Dec 2014 10:47:12 +0000 (11:47 +0100)] 
ply-image: Don't do alpha pre-multiplication for opaque pixels

When transforming the output of libpng to ARG32 with pre-multiplied
alpha, only do the multiplications if the pixel isn't opaque. Otherwise
plymouth is just applying a very complicated identity function.

https://bugs.freedesktop.org/show_bug.cgi?id=87105

10 years agopixel-buffer: Optimize filling with opaque buffers
Sjoerd Simons [Mon, 8 Dec 2014 10:42:26 +0000 (11:42 +0100)] 
pixel-buffer: Optimize filling with opaque buffers

If the source buffer is known to be fully opaque and the fill is done at
full opacity, simply memcpy the data row-by-row instead of iterating over
every pixel and blending it with the target buffer.

This could be optimized more, in the future, in some cases, by memcpy of
the entire block instead of row-by-row.

https://bugs.freedesktop.org/show_bug.cgi?id=87105

10 years agopixel-buffer: add ability track opaqueness
Sjoerd Simons [Mon, 8 Dec 2014 10:39:39 +0000 (11:39 +0100)] 
pixel-buffer: add ability track opaqueness

Pixel buffers contain ARGB32 data. Add functionality to mark a buffer as
containing only fully opaque pixels. This functionality can be used by
rendering functions to be able to optimize drawing of such buffers.

https://bugs.freedesktop.org/show_bug.cgi?id=87105

10 years agodrm: rename "buffer" to "output_buffer"
Ray Strode [Thu, 26 Mar 2015 00:46:12 +0000 (20:46 -0400)] 
drm: rename "buffer" to "output_buffer"

This just makes it more clear that the buffers are used for scan
out.

10 years agodrm: free drm mode resources object
Ray Strode [Thu, 26 Mar 2015 00:39:30 +0000 (20:39 -0400)] 
drm: free drm mode resources object

This fixes a small memory leak.

10 years agodrm: don't try to draw to fbcon on unmap
Ray Strode [Thu, 26 Mar 2015 00:26:42 +0000 (20:26 -0400)] 
drm: don't try to draw to fbcon on unmap

We don't support mapping the console, so trying to write
to it is a futile endeavour

10 years agodrm: merge ply-renderer-generic-driver.c to plugin.c
Ray Strode [Thu, 26 Mar 2015 00:10:49 +0000 (20:10 -0400)] 
drm: merge ply-renderer-generic-driver.c to plugin.c

Now that we don't have several drivers, having the
backend/driver separation makes little sense.

This commit merges everything in plugin.c

10 years agodrm: assume driver doesn't support mapping console
Ray Strode [Wed, 25 Mar 2015 23:18:45 +0000 (19:18 -0400)] 
drm: assume driver doesn't support mapping console

We only support the generic driver now, and it doesn't
support mapping the console.

This commit removes the supports_mapping_console boolean,
and any code that checks for console mapping.

10 years agosystemd: Allow specifying unit dir to configure
Yixun Lan [Fri, 20 Mar 2015 17:02:35 +0000 (13:02 -0400)] 
systemd: Allow specifying unit dir to configure

systemd isn't necessarily in the buildroot at the time that plymouth
gets built, so autodetection of the unitdir from pkgconfig isn't
necessarily feasible.

This commit adds a new option to configure, --with-systemdunitdir,
that lets distros specify the unit directory manually.

https://bugs.gentoo.org/show_bug.cgi?id=543712

10 years agoconfigure: bump to 0.9.3
Ray Strode [Wed, 18 Mar 2015 01:50:43 +0000 (21:50 -0400)] 
configure: bump to 0.9.3

10 years agoconfigure: bump to 0.9.2 0.9.2
Ray Strode [Tue, 17 Mar 2015 18:52:52 +0000 (14:52 -0400)] 
configure: bump to 0.9.2

10 years agomain: don't handle udev events when deactivated
Ray Strode [Fri, 6 Mar 2015 21:00:25 +0000 (16:00 -0500)] 
main: don't handle udev events when deactivated

We don't want to spontaneously reactivate.

https://bugs.freedesktop.org/show_bug.cgi?id=89474

10 years agotwo-step: Add separate startup / shutdown animations
Jasper St. Pierre [Mon, 2 Mar 2015 22:53:25 +0000 (14:53 -0800)] 
two-step: Add separate startup / shutdown animations

In the case of Endless, we have a very fluid active bootup animation
that looks quite excellent for turning the computer on, but when turning
it off or restarting, it's sort of awkward to have the same animation
play. For our use case, we want to simply show our watermark.

10 years agoply-animation: Fix drawing if it happens before the timeout
Jasper St. Pierre [Mon, 2 Mar 2015 23:22:23 +0000 (15:22 -0800)] 
ply-animation: Fix drawing if it happens before the timeout

animation->frame_area isn't filled in until the timeout, but clients
might draw it beforehand. Since animation->frame_area isn't used
anywhere else and we already have the x/y values in animation->x/y,
just use those and remove animation->frame_area.

10 years agotext: Change default text splash's colors
Bastien Nocera [Sat, 31 Jan 2015 20:24:12 +0000 (21:24 +0100)] 
text: Change default text splash's colors

As per GNOME mockups:
https://wiki.gnome.org/Design/OS/Boot

Note that this also removes the blue terminal color setting, as it is
not used in the text plugin.

https://bugs.freedesktop.org/show_bug.cgi?id=88888

10 years agospinner: Add noise texture
Bastien Nocera [Sat, 31 Jan 2015 20:06:19 +0000 (21:06 +0100)] 
spinner: Add noise texture

As per GNOME mockups:
https://wiki.gnome.org/Design/OS/Boot

https://bugs.freedesktop.org/show_bug.cgi?id=88888

10 years agodevice-manager: try fb device if drm device failed
Ray Strode [Wed, 7 Jan 2015 21:24:57 +0000 (16:24 -0500)] 
device-manager: try fb device if drm device failed

If the drm device failed to work, then fall back to the fb device.

Right now, we ignore fb devices that have associated drm devices.

This may fix vmwgfx.

10 years agoanimation: don't report success when no frames were added
Ray Strode [Fri, 7 Nov 2014 18:30:33 +0000 (10:30 -0800)] 
animation: don't report success when no frames were added

Currently, the animation object will report success when assets are *found* in
the directory. When loading those assets, code will apply more checks to
determine if the assets are meant for the animation.
In case none of them are, we'll end up not adding any frames, so we
should not report a successful load.

This is like commit 741b545868aa5bd42a64d5316c121fe9bae4bc2f but for
animation objects instead of throbber objects.

10 years agothrobber: don't report success when no frames were added
Cosimo Cecchi [Fri, 7 Nov 2014 18:30:33 +0000 (10:30 -0800)] 
throbber: don't report success when no frames were added

Currently, the throbber will report success when assets are *found* in
the directory. When loading those assets, code will apply more checks to
determine if the assets are meant for the throbber.
In case none of them are, we'll end up not adding any frames, so we
should not report a successful load.

10 years agothrobber: don't report successful load when no assets
Cosimo Cecchi [Fri, 7 Nov 2014 18:12:52 +0000 (10:12 -0800)] 
throbber: don't report successful load when no assets

Currently, the throbber will report a successful load when zero assets
are loaded. Change it so that zero assets do not result in a
successfully loaded throbber.

This is similar to commit 3d7f4fe44148ca94dceabb631850971c582bff3f but
for throbber objects instead of animation objects.

10 years agox11: Port to GTK+ 3.0
Jasper St. Pierre [Wed, 29 Oct 2014 23:38:01 +0000 (16:38 -0700)] 
x11: Port to GTK+ 3.0

Port the remaining GTK+ code, the X11 renderer, to GTK+ 3.0.

10 years agoRemove the old log viewer tool
Jasper St. Pierre [Wed, 29 Oct 2014 23:49:42 +0000 (16:49 -0700)] 
Remove the old log viewer tool

10 years agomain: Don't redirect output to /dev/null if we're tracing
Jasper St. Pierre [Wed, 29 Oct 2014 23:28:04 +0000 (16:28 -0700)] 
main: Don't redirect output to /dev/null if we're tracing

Otherwise, our input will mysteriously disappear.

10 years agoutils: Don't create unix sockets non blocking
Sjoerd Simons [Fri, 14 Nov 2014 20:55:50 +0000 (21:55 +0100)] 
utils: Don't create unix sockets non blocking

All the ply_read* functions assume the socket is doing blocking reads,
so opening unix sockets in non-blocking mode doesn't seem the best idea.

Specifically, this was causing ask-password to fail to read the response
at times as it got a -EAGAIN back from read rather then data.

10 years agoscript: Add SetRefreshRate function
Sjoerd Simons [Thu, 13 Nov 2014 12:09:34 +0000 (13:09 +0100)] 
script: Add SetRefreshRate function

The script plugin hardcodes an FPS value of 50, which for some themes
and various devices is a bit much.  Add a new function
(Plymouth.SetRefreshRate) which sets the rate at which the
RefreshFunction gets called so each script theme can determine their most
appropriate rate.

https://bugs.freedesktop.org/show_bug.cgi?id=86247

10 years agomain: fix up spacing in previous commit to match coding style
Ray Strode [Wed, 22 Oct 2014 15:37:34 +0000 (11:37 -0400)] 
main: fix up spacing in previous commit to match coding style

The previous commit introduced a get_splash_mode_from_mode function
which used the wrong indentation.

This commit fixes up the indentation.

10 years agomain: fix up mode confusion
Ray Strode [Wed, 22 Oct 2014 15:27:31 +0000 (11:27 -0400)] 
main: fix up mode confusion

plymouthd runs in a particular mode "boot" "shutdown" "updates" at any
given time.  Likewise, the plymouth splash object also takes a mode.
These modes map 1-to-1 with each other, and there is more than one place
in the code where we need to get the splash mode from the overall mode.

This commit adds a helper function to perform this translation, and
cleans up the places where the wrong mode type is used or the
translation performed is incomplete.

10 years agoscript support system update events
johnv-valve [Wed, 15 Oct 2014 23:18:44 +0000 (16:18 -0700)] 
script support system update events

Add new script function, SetSystemUpdateFunction to allow scripts
to register a callback for system update progress notifications.

10 years agoclient: fix incorrectly sized buffer for /proc/cmdline
Ray Strode [Fri, 10 Oct 2014 20:11:01 +0000 (16:11 -0400)] 
client: fix incorrectly sized buffer for /proc/cmdline

We assume /proc/cmdline will be no more than 512 bytes (including NUL).
It can actually be 4096 bytes (excluding NUL).

This commit makes sure we allocate enough space for it and its NUL.

This is just like the previous fix for the daemon, but for the client,
now.

10 years agomain: fix incorrectly sized buffer for /proc/cmdline
Ray Strode [Fri, 10 Oct 2014 20:11:01 +0000 (16:11 -0400)] 
main: fix incorrectly sized buffer for /proc/cmdline

We assume /proc/cmdline will be no more than 512 bytes (including NUL).
It can actually be 4096 bytes (excluding NUL).

This commit makes sure we allocate enough space for it and its NUL.

10 years agomain: show splash even when user has init=/bin/sh
Ray Strode [Fri, 10 Oct 2014 17:30:56 +0000 (13:30 -0400)] 
main: show splash even when user has init=/bin/sh

At the moment, we don't bother showing the splash
screen if init=/bin/sh since we assume the user
wants to be see the shell prompt.

The problem is, since we don't show a splash screen
we don't handle LUKS in the initrd.

This commit makes us show the splash for the duration
of the initrd but quit on switch root.

11 years agoRevert "systemd: add WantedBy snippets"
Laurent Bigonville [Mon, 28 Jul 2014 18:46:42 +0000 (20:46 +0200)] 
Revert "systemd: add WantedBy snippets"

This reverts commit 7adb50c267b1be18e11bd4c658274dbe590de485.

The .service files are already statically enabled, adding the Install
section and the WantedBy option is useless

Conflicts:
systemd-units/plymouth-quit-wait.service.in

https://bugs.freedesktop.org/show_bug.cgi?id=80048

11 years agotext-step-bar: use correct utf-8 multibyte sequence for ■
Ray Strode [Mon, 28 Jul 2014 13:58:49 +0000 (09:58 -0400)] 
text-step-bar: use correct utf-8 multibyte sequence for ■

For some reason in commit 113526408c5706c9efc7f43c3f8258354e762677
I commited the sequence \x25\x96\xa0 in place of the block character
that was there before.  I don't know where I got \x25 from, but it's
not right (and couldn't even be right since the high order bit isn't
set which is a requirement for the first byte in multi-byte utf-8
sequences).

This commit uses \xe2 instead which I got from doing:

$ echo ■  | xxd
0000000: e296 a00a                                ....

11 years agoseat: be a little more forgiving in the case there's no open terminal
Ray Strode [Mon, 14 Jul 2014 12:04:54 +0000 (08:04 -0400)] 
seat: be a little more forgiving in the case there's no open terminal

We can end up in a situation where a seat object doesn't have a terminal
associated with it.  In that case we shouldn't crash, but continue on
with no input available for that seat.

https://bugs.freedesktop.org/show_bug.cgi?id=80553

11 years agoconfigure: bump point release and ABI versions of libraries.
Dimitri John Ledkov [Fri, 11 Jul 2014 10:47:17 +0000 (11:47 +0100)] 
configure: bump point release and ABI versions of libraries.

Due to removed interfaces since 0.8.8:
ply_boot_splash_set_keyboard
ply_boot_splash_unset_keyboard
ply_boot_splash_add_pixel_display
ply_boot_splash_remove_pixel_display
ply_boot_splash_add_text_display
ply_boot_splash_remove_text_display

And a bunch of new ones added.

11 years agolibply-splash-core: also monitor for file removal in udev directory
Frederic Crozat [Thu, 19 Jun 2014 15:58:50 +0000 (17:58 +0200)] 
libply-splash-core: also monitor for file removal in udev directory

Ensure plymouth detects coldplug completion with recent udev (>= 213).

11 years ago.gitignore: ignore generated manpages
Frederic Crozat [Thu, 26 Jun 2014 08:42:45 +0000 (10:42 +0200)] 
.gitignore: ignore generated manpages

11 years agosplash: do not process display lists if it is empty or NULL
Frederic Crozat [Fri, 20 Jun 2014 14:01:12 +0000 (16:01 +0200)] 
splash: do not process display lists if it is empty or NULL

11 years agolibply-splash-core: fix typo in logs
Frederic Crozat [Mon, 23 Jun 2014 14:51:08 +0000 (16:51 +0200)] 
libply-splash-core: fix typo in logs

11 years agosplash: remove pixel_display in sprite-lib when notified they are gone
Frederic Crozat [Thu, 19 Jun 2014 14:18:12 +0000 (16:18 +0200)] 
splash: remove pixel_display in sprite-lib when notified they are gone

11 years agosystemd: give plymouth-quit-wait a better description
Ray Strode [Fri, 13 Jun 2014 15:01:33 +0000 (11:01 -0400)] 
systemd: give plymouth-quit-wait a better description

plymouth-quit-wait.service is a synchronization point that
other services tie into, so they know when boot is finished
and the splash is down.

Unfortunately, in cases where the boot stalls, the last thing
users see is:

Starting Wait for Plymouth Boot Screen to Quit...

and then assume the problem is with the boot splash.

This commit makes the description less finger-pointy.

11 years agomain: fix typo in debug message
Frederic Crozat [Thu, 12 Jun 2014 15:18:59 +0000 (17:18 +0200)] 
main: fix typo in debug message

11 years agodevice-manager: only call ply_terminal_free
Frederic Crozat [Thu, 12 Jun 2014 13:01:37 +0000 (15:01 +0200)] 
device-manager: only call ply_terminal_free

ply_terminal_free will call ply_terminal_close anyway and is guarded
against NULL terminal (ply_terminal_close is not).

11 years agoReindent
Ray Strode [Tue, 20 May 2014 18:40:51 +0000 (14:40 -0400)] 
Reindent

I don't like the GNU coding style and I'm not sure why I chose it.
This commit changes things over to use 8 space tabs and 'if () {'
style braces.

11 years agoscripts: change out uncrustify config
Ray Strode [Tue, 20 May 2014 18:45:20 +0000 (14:45 -0400)] 
scripts: change out uncrustify config

I'm going to be updating the coding style of plymouth, so
this is the new uncrustify config.

11 years agoconfigure: bump to 0.9.0 0.9.0
Ray Strode [Tue, 20 May 2014 17:20:46 +0000 (13:20 -0400)] 
configure: bump to 0.9.0

11 years agotext-step-bar: silence warning about multibyte characters
Ray Strode [Tue, 20 May 2014 17:47:39 +0000 (13:47 -0400)] 
text-step-bar: silence warning about multibyte characters

11 years agoboot-server: allow premature client close of socket on update replies
Ray Strode [Tue, 20 May 2014 17:16:28 +0000 (13:16 -0400)] 
boot-server: allow premature client close of socket on update replies

systemd doesn't block waiting for a reply to its update request, since
it would pointlessly slow down boot up.

This commit makes sure we don't bother logging that case.

11 years agoevent-loop: drop some extraneous debugging messages
Ray Strode [Tue, 20 May 2014 17:12:21 +0000 (13:12 -0400)] 
event-loop: drop some extraneous debugging messages

These messages may have been useful at one point, but these
days they just add noise to boot up for every service started.

11 years agoupstart-bridge: do not generate naked job-name update messages.
Dimitri John Ledkov [Tue, 6 May 2014 10:58:54 +0000 (11:58 +0100)] 
upstart-bridge: do not generate naked job-name update messages.

11 years agoupstart-bridge: do not generate empty messages
Dimitri John Ledkov [Tue, 6 May 2014 10:58:53 +0000 (11:58 +0100)] 
upstart-bridge: do not generate empty messages

11 years agoupstart-bridge: don't bail on dummy terminals
Dimitri John Ledkov [Tue, 6 May 2014 10:58:52 +0000 (11:58 +0100)] 
upstart-bridge: don't bail on dummy terminals

11 years agoupstart-bridge: use upstart private socket
Dimitri John Ledkov [Tue, 6 May 2014 10:58:51 +0000 (11:58 +0100)] 
upstart-bridge: use upstart private socket

11 years agoRevert "Add support for operation log messages"
Ray Strode [Mon, 21 Apr 2014 15:18:19 +0000 (11:18 -0400)] 
Revert "Add support for operation log messages"

This reverts commit 52b91176ba46eba5816ee7ee9a3e079ae548fbb1.

11 years agoRevert "upstart-bridge: change to use new register operations feature"
Ray Strode [Mon, 21 Apr 2014 15:18:16 +0000 (11:18 -0400)] 
Revert "upstart-bridge: change to use new register operations feature"

This reverts commit e9dced91810075b749ce1c147b8914c96974af96.

11 years agoupstart-bridge: change to use new register operations feature
Pali Rohár [Mon, 21 Apr 2014 14:17:57 +0000 (10:17 -0400)] 
upstart-bridge: change to use new register operations feature

https://bugs.freedesktop.org/show_bug.cgi?id=77389

11 years agoAdd support for operation log messages
Pali Rohár [Sat, 23 Nov 2013 16:39:53 +0000 (17:39 +0100)] 
Add support for operation log messages

This patch adding support for operation log messages and updating upstart
bridge code to use it. This is usefull for verbose log output (e.g daemon
starting, stopping).

Example:

 Register operation ssh:
 $ plymouth register-operation --operation-id=ssh --name='Starting OpenSSH server ssh'

 Set state of operation ssh to wait:
 $ plymouth update --operation-id=ssh --status="wait"
 Details plugin will show: 'Starting OpenSSH server ssh... [wait]'

 Set state of operation ssh to done:
 $ plymouth update --operation-id=ssh --status="done"
 Details plugin will show: 'Starting OpenSSH server ssh... [done]'

 Unregister operation ssh:
 $ plymouth unregister-operation --operation-id=ssh

https://bugs.freedesktop.org/show_bug.cgi?id=77389

11 years agomain: add a --no-boot-log commandline option
Cosimo Cecchi [Thu, 27 Mar 2014 19:54:45 +0000 (12:54 -0700)] 
main: add a --no-boot-log commandline option

For systems that want to keep disk writes at the very minimum.

https://bugs.freedesktop.org/show_bug.cgi?id=76706

11 years agomain: don't write an empty file when no_boot_log is set
Cosimo Cecchi [Thu, 27 Mar 2014 19:53:21 +0000 (12:53 -0700)] 
main: don't write an empty file when no_boot_log is set

https://bugs.freedesktop.org/show_bug.cgi?id=76706

11 years agoRevert "systemd: create flag file to notify systemd that plymouth is around"
Ray Strode [Thu, 27 Mar 2014 20:11:50 +0000 (16:11 -0400)] 
Revert "systemd: create flag file to notify systemd that plymouth is around"

This reverts commit 8c267e9a3becdff4a6f42a157179a6f5260fb6df.

I think this patch was accidentally pushed, since the commit date is
years older than the push date, and it seems to overlap in already
existing pid-file functionality.

If we actually do need this commit we can always add it back of course.

11 years agosystemd: create flag file to notify systemd that plymouth is around
Lennart Poettering [Wed, 30 Mar 2011 00:50:53 +0000 (02:50 +0200)] 
systemd: create flag file to notify systemd that plymouth is around

11 years agoseat: make sure to open terminal when adding text displays
Ray Strode [Thu, 6 Mar 2014 19:42:16 +0000 (14:42 -0500)] 
seat: make sure to open terminal when adding text displays

If we have a pixel display, the renderer will handle opening the
associated terminal. but if we don't have a pixel display, something
needs to open the terminal.

This commit adds code to do that.

11 years agomain: call update_display when splash is shown
Ray Strode [Thu, 6 Mar 2014 15:02:21 +0000 (10:02 -0500)] 
main: call update_display when splash is shown

we need to call update display any time a splash is shown,
because there may be a pending password request.

The code attempted to do this in show_splash, but did it before
the splash was assigned to running state, so function was a noop.

This commit moves it a little later in code after the splash is
properly assigned.

11 years agodevice-manager: be more tolerant of tty active console value
Ray Strode [Mon, 3 Mar 2014 23:00:19 +0000 (18:00 -0500)] 
device-manager: be more tolerant of tty active console value

Some kernels mistakenly put tty1 instead of tty0 in the file,
so try to cope with them for maximium compatibility.

11 years agodevice-manager: ignore udev if only console is serial console
Ray Strode [Mon, 3 Mar 2014 22:55:59 +0000 (17:55 -0500)] 
device-manager: ignore udev if only console is serial console

Right now we use the heuristic, "more than one entry in
/sys/class/tty/console/active" to mean "has serial consoles".

We used to use the heuristic "file has more than tty0 in it".
The older heuristic is more accurate because a user may have
console=ttyS0 without console=tty0 on the kernel command line.

11 years agodevice-manager: defer /dev/fb compat processing until after coldplug
Ray Strode [Mon, 3 Mar 2014 22:25:44 +0000 (17:25 -0500)] 
device-manager: defer /dev/fb compat processing until after coldplug

We never want to use a /dev/fb device if a DRM device will work instead
(since it supports multi-monitor, isn't a legacy interface, etc)

Unfortunately, right now plymouthd notices efifb at early start up,
see's there is no DRM device associated with it and chooses it for
the main display, which causes all sort of problems.

This commit defers using /dev/fb devices until after udev settles.

11 years agodevice-manager: handle drm hotplug separately from /dev/fb
Ray Strode [Mon, 3 Mar 2014 18:27:30 +0000 (13:27 -0500)] 
device-manager: handle drm hotplug separately from /dev/fb

Right now, we piggyback off fb subsystem events to know whether or
not a drm device is hotplugged (since all drm devices have fb devices
for backward compat).

This commit makes drm and fb processing more independent, so we don't
rely on the compat device being available for drm hotplug to work..

11 years agoclient: support plymouth.debug on kernel command line
Ray Strode [Fri, 7 Feb 2014 21:40:07 +0000 (16:40 -0500)] 
client: support plymouth.debug on kernel command line

We used to use plymouth:debug to enable debugging in the
plymouth daemon, and changed it to plymouth.debug to be more
consistent with other users of the kernel command line.

We neglected to update the client to support the new format
though.  This commit does that.

11 years agomain: detach from keyboard on hide-splash
Ray Strode [Thu, 6 Feb 2014 20:22:54 +0000 (15:22 -0500)] 
main: detach from keyboard on hide-splash

Currently plymouth stays in control of the terminal
after hide-splash.  This is wrong.  Once plymouth is
hidden, the terminal should be free to use for other
programs.

This commit makes sure we free up the terminal on
hide splash.

11 years agomain: don't nullify local_console_terminal in quit_splash
Ray Strode [Thu, 6 Feb 2014 19:42:40 +0000 (14:42 -0500)] 
main: don't nullify local_console_terminal in quit_splash

quit_splash gets called on hide-splash so nullify the terminal
will make it unavailable on later show-splash calls.

11 years agomain: cancel show_splash timeout on deactivate
Ray Strode [Wed, 5 Feb 2014 20:12:17 +0000 (15:12 -0500)] 
main: cancel show_splash timeout on deactivate

This fixes a race/crash where plymouthd get deactivated
right before the show timer fires and it tries to
show itself after things have been torn down.

11 years agomain: don't show splash from cancel_pending_delayed_show
Ray Strode [Wed, 5 Feb 2014 20:09:13 +0000 (15:09 -0500)] 
main: don't show splash from cancel_pending_delayed_show

It was a weird to show something in a function called "cancel..show"

Instead move the logic to the one caller that actually needed that
functionality (on_ask_for_password)

11 years agomain: don't instruct terminal to ignore mode changes on deactivate
Ray Strode [Mon, 3 Feb 2014 15:02:43 +0000 (10:02 -0500)] 
main: don't instruct terminal to ignore mode changes on deactivate

This prevents plymouthd from changing VTs if necessary.

http://bugs.freedesktop.org/show_bug.cgi?id=66824

11 years agopopulate-initrd: install binaries to their configured location
Enrico Tagliavini [Wed, 29 Jan 2014 14:18:22 +0000 (09:18 -0500)] 
populate-initrd: install binaries to their configured location

If plymouth is configured --with-system-root-install=no then the
systemd unitd files will write the paths of plymouth and plymouthd
relative to /usr .  The script currently hardcodes installing them
to the initrd's /

This commit makes sure they get placed on the same part of the of
the initrd filesystem as systemd expects to find them.

https://bugs.freedesktop.org/show_bug.cgi?id=74174

11 years agomain: log when boot.log fails to open
Ray Strode [Mon, 27 Jan 2014 17:29:06 +0000 (12:29 -0500)] 
main: log when boot.log fails to open

11 years agolibply: add tracing statements to progress saving
Ray Strode [Mon, 27 Jan 2014 17:26:48 +0000 (12:26 -0500)] 
libply: add tracing statements to progress saving

We should at least report whether saving worked or failed.

11 years agomain: add more debugging at quit time
Ray Strode [Mon, 27 Jan 2014 17:24:20 +0000 (12:24 -0500)] 
main: add more debugging at quit time

There's a distinct lack of tracing statements around
the quit path, so flesh it out a little.

11 years agoseat: proceed without renderer if type is AUTO and renderer fails
Ray Strode [Fri, 24 Jan 2014 20:08:10 +0000 (15:08 -0500)] 
seat: proceed without renderer if type is AUTO and renderer fails

If a seat gets opened with a renderer type of AUTO, and the renderer
fails to open, then it's okay and expected to proceed without a
renderer (and just use the terminal). The code attempted to do this
but failed to nullify the seat->renderer object, so it ended up
going down the renderer-active code path.

This commit fixes that.

11 years agomain: disable hotplug events and splash delay if details forced
Ray Strode [Fri, 24 Jan 2014 19:29:31 +0000 (14:29 -0500)] 
main: disable hotplug events and splash delay if details forced

There's no point in waiting for a graphics device if details are
forced, and we shouldn't ever delay showing details.  If details
are requested, we shouldn't be hiding them.

11 years agoplymouthd: build with -rdynamic so built-in module works
Ray Strode [Fri, 24 Jan 2014 19:08:16 +0000 (14:08 -0500)] 
plymouthd: build with -rdynamic so built-in module works

The details plugin is "built in" to the plymouthd binary, so
it's always available even if the details module isn't installed
(say /usr isn't mounted yet or something)

Unfortunately, this feature isn't working because plymouthd isn't
built with -rdynamic (except for in my local CFLAGS).

This commit fixes the makefile goo accordingly.

11 years agomain: create time directory if it doesn't exist
Juan A. Suarez Romero [Fri, 17 Jan 2014 20:08:05 +0000 (20:08 +0000)] 
main: create time directory if it doesn't exist

This makes sure there is a convenient place to write down boot duration.

11 years agoseat: always add text displays when opening seat
Ray Strode [Fri, 17 Jan 2014 17:51:24 +0000 (12:51 -0500)] 
seat: always add text displays when opening seat

At the moment we add pixel displays if we can, or
text displays if we can't add pixel displays.

We need to always add text displays, otherwise, the
text splash won't work when explicitly configured by
the user.

11 years agoRevert "boot-server: defer show-splash reply until splash shown"
Ray Strode [Thu, 16 Jan 2014 20:38:05 +0000 (15:38 -0500)] 
Revert "boot-server: defer show-splash reply until splash shown"

This reverts commit 126345af8704a9b10481657d79d66cbea93e1647.

If plymouth show-splash blocks until the splash screen is shown,
then systemd-ask-for-password-plymouth will block for 5 seconds
before asking for the password (which would have canceled the 5
second delay if it weren't for the dependency on plymouth-start.service)

11 years agomain: don't rely on show_trigger to cancel show delay
Ray Strode [Thu, 16 Jan 2014 20:44:50 +0000 (15:44 -0500)] 
main: don't rely on show_trigger to cancel show delay

We're going to be getting rid of show_trigger in a subsequent
commit, so this commit changes the code to use the is_shown
flag instead.

11 years agomain: print splash delay after loading it, not before
Ray Strode [Thu, 16 Jan 2014 21:23:10 +0000 (16:23 -0500)] 
main: print splash delay after loading it, not before

otherwise it will always say nan

11 years agodevice-manager: add some better debugging
Ray Strode [Fri, 10 Jan 2014 23:11:42 +0000 (18:11 -0500)] 
device-manager: add some better debugging

This commit just adds some more tracing statements,
that are useful for tracking down a bug.

11 years agodevice-manager: only pass scan a device passes all checks
Ray Strode [Fri, 10 Jan 2014 23:12:57 +0000 (18:12 -0500)] 
device-manager: only pass scan a device passes all checks

Right now scan_graphics_devices returns true, if a device is found,
even if that device doesn't get used because it's not fully
initialized.

11 years agomain: load /usr/share/plymouth/plymouthd.defaults not plymouthd.conf
Ray Strode [Fri, 10 Jan 2014 22:47:52 +0000 (17:47 -0500)] 
main: load /usr/share/plymouth/plymouthd.defaults not plymouthd.conf

When i deduplicated code a few commits back, I made a cut-and-paste
error and used the wrong file name for distro policy

11 years agoscripts: plymouth-update-initrd should call dracut -f with no args
Ray Strode [Fri, 10 Jan 2014 20:55:20 +0000 (15:55 -0500)] 
scripts: plymouth-update-initrd should call dracut -f with no args

dracut -f does the right thing on it's own, so we shouldn't try
to overspecify it

11 years agodefaults: enable a 5 second show delay by default
Ray Strode [Fri, 10 Jan 2014 18:05:42 +0000 (13:05 -0500)] 
defaults: enable a 5 second show delay by default

This way fast machines don't have to deal with a splash at all.

11 years agomain: introduce delay as a daemon option
Ray Strode [Fri, 10 Jan 2014 18:01:02 +0000 (13:01 -0500)] 
main: introduce delay as a daemon option

Briefly, the two-step plugin would delay showing itself
for a few seconds (in case the machine boots quickly).

That got reverted, because i'm not convinced any longer
that doing it in the splash is the right level.  Also,
the implementation had various bugs causing the delay
to show up at the wrong time.

This commit makes it a daemon option instead.

This makes it easier to apply to all themes, and also makes it
so the admin can opt-out without changing themes.

11 years agomain: clear is_shown state from hide_splash
Ray Strode [Fri, 10 Jan 2014 16:47:08 +0000 (11:47 -0500)] 
main: clear is_shown state from hide_splash

Right now we clear is_shown after calling hide_splash in a couple
of places.  It makes more sense to clear this flag in one place,
in hide_splash, rather than duplicating code.

11 years agomain: load default splash settings at start up
Ray Strode [Fri, 10 Jan 2014 18:26:16 +0000 (13:26 -0500)] 
main: load default splash settings at start up

There's no reason to load them lazily, and when
we extend the functions to add a theme delay setting,
we're going to want to have the settings available as early as
possible.

11 years agomain: refactor theme loading code to reduce duplication
Ray Strode [Fri, 10 Jan 2014 16:10:16 +0000 (11:10 -0500)] 
main: refactor theme loading code to reduce duplication

Right now we read /usr/share/plymouthd/plymouthd.defaults
and /etc/plymouth/plymouthd.conf to find the configured splash
screen.  The two functions that do this are basically copy-and-paste
of each other.

This commits splits some of the duplicated code out into a common
function for clarity.  Doing this also helps to facilitate adding
more configuration options, which we'll need to do in the future
to support a global start up delay.

11 years agomain: don't skip asking for password if splash is coming up
Ray Strode [Fri, 10 Jan 2014 15:33:14 +0000 (10:33 -0500)] 
main: don't skip asking for password if splash is coming up

If the client asks for a password and we don't have a splash
screen, we currently reply with a NOANSWER reply which makes
the client ask for the password instead.  This is so ask-for-password
requests that come up when plymouthd isn't controlling the tty can be
handled.

These days show-splash requests are asynchronous and so a splash screen
might not be around "right now" but will be around in the near
future. In these cases, we really want plymouth to handle asking for
the password, because it's going to take control of the tty imminently,
so the client won't able able to ask for the password (and, of course,
we'd rather the splash ask for the password anyway, since it's a better
user experience)

This commit checks if there's a looming show splash request.  If there
is, it avoids doing the NOANSWER reply and instead just sits tight
waiting for the splash to come up and the user to enter the password.

11 years agoboot-server: defer show-splash reply until splash shown
Ray Strode [Fri, 10 Jan 2014 15:13:35 +0000 (10:13 -0500)] 
boot-server: defer show-splash reply until splash shown

Right now if a client calls show-splash it will return
immediately, before the splash screen may be necessarily
shown.

From this point on, init thinks the splash screen is up
and does things like asking for a password, which will
subsequently fail.

This commit makes 'plymouth show-splash' block until the
splash screen is actually shown.