diff --git a/.plymouth.metadata b/.plymouth.metadata new file mode 100644 index 0000000..5da5d27 --- /dev/null +++ b/.plymouth.metadata @@ -0,0 +1 @@ +578f649b03d900abf582a9b4d32cde9bc3c688e7 SOURCES/plymouth-0.8.9.tar.bz2 diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/add-two-step-features.patch b/SOURCES/add-two-step-features.patch new file mode 100644 index 0000000..548a5aa --- /dev/null +++ b/SOURCES/add-two-step-features.patch @@ -0,0 +1,1632 @@ +From 8fa6fec9d86dbe34be626652cda0fba4f4803223 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Tue, 22 Oct 2013 18:34:46 -0400 +Subject: [PATCH 1/5] pixel-buffer: add tiling function + +It can be useful to tile a group of pixels across the screen +(for e.g. backgrounds). + +This commit adds API to pixel buffer to do that tiling. + +A follow up commit will add support into ply-image so images can +be loaded from disk and then tiled on screen. +--- + src/libply-splash-core/ply-pixel-buffer.c | 30 ++++++++++++++++++++++++++++++ + src/libply-splash-core/ply-pixel-buffer.h | 4 ++++ + 2 files changed, 34 insertions(+) + +diff --git a/src/libply-splash-core/ply-pixel-buffer.c b/src/libply-splash-core/ply-pixel-buffer.c +index a612990..a860b7f 100644 +--- a/src/libply-splash-core/ply-pixel-buffer.c ++++ b/src/libply-splash-core/ply-pixel-buffer.c +@@ -821,32 +821,62 @@ ply_pixel_buffer_rotate (ply_pixel_buffer_t *old_buffer, + bytes = ply_pixel_buffer_get_argb32_data (buffer); + + double d = sqrt ((center_x * center_x + + center_y * center_y)); + double theta = atan2 (-center_y, -center_x) - theta_offset; + double start_x = center_x + d * cos (theta); + double start_y = center_y + d * sin (theta); + double step_x = cos (-theta_offset); + double step_y = sin (-theta_offset); + + for (y = 0; y < height; y++) + { + old_y = start_y; + old_x = start_x; + start_y += step_x; + start_x -= step_y; + for (x = 0; x < width; x++) + { + if (old_x < 0 || old_x > width || old_y < 0 || old_y > height) + bytes[x + y * width] = 0; + else + bytes[x + y * width] = + ply_pixel_buffer_interpolate (old_buffer, old_x, old_y); + old_x += step_x; + old_y += step_y; + } + } + return buffer; + } + ++ply_pixel_buffer_t * ++ply_pixel_buffer_tile (ply_pixel_buffer_t *old_buffer, ++ long width, ++ long height) ++{ ++ long x, y; ++ long old_x, old_y; ++ long old_width, old_height; ++ uint32_t *bytes, *old_bytes; ++ ply_pixel_buffer_t *buffer; ++ ++ buffer = ply_pixel_buffer_new (width, height); ++ ++ old_bytes = ply_pixel_buffer_get_argb32_data (old_buffer); ++ bytes = ply_pixel_buffer_get_argb32_data (buffer); ++ ++ old_width = old_buffer->area.width; ++ old_height = old_buffer->area.height; ++ ++ for (y = 0; y < height; y++) ++ { ++ old_y = y % old_height; ++ for (x = 0; x < width; x++) ++ { ++ old_x = x % old_width; ++ bytes[x + y * width] = old_bytes[old_x + old_y * old_width]; ++ } ++ } ++ return buffer; ++} + + /* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */ +diff --git a/src/libply-splash-core/ply-pixel-buffer.h b/src/libply-splash-core/ply-pixel-buffer.h +index 47cdd52..e0dffda 100644 +--- a/src/libply-splash-core/ply-pixel-buffer.h ++++ b/src/libply-splash-core/ply-pixel-buffer.h +@@ -97,34 +97,38 @@ void ply_pixel_buffer_fill_with_buffer_at_opacity (ply_pixel_buffer_t *canvas, + ply_pixel_buffer_t *source, + int x_offset, + int y_offset, + float opacity); + void ply_pixel_buffer_fill_with_buffer_with_clip (ply_pixel_buffer_t *canvas, + ply_pixel_buffer_t *source, + int x_offset, + int y_offset, + ply_rectangle_t *clip_area); + void ply_pixel_buffer_fill_with_buffer (ply_pixel_buffer_t *canvas, + ply_pixel_buffer_t *source, + int x_offset, + int y_offset); + + + void ply_pixel_buffer_push_clip_area (ply_pixel_buffer_t *buffer, + ply_rectangle_t *clip_area); + void ply_pixel_buffer_pop_clip_area (ply_pixel_buffer_t *buffer); + + uint32_t *ply_pixel_buffer_get_argb32_data (ply_pixel_buffer_t *buffer); + + ply_pixel_buffer_t *ply_pixel_buffer_resize (ply_pixel_buffer_t *old_buffer, + long width, + long height); + + ply_pixel_buffer_t *ply_pixel_buffer_rotate (ply_pixel_buffer_t *old_buffer, + long center_x, + long center_y, + double theta_offset); + ++ply_pixel_buffer_t *ply_pixel_buffer_tile (ply_pixel_buffer_t *old_buffer, ++ long width, ++ long height); ++ + #endif + + #endif /* PLY_PIXEL_BUFFER_H */ + /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ +-- +1.8.3.1 + + +From fc440513d337ca15067039383502f73a0fe2796f Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Tue, 22 Oct 2013 18:36:15 -0400 +Subject: [PATCH 2/5] ply-image: add tiling support + +This follow up commit adds tiling support to images, so +that splash screens can have been background patterns instead +of just background colors. +--- + src/libply-splash-graphics/ply-image.c | 15 +++++++++++++++ + src/libply-splash-graphics/ply-image.h | 1 + + 2 files changed, 16 insertions(+) + +diff --git a/src/libply-splash-graphics/ply-image.c b/src/libply-splash-graphics/ply-image.c +index be85809..7d21946 100644 +--- a/src/libply-splash-graphics/ply-image.c ++++ b/src/libply-splash-graphics/ply-image.c +@@ -227,53 +227,68 @@ ply_image_resize (ply_image_t *image, + long width, + long height) + { + ply_image_t *new_image; + + new_image = ply_image_new (image->filename); + + new_image->buffer = ply_pixel_buffer_resize (image->buffer, + width, + height); + return new_image; + } + + ply_image_t * + ply_image_rotate (ply_image_t *image, + long center_x, + long center_y, + double theta_offset) + { + ply_image_t *new_image; + + new_image = ply_image_new (image->filename); + + new_image->buffer = ply_pixel_buffer_rotate (image->buffer, + center_x, + center_y, + theta_offset); + return new_image; + } + ++ply_image_t * ++ply_image_tile (ply_image_t *image, ++ long width, ++ long height) ++{ ++ ply_image_t *new_image; ++ ++ new_image = ply_image_new (image->filename); ++ ++ new_image->buffer = ply_pixel_buffer_tile (image->buffer, ++ width, ++ height); ++ return new_image; ++} ++ + ply_pixel_buffer_t * + ply_image_get_buffer (ply_image_t *image) + { + assert (image != NULL); + + return image->buffer; + } + + ply_pixel_buffer_t * + ply_image_convert_to_pixel_buffer (ply_image_t *image) + { + ply_pixel_buffer_t *buffer; + + assert (image != NULL); + + buffer = image->buffer; + image->buffer = NULL; + ply_image_free (image); + + return buffer; + } + + /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ +diff --git a/src/libply-splash-graphics/ply-image.h b/src/libply-splash-graphics/ply-image.h +index 66fa520..5bda567 100644 +--- a/src/libply-splash-graphics/ply-image.h ++++ b/src/libply-splash-graphics/ply-image.h +@@ -12,37 +12,38 @@ + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Written By: Ray Strode + */ + #ifndef PLY_IMAGE_H + #define PLY_IMAGE_H + + #include "ply-pixel-buffer.h" + + #include + #include + #include + + typedef struct _ply_image ply_image_t; + + #ifndef PLY_HIDE_FUNCTION_DECLARATIONS + ply_image_t *ply_image_new (const char *filename); + void ply_image_free (ply_image_t *image); + bool ply_image_load (ply_image_t *image); + uint32_t *ply_image_get_data (ply_image_t *image); + long ply_image_get_width (ply_image_t *image); + long ply_image_get_height (ply_image_t *image); + ply_image_t *ply_image_resize (ply_image_t *image, long width, long height); + ply_image_t *ply_image_rotate (ply_image_t *oldimage, long center_x, long center_y, double theta_offset); ++ply_image_t *ply_image_tile (ply_image_t *image, long width, long height); + ply_pixel_buffer_t *ply_image_get_buffer (ply_image_t *image); + ply_pixel_buffer_t *ply_image_convert_to_pixel_buffer (ply_image_t *image); + + #endif + + #endif /* PLY_IMAGE_H */ + /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ +-- +1.8.3.1 + + +From 257408d44d1b5d0dc202f60f79d3d8f5c3427413 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Tue, 22 Oct 2013 19:24:14 -0400 +Subject: [PATCH 3/5] two-step: add support for tiled background image + +If there's a file named background-tile.png in the theme +then it will get used as the background behind the other +content in place of the background gradient. +--- + src/plugins/splash/two-step/plugin.c | 45 ++++++++++++++++++++++++++++++++++++ + 1 file changed, 45 insertions(+) + +diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c +index 541a108..2c6d97a 100644 +--- a/src/plugins/splash/two-step/plugin.c ++++ b/src/plugins/splash/two-step/plugin.c +@@ -64,70 +64,72 @@ + #define FRAMES_PER_SECOND 30 + #endif + + #ifndef SHOW_ANIMATION_PERCENT + #define SHOW_ANIMATION_PERCENT 0.9 + #endif + + typedef enum { + PLY_BOOT_SPLASH_DISPLAY_NORMAL, + PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY, + PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY + } ply_boot_splash_display_type_t; + + typedef enum { + PROGRESS_FUNCTION_TYPE_WWOODS, + PROGRESS_FUNCTION_TYPE_LINEAR, + } progress_function_t; + + typedef struct + { + ply_boot_splash_plugin_t *plugin; + ply_pixel_display_t *display; + ply_entry_t *entry; + ply_animation_t *end_animation; + ply_progress_animation_t *progress_animation; + ply_throbber_t *throbber; + ply_label_t *label; + ply_label_t *message_label; + ply_rectangle_t box_area, lock_area; + ply_trigger_t *end_trigger; ++ ply_image_t *background_image; + } view_t; + + struct _ply_boot_splash_plugin + { + ply_event_loop_t *loop; + ply_boot_splash_mode_t mode; + ply_image_t *lock_image; + ply_image_t *box_image; + ply_image_t *corner_image; + ply_image_t *header_image; ++ ply_image_t *background_tile_image; + ply_list_t *views; + + ply_boot_splash_display_type_t state; + + double animation_horizontal_alignment; + double animation_vertical_alignment; + char *animation_dir; + + ply_progress_animation_transition_t transition; + double transition_duration; + + uint32_t background_start_color; + uint32_t background_end_color; + + progress_function_t progress_function; + + ply_trigger_t *idle_trigger; + ply_trigger_t *stop_trigger; + + uint32_t root_is_mounted : 1; + uint32_t is_visible : 1; + uint32_t is_animating : 1; + uint32_t is_idle : 1; + }; + + ply_boot_splash_plugin_interface_t * ply_boot_splash_plugin_get_interface (void); + + static void stop_animation (ply_boot_splash_plugin_t *plugin, + ply_trigger_t *idle_trigger); + +@@ -149,66 +151,83 @@ view_new (ply_boot_splash_plugin_t *plugin, + + view->entry = ply_entry_new (plugin->animation_dir); + view->end_animation = ply_animation_new (plugin->animation_dir, + "animation-"); + view->progress_animation = ply_progress_animation_new (plugin->animation_dir, + "progress-"); + + view->throbber = ply_throbber_new (plugin->animation_dir, + "throbber-"); + ply_progress_animation_set_transition (view->progress_animation, + plugin->transition, + plugin->transition_duration); + + view->label = ply_label_new (); + view->message_label = ply_label_new (); + + return view; + } + + static void + view_free (view_t *view) + { + + ply_entry_free (view->entry); + ply_animation_free (view->end_animation); + ply_progress_animation_free (view->progress_animation); + ply_throbber_free (view->throbber); + ply_label_free (view->label); + ply_label_free (view->message_label); + ++ if (view->background_image != NULL) ++ ply_image_free (view->background_image); ++ + free (view); + } + + static bool + view_load (view_t *view) + { ++ unsigned long screen_width, screen_height; ++ ply_boot_splash_plugin_t *plugin; ++ ++ plugin = view->plugin; ++ ++ screen_width = ply_pixel_display_get_width (view->display); ++ screen_height = ply_pixel_display_get_height (view->display); ++ ++ if (plugin->background_tile_image != NULL) ++ { ++ ply_trace ("tiling background to %lux%lu", screen_width, screen_height); ++ view->background_image = ply_image_tile (plugin->background_tile_image, screen_width, screen_height); ++ } ++ + ply_trace ("loading entry"); + if (!ply_entry_load (view->entry)) + return false; + + ply_trace ("loading animation"); + if (!ply_animation_load (view->end_animation)) + { + ply_trace ("Default animation wouldn't load, " + "falling back to old naming scheme"); + + /* fallback to throbber- for compatibility + */ + ply_animation_free (view->end_animation); + view->end_animation = ply_animation_new (view->plugin->animation_dir, + "throbber-"); + if (!ply_animation_load (view->end_animation)) + { + ply_trace ("old naming scheme didn't work either"); + return false; + } + + ply_throbber_free (view->throbber); + view->throbber = NULL; + } + + ply_trace ("loading progress animation"); + if (!ply_progress_animation_load (view->progress_animation)) + { + ply_trace ("optional progress animation wouldn't load"); + ply_progress_animation_free (view->progress_animation); +@@ -492,60 +511,66 @@ create_plugin (ply_key_file_t *key_file) + char *image_dir, *image_path; + char *alignment; + char *transition; + char *transition_duration; + char *color; + char *progress_function; + + srand ((int) ply_get_timestamp ()); + plugin = calloc (1, sizeof (ply_boot_splash_plugin_t)); + + image_dir = ply_key_file_get_value (key_file, "two-step", "ImageDir"); + + ply_trace ("Using '%s' as working directory", image_dir); + + asprintf (&image_path, "%s/lock.png", image_dir); + plugin->lock_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/box.png", image_dir); + plugin->box_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/corner-image.png", image_dir); + plugin->corner_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/header-image.png", image_dir); + plugin->header_image = ply_image_new (image_path); + free (image_path); + ++ asprintf (&image_path, "%s/background-tile.png", image_dir); ++ plugin->background_tile_image = ply_image_new (image_path); ++ ++ ply_trace ("loading background tile %s", image_path); ++ free (image_path); ++ + plugin->animation_dir = image_dir; + + alignment = ply_key_file_get_value (key_file, "two-step", "HorizontalAlignment"); + if (alignment != NULL) + plugin->animation_horizontal_alignment = strtod (alignment, NULL); + else + plugin->animation_horizontal_alignment = .5; + free (alignment); + + alignment = ply_key_file_get_value (key_file, "two-step", "VerticalAlignment"); + if (alignment != NULL) + plugin->animation_vertical_alignment = strtod (alignment, NULL); + else + plugin->animation_vertical_alignment = .5; + free (alignment); + + plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_NONE; + transition = ply_key_file_get_value (key_file, "two-step", "Transition"); + if (transition != NULL) + { + if (strcmp (transition, "fade-over") == 0) + plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_FADE_OVER; + else if (strcmp (transition, "cross-fade") == 0) + plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_CROSS_FADE; + else if (strcmp (transition, "merge-fade") == 0) + plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_MERGE_FADE; + } + free (transition); + + transition_duration = ply_key_file_get_value (key_file, "two-step", "TransitionDuration"); +@@ -626,60 +651,63 @@ free_views (ply_boot_splash_plugin_t *plugin) + plugin->views = NULL; + } + + static void + destroy_plugin (ply_boot_splash_plugin_t *plugin) + { + if (plugin == NULL) + return; + + ply_trace ("destroying plugin"); + + if (plugin->loop != NULL) + { + stop_animation (plugin, NULL); + + ply_event_loop_stop_watching_for_exit (plugin->loop, (ply_event_loop_exit_handler_t) + detach_from_event_loop, + plugin); + detach_from_event_loop (plugin); + } + + ply_image_free (plugin->box_image); + ply_image_free (plugin->lock_image); + + if (plugin->corner_image != NULL) + ply_image_free (plugin->corner_image); + + if (plugin->header_image != NULL) + ply_image_free (plugin->header_image); + ++ if (plugin->background_tile_image != NULL) ++ ply_image_free (plugin->background_tile_image); ++ + free (plugin->animation_dir); + free_views (plugin); + free (plugin); + } + + static void + start_end_animation (ply_boot_splash_plugin_t *plugin, + ply_trigger_t *trigger) + { + ply_trace ("starting end animation"); + + ply_list_node_t *node; + + node = ply_list_get_first_node (plugin->views); + while (node != NULL) + { + ply_list_node_t *next_node; + view_t *view; + ply_trigger_t *throbber_trigger; + + view = ply_list_node_get_data (node); + next_node = ply_list_get_next_node (plugin->views, node); + + ply_trigger_ignore_next_pull (trigger); + + if (view->throbber != NULL) + { + ply_trace ("stopping throbber"); + view->end_trigger = trigger; + throbber_trigger = ply_trigger_new (NULL); +@@ -786,60 +814,67 @@ static void + detach_from_event_loop (ply_boot_splash_plugin_t *plugin) + { + plugin->loop = NULL; + } + + static void + draw_background (view_t *view, + ply_pixel_buffer_t *pixel_buffer, + int x, + int y, + int width, + int height) + { + ply_boot_splash_plugin_t *plugin; + ply_rectangle_t area; + + plugin = view->plugin; + + area.x = x; + area.y = y; + area.width = width; + area.height = height; + + if (plugin->background_start_color != plugin->background_end_color) + ply_pixel_buffer_fill_with_gradient (pixel_buffer, &area, + plugin->background_start_color, + plugin->background_end_color); + else + ply_pixel_buffer_fill_with_hex_color (pixel_buffer, &area, + plugin->background_start_color); ++ ++ if (view->background_image != NULL) ++ { ++ uint32_t *data; ++ data = ply_image_get_data (view->background_image); ++ ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, &area, data); ++ } + } + + static void + on_draw (view_t *view, + ply_pixel_buffer_t *pixel_buffer, + int x, + int y, + int width, + int height) + { + ply_boot_splash_plugin_t *plugin; + ply_rectangle_t screen_area; + ply_rectangle_t image_area; + + plugin = view->plugin; + + draw_background (view, pixel_buffer, x, y, width, height); + + ply_pixel_buffer_get_size (pixel_buffer, &screen_area); + + if (plugin->state == PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY || + plugin->state == PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY ) + { + uint32_t *box_data, *lock_data; + + box_data = ply_image_get_data (plugin->box_image); + ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, + &view->box_area, + box_data); + +@@ -970,60 +1005,70 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, + ply_trace ("loading lock image"); + if (!ply_image_load (plugin->lock_image)) + return false; + + ply_trace ("loading box image"); + if (!ply_image_load (plugin->box_image)) + return false; + + if (plugin->corner_image != NULL) + { + ply_trace ("loading corner image"); + + if (!ply_image_load (plugin->corner_image)) + { + ply_image_free (plugin->corner_image); + plugin->corner_image = NULL; + } + } + + if (plugin->header_image != NULL) + { + ply_trace ("loading header image"); + + if (!ply_image_load (plugin->header_image)) + { + ply_image_free (plugin->header_image); + plugin->header_image = NULL; + } + } + ++ if (plugin->background_tile_image != NULL) ++ { ++ ply_trace ("loading background tile image"); ++ if (!ply_image_load (plugin->background_tile_image)) ++ { ++ ply_image_free (plugin->background_tile_image); ++ plugin->background_tile_image = NULL; ++ } ++ } ++ + if (!load_views (plugin)) + { + ply_trace ("couldn't load views"); + return false; + } + + ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t) + detach_from_event_loop, + plugin); + + ply_trace ("starting boot animations"); + start_progress_animation (plugin); + + plugin->is_visible = true; + + return true; + } + + static void + update_status (ply_boot_splash_plugin_t *plugin, + const char *status) + { + assert (plugin != NULL); + } + + static void + on_animation_stopped (ply_boot_splash_plugin_t *plugin) + { + if (plugin->idle_trigger != NULL) + { +-- +1.8.3.1 + + +From 454fee71c109bfef897d9e8655d594838cd8a99b Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Thu, 24 Oct 2013 09:33:17 -0400 +Subject: [PATCH 4/5] two-step: add support for watermark + +The watermark is overlaid on top of the background but below all the +other content. +--- + src/plugins/splash/two-step/plugin.c | 53 +++++++++++++++++++++++++++++++++++- + 1 file changed, 52 insertions(+), 1 deletion(-) + +diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c +index 2c6d97a..5cf333f 100644 +--- a/src/plugins/splash/two-step/plugin.c ++++ b/src/plugins/splash/two-step/plugin.c +@@ -62,78 +62,82 @@ + + #ifndef FRAMES_PER_SECOND + #define FRAMES_PER_SECOND 30 + #endif + + #ifndef SHOW_ANIMATION_PERCENT + #define SHOW_ANIMATION_PERCENT 0.9 + #endif + + typedef enum { + PLY_BOOT_SPLASH_DISPLAY_NORMAL, + PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY, + PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY + } ply_boot_splash_display_type_t; + + typedef enum { + PROGRESS_FUNCTION_TYPE_WWOODS, + PROGRESS_FUNCTION_TYPE_LINEAR, + } progress_function_t; + + typedef struct + { + ply_boot_splash_plugin_t *plugin; + ply_pixel_display_t *display; + ply_entry_t *entry; + ply_animation_t *end_animation; + ply_progress_animation_t *progress_animation; + ply_throbber_t *throbber; + ply_label_t *label; + ply_label_t *message_label; +- ply_rectangle_t box_area, lock_area; ++ ply_rectangle_t box_area, lock_area, watermark_area; + ply_trigger_t *end_trigger; + ply_image_t *background_image; + } view_t; + + struct _ply_boot_splash_plugin + { + ply_event_loop_t *loop; + ply_boot_splash_mode_t mode; + ply_image_t *lock_image; + ply_image_t *box_image; + ply_image_t *corner_image; + ply_image_t *header_image; + ply_image_t *background_tile_image; ++ ply_image_t *watermark_image; + ply_list_t *views; + + ply_boot_splash_display_type_t state; + ++ double watermark_horizontal_alignment; ++ double watermark_vertical_alignment; ++ + double animation_horizontal_alignment; + double animation_vertical_alignment; + char *animation_dir; + + ply_progress_animation_transition_t transition; + double transition_duration; + + uint32_t background_start_color; + uint32_t background_end_color; + + progress_function_t progress_function; + + ply_trigger_t *idle_trigger; + ply_trigger_t *stop_trigger; + + uint32_t root_is_mounted : 1; + uint32_t is_visible : 1; + uint32_t is_animating : 1; + uint32_t is_idle : 1; + }; + + ply_boot_splash_plugin_interface_t * ply_boot_splash_plugin_get_interface (void); + + static void stop_animation (ply_boot_splash_plugin_t *plugin, + ply_trigger_t *idle_trigger); + + static void detach_from_event_loop (ply_boot_splash_plugin_t *plugin); + static void display_message (ply_boot_splash_plugin_t *plugin, + const char *message); + static void become_idle (ply_boot_splash_plugin_t *plugin, +@@ -174,60 +178,68 @@ view_free (view_t *view) + ply_entry_free (view->entry); + ply_animation_free (view->end_animation); + ply_progress_animation_free (view->progress_animation); + ply_throbber_free (view->throbber); + ply_label_free (view->label); + ply_label_free (view->message_label); + + if (view->background_image != NULL) + ply_image_free (view->background_image); + + free (view); + } + + static bool + view_load (view_t *view) + { + unsigned long screen_width, screen_height; + ply_boot_splash_plugin_t *plugin; + + plugin = view->plugin; + + screen_width = ply_pixel_display_get_width (view->display); + screen_height = ply_pixel_display_get_height (view->display); + + if (plugin->background_tile_image != NULL) + { + ply_trace ("tiling background to %lux%lu", screen_width, screen_height); + view->background_image = ply_image_tile (plugin->background_tile_image, screen_width, screen_height); + } + ++ if (plugin->watermark_image != NULL) ++ { ++ view->watermark_area.width = ply_image_get_width (plugin->watermark_image); ++ view->watermark_area.height = ply_image_get_height (plugin->watermark_image); ++ view->watermark_area.x = screen_width * plugin->watermark_horizontal_alignment - ply_image_get_width (plugin->watermark_image) * plugin->watermark_horizontal_alignment; ++ view->watermark_area.y = screen_height * plugin->watermark_vertical_alignment - ply_image_get_height (plugin->watermark_image) * plugin->watermark_vertical_alignment; ++ } ++ + ply_trace ("loading entry"); + if (!ply_entry_load (view->entry)) + return false; + + ply_trace ("loading animation"); + if (!ply_animation_load (view->end_animation)) + { + ply_trace ("Default animation wouldn't load, " + "falling back to old naming scheme"); + + /* fallback to throbber- for compatibility + */ + ply_animation_free (view->end_animation); + view->end_animation = ply_animation_new (view->plugin->animation_dir, + "throbber-"); + if (!ply_animation_load (view->end_animation)) + { + ply_trace ("old naming scheme didn't work either"); + return false; + } + + ply_throbber_free (view->throbber); + view->throbber = NULL; + } + + ply_trace ("loading progress animation"); + if (!ply_progress_animation_load (view->progress_animation)) + { + ply_trace ("optional progress animation wouldn't load"); + ply_progress_animation_free (view->progress_animation); +@@ -517,76 +529,94 @@ create_plugin (ply_key_file_t *key_file) + + srand ((int) ply_get_timestamp ()); + plugin = calloc (1, sizeof (ply_boot_splash_plugin_t)); + + image_dir = ply_key_file_get_value (key_file, "two-step", "ImageDir"); + + ply_trace ("Using '%s' as working directory", image_dir); + + asprintf (&image_path, "%s/lock.png", image_dir); + plugin->lock_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/box.png", image_dir); + plugin->box_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/corner-image.png", image_dir); + plugin->corner_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/header-image.png", image_dir); + plugin->header_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/background-tile.png", image_dir); + plugin->background_tile_image = ply_image_new (image_path); + + ply_trace ("loading background tile %s", image_path); + free (image_path); + ++ asprintf (&image_path, "%s/watermark.png", image_dir); ++ plugin->watermark_image = ply_image_new (image_path); ++ free (image_path); ++ + plugin->animation_dir = image_dir; + + alignment = ply_key_file_get_value (key_file, "two-step", "HorizontalAlignment"); + if (alignment != NULL) + plugin->animation_horizontal_alignment = strtod (alignment, NULL); + else + plugin->animation_horizontal_alignment = .5; + free (alignment); + + alignment = ply_key_file_get_value (key_file, "two-step", "VerticalAlignment"); + if (alignment != NULL) + plugin->animation_vertical_alignment = strtod (alignment, NULL); + else + plugin->animation_vertical_alignment = .5; + free (alignment); + ++ alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkHorizontalAlignment"); ++ if (alignment != NULL) ++ plugin->watermark_horizontal_alignment = strtod (alignment, NULL); ++ else ++ plugin->watermark_horizontal_alignment = 1.0; ++ free (alignment); ++ ++ alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkVerticalAlignment"); ++ if (alignment != NULL) ++ plugin->watermark_vertical_alignment = strtod (alignment, NULL); ++ else ++ plugin->watermark_vertical_alignment = .5; ++ free (alignment); ++ + plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_NONE; + transition = ply_key_file_get_value (key_file, "two-step", "Transition"); + if (transition != NULL) + { + if (strcmp (transition, "fade-over") == 0) + plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_FADE_OVER; + else if (strcmp (transition, "cross-fade") == 0) + plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_CROSS_FADE; + else if (strcmp (transition, "merge-fade") == 0) + plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_MERGE_FADE; + } + free (transition); + + transition_duration = ply_key_file_get_value (key_file, "two-step", "TransitionDuration"); + if (transition_duration != NULL) + plugin->transition_duration = strtod (transition_duration, NULL); + else + plugin->transition_duration = 0.0; + free (transition_duration); + + color = ply_key_file_get_value (key_file, "two-step", "BackgroundStartColor"); + + if (color != NULL) + plugin->background_start_color = strtol (color, NULL, 0); + else + plugin->background_start_color = PLYMOUTH_BACKGROUND_START_COLOR; + + free (color); + + color = ply_key_file_get_value (key_file, "two-step", "BackgroundEndColor"); +@@ -654,60 +684,63 @@ free_views (ply_boot_splash_plugin_t *plugin) + static void + destroy_plugin (ply_boot_splash_plugin_t *plugin) + { + if (plugin == NULL) + return; + + ply_trace ("destroying plugin"); + + if (plugin->loop != NULL) + { + stop_animation (plugin, NULL); + + ply_event_loop_stop_watching_for_exit (plugin->loop, (ply_event_loop_exit_handler_t) + detach_from_event_loop, + plugin); + detach_from_event_loop (plugin); + } + + ply_image_free (plugin->box_image); + ply_image_free (plugin->lock_image); + + if (plugin->corner_image != NULL) + ply_image_free (plugin->corner_image); + + if (plugin->header_image != NULL) + ply_image_free (plugin->header_image); + + if (plugin->background_tile_image != NULL) + ply_image_free (plugin->background_tile_image); + ++ if (plugin->watermark_image != NULL) ++ ply_image_free (plugin->watermark_image); ++ + free (plugin->animation_dir); + free_views (plugin); + free (plugin); + } + + static void + start_end_animation (ply_boot_splash_plugin_t *plugin, + ply_trigger_t *trigger) + { + ply_trace ("starting end animation"); + + ply_list_node_t *node; + + node = ply_list_get_first_node (plugin->views); + while (node != NULL) + { + ply_list_node_t *next_node; + view_t *view; + ply_trigger_t *throbber_trigger; + + view = ply_list_node_get_data (node); + next_node = ply_list_get_next_node (plugin->views, node); + + ply_trigger_ignore_next_pull (trigger); + + if (view->throbber != NULL) + { + ply_trace ("stopping throbber"); + view->end_trigger = trigger; + throbber_trigger = ply_trigger_new (NULL); +@@ -821,60 +854,68 @@ draw_background (view_t *view, + ply_pixel_buffer_t *pixel_buffer, + int x, + int y, + int width, + int height) + { + ply_boot_splash_plugin_t *plugin; + ply_rectangle_t area; + + plugin = view->plugin; + + area.x = x; + area.y = y; + area.width = width; + area.height = height; + + if (plugin->background_start_color != plugin->background_end_color) + ply_pixel_buffer_fill_with_gradient (pixel_buffer, &area, + plugin->background_start_color, + plugin->background_end_color); + else + ply_pixel_buffer_fill_with_hex_color (pixel_buffer, &area, + plugin->background_start_color); + + if (view->background_image != NULL) + { + uint32_t *data; + data = ply_image_get_data (view->background_image); + ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, &area, data); + } ++ ++ if (plugin->watermark_image != NULL) ++ { ++ uint32_t *data; ++ ++ data = ply_image_get_data (plugin->watermark_image); ++ ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, &view->watermark_area, data); ++ } + } + + static void + on_draw (view_t *view, + ply_pixel_buffer_t *pixel_buffer, + int x, + int y, + int width, + int height) + { + ply_boot_splash_plugin_t *plugin; + ply_rectangle_t screen_area; + ply_rectangle_t image_area; + + plugin = view->plugin; + + draw_background (view, pixel_buffer, x, y, width, height); + + ply_pixel_buffer_get_size (pixel_buffer, &screen_area); + + if (plugin->state == PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY || + plugin->state == PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY ) + { + uint32_t *box_data, *lock_data; + + box_data = ply_image_get_data (plugin->box_image); + ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, + &view->box_area, + box_data); + +@@ -1015,60 +1056,70 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin, + ply_trace ("loading corner image"); + + if (!ply_image_load (plugin->corner_image)) + { + ply_image_free (plugin->corner_image); + plugin->corner_image = NULL; + } + } + + if (plugin->header_image != NULL) + { + ply_trace ("loading header image"); + + if (!ply_image_load (plugin->header_image)) + { + ply_image_free (plugin->header_image); + plugin->header_image = NULL; + } + } + + if (plugin->background_tile_image != NULL) + { + ply_trace ("loading background tile image"); + if (!ply_image_load (plugin->background_tile_image)) + { + ply_image_free (plugin->background_tile_image); + plugin->background_tile_image = NULL; + } + } + ++ if (plugin->watermark_image != NULL) ++ { ++ ply_trace ("loading watermark image"); ++ if (!ply_image_load (plugin->watermark_image)) ++ { ++ ply_image_free (plugin->watermark_image); ++ plugin->watermark_image = NULL; ++ } ++ } ++ + if (!load_views (plugin)) + { + ply_trace ("couldn't load views"); + return false; + } + + ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t) + detach_from_event_loop, + plugin); + + ply_trace ("starting boot animations"); + start_progress_animation (plugin); + + plugin->is_visible = true; + + return true; + } + + static void + update_status (ply_boot_splash_plugin_t *plugin, + const char *status) + { + assert (plugin != NULL); + } + + static void + on_animation_stopped (ply_boot_splash_plugin_t *plugin) + { + if (plugin->idle_trigger != NULL) + { +-- +1.8.3.1 + + +From 2ce951c56b4ffa26803072789a6f8d16e4cdca3a Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Fri, 25 Oct 2013 16:24:47 -0400 +Subject: [PATCH 5/5] two-step: introduce delayed startup + +Many machines these days can boot in 5 seconds or less. +In those cases, there's little point in showing a boot splash. + +This commit introduces a StartupDelay option to the two step +plugin to prevent it from displaying anything for a few seconds. +--- + src/plugins/splash/two-step/plugin.c | 45 ++++++++++++++++++++++++++++++++++++ + 1 file changed, 45 insertions(+) + +diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c +index 5cf333f..fff928c 100644 +--- a/src/plugins/splash/two-step/plugin.c ++++ b/src/plugins/splash/two-step/plugin.c +@@ -65,135 +65,141 @@ + #endif + + #ifndef SHOW_ANIMATION_PERCENT + #define SHOW_ANIMATION_PERCENT 0.9 + #endif + + typedef enum { + PLY_BOOT_SPLASH_DISPLAY_NORMAL, + PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY, + PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY + } ply_boot_splash_display_type_t; + + typedef enum { + PROGRESS_FUNCTION_TYPE_WWOODS, + PROGRESS_FUNCTION_TYPE_LINEAR, + } progress_function_t; + + typedef struct + { + ply_boot_splash_plugin_t *plugin; + ply_pixel_display_t *display; + ply_entry_t *entry; + ply_animation_t *end_animation; + ply_progress_animation_t *progress_animation; + ply_throbber_t *throbber; + ply_label_t *label; + ply_label_t *message_label; + ply_rectangle_t box_area, lock_area, watermark_area; + ply_trigger_t *end_trigger; + ply_image_t *background_image; ++ ++ uint32_t is_blank : 1; + } view_t; + + struct _ply_boot_splash_plugin + { + ply_event_loop_t *loop; + ply_boot_splash_mode_t mode; + ply_image_t *lock_image; + ply_image_t *box_image; + ply_image_t *corner_image; + ply_image_t *header_image; + ply_image_t *background_tile_image; + ply_image_t *watermark_image; + ply_list_t *views; + + ply_boot_splash_display_type_t state; + + double watermark_horizontal_alignment; + double watermark_vertical_alignment; + + double animation_horizontal_alignment; + double animation_vertical_alignment; + char *animation_dir; + + ply_progress_animation_transition_t transition; + double transition_duration; + + uint32_t background_start_color; + uint32_t background_end_color; + + progress_function_t progress_function; + + ply_trigger_t *idle_trigger; + ply_trigger_t *stop_trigger; + ++ double start_time; ++ double startup_delay; ++ + uint32_t root_is_mounted : 1; + uint32_t is_visible : 1; + uint32_t is_animating : 1; + uint32_t is_idle : 1; + }; + + ply_boot_splash_plugin_interface_t * ply_boot_splash_plugin_get_interface (void); + + static void stop_animation (ply_boot_splash_plugin_t *plugin, + ply_trigger_t *idle_trigger); + + static void detach_from_event_loop (ply_boot_splash_plugin_t *plugin); + static void display_message (ply_boot_splash_plugin_t *plugin, + const char *message); + static void become_idle (ply_boot_splash_plugin_t *plugin, + ply_trigger_t *idle_trigger); + + static view_t * + view_new (ply_boot_splash_plugin_t *plugin, + ply_pixel_display_t *display) + { + view_t *view; + + view = calloc (1, sizeof (view_t)); + view->plugin = plugin; + view->display = display; + + view->entry = ply_entry_new (plugin->animation_dir); + view->end_animation = ply_animation_new (plugin->animation_dir, + "animation-"); + view->progress_animation = ply_progress_animation_new (plugin->animation_dir, + "progress-"); + + view->throbber = ply_throbber_new (plugin->animation_dir, + "throbber-"); + ply_progress_animation_set_transition (view->progress_animation, + plugin->transition, + plugin->transition_duration); + + view->label = ply_label_new (); + view->message_label = ply_label_new (); ++ view->is_blank = true; + + return view; + } + + static void + view_free (view_t *view) + { + + ply_entry_free (view->entry); + ply_animation_free (view->end_animation); + ply_progress_animation_free (view->progress_animation); + ply_throbber_free (view->throbber); + ply_label_free (view->label); + ply_label_free (view->message_label); + + if (view->background_image != NULL) + ply_image_free (view->background_image); + + free (view); + } + + static bool + view_load (view_t *view) + { + unsigned long screen_width, screen_height; + ply_boot_splash_plugin_t *plugin; + + plugin = view->plugin; + + screen_width = ply_pixel_display_get_width (view->display); +@@ -494,101 +500,111 @@ view_show_prompt (view_t *view, + if (prompt != NULL) + { + ply_label_set_text (view->label, prompt); + + /* We center the prompt in the middle and use 80% of the horizontal space */ + int label_width = screen_width * 100 / 80; + ply_label_set_alignment (view->label, PLY_LABEL_ALIGN_CENTER); + ply_label_set_width (view->label, label_width); + + x = (screen_width - label_width) / 2; + y = view->box_area.y + view->box_area.height; + + ply_label_show (view->label, view->display, x, y); + } + } + + static void + view_hide_prompt (view_t *view) + { + assert (view != NULL); + + ply_entry_hide (view->entry); + ply_label_hide (view->label); + } + + static ply_boot_splash_plugin_t * + create_plugin (ply_key_file_t *key_file) + { + ply_boot_splash_plugin_t *plugin; + char *image_dir, *image_path; ++ char *startup_delay; + char *alignment; + char *transition; + char *transition_duration; + char *color; + char *progress_function; + + srand ((int) ply_get_timestamp ()); + plugin = calloc (1, sizeof (ply_boot_splash_plugin_t)); + ++ plugin->start_time = ply_get_timestamp (); ++ + image_dir = ply_key_file_get_value (key_file, "two-step", "ImageDir"); + + ply_trace ("Using '%s' as working directory", image_dir); + + asprintf (&image_path, "%s/lock.png", image_dir); + plugin->lock_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/box.png", image_dir); + plugin->box_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/corner-image.png", image_dir); + plugin->corner_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/header-image.png", image_dir); + plugin->header_image = ply_image_new (image_path); + free (image_path); + + asprintf (&image_path, "%s/background-tile.png", image_dir); + plugin->background_tile_image = ply_image_new (image_path); + + ply_trace ("loading background tile %s", image_path); + free (image_path); + + asprintf (&image_path, "%s/watermark.png", image_dir); + plugin->watermark_image = ply_image_new (image_path); + free (image_path); + + plugin->animation_dir = image_dir; + ++ startup_delay = ply_key_file_get_value (key_file, "two-step", "StartupDelay"); ++ if (startup_delay != NULL) ++ plugin->startup_delay = strtod (startup_delay, NULL); ++ else ++ plugin->startup_delay = 5.0; ++ free (startup_delay); ++ + alignment = ply_key_file_get_value (key_file, "two-step", "HorizontalAlignment"); + if (alignment != NULL) + plugin->animation_horizontal_alignment = strtod (alignment, NULL); + else + plugin->animation_horizontal_alignment = .5; + free (alignment); + + alignment = ply_key_file_get_value (key_file, "two-step", "VerticalAlignment"); + if (alignment != NULL) + plugin->animation_vertical_alignment = strtod (alignment, NULL); + else + plugin->animation_vertical_alignment = .5; + free (alignment); + + alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkHorizontalAlignment"); + if (alignment != NULL) + plugin->watermark_horizontal_alignment = strtod (alignment, NULL); + else + plugin->watermark_horizontal_alignment = 1.0; + free (alignment); + + alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkVerticalAlignment"); + if (alignment != NULL) + plugin->watermark_vertical_alignment = strtod (alignment, NULL); + else + plugin->watermark_vertical_alignment = .5; + free (alignment); + + plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_NONE; + transition = ply_key_file_get_value (key_file, "two-step", "Transition"); +@@ -878,60 +894,89 @@ draw_background (view_t *view, + if (view->background_image != NULL) + { + uint32_t *data; + data = ply_image_get_data (view->background_image); + ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, &area, data); + } + + if (plugin->watermark_image != NULL) + { + uint32_t *data; + + data = ply_image_get_data (plugin->watermark_image); + ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, &view->watermark_area, data); + } + } + + static void + on_draw (view_t *view, + ply_pixel_buffer_t *pixel_buffer, + int x, + int y, + int width, + int height) + { + ply_boot_splash_plugin_t *plugin; + ply_rectangle_t screen_area; + ply_rectangle_t image_area; + + plugin = view->plugin; + ++ if (plugin->mode == PLY_BOOT_SPLASH_MODE_BOOT_UP) ++ { ++ double now; ++ ++ now = ply_get_timestamp (); ++ ++ if (now - plugin->start_time < plugin->startup_delay) ++ return; ++ ++ if (view->is_blank) ++ { ++ ply_rectangle_t clip_area; ++ ++ x = 0; ++ y = 0; ++ width = ply_pixel_display_get_width (view->display); ++ height = ply_pixel_display_get_height (view->display); ++ ++ clip_area.x = 0; ++ clip_area.y = 0; ++ clip_area.width = width; ++ clip_area.height = height; ++ ply_pixel_buffer_pop_clip_area (pixel_buffer); ++ ply_pixel_buffer_push_clip_area (pixel_buffer, ++ &clip_area); ++ view->is_blank = false; ++ } ++ } ++ + draw_background (view, pixel_buffer, x, y, width, height); + + ply_pixel_buffer_get_size (pixel_buffer, &screen_area); + + if (plugin->state == PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY || + plugin->state == PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY ) + { + uint32_t *box_data, *lock_data; + + box_data = ply_image_get_data (plugin->box_image); + ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, + &view->box_area, + box_data); + + ply_entry_draw_area (view->entry, + pixel_buffer, + x, y, width, height); + ply_label_draw_area (view->label, + pixel_buffer, + x, y, width, height); + + lock_data = ply_image_get_data (plugin->lock_image); + ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, + &view->lock_area, + lock_data); + } + else + { + if (view->throbber != NULL && + !ply_throbber_is_stopped (view->throbber)) +-- +1.8.3.1 + +From ba50f9e79da79d42ed7f50798b955ef929819daf Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Fri, 8 Nov 2013 08:31:32 -0500 +Subject: [PATCH] two-step: fix unlock screen + +The previous commit introduced a bug where the unlock screen won't +get shown if it's requested within the first 5 seconds of startup. + +This commit fixes that by forcing a redraw if the state switches from +NORMAL. +--- + src/plugins/splash/two-step/plugin.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c +index fff928c..eaf20b3 100644 +--- a/src/plugins/splash/two-step/plugin.c ++++ b/src/plugins/splash/two-step/plugin.c +@@ -900,61 +900,62 @@ draw_background (view_t *view, + + if (plugin->watermark_image != NULL) + { + uint32_t *data; + + data = ply_image_get_data (plugin->watermark_image); + ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, &view->watermark_area, data); + } + } + + static void + on_draw (view_t *view, + ply_pixel_buffer_t *pixel_buffer, + int x, + int y, + int width, + int height) + { + ply_boot_splash_plugin_t *plugin; + ply_rectangle_t screen_area; + ply_rectangle_t image_area; + + plugin = view->plugin; + + if (plugin->mode == PLY_BOOT_SPLASH_MODE_BOOT_UP) + { + double now; + + now = ply_get_timestamp (); + +- if (now - plugin->start_time < plugin->startup_delay) ++ if ((now - plugin->start_time < plugin->startup_delay) && ++ plugin->state == PLY_BOOT_SPLASH_DISPLAY_NORMAL) + return; + + if (view->is_blank) + { + ply_rectangle_t clip_area; + + x = 0; + y = 0; + width = ply_pixel_display_get_width (view->display); + height = ply_pixel_display_get_height (view->display); + + clip_area.x = 0; + clip_area.y = 0; + clip_area.width = width; + clip_area.height = height; + ply_pixel_buffer_pop_clip_area (pixel_buffer); + ply_pixel_buffer_push_clip_area (pixel_buffer, + &clip_area); + view->is_blank = false; + } + } + + draw_background (view, pixel_buffer, x, y, width, height); + + ply_pixel_buffer_get_size (pixel_buffer, &screen_area); + + if (plugin->state == PLY_BOOT_SPLASH_DISPLAY_QUESTION_ENTRY || + plugin->state == PLY_BOOT_SPLASH_DISPLAY_PASSWORD_ENTRY ) + { + uint32_t *box_data, *lock_data; +-- +1.8.3.1 + diff --git a/SOURCES/boot-duration b/SOURCES/boot-duration new file mode 100644 index 0000000..7fe728c --- /dev/null +++ b/SOURCES/boot-duration @@ -0,0 +1,39 @@ +0.222:RCkernelparam +0.223:RChostname +0.238:RCmountfs +0.275:RCswap +0.330:microcode_ctl +0.357:cpuspeed +0.365:ip6tables +0.380:iptables +0.385:isdn +0.504:auditd +0.508:restorecond +0.523:rsyslog +0.530:irqbalance +0.533:rpcbind +0.549:nfslock +0.561:mdmonitor +0.563:rpcidmapd +0.578:rpcgssd +0.579:messagebus +0.580:fuse +0.594:netfs +0.600:acpid +0.611:haldaemon +0.660:pcscd +0.691:udev-post +0.703:portreserve +0.712:setroubleshoot +0.749:bluetooth +0.738:sshd +0.763:ntpd +0.807:sendmail +0.876:crond +0.902:kerneloops +0.907:smolt +0.915:atd +0.927:avahi-daemon +0.941:cups +0.983:anacron +0.992:local diff --git a/SOURCES/charge.plymouth b/SOURCES/charge.plymouth new file mode 100644 index 0000000..fb1306b --- /dev/null +++ b/SOURCES/charge.plymouth @@ -0,0 +1,15 @@ +[Plymouth Theme] +Name=Charge +Description=A theme that features the shadowy hull of a Fedora logo charge up and and finally burst into into full form. +ModuleName=two-step + +[two-step] +ImageDir=/usr/share/plymouth/themes/charge +HorizontalAlignment=.5 +VerticalAlignment=.75 +WatermarkHorizontalAlignment=1.0 +WatermarkVerticalAlignment=0.0 +Transition=none +TransitionDuration=0.0 +BackgroundStartColor=0x2e3436 +BackgroundEndColor=0x2e3436 diff --git a/SOURCES/colors.patch b/SOURCES/colors.patch new file mode 100644 index 0000000..1c8ada5 --- /dev/null +++ b/SOURCES/colors.patch @@ -0,0 +1,16 @@ +diff -up plymouth-0.8.4/src/plugins/splash/text/plugin.c.colors plymouth-0.8.4/src/plugins/splash/text/plugin.c +--- plymouth-0.8.4/src/plugins/splash/text/plugin.c.colors 2012-03-20 11:26:05.343149459 -0400 ++++ plymouth-0.8.4/src/plugins/splash/text/plugin.c 2012-03-20 11:26:41.943521354 -0400 +@@ -183,10 +183,10 @@ view_start_animation (view_t *view) + 0xffffff); + ply_terminal_set_color_hex_value (terminal, + PLY_TERMINAL_COLOR_BLUE, +- 0x0073B3); ++ 0xc6bdd2); + ply_terminal_set_color_hex_value (terminal, + PLY_TERMINAL_COLOR_BROWN, +- 0x00457E); ++ 0x4e376b); + + ply_text_display_set_background_color (view->display, + PLY_TERMINAL_COLOR_BLACK); diff --git a/SOURCES/drm-dirty-fb.patch b/SOURCES/drm-dirty-fb.patch new file mode 100644 index 0000000..88b43c2 --- /dev/null +++ b/SOURCES/drm-dirty-fb.patch @@ -0,0 +1,45 @@ +diff -up plymouth-0.8.8/src/plugins/renderers/drm/ply-renderer-generic-driver.c.flush plymouth-0.8.8/src/plugins/renderers/drm/ply-renderer-generic-driver.c +--- plymouth-0.8.8/src/plugins/renderers/drm/ply-renderer-generic-driver.c.flush 2012-09-27 02:50:53.000000000 +1000 ++++ plymouth-0.8.8/src/plugins/renderers/drm/ply-renderer-generic-driver.c 2013-03-15 10:57:33.000000000 +1000 +@@ -70,6 +70,7 @@ struct _ply_renderer_buffer + struct _ply_renderer_driver + { + int device_fd; ++ int need_flushes; + ply_hashtable_t *buffers; + }; + +@@ -123,7 +124,7 @@ create_driver (int device_fd) + + driver = calloc (1, sizeof (ply_renderer_driver_t)); + driver->device_fd = device_fd; +- ++ driver->need_flushes = 1; + driver->buffers = ply_hashtable_new (ply_hashtable_direct_hash, + ply_hashtable_direct_compare); + +@@ -326,10 +327,23 @@ end_flush (ply_renderer_driver_t *driver + uint32_t buffer_id) + { + ply_renderer_buffer_t *buffer; ++ struct drm_clip_rect clip; + + buffer = get_buffer_from_id (driver, buffer_id); +- + assert (buffer != NULL); ++ ++ if (driver->need_flushes) { ++ int ret; ++ clip.x1 = 0; ++ clip.y1 = 0; ++ clip.x2 = buffer->width; ++ clip.y2 = buffer->height; ++ ++ ret = drmModeDirtyFB(driver->device_fd, buffer->id, ++ &clip, 1); ++ if (ret == -ENOSYS) ++ driver->need_flushes = 0; ++ } + } + + static void diff --git a/SOURCES/improve-man-pages.patch b/SOURCES/improve-man-pages.patch new file mode 100644 index 0000000..e6f9083 --- /dev/null +++ b/SOURCES/improve-man-pages.patch @@ -0,0 +1,918 @@ +From 740aa102eec65abf8dcfeeac043ecbcde74f2bf8 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Mon, 21 Oct 2013 17:53:33 -0400 +Subject: [PATCH] docs: add docbook based man pages + +This commit adds man pages for the plymouthd and plymouth client +commands. +--- + Makefile.am | 6 +- + configure.ac | 12 ++ + docs/Makefile.am | 33 +++- + docs/plymouth-set-default-theme.xml | 103 +++++++++++ + docs/plymouth.8 | 62 ------- + docs/plymouth.xml | 86 +++++++++ + docs/plymouth1.xml | 351 ++++++++++++++++++++++++++++++++++++ + docs/plymouthd.xml | 121 +++++++++++++ + 8 files changed, 708 insertions(+), 66 deletions(-) + create mode 100644 docs/plymouth-set-default-theme.xml + delete mode 100644 docs/plymouth.8 + create mode 100644 docs/plymouth.xml + create mode 100644 docs/plymouth1.xml + create mode 100644 docs/plymouthd.xml + +diff --git a/Makefile.am b/Makefile.am +index b322463..395c91b 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,13 +1,17 @@ +-SUBDIRS = src themes images scripts docs systemd-units ++SUBDIRS = src themes images scripts systemd-units ++ ++if BUILD_DOCUMENTATION ++SUBDIRS += docs ++endif + + DISTCHECK_CONFIGURE_FLAGS = --disable-tests --without-system-root-install + + EXTRA_DIST = ChangeLog \ + README + + MAINTAINERCLEANFILES = aclocal.m4 \ + config.h.in \ + config.h.in~ \ + config.sub \ + configure \ + Makefile.in +diff --git a/configure.ac b/configure.ac +index bb0207d..6b957d9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -198,60 +198,72 @@ if test x$enable_libdrm_nouveau = xyes; then + fi + + AC_ARG_ENABLE(libkms, AS_HELP_STRING([--enable-libkms],[enable building with libkms support]),enable_libkms=$enableval,enable_libkms=no) + AM_CONDITIONAL(ENABLE_LIBKMS, [test "$enable_libkms" = yes]) + + if test x$enable_libkms = xyes; then + PKG_CHECK_MODULES(LIBKMS, [libdrm libkms]) + AC_SUBST(LIBKMS_CFLAGS) + AC_SUBST(LIBKMS_LIBS) + AC_DEFINE(PLY_ENABLE_LIBKMS, 1, [Enable support for libkms abstraction over drm drivers]) + fi + + AC_ARG_ENABLE(drm, AS_HELP_STRING([--enable-drm-renderer],[enable building drm kms support]),enable_drm_renderer=$enableval,enable_drm_renderer=yes) + AM_CONDITIONAL(ENABLE_DRM_RENDERER, [test "$enable_drm_renderer" = yes]) + + if test x$enable_drm_renderer = xyes; then + PKG_CHECK_MODULES(DRM, [libdrm]) + fi + + DRM_CFLAGS="$DRM_CFLAGS $DRM_INTEL_CFLAGS $DRM_RADEON_CFLAGS $DRM_NOUVEAU_CFLAGS $LIBKMS_CFLAG" + DRM_LIBS="$DRM_LIBS $DRM_INTEL_LIBS $DRM_RADEON_LIBS $DRM_NOUVEAU_LIBS $LIBKMS_LIBS" + AC_SUBST(DRM_CFLAGS) + AC_SUBST(DRM_LIBS) + + AC_ARG_ENABLE(tracing, AS_HELP_STRING([--enable-tracing],[enable verbose tracing code]),enable_tracing=$enableval,enable_tracing=yes) + + if test x$enable_tracing = xyes; then + AC_DEFINE(PLY_ENABLE_TRACING, 1, [Build in verbose debug tracing spew]) + fi + ++AC_ARG_ENABLE(documentation, ++ AS_HELP_STRING([--enable-documentation], ++ [build documentation]),, ++ enable_documentation=yes) ++if test x$enable_documentation = xyes; then ++ AC_PATH_PROG([XSLTPROC], [xsltproc]) ++ if test x$XSLTPROC = x; then ++ AC_MSG_ERROR([xsltproc is required to build documentation]) ++ fi ++fi ++AM_CONDITIONAL(BUILD_DOCUMENTATION, test x$enable_documentation = xyes) ++ + AC_ARG_ENABLE(tests, AS_HELP_STRING([--enable-tests],[build tests]),enable_tests=$enableval,enable_tests=yes) + + AM_CONDITIONAL(ENABLE_TESTS, [test "$enable_tests" = yes]) + + AC_ARG_ENABLE(gdm-transition, AS_HELP_STRING([--enable-gdm-transition],[enable smooth transition to gdm]),enable_gdm_transition=$enableval,enable_gdm_transition=no) + + if test x$enable_gdm_transition = xyes; then + AC_DEFINE(PLY_ENABLE_DEPRECATED_GDM_TRANSITION, 1, [Enable deprecated smooth transition to GDM]) + fi + + AC_ARG_ENABLE(upstart-monitoring, AS_HELP_STRING([--enable-upstart-monitoring],[listen for messages on the Upstart D-Bus interface]),enable_upstart_monitoring=$enableval,enable_upstart_monitoring=no) + if test x$enable_upstart_monitoring = xyes; then + PKG_CHECK_MODULES(DBUS, [dbus-1]) + AC_SUBST(DBUS_CFLAGS) + AC_SUBST(DBUS_LIBS) + AC_CHECK_HEADERS([ncursesw/term.h ncurses/term.h term.h], [break]) + AC_CHECK_LIB([ncursesw], [initscr], + [CURSES_LIBS="$CURSES_LIBS -lncursesw"], + [AC_CHECK_LIB([ncurses], [initscr], + [CURSES_LIBS="$CURSES_LIBS -lncurses"], + [AC_CHECK_LIB([curses], [initscr], + [CURSES_LIBS="$CURSES_LIBS -lcurses"], + [AC_MSG_ERROR([no curses library found])])])]) + AC_SUBST(CURSES_LIBS) + fi + AM_CONDITIONAL(ENABLE_UPSTART_MONITORING, [test "$enable_upstart_monitoring" = yes]) + + AC_ARG_ENABLE(systemd-integration, AS_HELP_STRING([--enable-systemd-integration],[coordinate boot up with systemd]),enable_systemd_integration=$enableval,enable_systemd_integration=no) + AM_CONDITIONAL(ENABLE_SYSTEMD_INTEGRATION, [test "$enable_systemd_integration" = yes]) + +diff --git a/docs/Makefile.am b/docs/Makefile.am +index dedda55..1a9f7ea 100644 +--- a/docs/Makefile.am ++++ b/docs/Makefile.am +@@ -1,4 +1,31 @@ +-dist_man_MANS = plymouth.8 ++XSLTPROC_FLAGS = \ ++ --nonet \ ++ --stringparam man.output.quietly 1 \ ++ --stringparam funcsynopsis.style ansi \ ++ --stringparam man.th.extra1.suppress 1 \ ++ --stringparam man.authors.section.enabled 0 \ ++ --stringparam man.copyright.section.enabled 0 + +-%.html: %.txt +- asciidoc $(ASCIIDOC_OPTS) -a toc $*.txt ++ ++plymouth.1: plymouth1.xml ++ $(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< ++ ++%.8: %.xml ++ $(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< ++ ++%.1: %.xml ++ $(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< ++ ++man_MANS = \ ++ plymouth.1 \ ++ plymouth.8 \ ++ plymouthd.8 \ ++ plymouth-set-default-theme.1 ++ ++EXTRA_DIST = \ ++ plymouth.xml \ ++ plymouth1.xml \ ++ plymouth-set-default-theme.xml \ ++ plymouthd.xml ++ ++CLEANFILES = $(man_MANS) +diff --git a/docs/plymouth-set-default-theme.xml b/docs/plymouth-set-default-theme.xml +new file mode 100644 +index 0000000..efb051e +--- /dev/null ++++ b/docs/plymouth-set-default-theme.xml +@@ -0,0 +1,103 @@ ++ ++ ++ ++ ++ ++ ++ plymouth-set-default-theme ++ plymouth ++ ++ ++ ++ Developer ++ Kristian ++ Høgsberg ++ ++ ++ Developer ++ Ray ++ Strode ++ ++ ++ ++ ++ ++ ++ plymouth-set-default-theme ++ 1 ++ User Commands ++ ++ ++ ++ plymouth-set-default-theme ++ Set the plymouth theme ++ ++ ++ ++ ++ plymouth-set-default-theme OPTION THEME ++ ++ ++ ++ ++ Description ++ ++ ++When called with a argument, ++the plymouth-set-default-theme command ++changes the preferred boot theme and also performs the necessary ++regeneration of the initial ramdisk (initrd) since plymouth is loaded ++from the boot loader from the initrd prior to the mounting of the root ++filesystem. ++ ++ ++ ++If plymouth-set-default-theme is invoked with no options ++or parameters, it shows the currently selected theme by default. This output ++is used by the helper scripts plymouth-generate-initrd and ++plymouth-update-initrd to set the proper theme in the initial ramdisk. ++ ++ ++ ++ ++ ++ Options ++ ++ The following options are understood: ++ ++ ++ ++ , ++ Show summary of options. ++ ++ ++ ++ , ++ List available themes. ++ ++ ++ ++ , ++ Reset to default theme. ++ ++ ++ ++ , ++ Rebuild initrd (necessary after changing theme). ++ ++ ++ ++ ++ ++ See Also ++ ++ grub8, ++ plymouth8, ++ plymouthd8, ++ plymouth1, ++ http://www.freedesktop.org/wiki/Software/Plymouth ++ ++ ++ ++ +diff --git a/docs/plymouth.8 b/docs/plymouth.8 +deleted file mode 100644 +index 7f4766b..0000000 +--- a/docs/plymouth.8 ++++ /dev/null +@@ -1,62 +0,0 @@ +-\" Hey, EMACS: -*- nroff -*- +-.TH PLYMOUTH 8 "December 15, 2009" +-.SH NAME +-plymouth \- A graphical boot system and logger +-.SH SYNOPSIS +-.B plymouth-set-default-theme +-.RI [ options ] " \" +-.SH DESCRIPTION +-\fBplymouth\fP is a graphical boot system for Linux which takes advantage of the kernel-based +-mode setting (KMS) available for modern graphic cards to provide a seamless, flickerfree +-and attractive boot screen. It allows to choose between various, static or +-animated graphical themes to spruce up the startup and avoid the noise +-generated by the vast amount of kernel messages while the machine boots into X. +-On systems where kernel-based mode setting is not available, plymouth falls +-back to a text mode boot screen which provides a simple progress bar to provide +-feedback during boot. +-.PP +-To configure plymouth, that is to choose and install the preferred boot theme, the +-user has to invoke \fBplymouth-set-default-theme\fP. It changes the configuration +-to the new theme and also performs the necessary regeneration of the initial ramdisk +-(initrd) since plymouth is loaded from the boot loader from the initrd +-prior to the mounting of the root filesystem. The options available to this +-script are explained in the \fBOPTIONS\fP paragraph. +-.PP +-In order for the configured default plymouth theme to be loaded during boot, +-the option `splash' (or `rhgb' for backward compatibility with the RHGB boot +-splash) must be provided at the kernel command line. With this command line +-option, plymouth will default to showing detailed boot output. +-.SH OPTIONS +-plymouth-set-default-theme follows the usual GNU command line syntax, with long +-options starting with two dashes (`-') and short variants of each of them. +-.TP +-.B \-h, \-\-help +-Show summary of options. +-.TP +-.B \-l, \-\-list +-List available themes. +-.TP +-.B \-r, \-\-reset +-Reset to default theme. +-.TP +-.B \-R, \-\-rebuild\-initrd +-Rebuild initrd (necessary after changing theme). +-.TP +-.B \ +-Name of new theme to use. If you want to see which themes are available, invoke the script with just \-\-list. +-.PP +-If plymouth-set-default-theme is invoked with no options or parameters, it shows the currently selected theme +-by default. This output is used by the helper scripts `plymouth-generate-initrd' and `plymouth-update-initrd' +-to set the proper theme in the initial ramdisk. +-.SH SEE ALSO +-.BR grub (8) +-.br +-.SH AUTHOR +-plymouth was originally prototyped and named by Kristian Høgsberg , +-originally written by Ray Strode and has had significant contributions +-from Charlie Brej . It has also had contributions from +-Peter Jones , Adam Jackson , +-Frederic Crozat and others. +-It can be downloaded here: . +-.PP +-This manual page was written by Adrian Glaubitz . +diff --git a/docs/plymouth.xml b/docs/plymouth.xml +new file mode 100644 +index 0000000..0f196c6 +--- /dev/null ++++ b/docs/plymouth.xml +@@ -0,0 +1,86 @@ ++ ++ ++ ++ ++ ++ ++ plymouth ++ plymouth ++ ++ ++ ++ Developer ++ Kristian ++ Høgsberg ++ ++ ++ Developer ++ Ray ++ Strode ++ ++ ++ ++ ++ ++ ++ plymouth ++ 8 ++ System Administration ++ ++ ++ ++ plymouth ++ A graphical boot system and logger ++ ++ ++ ++ Description ++ ++ ++plymouth is a graphical boot system for Linux which takes advantage of ++the kernel-based mode setting (KMS) available for modern graphic cards ++to provide a seamless, flickerfree and attractive boot screen. It ++allows to choose between various, static or animated graphical themes ++to spruce up the startup and avoid the noise generated by the vast ++amount of kernel messages while the machine boots into X. On systems ++where kernel-based mode setting is not available, plymouth falls back ++to a text mode boot screen which provides a simple progress bar to pro‐ ++vide feedback during boot. ++ ++ ++In order for the configured default plymouth theme to be loaded during ++boot, the option `splash' (or `rhgb' for backward compatibility with ++the RHGB boot splash) must be provided at the kernel command line. ++Without this command line option, plymouth will default to showing ++detailed boot output. ++ ++ ++ ++During the boot process, the user can switch between the graphical theme ++and the detailed boot output using the Escape key. ++ ++ ++ ++ ++ ++ See Also ++ ++ grub8, ++ plymouth-set-theme1, ++ plymouthd8, ++ plymouth1, ++ http://www.freedesktop.org/wiki/Software/Plymouth ++ ++ ++ ++ ++ Authors ++ ++plymouth was originally prototyped and named by Kristian Høgsberg, ++originally written by Ray Strode and has had significant contributions from ++Charlie Brej. It has also had contributions from Peter Jones, Adam Jackson, ++Frederic Crozat and others. ++ ++ ++ +diff --git a/docs/plymouth1.xml b/docs/plymouth1.xml +new file mode 100644 +index 0000000..b484599 +--- /dev/null ++++ b/docs/plymouth1.xml +@@ -0,0 +1,351 @@ ++ ++ ++ ++ ++ ++ ++ plymouth ++ plymouth ++ ++ ++ ++ Developer ++ Kristian ++ Høgsberg ++ ++ ++ Developer ++ Ray ++ Strode ++ ++ ++ ++ ++ ++ ++ plymouth ++ 1 ++ User Commands ++ ++ ++ ++ plymouth ++ Send commands to plymouthd ++ ++ ++ ++ ++ plymouth OPTION ++ ++ ++ plymouth COMMAND OPTION ++ ++ ++ ++ ++ Description ++ ++ ++The plymouth sends commands to a running ++plymouthd. This is used during the boot ++process to control the display of the graphical boot splash. ++ ++ ++ ++ ++ ++ Options ++ ++ ++The following options are understood. These options are supported ++for compatibility with the old rhgb-client interface, ++and have been replaced by the commands that are described in the ++next section. ++ ++ ++ ++ ++ ++ Show summary of options. ++ ++ ++ ++ ++ Enable verbose debug logging. ++ ++ ++ ++ ++ Get directory where splash plugins are installed. ++ ++ ++ ++ ++ Tell plymouthd that the new root filesystem is mounted. ++ ++ ++ ++ ++ Tell plymouthd to quit. ++ ++ ++ ++ ++ Check if plymouthd is running. ++ ++ ++ ++ ++ Check if plymouthd has an active vt. ++ ++ ++ ++ ++ Tell plymouthd root filesystem is mounted read-write. ++ ++ ++ ++ ++ Show the splash screen. ++ ++ ++ ++ ++ Hide the splash screen. ++ ++ ++ ++ ++ Ask the user for a password. ++ ++ ++ ++ ++ Remove sensitivity to a keystroke. ++ ++ ++ ++ ++ Tell plymouthd an update about boot progress. ++ ++ ++ ++ ++ Tell plymouthd there were errors during boot. ++ ++ ++ ++ ++ Wait for plymouthd to quit. ++ ++ ++ ++ ++ ++ Commands ++ ++ ++The following commands are understood: ++ ++ ++ ++ change-mode OPTION ++ Change the operation mode. ++ ++ ++ ++ Start the system up ++ ++ ++ ++ Shutting the system up ++ ++ ++ ++ Applying updates ++ ++ ++ ++ ++ ++ system-update OPTION ++ Tell plymouthd about boot progress. ++ ++ ++ ++ The percentage progress of the updates ++ ++ ++ ++ ++ ++ update OPTION ++ Tell plymouthd about boot status changes. ++ ++ ++ ++ Tell plymouthd the current boot status ++ ++ ++ ++ ++ ++ update-root-fs OPTION ++ Tell plymouthd about root filesystem changes. ++ ++ ++ ++ Root filesystem is about to change ++ ++ ++ ++ Root filesystem is no longer read-only ++ ++ ++ ++ ++ ++ show-splash ++ Tell plymouthd to show splash screen. ++ ++ ++ hide-splash ++ Tell plymouthd to hide splash screen. ++ ++ ++ ask-for-password OPTION ++ Ask the user for a password. ++ ++ ++ ++ Command to send password to via standard input ++ ++ ++ ++ Message to display when asking for password ++ ++ ++ ++ Number of times to ask before giving up (requires ) ++ ++ ++ ++ Don't pause boot progress bar while asking ++ ++ ++ ++ ++ ++ ask-question ++ Ask the user a question. ++ ++ ++ ++ Command to send the answer to via standard input ++ ++ ++ ++ Message to display when asking the question ++ ++ ++ ++ Don't pause boot progress bar while asking ++ ++ ++ ++ ++ ++ display-message OPTION ++ Display a message. ++ ++ ++ ++ The message text ++ ++ ++ ++ ++ ++ hide-message OPTION ++ Hide a message. ++ ++ ++ ++ The message text ++ ++ ++ ++ ++ ++ watch-keystroke OPTION ++ Become sensitive to a keystroke. ++ ++ ++ ++ Command to send keystroke to via standard input ++ ++ ++ ++ Keys to become sensitive to ++ ++ ++ ++ ++ ++ ignore-keystroke OPTION ++ Remove sensitivity to a keystroke. ++ ++ ++ ++ Keys to remove sensitivitiy from ++ ++ ++ ++ ++ ++ pause-progress ++ Pause boot progress bar. ++ ++ ++ unpause-progress ++ Unpause boot progress bar. ++ ++ ++ report-error ++ Tell plymouthd there were errors during boot. ++ ++ ++ deactivate ++ Tell plymouthd to deactivate. ++ ++ ++ reactivate ++ Tell plymouthd to reactivate. ++ ++ ++ quit OPTION ++ Tell plymouthd to quit. ++ ++ ++ ++ Don't explicitly hide boot splash on exit ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ See Also ++ ++ grub8, ++ plymouth8, ++ plymouthd8, ++ http://www.freedesktop.org/wiki/Software/Plymouth ++ ++ ++ ++ +diff --git a/docs/plymouthd.xml b/docs/plymouthd.xml +new file mode 100644 +index 0000000..4e7e499 +--- /dev/null ++++ b/docs/plymouthd.xml +@@ -0,0 +1,121 @@ ++ ++ ++ ++ ++ ++ ++ plymouthd ++ plymouth ++ ++ ++ ++ Developer ++ Kristian ++ Høgsberg ++ ++ ++ Developer ++ Ray ++ Strode ++ ++ ++ ++ ++ ++ ++ plymouthd ++ 8 ++ System Administration ++ ++ ++ ++ plymouthd ++ The plymouth daemon ++ ++ ++ ++ ++ plymouthd OPTION ++ ++ ++ ++ ++ Description ++ ++ ++The plymouthd daemon is usually run out of ++the initrd. It does the heavy lifting of the plymouth system, logging ++the session and showing the splash screen. ++ ++ ++The plymouth is used to send commands to plymouthd ++that control its behaviour. ++ ++ ++ ++ ++ ++ Options ++ ++ The following options are understood: ++ ++ ++ ++ ++ Show summary of options. ++ ++ ++ ++ ++ Redirect console messages from screen to log. ++ ++ ++ ++ ++ Do not daemonize. ++ ++ ++ ++ ++ Output debugging information. ++ ++ ++ ++ ++ File to write debugging information to. ++ ++ ++ ++ ++ Set mode to either boot or shutdown. ++ ++ ++ ++ ++ Write the PID of the daemon to a file. ++ ++ ++ ++ ++ Fake kernel commandline to use. ++ ++ ++ ++ ++ TTY to ues instead of default. ++ ++ ++ ++ ++ ++ See Also ++ ++ grub8, ++ plymouth8, ++ plymouth1, ++ http://www.freedesktop.org/wiki/Software/Plymouth ++ ++ ++ ++ +-- +1.8.3.1 + diff --git a/SPECS/plymouth.spec b/SPECS/plymouth.spec new file mode 100644 index 0000000..a928847 --- /dev/null +++ b/SPECS/plymouth.spec @@ -0,0 +1,1185 @@ +%define plymouthdaemon_execdir %{_sbindir} +%define plymouthclient_execdir %{_bindir} +%define plymouth_libdir %{_libdir} +%define plymouth_initrd_file /boot/initrd-plymouth.img + +Summary: Graphical Boot Animation and Logger +Name: plymouth +Version: 0.8.9 +Release: 0.2013.03.26.4%{?dist} +License: GPLv2+ +Group: System Environment/Base +Source0: http://freedesktop.org/software/plymouth/releases/%{name}-%{version}.tar.bz2 +Source1: boot-duration +Source2: charge.plymouth + +URL: http://www.freedesktop.org/wiki/Software/Plymouth +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +Requires: system-logos +Requires(post): plymouth-scripts +Requires: initscripts >= 8.83-1 +Conflicts: filesystem < 3 +Conflicts: systemd < 185-3 + +BuildRequires: pkgconfig(libdrm) +BuildRequires: kernel-headers +BuildRequires: automake, autoconf, libtool +BuildRequires: libxslt, docbook-style-xsl + +Obsoletes: plymouth-text-and-details-only < %{version}-%{release} +Obsoletes: plymouth-plugin-pulser < 0.7.0-0.2009.05.08.2 +Obsoletes: plymouth-theme-pulser < 0.7.0-0.2009.05.08.2 +Obsoletes: plymouth-gdm-hooks < 0.8.4-0.20101119.4 +Obsoletes: plymouth-utils < 0.8.4-0.20101119.4 + +Patch2: drm-dirty-fb.patch +Patch3: improve-man-pages.patch +Patch4: add-two-step-features.patch +Patch99: colors.patch + +%description +Plymouth provides an attractive graphical boot animation in +place of the text messages that normally get shown. Text +messages are instead redirected to a log file for viewing +after boot. + +%package system-theme +Summary: Plymouth default theme +Group: System Environment/Base +Obsoletes: rhgb < 1:10.0.0 +Provides: rhgb = 1:10.0.0 +Obsoletes: %{name}-system-plugin < %{version}-%{release} +Provides: %{name}-system-plugin = %{version}-%{release} +Provides: rhgb = 1:10.0.0 +Requires: plymouth(system-theme) = %{version}-%{release} + +%description system-theme +This metapackage tracks the current distribution default theme. + +%package core-libs +Summary: Plymouth core libraries +Group: Development/Libraries + +%description core-libs +This package contains the libply and libply-splash-core libraries +used by Plymouth. + +%package graphics-libs +Summary: Plymouth graphics libraries +Group: Development/Libraries +Requires: %{name}-core-libs = %{version}-%{release} +Obsoletes: %{name}-libs < %{version}-%{release} +Provides: %{name}-libs = %{version}-%{release} +BuildRequires: libpng-devel + +%description graphics-libs +This package contains the libply-splash-graphics library +used by graphical Plymouth splashes. + +%package devel +Summary: Libraries and headers for writing Plymouth splash plugins +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig +BuildRequires: pkgconfig(gtk+-2.0) + +%description devel +This package contains the libply and libplybootsplash libraries +and headers needed to develop 3rd party splash plugins for Plymouth. + +%package scripts +Summary: Plymouth related scripts +Group: Applications/System +Requires: findutils, coreutils, gzip, cpio, dracut, plymouth + +%description scripts +This package contains scripts that help integrate Plymouth with +the system. + +%package plugin-label +Summary: Plymouth label plugin +Group: System Environment/Base +Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} +BuildRequires: pango-devel >= 1.21.0 +BuildRequires: cairo-devel + +%description plugin-label +This package contains the label control plugin for +Plymouth. It provides the ability to render text on +graphical boot splashes using pango and cairo. + +%package plugin-fade-throbber +Summary: Plymouth "Fade-Throbber" plugin +Group: System Environment/Base +Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} + +%description plugin-fade-throbber +This package contains the "Fade-In" boot splash plugin for +Plymouth. It features a centered image that fades in and out +while other images pulsate around during system boot up. + +%package theme-fade-in +Summary: Plymouth "Fade-In" theme +Group: System Environment/Base +Requires: %{name}-plugin-fade-throbber = %{version}-%{release} +Requires(post): plymouth-scripts +Obsoletes: plymouth-plugin-fade-in <= 0.7.0-0.2009.05.08.2 +Provides: plymouth-plugin-fade-in = 0.7.0-0.2009.05.08.2 + +%description theme-fade-in +This package contains the "Fade-In" boot splash theme for +Plymouth. It features a centered logo that fades in and out +while stars twinkle around the logo during system boot up. + +%package plugin-throbgress +Summary: Plymouth "Throbgress" plugin +Group: System Environment/Base +Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} +Requires: plymouth-plugin-label + +%description plugin-throbgress +This package contains the "throbgress" boot splash plugin for +Plymouth. It features a centered logo and animated spinner that +spins repeatedly while a progress bar advances at the bottom of +the screen. + +%package theme-spinfinity +Summary: Plymouth "Spinfinity" theme +Group: System Environment/Base +Requires: %{name}-plugin-throbgress = %{version}-%{release} +Requires(post): plymouth-scripts +Obsoletes: plymouth-plugin-spinfinity <= 0.7.0-0.2009.05.08.2 +Provides: plymouth-plugin-spinfinity = 0.7.0-0.2009.05.08.2 + +%description theme-spinfinity +This package contains the "Spinfinity" boot splash theme for +Plymouth. It features a centered logo and animated spinner that +spins in the shape of an infinity sign. + +%package plugin-space-flares +Summary: Plymouth "space-flares" plugin +Group: System Environment/Base +Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} +Requires: plymouth-plugin-label + +%description plugin-space-flares +This package contains the "space-flares" boot splash plugin for +Plymouth. It features a corner image with animated flares. + +%package theme-solar +Summary: Plymouth "Solar" theme +Group: System Environment/Base +Requires: %{name}-plugin-space-flares = %{version}-%{release} +Requires(post): plymouth-scripts +Obsoletes: plymouth-plugin-solar <= 0.7.0-0.2009.05.08.2 +Provides: plymouth-plugin-solar = 0.7.0-0.2009.05.08.2 +# We require this to fix upgrades (see bug 499940). +Requires: plymouth-system-theme + +%description theme-solar +This package contains the "Solar" boot splash theme for +Plymouth. It features a blue flamed sun with animated solar flares. + +%package plugin-two-step +Summary: Plymouth "two-step" plugin +Group: System Environment/Base +Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} +Requires: plymouth-plugin-label + +%description plugin-two-step +This package contains the "two-step" boot splash plugin for +Plymouth. It features a two phased boot process that starts with +a progressing animation synced to boot time and finishes with a +short, fast one-shot animation. + +%package theme-charge +Summary: Plymouth "Charge" plugin +Group: System Environment/Base +Requires: %{name}-plugin-two-step = %{version}-%{release} +Requires(post): plymouth-scripts +Provides: plymouth(system-theme) = %{version}-%{release} + +%description theme-charge +This package contains the "charge" boot splash theme for +Plymouth. It is the default theme for Red Hat Enterprise Linux. + +%package plugin-script +Summary: Plymouth "script" plugin +Group: System Environment/Base +Requires: %{name} = %{version}-%{release} +Requires: %{name}-libs = %{version}-%{release} + +%description plugin-script +This package contains the "script" boot splash plugin for +Plymouth. It features an extensible, scriptable boot splash +language that simplifies the process of designing custom +boot splash themes. + +%package theme-script +Summary: Plymouth "Script" plugin +Group: System Environment/Base +Requires: %{name}-plugin-script = %{version}-%{release} +Requires(post): %{_sbindir}/plymouth-set-default-theme + +%description theme-script +This package contains the "script" boot splash theme for +Plymouth. It it is a simple example theme the uses the "script" +plugin. + +%package theme-spinner +Summary: Plymouth "Spinner" theme +Group: System Environment/Base +Requires: %{name}-plugin-two-step = %{version}-%{release} +Requires(post): plymouth-scripts + +%description theme-spinner +This package contains the "spinner" boot splash theme for +Plymouth. It features a small spinner on a dark background. + +%prep +%setup -q +%patch2 -p1 -b .drm-dirty +%patch3 -p1 -b .improve-man-pages +%patch4 -p1 -b .add-two-step-features +%patch99 -p1 -b .colors + +# Change the default theme +sed -i -e 's/fade-in/charge/g' src/plymouthd.defaults + +%build +autoreconf -f -i +%configure --enable-tracing --disable-tests \ + --with-logo=%{_datadir}/pixmaps/system-logo-white.png \ + --with-background-start-color-stop=0xc6bdd2 \ + --with-background-end-color-stop=0x4e376b \ + --with-background-color=0x8d59d2 \ + --disable-gdm-transition \ + --enable-systemd-integration \ + --without-system-root-install \ + --without-rhgb-compat-link \ + --without-log-viewer \ + --enable-documentation \ + --disable-libkms + +make + +%install +rm -rf $RPM_BUILD_ROOT + +make install DESTDIR=$RPM_BUILD_ROOT + +# Glow isn't quite ready for primetime +rm -rf $RPM_BUILD_ROOT%{_datadir}/plymouth/glow/ +rm -f $RPM_BUILD_ROOT%{_libdir}/plymouth/glow.so + +find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} \; +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} \; + +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/plymouth +cp $RPM_SOURCE_DIR/boot-duration $RPM_BUILD_ROOT%{_datadir}/plymouth/default-boot-duration +cp $RPM_SOURCE_DIR/boot-duration $RPM_BUILD_ROOT%{_localstatedir}/lib/plymouth + +# Add charge, our new default +mkdir -p $RPM_BUILD_ROOT%{_datadir}/plymouth/themes/charge +cp %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/plymouth/themes/charge +cp $RPM_BUILD_ROOT%{_datadir}/plymouth/themes/glow/{box,bullet,entry,lock}.png $RPM_BUILD_ROOT%{_datadir}/plymouth/themes/charge + +# Drop glow, it's not very Fedora-y +rm -rf $RPM_BUILD_ROOT%{_datadir}/plymouth/themes/glow + +%clean +rm -rf $RPM_BUILD_ROOT + +%post +[ -f %{_localstatedir}/lib/plymouth/boot-duration ] || cp -f %{_datadir}/plymouth/default-boot-duration %{_localstatedir}/lib/plymouth/boot-duration + +%posttrans +%{_libexecdir}/plymouth/plymouth-generate-initrd + +%postun +if [ $1 -eq 0 ]; then + rm -f %{_libdir}/plymouth/default.so + rm -f /boot/initrd-plymouth.img +fi + +%post core-libs -p /sbin/ldconfig +%postun core-libs -p /sbin/ldconfig + +%post graphics-libs -p /sbin/ldconfig +%postun graphics-libs -p /sbin/ldconfig + +%postun theme-spinfinity +export LIB=%{_lib} +if [ $1 -eq 0 ]; then + if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "spinfinity" ]; then + %{_sbindir}/plymouth-set-default-theme text + %{_libexecdir}/plymouth/plymouth-generate-initrd + fi +fi + +%postun theme-fade-in +export LIB=%{_lib} +if [ $1 -eq 0 ]; then + if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "fade-in" ]; then + %{_sbindir}/plymouth-set-default-theme --reset + %{_libexecdir}/plymouth/plymouth-generate-initrd + fi +fi + +%postun theme-spinner +export LIB=%{_lib} +if [ $1 -eq 0 ]; then + if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "spinner" ]; then + %{_sbindir}/plymouth-set-default-theme --reset + %{_libexecdir}/plymouth/plymouth-generate-initrd + fi +fi + +%postun theme-solar +export LIB=%{_lib} +if [ $1 -eq 0 ]; then + if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "solar" ]; then + %{_sbindir}/plymouth-set-default-theme --reset + %{_libexecdir}/plymouth/plymouth-generate-initrd + fi +fi + +%post theme-charge +export LIB=%{_lib} +if [ $1 -eq 1 ]; then + %{_sbindir}/plymouth-set-default-theme charge +else + if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "solar" ]; then + %{_sbindir}/plymouth-set-default-theme charge + %{_libexecdir}/plymouth/plymouth-generate-initrd + fi +fi + +%postun theme-charge +export LIB=%{_lib} +if [ $1 -eq 0 ]; then + if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "charge" ]; then + %{_sbindir}/plymouth-set-default-theme --reset + %{_libexecdir}/plymouth/plymouth-generate-initrd + fi +fi + +%files +%defattr(-, root, root) +%doc AUTHORS NEWS README +%dir %{_datadir}/plymouth +%dir %{_datadir}/plymouth/themes +%dir %{_datadir}/plymouth/themes/details +%dir %{_datadir}/plymouth/themes/text +%dir %{_libexecdir}/plymouth +%dir %{_localstatedir}/lib/plymouth +%dir %{_libdir}/plymouth/renderers +%dir %{_sysconfdir}/plymouth +%config(noreplace) %{_sysconfdir}/plymouth/plymouthd.conf +%{plymouthdaemon_execdir}/plymouthd +%{plymouthclient_execdir}/plymouth +%{_bindir}/plymouth +%{_libdir}/plymouth/details.so +%{_libdir}/plymouth/text.so +%{_libdir}/plymouth/renderers/drm* +%{_libdir}/plymouth/renderers/frame-buffer* +%{_datadir}/plymouth/default-boot-duration +%{_datadir}/plymouth/themes/details/details.plymouth +%{_datadir}/plymouth/themes/text/text.plymouth +%{_datadir}/plymouth/plymouthd.defaults +%{_localstatedir}/run/plymouth +%{_localstatedir}/spool/plymouth +%{_mandir}/man?/* +%ghost %{_localstatedir}/lib/plymouth/boot-duration +%if 0%{?fedora} > 17 || 0%{?rhel} > 6 +/lib/systemd/system/* +%else +%{_prefix}/lib/systemd/system/plymouth-*.service +%endif + +%files devel +%defattr(-, root, root) +%{plymouth_libdir}/libply.so +%{plymouth_libdir}/libply-splash-core.so +%{_libdir}/libply-boot-client.so +%{_libdir}/libply-splash-graphics.so +%{_libdir}/pkgconfig/ply-splash-core.pc +%{_libdir}/pkgconfig/ply-splash-graphics.pc +%{_libdir}/pkgconfig/ply-boot-client.pc +%{_libdir}/plymouth/renderers/x11* +%{_includedir}/plymouth-1 + +%files core-libs +%defattr(-, root, root) +%{plymouth_libdir}/libply.so.* +%{plymouth_libdir}/libply-splash-core.so.* +%{_libdir}/libply-boot-client.so.* +%dir %{_libdir}/plymouth + +%files graphics-libs +%defattr(-, root, root) +%{_libdir}/libply-splash-graphics.so.* + +%files scripts +%defattr(-, root, root) +%{_sbindir}/plymouth-set-default-theme +%{_libexecdir}/plymouth/plymouth-update-initrd +%{_libexecdir}/plymouth/plymouth-generate-initrd +%{_libexecdir}/plymouth/plymouth-populate-initrd + +%files plugin-label +%defattr(-, root, root) +%{_libdir}/plymouth/label.so + +%files plugin-fade-throbber +%defattr(-, root, root) +%{_libdir}/plymouth/fade-throbber.so + +%files theme-fade-in +%defattr(-, root, root) +%dir %{_datadir}/plymouth/themes/fade-in +%{_datadir}/plymouth/themes/fade-in/bullet.png +%{_datadir}/plymouth/themes/fade-in/entry.png +%{_datadir}/plymouth/themes/fade-in/lock.png +%{_datadir}/plymouth/themes/fade-in/star.png +%{_datadir}/plymouth/themes/fade-in/fade-in.plymouth + +%files theme-spinner +%defattr(-, root, root) +%dir %{_datadir}/plymouth/themes/spinner +%{_datadir}/plymouth/themes/spinner/*.png +%{_datadir}/plymouth/themes/spinner/spinner.plymouth + +%files plugin-throbgress +%defattr(-, root, root) +%{_libdir}/plymouth/throbgress.so + +%files theme-spinfinity +%defattr(-, root, root) +%dir %{_datadir}/plymouth/themes/spinfinity +%{_datadir}/plymouth/themes/spinfinity/box.png +%{_datadir}/plymouth/themes/spinfinity/bullet.png +%{_datadir}/plymouth/themes/spinfinity/entry.png +%{_datadir}/plymouth/themes/spinfinity/lock.png +%{_datadir}/plymouth/themes/spinfinity/throbber-[0-3][0-9].png +%{_datadir}/plymouth/themes/spinfinity/spinfinity.plymouth + +%files plugin-space-flares +%defattr(-, root, root) +%{_libdir}/plymouth/space-flares.so + +%files theme-solar +%defattr(-, root, root) +%dir %{_datadir}/plymouth/themes/solar +%{_datadir}/plymouth/themes/solar/*.png +%{_datadir}/plymouth/themes/solar/solar.plymouth + +%files plugin-two-step +%defattr(-, root, root) +%{_libdir}/plymouth/two-step.so + +%files theme-charge +%defattr(-, root, root) +%dir %{_datadir}/plymouth/themes/charge +%{_datadir}/plymouth/themes/charge/*.png +%{_datadir}/plymouth/themes/charge/charge.plymouth + +%files plugin-script +%defattr(-, root, root) +%{_libdir}/plymouth/script.so + +%files theme-script +%defattr(-, root, root) +%dir %{_datadir}/plymouth/themes/script +%{_datadir}/plymouth/themes/script/*.png +%{_datadir}/plymouth/themes/script/script.script +%{_datadir}/plymouth/themes/script/script.plymouth + +%files system-theme +%defattr(-, root, root) + +%changelog +* Fri Nov 08 2013 Ray Strode 0.8.9-0.2013.03.26.4 +- Fix unlock screen + Related: #1002219 + Resolves: #1027263 + +* Fri Oct 25 2013 Ray Strode 0.8.9-0.2013.03.26.3 +- Add features to facilitate new charge design + Related: #1002219 + +* Fri Oct 25 2013 Ray Strode 0.8.9-0.2013.03.26.2 +- Drop old compat goo +- Add improved man pages + Resolves: #948892 + +* Fri Apr 12 2013 Ray Strode 0.8.9-0.2013.03.26.1 +- Colors + Related: #796861 + +* Tue Mar 26 2013 Ray Strode 0.8.9-0.2013.03.26.0 +- Update to snapshot to fix systemd vconsole issue + +* Fri Mar 15 2013 Dave Airlie 0.8.8-7 +- drm: use dirty fb ioctl to allow plymouth work on qxl + +* Thu Feb 21 2013 Peter Robinson 0.8.8-6 +- Merge newer F18 release into rawhide + +* Thu Dec 13 2012 Ray Strode 0.8.8-5 +- Ensure fedup gets right splash screen + Related: #879295 + +* Thu Nov 15 2012 Ray Strode 0.8.8-4 +- Drop set-default-plugin compat script +- Just use upstream update-initrd + +* Fri Nov 02 2012 Ray Strode 0.8.8-3 +- More boot blocking fixes + Related: #870695 + +* Thu Nov 01 2012 Ray Strode 0.8.8-2 +- Fix crash when deactivating multiple times + Related: #870695 + +* Fri Oct 26 2012 Ray Strode 0.8.8-1 +- Latest upstream release +- includes systemd fixes and system update fixes + +* Tue Aug 21 2012 Ray Strode 0.8.7-1 +- Latest upstream release +- includes systemd fixes + +* Tue Aug 21 2012 Dave Airlie 0.8.6.2-1.2012.07.23 +- fix plymouth race at bootup breaking efi/vesa handoff. +- fix version number - its against fedora package policy to have 0.year + +* Mon Jul 23 2012 Ray Strode 0.8.6.2-0.2012.07.23 +- One more crack at #830482 (will probably need additional fixes tomorrow) + +* Mon Jul 23 2012 Tom Callaway - 0.8.6.1-3 +- fix bz704658 (thanks to Ian Pilcher for the patch), resolves issue where spinfinity theme + never goes idle and thus, never exits to gdm + +* Sat Jul 21 2012 Fedora Release Engineering - 0.8.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jul 10 2012 Ray Strode 0.8.6.1-1 +- Update to 0.8.6.1 since I mucked up 0.8.6 + Resolves: #830482 + +* Mon Jul 09 2012 Ray Strode 0.8.6-1 +- Update to 0.8.6 +- Fixes encrypted fs bug + Resolves: #830482 +- Adds support for offline package updates + +* Mon Jun 25 2012 Adam Jackson 0.8.5.1-3 +- Rebuild without libkms + +* Wed Jun 06 2012 Ray Strode 0.8.5.1-2 +- Add %{_prefix} to systemd service path + +* Wed Jun 06 2012 Ray Strode 0.8.5.1-1 +- Update to latest release +- Ship systemd service files +- Conflict with old systemd + +* Tue Apr 24 2012 Richard Hughes 0.8.4-0.20120319.3 +- Disable the nouveau driver as I've broken it with the new libdrm ABI + +* Tue Mar 20 2012 Daniel Drake 0.8.4-0.20120319.1 +- Don't try to build against libdrm_intel on non-intel architectures + +* Mon Mar 19 2012 Ray Strode 0.8.4-0.20120319.1 +- Update to latest snapshot + +* Mon Mar 12 2012 Ray Strode 0.8.4-0.20110810.6 +- Don't require libdrm_intel on non intel arches + +* Mon Feb 20 2012 Adam Williamson 0.8.4-0.20110810.5 +- make plymouth-scripts require plymouth (RH #794894) + +* Wed Jan 25 2012 Harald Hoyer 0.8.4-0.20110810.4 +- install everything in /usr + https://fedoraproject.org/wiki/Features/UsrMove + +* Sat Jan 14 2012 Fedora Release Engineering - 0.8.4-0.20110810.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Dec 15 2011 Ray Strode 0.8.4-0.20110809.3 +- Change spec based on suggestion from Nicolas Chauvet + to fix scriptlet error during livecd creation + Resolves: #666419 + +* Tue Nov 08 2011 Adam Jackson 0.8.4-0.20110822.3 +- Rebuild for libpng 1.5 + +* Fri Sep 02 2011 Ray Strode 0.8.4-0.20110822.2 +- Make plymouth background dark gray at the request of Mo / design + team. + +* Mon Aug 22 2011 Ray Strode 0.8.4-0.20110822.1 +- Update to latest git snapshot +- Reintroduce accidentally dropped spinner theme and systemd integration + +* Tue Aug 09 2011 Ray Strode 0.8.4-0.20110809.1 +- Rebuild + +* Fri Mar 04 2011 Ray Strode 0.8.4-0.1.20110304.1 +- retry reopening tty if we get EIO + Hopefully Resolves: #681167 + +* Fri Feb 18 2011 Ray Strode 0.8.4-0.20110419.1 +- unlock tty when reopening in case it spontaenously goes bonkers + and we need to fix it up + Resolves: #655538 + +* Wed Feb 09 2011 Christopher Aillon 0.8.4-0.20110209.2 +- Fix up obsoletes typo + +* Wed Feb 09 2011 Ray Strode 0.8.4-0.20110209.1 +- Update to latest snapshot + +* Wed Feb 09 2011 Fedora Release Engineering - 0.8.4-0.20101120.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Feb 04 2011 Ray Strode 0.8.4-0.20101119.4 +- Drop log viewer + +* Sat Jan 29 2011 Ville Skyttä - 0.8.4-0.20101119.3 +- Dir ownership fixes (#645044). + +* Fri Nov 19 2010 Ray Strode 0.8.4-0.20101119.2 +- Fix serial console issue eparis was seeing + +* Fri Nov 19 2010 Ray Strode 0.8.4-0.20101119.1 +- Update to recent snapshot + +* Tue Nov 02 2010 Ray Strode 0.8.4-0.20101002.1 +- Update to recent snapshot + +* Wed Sep 01 2010 Ray Strode 0.8.4-0.20100823.4 +- Add more Requirse + +* Thu Aug 26 2010 Ray Strode 0.8.4-0.20100823.3 +- Add more Requires + +* Thu Aug 26 2010 Ray Strode 0.8.4-0.20100823.2 +- Fix plymouth-update-initrd + It's regressed to the pre-dracut version. This commit fixes that. + +* Mon Aug 23 2010 Ray Strode 0.8.4-0.20100823.1 +- Update to newer pre-release snapshot of 0.8.4 +- Generate separate initrd in /boot + +* Sat Aug 21 2010 Ray Strode 0.8.4-0.20100821.1 +- Update to newer pre-release snapshot of 0.8.4 +- Fix bizarre-o animation during boot up. + +* Fri Jul 23 2010 Ray Strode 0.8.4-0.20100723.1 +- Update to pre-release snapshot of 0.8.4 + +* Thu Jan 14 2010 Ray Strode 0.8.0-0.20100114.2 +- Don't link plymouthd against libpng either + +* Thu Jan 14 2010 Ray Strode 0.8.0-0.20100114.1 +- Make it possible to do a basic plymouth installations without + libpng + +* Thu Jan 07 2010 Ray Strode 0.8.0-0.2009129.2 +- Drop nash dep + +* Tue Dec 22 2009 Dave Airlie 0.8.0-0.2009129.1 +- rebuild for API bump in libdrm + +* Wed Dec 09 2009 Ray Strode 0.8.0-0.2009129 +- Update to latest snapshot + +* Tue Sep 29 2009 Ray Strode 0.8.0-0.2009.10.05 +- Add new x11-renderer plugin from Charlie Brej for debugging + +* Tue Sep 29 2009 Ray Strode 0.8.0-0.2009.29.09 +- Fix escape and ask-for-password + +* Mon Sep 28 2009 Ray Strode 0.8.0-0.2009.28.09 +- Add prerelease of 0.8.0 for multihead support + +* Fri Sep 11 2009 Ray Strode 0.7.1-7 +- Go back to blue charge background (bug 522460) + +* Fri Sep 11 2009 Ray Strode 0.7.1-6 +- Remove duplicate Provides: plymouth(system-theme) + +* Thu Sep 10 2009 Ray Strode 0.7.1-5 +- Fix set_verbose error reported by yaneti. + +* Wed Sep 9 2009 Ray Strode 0.7.1-4 +- Look for inst() in dracut as well as mkinitrd bash source file +- Drop plymouth initrd for now. + +* Fri Aug 28 2009 Ray Strode 0.7.1-3 +- Create plymouth supplementary initrd in post (bug 515589) + +* Tue Aug 25 2009 Ray Strode 0.7.1-2 +- Get plugin path from plymouth instead of trying + to guess. Should fix bug 502667 + +* Tue Aug 25 2009 Ray Strode 0.7.1-1 +- Update to 0.7.1 + +* Mon Aug 24 2009 Adam Jackson 0.7.0-2 +- Set charge bgcolor to black. (#519052) + +* Tue Aug 11 2009 Ray Strode 0.7.0-1 +- Update to 0.7.0 + +* Sun Jul 26 2009 Fedora Release Engineering - 0.7.0-0.2010.05.15.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri May 15 2009 Ray Strode 0.7.0-0.2009.05.15.1 +- Fix spinfinity theme to point to the right image directory + (bug 500994) + +* Thu May 14 2009 Ray Strode 0.7.0-0.2009.05.14.1 +- Update to new snapshot that renames plugins to fix upgrades + somewhat (bug 499940) + +* Fri May 08 2009 Ray Strode 0.7.0-0.2009.05.08.1 +- Add some fixes for shutdown + +* Fri May 08 2009 Ray Strode 0.7.0-0.2009.05.06.4 +- Don't slow down progress updating at the end of boot + +* Thu May 07 2009 Ray Strode 0.7.0-0.2009.05.06.3 +- Change colors to transition better to gdm + +* Wed May 06 2009 Ray Strode 0.7.0-0.2009.05.06.2 +- Make "charge" theme require two-step plugin instead of solar (oops) + +* Wed May 06 2009 Ray Strode 0.7.0-0.2009.05.06.1 +- Update to "plugin-rework" branch from git + +* Wed Apr 08 2009 Jesse Keating - 0.7.0-0.2009.03.10.3 +- Drop the version on system-logos requires for now, causing hell with + other -logos providers not having the same version. + +* Wed Mar 18 2009 Ray Strode 0.7.0-0.2009.03.10.2 +- Destroy terminal on detach (may help with bug 490965) + +* Tue Mar 10 2009 Ray Strode 0.7.0-0.2009.03.10.1 +- Address one more issue with password handling. It wasn't working + well for secondary devices when using the "details" plugin. + +* Mon Mar 9 2009 Ray Strode 0.7.0-0.2009.03.09.1 +- Attempt to address some problems with password handling in the + 0.7.0 snapshots + +* Fri Mar 6 2009 Ray Strode 0.7.0-0.2009.03.06.2 +- Fix set default script + +* Fri Mar 6 2009 Ray Strode 0.7.0-0.2009.03.06.1 +- more scriptlet changes to move from solar to spinfinity + +* Fri Mar 6 2009 Ray Strode 0.7.0-0.2009.03.06 +- Updated to development snapshot +- Guess progress better on second boot of persistent live images +- Drop upstream patches +- swap "solar" and "spinfinity" scriptlet behavior + +* Tue Feb 24 2009 Ray Strode 0.6.0-3 +- Add fix-heap-corruptor patch from master. Problem + spotted by Mr. McCann. + +* Wed Dec 17 2008 Ray Strode 0.6.0-2 +- Add patch from drop-nash branch for jeremy + +* Wed Dec 3 2008 Ray Strode 0.6.0-1 +- Update to 0.6.0 + +* Sat Nov 22 2008 Matthias Clasen 0.6.0-0.2008.11.17.3.1 +- Strip %%name from %%summary + +* Mon Nov 17 2008 Ray Strode 0.6.0-0.2008.11.17.3 +- don't give error about missing default.so +- rework packaging of boot-duration to prevent .rpmnew droppings + (bug 469752) + +* Mon Nov 17 2008 Ray Strode 0.6.0-0.2008.11.17.2 +- Don't tell gdm to transition unless booting into runlevel 3 + (bug 471785) + +* Mon Nov 17 2008 Ray Strode 0.6.0-0.2008.11.17.1 +- Crawl progress bar if boot is way off course (Charlie, bug 471089) + +* Fri Nov 14 2008 Ray Strode 0.6.0-0.2008.11.14.2 +- Don't loop forever when tty returns NUL byte (bug 471498) + +* Fri Nov 14 2008 Ray Strode 0.6.0-0.2008.11.14.1 +- Generate solar background dynamically to reduce ondisk size, and + look better at various resolutions (Charlie, bug 471227) + +* Thu Nov 13 2008 Ray Strode 0.6.0-0.2008.11.12.4 +- Move Obsoletes: plymouth-text-and-details-only to base package + so people who had it installed don't end up solar on upgrade + +* Wed Nov 12 2008 Ray Strode 0.6.0-0.2008.11.12.3 +- Redo packaging to work better with minimal installs + (bug 471314) + +* Wed Nov 12 2008 Ray Strode 0.6.0-0.2008.11.12.2 +- Fix plymouth-set-default-plugin to allow external $LIB + +* Wed Nov 12 2008 Ray Strode 0.6.0-0.2008.11.12.1 +- Fix star image (Charlie, bug 471113) + +* Tue Nov 11 2008 Ray Strode 0.6.0-0.2008.11.11.2 +- Improve solar flares (Charlie) +- redirect tty again on --show-splash +- ignore subsequent --hide-splash calls after the first one +- turn off kernel printks during boot up + +* Tue Nov 11 2008 Ray Strode 0.6.0-0.2008.11.11.1 +- Disconnect from tty when init=/bin/bash (bug 471007) + +* Mon Nov 10 2008 Ray Strode 0.6.0-0.2008.11.10.5 +- Force the right arch when calling plymouth-set-default-plugin + (bug 470732) + +* Mon Nov 10 2008 Ray Strode 0.6.0-0.2008.11.10.4 +- Drop comet (bug 468705) +- make boot-duration config(noreplace) + +* Mon Nov 10 2008 Ray Strode 0.6.0-0.2008.11.10.3 +- Don't abort if no splash when root is mounted +- Actually move patches upstream + +* Mon Nov 10 2008 Ray Strode 0.6.0-0.2008.11.10.1 +- Fix feedback loop with plymouth:debug +- Move patches upstream +- Improve comet animation + +* Sun Nov 9 2008 Ray Strode 0.6.0-0.2008.11.06.4 +- Fix up more-debug patch to not assert with plymouth:nolog + (bug 470569) + +* Fri Nov 7 2008 Ray Strode 0.6.0-0.2008.11.06.3 +- add some more debug spew to help debug a problem jlaska is having + +* Thu Nov 6 2008 Ray Strode 0.6.0-0.2008.11.06.2 +- show details plugin on --hide-splash so people can see why the splash + got hidden. + +* Thu Nov 6 2008 Ray Strode 0.6.0-0.2008.11.06.1 +- Don't exit on plymouth --show-splash after sulogin +- Properly retake console after that --show-splash + +* Wed Nov 5 2008 Ray Strode 0.6.0-0.2008.11.05.1 +- reset colors on quit --retain-splash +- fix off by one in damage calculation for label + +* Tue Nov 4 2008 Ray Strode 0.6.0-0.2008.10.30.5 +- Add a sample boot-duration for livecds and first time boots + (bug 469752) + +* Mon Nov 3 2008 Jeremy Katz - 0.6.0-0.2008.10.30.4 +- Allow pre-setting the default plugin when calling plymouth-populate-initrd + +* Fri Oct 31 2008 Ray Strode 0.6.0-0.2008.10.30.3 +- Add pango minimum version to buildrequires + +* Thu Oct 30 2008 Ray Strode 0.6.0-0.2008.10.30.2 +- Update prompt text colors to be legible on new artwork + +* Thu Oct 30 2008 Ray Strode 0.6.0-0.2008.10.30.1 +- Drop upstreamed patches +- Patch from Charlie to update artwork +- Patch from Charlie to make password screen match animation better + (bug 468899) + +* Thu Oct 30 2008 Ray Strode 0.6.0-0.2008.10.27.8 +- Fix escape at password prompt (bug 467533) + +* Tue Oct 28 2008 Ray Strode 0.6.0-0.2008.10.27.7 +- Don't require /bin/plymouth before it's installed (bug 468925) + +* Tue Oct 28 2008 Ray Strode 0.6.0-0.2008.10.27.6 +- Force raw mode for keyboard input with solar and fade-in + (bug 468880) +- make sure windows get closed on exit + +* Mon Oct 27 2008 Ray Strode 0.6.0-0.2008.10.27.5 +- Make "Solar" lock icon the same as the "Spinfinity" one. + +* Mon Oct 27 2008 Ray Strode 0.6.0-0.2008.10.27.4 +- Make plymouth-libs own /usr/lib/plymouth (bug 458071) + +* Mon Oct 27 2008 Ray Strode 0.6.0-0.2008.10.27.3 +- Default to "Solar" instead of "Spinfinity" + +* Mon Oct 27 2008 Ray Strode 0.6.0-0.2008.10.27.2 +- Don't set plymouth default plugin to text in %%post + +* Mon Oct 27 2008 Ray Strode 0.6.0-0.2008.10.27.1 +- Add Charlie patch to dither in lower color modes (bug 468276) + +* Sun Oct 26 2008 Jeremy Katz - 0.6.0-0.2008.10.24.2 +- More requires changing to avoid loops (#467356) + +* Fri Oct 24 2008 Ray Strode 0.6.0-0.2008.10.24.1 +- Add updated progress bar for solar plugin from Charlie +- Log plymouth:debug output to boot log +- Ignore sigpipe signals in daemon + +* Thu Oct 23 2008 Ray Strode 0.6.0-0.2008.10.23.2 +- Bump so name of libply to hopefully force plymouth to get installed + before kernel (or at least make plymouth-libs and plymouth get installed + on the same side of kernel in the transaction). + +* Thu Oct 23 2008 Ray Strode 0.6.0-0.2008.10.23.1 +- Add patch from Charlie to align progress bar to milestones during boot up +- force tty to be sane on exit (bug 467207) + +* Thu Oct 23 2008 Ray Strode 0.6.0-0.2008.10.21.3 +- add empty files section for text-and-details-only so the subpackage + shows up. + +* Wed Oct 22 2008 Ray Strode 0.6.0-0.2008.10.21.2 +- add text-and-details-only subpackage so davej can uninstall + spinfinity, pango, cairo etc from his router. + +* Tue Oct 21 2008 Ray Strode 0.6.0-0.2008.10.21.1 +- Minor event loop changes +- drop upstream patches +- Charlie Brej fix for progress bar resetting when escape gets pressed + +* Tue Oct 21 2008 Ray Strode 0.6.0-0.2008.10.17.4 +- Don't make plymouth-libs require plymouth (more fun with 467356) + +* Mon Oct 20 2008 Ray Strode 0.6.0-0.2008.10.17.3 +- Add initscripts requires (bug 461322) + +* Mon Oct 20 2008 Ray Strode 0.6.0-0.2008.10.17.2 +- Put tty1 back in "cooked" mode when going into runlevel 3 + (bug 467207) + +* Fri Oct 17 2008 Ray Strode 0.6.0-0.2008.10.17.1 +- Clear screen in details plugin when it's done +- Make plymouth-update-initrd a small wrapper around mkinitrd instead + of the broken monstrosity it was before. + +* Fri Oct 17 2008 Ray Strode 0.6.0-0.2008.10.15.3 +- Move plymouth-set-default-plugin, plymouth-update-initrd, and + plymouth-populate-initrd to plymouth-scripts subpackage + (the last fix didn't actually help with bug 467356) + +* Fri Oct 17 2008 Ray Strode 0.6.0-0.2008.10.15.2 +- Move plymouth-set-default-plugin to -libs (might help with bug 467356) +- Fix up requires, provides and postun scripts + +* Wed Oct 15 2008 Ray Strode 0.6.0-0.2008.10.15.1 +- Don't free windows on --hide-splash (fix from Jeremy) + +* Tue Oct 14 2008 Ray Strode 0.6.0-0.2008.10.14.1 +- Solar fixes from Charlie Brej +- Better cpu usage from Charlie + +* Fri Oct 10 2008 Ray Strode 0.6.0-0.2008.10.08.2 +- Add Requires(post): nash (bug 466500) + +* Wed Oct 08 2008 Ray Strode 0.6.0-0.2008.10.08.1 +- Rework how "console=" args done again, to hopefully fix + bug 460565 + +* Mon Oct 06 2008 Ray Strode 0.6.0-0.2008.10.06.1 +- Add "Solar" plugin from Charles Brej +- Move things around so computers with separate /usr boot + (hopefully this won't break things, but it probably will) +- Make GDM show up on vt1 for all plugins + +* Tue Sep 30 2008 Jeremy Katz 0.6.0-0.2008.09.25.2 +- Remove mkinitrd requires to break the dep loop and ensure things + get installed in the right order + +* Thu Sep 25 2008 Ray Strode 0.6.0-0.2008.09.25.1 +- Add new snapshot to fold in Will Woods progress bar, and + move ajax's splash upstream, putting the old text splash + in a "pulser" subpackage + +* Tue Sep 23 2008 Ray Strode 0.6.0-0.2008.09.23.1 +- Last snapshot was broken + +* Mon Sep 22 2008 Ray Strode 0.6.0-0.2008.09.22.1 +- Update to latest snapshot to get better transition support + +* Fri Sep 19 2008 Ray Strode 0.6.0-0.2008.09.15.2 +- Turn on gdm trigger for transition + +* Mon Sep 15 2008 Ray Strode 0.6.0-0.2008.09.15.1 +- add quit command with --retain-splash option to client + +* Wed Sep 10 2008 Ray Strode 0.6.0-0.2008.09.10.1 +- Fix text rendering for certain machines + +* Mon Sep 8 2008 Ray Strode 0.6.0-0.2008.09.05.4 +- More serial console fixes (bug 460565 again) + +* Fri Sep 5 2008 Bill Nottingham 0.6.0-0.2008.09.05.3 +- make the text plugin use the system release info rather than a hardcoded 'Fedora 10' + +* Fri Sep 5 2008 Ray Strode 0.6.0-0.2008.09.05.2 +- Try to support multiple serial consoles better + (bug 460565) + +* Fri Sep 5 2008 Ray Strode 0.6.0-0.2008.09.05.1 +- Fix some confusion with password handling in details plugin + +* Wed Aug 27 2008 Ray Strode 0.6.0-0.2008.08.27.1 +- Fix another crasher for users with encrypted disks (this time in + the text plugin, not the client) + +* Wed Aug 27 2008 Ray Strode 0.6.0-0.2008.08.27 +- Update to latest snapshot +- Add the ability to show text prompts in graphical plugin +- Fix crasher for users with encrypted disks + +* Fri Aug 23 2008 Ray Strode 0.6.0-0.2008.08.22 +- Update to latest snapshot + +* Wed Aug 13 2008 Ray Strode 0.5.0-20.2008.08.13 +- Update previous patch to remove some assertions + +* Wed Aug 13 2008 Ray Strode 0.5.0-19.2008.08.13 +- add a patch that may help serial console users + +* Wed Aug 13 2008 Ray Strode 0.5.0-18.2008.08.13 +- add spool directory to file list + +* Wed Aug 13 2008 Ray Strode 0.5.0-17.2008.08.13 +- Make plymouth-gdm-hooks require plymouth-utils + +* Wed Aug 13 2008 Ray Strode 0.5.0-16.2008.08.13 +- Add a boot failure viewer to login screen (written by Matthias) + +* Tue Aug 12 2008 Adam Jackson 0.5.0-15.2008.08.08 +- plymouth-0.5.0-textbar-hotness.patch: Change the text plugin to a slightly + more traditional progress bar, to maintain the illusion of progress better + than the eternally oscillating cylon. Note: still incomplete. + +* Fri Aug 8 2008 Ray Strode - 0.5.0-14.2008.08.08 +- Don't require a modifiable text color map (may fix serial consoles) + +* Thu Aug 7 2008 Ray Strode - 0.5.0-13.2008.08.07 +- Update to new snapshot which when combined with a new mkinitrd should + make unlocking encrypted root partitions work again + +* Wed Aug 6 2008 Ray Strode - 0.5.0-12.2008.08.06 +- Update to new snapshot which fixes some assertion failures in the + client code + +* Wed Aug 6 2008 Ray Strode - 0.5.0-11.2008.08.01 +- Add Requires(post): plymouth to plugins so they get plymouth-set-default-plugin (bug 458071) + +* Tue Aug 5 2008 Ray Strode - 0.5.0-10.2008.08.01 +- Add plymouth dirs to file list (bug 457871) + +* Fri Aug 1 2008 Ray Strode - 0.5.0-9.2008.08.01 +- new plymout-populate-initrd features don't work with the set -e at the + top of it. + +* Thu Jul 31 2008 Ray Strode - 0.5.0-8.2008.08.01 +- Update to another snapshot to actually get new + plymouth-populate-initrd features + +* Thu Jul 31 2008 Ray Strode - 0.5.0-8.2008.07.31 +- Update to snapshot to get new plymouth-populate-initrd features +- Make removing rhgb use details plugin instead of exiting + +* Thu Jul 31 2008 Peter Jones - 0.5.0-7 +- Make it a mkinitrd requires instead of a nash requires (that will + still pull in nash, but we need mkinitrd for newer plymouth-populate-initrd) + +* Wed Jul 30 2008 Ray Strode - 0.5.0-6 +- Add nash requires + +* Wed Jul 9 2008 Ray Strode - 0.5.0-5 +- Use a new heuristic for finding libdir, since the old + one falls over on ia64 + +* Wed Jul 9 2008 Ray Strode - 0.5.0-4 +- add ctrl-r to rotate text color palette back to stock values + +* Tue Jul 8 2008 Ray Strode - 0.5.0-3 +- Fix populate script on ppc (bug 454353) + +* Tue Jul 1 2008 Ray Strode - 0.5.0-2 +- Pull in spinfinity by default. This whole "figure out + which plugin to use" set of scripts and scriptlets + needs work. We need to separate distro default from + user choice. + +* Thu Jul 1 2008 Ray Strode - 0.5.0-1 +- Add new client "ask-for-password" command which feeds + the user input to a program instead of standard output, + and loops when the program returns non-zero exit status. + +* Thu Jun 26 2008 Ray Strode - 0.4.5-1 +- Update to version 0.4.5 +- Make text plugin blue and less 80s + +* Wed Jun 25 2008 Ray Strode - 0.4.0-4 +- Make "Password: " show up correctly in text plugin + +* Wed Jun 25 2008 Ray Strode - 0.4.0-3 +- Require elfutils (bug 452797) + +* Sun Jun 22 2008 Ray Strode - 0.4.0-2 +- Make plymouth-set-default-plugin --reset choose the latest + installed plugin, not the earliest + +* Sun Jun 22 2008 Ray Strode - 0.4.0-1 +- Update to version 0.4.0 +- Only run if rhgb is on kernel command line +- Make text plugin more animated + +* Mon Jun 16 2008 Ray Strode - 0.3.2-2 +- dont go back to text mode on exit + +* Mon Jun 16 2008 Ray Strode - 0.3.2-1 +- Update to version 0.3.2 +- show gradient in spinfinity plugin +- Drop fade out in spinfinity plugin +- fix throbber placement +- rename graphical.so to default.so + +* Thu Jun 12 2008 Ray Strode - 0.3.1-3 +- scriplet should be preun, not postun + +* Thu Jun 12 2008 Ray Strode - 0.3.1-2 +- Fix postun scriptlet + +* Thu Jun 12 2008 Ray Strode - 0.3.1-1 +- Update to version 0.3.1 +- Don't ship generated initrd scripts in tarball + +* Thu Jun 12 2008 Ray Strode - 0.3.0-1 +- Update to version 0.3.0 +- Better plugin handling +- Better integration with mkinitrd (pending mkinitrd changes) +- random bug fixes + +* Mon Jun 9 2008 Ray Strode - 0.2.0-1 +- Update to version 0.2.0 +- Integrate more tightly with nash (pending nash changes) +- ship libs for out of tree splash plugins +- gradient support +- random bug fixes + +* Fri May 30 2008 Ray Strode - 0.1.0-1 +- Initial import, version 0.1.0