Commit graph

854 commits

Author SHA1 Message Date
Ray Strode
6acf834f1e [splash] Split splashes into plugins and themes
Some of the plugins (well, the glow plugin) would be a lot more
versatile if they could be reused for multiple splashes with different
images.

This commit splits boot splashes into two parts, the plugin engine which
does all the dirty work, and the theme which says which plugin to use
and optionally how the plugin should work (using plugin specific
key/value pairs)
2009-05-20 17:27:52 -04:00
Charlie Brej
a4b8ec711a [key-file] Use hashtables instead of lists
Not really any performance advantage but it makes the code a little simpler.
2009-05-20 17:27:52 -04:00
Ray Strode
f74090a5bb [libply] Add new keyfile class
This is a very lame keyfile parser.  We'll be able to use it to load
some metadata about the plugins.

The idea is that plugins will shift to being engines that can be
leveraged from multiple splash themes.  This way, for instance, the glow
plugin (which will be renamed) can be used to implement several
splashes.
2009-05-20 17:27:52 -04:00
Ray Strode
03139ac838 [window] Don't force text mode if debugging is on
It's not that much more work to hit ctrl-t, and now
that we log messages to plymouth-crash.log it's a lot
less useful to see them on screen.
2009-05-20 17:27:52 -04:00
Charlie Brej
d45a6e4915 [daemon] Update tests to include compile correctly
Adds ply-list.c/h to all tests automake files which use ply-logger.c.
Adds PLYMOUTH_TIME_DIRECTORY/PLUGIN/THEME_PATH when ply-boot-splash.c is used.
Adds PLY_BOOT_SPLASH_MODE_BOOT_UP to the ply_boot_splash_show call.
2009-05-20 17:27:52 -04:00
Charlie Brej
1f7e2c0772 [daemon] Free the debug buffer only after printing the last trace message
Was segfaulting or printing failed assertios just before exitting.
2009-05-20 17:27:52 -04:00
Ray Strode
77dbc07593 [daemon] Dump log to plymouth-crash.log on crash
This will be useful for debug purposes.

It's implemented by adding the concept of
"filters" to the logger code.  Each time a message
is logged it is passed through all registered
filter handlers and then the output of the filters
are what is actually logged.

In this case, we pass the messages through verbatim,
but also redirect them to a debug buffer.

We only do this redirection when plymouth:debug is
used.
2009-05-20 17:27:51 -04:00
Ray Strode
4596395fe6 [throbber] Fix call to remove_frames
ply-throbber was passing in the frames directly
instead of the throbber object
2009-05-20 17:27:41 -04:00
Ray Strode
fd0fda1b82 [animation] Fix call to remove_frames
ply-animation was passing in the frames directly
instead of the animation object
2009-05-20 17:00:28 -04:00
Ray Strode
8be743e8cd [progress-animation] Fix call to remove_frames
ply-progress-animation was passing in the frames directly instead of the
progress object
2009-05-20 17:00:28 -04:00
Ray Strode
79baa323e6 [event-loop] Don't crash by running removed timeouts
We used to run and remove timeouts in a loop.  This
breaks the case where the dispatched timeout handler
removes the timeout itself.

We fix it by making timeout handling a two pass thing.
First we find which handlers need to be dispatched,
and move them to their own list.  Then we run through
the new list and dispatch the handlers.
2009-05-20 17:00:27 -04:00
Ray Strode
d5948e5a91 Switch to tty 63 on shutdown
This is less than ideal, but side-steps weird interactions
between init, X, and plymouth.
2009-05-07 23:43:46 -04:00
Ray Strode
841068ba12 Hang around until killed by init at shutdown
init does two rounds of killing at shutdown:
a round of SIGTERMs and a round of SIGKILLs.

We want to stay alive until the SIGKILL round
so we ignore the SIGTERM signal.
2009-05-07 14:46:03 -04:00
Ray Strode
8124531ef1 Pass the mode plymouthd is running to splashes
We don't want to show progress bars and things for
shutdown, so pass the mode to the plugins so they can
just do a static image.
2009-05-07 14:38:50 -04:00
Ray Strode
81cea28b40 Add stub INSTALL file 2009-05-02 01:10:19 -04:00
Charlie Brej
cfeb45e1d3 Pause progress by default on password and question queries
Plymouth client ask-for-password and ask-question commands have their option
"--pause-progress" changed to "--dont-pause-progress". By default progress is
paused and "--dont-pause-progress" has to be supplied to not pause.
2009-03-31 22:13:20 +01:00
Ray Strode
9451b4d129 Make sure to clean up ptm when detaching
Otherwise we hit an assert next time we attach
2009-03-19 09:39:18 -04:00
William Jon McCann
4631059c02 don't create a new splash every time show is called
Reuse the existing splash.
2009-03-18 18:54:56 -04:00
Jonathan Greig
59a7196c4a Fix build when ENABLE_FADE_OUT is defined in spinfinity
The variable "i" wasn't be declared, but was being used to
loop.
2009-03-16 11:00:31 -04:00
Ray Strode
b7357a90cf Support "splash" in addition to "rhgb" on kernel command line
We used "rhgb" because that's what Fedora users were used to
instinctively removing when graphical boot messes up.  This
isn't a very intuitive (or very upstream-y) name though.

Now we check for "rhgb" or "splash"
2009-03-13 10:11:19 -04:00
Charlie Brej
a0f63466b9 When setting term to buffered without an attributes_saved, use generated ones.
A local term_attributes was constructed but not used.
2009-03-11 11:04:49 +00:00
Charlie Brej
5d4b4d58d0 Initialise state->showing_details at show_splash
Only effects us when running without rhgb in the kernel line, by having to
press Esc twice to get the default splash.
2009-03-11 10:53:07 +00:00
Ray Strode
9e3324a465 Reset to text mode anytime we're about to print text
If we don't then someone during boot up may change
out from raw when we aren't looking.

Maybe we should use TIOCSLCKTRMIOS to prevent that
from happening? Or maybe we should bypass the tty
for input entirely and use evdev?
2009-03-10 14:46:59 -04:00
Ray Strode
546fbdc0b8 Remove event handlers on destroy in plugins
This is because we can end up in scenarios
where a plugin gets destroyed, and readded
without getting hidden in between.
2009-03-09 12:28:27 -04:00
Ray Strode
2b0d185546 Factor handler registration code out into separate functions in plugins
This will make it easier to unregister the handlers from both
hide and destroy
2009-03-09 12:28:25 -04:00
Charlie Brej
cdd49aac43 Fix password entry dialogue in fade-in plugin.
Previously ply-entry was crashing with an assertion "entry->loop == NULL"
whenever the entry was updated. The change is basicly a copy of the working
version from spinfinity.
2009-03-09 14:51:08 +00:00
Ray Strode
4e1004c19d exit plymouth-set-default-plugin cleanly when --rebuild-initrd isn't given 2009-03-06 18:03:28 -05:00
Ray Strode
ad01f5d20c Don't average the previous boot time with current boot time
It's not always an improvement and it will always be worse
the second boot of a persistent live image.
2009-03-06 17:06:16 -05:00
Ray Strode
ade8cf4879 Always allocate our own pty master when attaching
Previously, we'd let the caller pass one in, but
I don't think there's much point in allowing that.
2009-03-05 14:40:31 -05:00
Ray Strode
c758b71fac Allow -1 to get passed to ply-terminal-session
This is coming from the drop-nash branch.  It lets
the caller of plymouth not have to create a pty master.
2009-03-05 14:38:28 -05:00
William Jon McCann
f9fe54e890 make the glow plugin use its own icons
Since the plugins may be packaged separately it isn't
kosher to share another plugins icons.
2009-03-04 17:27:04 -05:00
William Jon McCann
75372420ea fix the help text for the color stops
Make the help text use the proper argument name.
2009-03-04 17:10:57 -05:00
William Jon McCann
d449949c65 add a glow plugin
This plugin will progress through a sequence of images until
the progress reaches 90% complete.  At that point it will run
an animation sequence.
2009-03-04 17:10:24 -05:00
William Jon McCann
85823e5295 add a simple progress sequence helper
This is similar to the progress bar except that it uses a
sequence of images for the stages of the progress.
2009-03-04 17:10:24 -05:00
William Jon McCann
94303471c0 add simple one time animation helper
This will play a sequence of images from beginning to end at
a fixed frame rate.  It differs from the throbber in that it starts
at the 0th image and does not repeat.
2009-03-04 17:10:19 -05:00
William Jon McCann
bc38d7f667 use the height in the max height comparison
Fixes what was likely a copy/paste bug.
2009-03-03 22:28:57 -05:00
William Jon McCann
2d382570be use the configured colors for the gradient
Use the colors specified at configure time instead of
hard-coded values.
2009-03-03 21:54:53 -05:00
William Jon McCann
a46239affe fix the trace messages when enabling/disabling logging
The sense of the messages was reversed.
2009-02-26 09:41:58 -05:00
William Jon McCann
d68840ca3e remove spurious disabling of console redirection
Revert accidental commit from:
6b9011d164
2009-02-26 09:41:58 -05:00
William Jon McCann
e1a644b69f add option to enable more compiler warnings
Compiler warnings are helpful for finding latent bugs.
2009-02-26 09:41:57 -05:00
William Jon McCann
26d9f676dd add way to detect if an option was set or not
With integer options there's no obvious value to mean "unset" like there is for
string types (and to a lesser extent boolean types), so this commit
adds a mechanism.
2009-02-26 09:41:57 -05:00
William Jon McCann
80b2ed52c0 add debug command line option
Used to override the kernel command line and enabled debugging
2009-02-26 09:41:57 -05:00
William Jon McCann
268292baf8 add a message display method
Useful for showing messages like "Shutting down..." etc. A plugin
may choose not to support this feature.
2009-02-26 09:41:57 -05:00
William Jon McCann
483c39508e add no-daemon command line option
Useful for debugging and running under gdb
2009-02-26 09:41:56 -05:00
William Jon McCann
f555438a24 add a mode commandline option
Initially supports modes: boot, shutdown.  This allows the
progress cache to be loaded from the appropriate file.
2009-02-26 09:41:56 -05:00
William Jon McCann
a3fd5f2e21 add command line parsing to daemon
If for no other reason than to handle --help.
2009-02-26 09:41:56 -05:00
William Jon McCann
b117701702 allow the progress cache file to be configurable
This will enable using separate cache files for different plymouth modes.
2009-02-26 09:41:56 -05:00
William Jon McCann
cfc62e5b97 improve the layout of the help output
Left align descriptions and group subcommands.
2009-02-26 09:41:56 -05:00
Ray Strode
b9e20bb7ba Fix leak in ply-boot-server
This commit fixes a memory leak
in an error path of ply_boot_connection_read_request.
2009-02-24 13:38:11 -05:00
Ray Strode
e1619f36bf Fix heap corruptor in ply-boot-server
This fixes a memory corruption bug that
cropped up during a round of leak fixes
a while back.
2009-02-24 13:38:11 -05:00