diff --git a/.gitignore b/.gitignore index bb55bc2..6d1bba1 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ plymouth-0.8.4.tar.bz2 /plymouth-0.9.4.tar.xz /plymouth-a8aad27.tar.gz /plymouth-32c097c.tar.gz +/plymouth-58a7289.tar.gz diff --git a/0001-ply-capslock-icon-Do-not-draw-on-free.patch b/0001-ply-capslock-icon-Do-not-draw-on-free.patch new file mode 100644 index 0000000..cd483dd --- /dev/null +++ b/0001-ply-capslock-icon-Do-not-draw-on-free.patch @@ -0,0 +1,80 @@ +From d5afbcc4475d2cc1944ef51d4fe787792dc1c893 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 18 Feb 2020 11:45:55 +0100 +Subject: [PATCH 1/7] ply-capslock-icon: Do not draw on free + +One case where the various widgets are being freed is the pixel-display-s +being removed because of a monitor being hot(un)plugged. When the monitor +configuration changes ply-device-manager removes all old pixel-displays +and then adds the pixel-displays from the new config. + +Calling ply_pixel_display_draw_area on a pixel-display which is about to be +freed is a bad idea, if the monitor was actually unplugged this leads to +various sort of errors, including crashes in some cases. + +ply-capslock-icon is a recently added widget, none of the other +(older) widgets redraw themselves as hidden on free because there is +no reason to do this. + +This commit adds a new stop_polling helper and replaces the troublesome +hide call (which involves redrawing) with this. This fixes plymouth +sometimes crashing when monitors are hot(un)plugged while plymouth is +running. + +Signed-off-by: Hans de Goede +--- + src/libply-splash-graphics/ply-capslock-icon.c | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git a/src/libply-splash-graphics/ply-capslock-icon.c b/src/libply-splash-graphics/ply-capslock-icon.c +index 7d19a18..e60457f 100644 +--- a/src/libply-splash-graphics/ply-capslock-icon.c ++++ b/src/libply-splash-graphics/ply-capslock-icon.c +@@ -52,6 +52,8 @@ struct _ply_capslock_icon + bool is_on; + }; + ++static void ply_capslock_stop_polling (ply_capslock_icon_t *capslock_icon); ++ + ply_capslock_icon_t * + ply_capslock_icon_new (const char *image_dir) + { +@@ -74,7 +76,7 @@ ply_capslock_icon_free (ply_capslock_icon_t *capslock_icon) + return; + + if (!capslock_icon->is_hidden) +- ply_capslock_icon_hide (capslock_icon); ++ ply_capslock_stop_polling (capslock_icon); + + if (capslock_icon->buffer != NULL) + ply_pixel_buffer_free (capslock_icon->buffer); +@@ -121,6 +123,14 @@ on_timeout (void *user_data, + on_timeout, capslock_icon); + } + ++static void ++ply_capslock_stop_polling (ply_capslock_icon_t *capslock_icon) ++{ ++ ply_event_loop_stop_watching_for_timeout (capslock_icon->loop, ++ (ply_event_loop_timeout_handler_t) ++ on_timeout, capslock_icon); ++} ++ + bool + ply_capslock_icon_load (ply_capslock_icon_t *capslock_icon) + { +@@ -183,10 +193,8 @@ ply_capslock_icon_hide (ply_capslock_icon_t *capslock_icon) + capslock_icon->is_hidden = true; + + ply_capslock_icon_draw (capslock_icon); ++ ply_capslock_stop_polling (capslock_icon); + +- ply_event_loop_stop_watching_for_timeout (capslock_icon->loop, +- (ply_event_loop_timeout_handler_t) +- on_timeout, capslock_icon); + capslock_icon->loop = NULL; + capslock_icon->display = NULL; + } +-- +2.25.1 + diff --git a/0002-ply-keymap-icon-Do-not-draw-on-free.patch b/0002-ply-keymap-icon-Do-not-draw-on-free.patch new file mode 100644 index 0000000..68de947 --- /dev/null +++ b/0002-ply-keymap-icon-Do-not-draw-on-free.patch @@ -0,0 +1,44 @@ +From c9b084882bb26a339acb06aa96f748c8f6b465e4 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 18 Feb 2020 11:50:17 +0100 +Subject: [PATCH 2/7] ply-keymap-icon: Do not draw on free + +One case where the various widgets are being freed is the pixel-display-s +being removed because of a monitor being hot(un)plugged. When the monitor +configuration changes ply-device-manager removes all old pixel-displays +and then adds the pixel-displays from the new config. + +Calling ply_pixel_display_draw_area on a pixel-display which is about to be +freed is a bad idea, if the monitor was actually unplugged this leads to +various sort of errors, including crashes in some cases. + +ply-keymap-icon is a recently added widget, none of the other +(older) widgets redraw themselves as hidden on free because there is +no reason to do this. + +This commit removes the troublesome hide call (which involves redrawing). +This fixes plymouth sometimes crashing when monitors are hot(un)plugged +while plymouth is running. + +Signed-off-by: Hans de Goede +--- + src/libply-splash-graphics/ply-keymap-icon.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/src/libply-splash-graphics/ply-keymap-icon.c b/src/libply-splash-graphics/ply-keymap-icon.c +index f9ec614..d537527 100644 +--- a/src/libply-splash-graphics/ply-keymap-icon.c ++++ b/src/libply-splash-graphics/ply-keymap-icon.c +@@ -130,9 +130,6 @@ ply_keymap_icon_free (ply_keymap_icon_t *keymap_icon) + if (keymap_icon == NULL) + return; + +- if (!keymap_icon->is_hidden) +- ply_keymap_icon_hide (keymap_icon); +- + ply_pixel_buffer_free (keymap_icon->icon_buffer); + ply_pixel_buffer_free (keymap_icon->keymap_buffer); + +-- +2.25.1 + diff --git a/0003-ply-throbber-Do-not-redraw-when-we-need-to-stop-thro.patch b/0003-ply-throbber-Do-not-redraw-when-we-need-to-stop-thro.patch new file mode 100644 index 0000000..a3e8241 --- /dev/null +++ b/0003-ply-throbber-Do-not-redraw-when-we-need-to-stop-thro.patch @@ -0,0 +1,88 @@ +From 82a1aaaaddeb4dc65728c28d6ccc776f38cd6f5d Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 18 Feb 2020 11:51:03 +0100 +Subject: [PATCH 3/7] ply-throbber: Do not redraw when we need to stop + throbbing on free + +One case where the various widgets are being freed is the pixel-display-s +being removed because of a monitor being hot(un)plugged. When the monitor +configuration changes ply-device-manager removes all old pixel-displays +and then adds the pixel-displays from the new config. + +Calling ply_pixel_display_draw_area on a pixel-display which is about to be +freed is a bad idea, if the monitor was actually unplugged this leads to +various sort of errors, including crashes in some cases. + +ply-throbber is the only (older) widget which does a redraw on free, +this likely was not noticed until now because typically the throbber +will already have been stopped on free. + +This commit adds a redraw parameter to ply_throbber_stop_now and sets +this to false when calling ply_throbber_stop_now from ply_throbber_free. +This fixes plymouth sometimes crashing when monitors are hot(un)plugged +while plymouth is running. + +Signed-off-by: Hans de Goede +--- + src/libply-splash-graphics/ply-throbber.c | 21 ++++++++++++--------- + 1 file changed, 12 insertions(+), 9 deletions(-) + +diff --git a/src/libply-splash-graphics/ply-throbber.c b/src/libply-splash-graphics/ply-throbber.c +index a4311fd..bf0855e 100644 +--- a/src/libply-splash-graphics/ply-throbber.c ++++ b/src/libply-splash-graphics/ply-throbber.c +@@ -78,7 +78,7 @@ struct _ply_throbber + uint32_t is_stopped : 1; + }; + +-static void ply_throbber_stop_now (ply_throbber_t *throbber); ++static void ply_throbber_stop_now (ply_throbber_t *throbber, bool redraw); + + ply_throbber_t * + ply_throbber_new (const char *image_dir, +@@ -126,7 +126,7 @@ ply_throbber_free (ply_throbber_t *throbber) + return; + + if (!throbber->is_stopped) +- ply_throbber_stop_now (throbber); ++ ply_throbber_stop_now (throbber, false); + + ply_throbber_remove_frames (throbber); + ply_array_free (throbber->frames); +@@ -324,15 +324,18 @@ ply_throbber_start (ply_throbber_t *throbber, + } + + static void +-ply_throbber_stop_now (ply_throbber_t *throbber) ++ply_throbber_stop_now (ply_throbber_t *throbber, bool redraw) + { + throbber->is_stopped = true; + +- ply_pixel_display_draw_area (throbber->display, +- throbber->x, +- throbber->y, +- throbber->frame_area.width, +- throbber->frame_area.height); ++ if (redraw) { ++ ply_pixel_display_draw_area (throbber->display, ++ throbber->x, ++ throbber->y, ++ throbber->frame_area.width, ++ throbber->frame_area.height); ++ } ++ + if (throbber->loop != NULL) { + ply_event_loop_stop_watching_for_timeout (throbber->loop, + (ply_event_loop_timeout_handler_t) +@@ -356,7 +359,7 @@ ply_throbber_stop (ply_throbber_t *throbber, + } + + if (stop_trigger == NULL) { +- ply_throbber_stop_now (throbber); ++ ply_throbber_stop_now (throbber, true); + return; + } + +-- +2.25.1 + diff --git a/0004-event-loop-Fix-debug-log-failed-to-delete-fd-from-ep.patch b/0004-event-loop-Fix-debug-log-failed-to-delete-fd-from-ep.patch new file mode 100644 index 0000000..1d7e4ec --- /dev/null +++ b/0004-event-loop-Fix-debug-log-failed-to-delete-fd-from-ep.patch @@ -0,0 +1,37 @@ +From b6ae2adabfef64ace22698f76afae454a6419492 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 18 Feb 2020 21:16:38 +0100 +Subject: [PATCH 4/7] event-loop: Fix debug-log "failed to delete fd # from + epoll watch list" spam + +The boot server uses a disconnect handler which closes the fd, this +causes deleting the fd from the epoll watch list to fail with an EBADF +error. Since the fd was closed it was already removed from the epoll +watch list, so the failure is harmless, silence these errors getting logged +to the debug logs. + +Signed-off-by: Hans de Goede +--- + src/libply/ply-event-loop.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/libply/ply-event-loop.c b/src/libply/ply-event-loop.c +index 0e8ad7c..5eb601c 100644 +--- a/src/libply/ply-event-loop.c ++++ b/src/libply/ply-event-loop.c +@@ -641,7 +641,11 @@ ply_event_loop_remove_source_node (ply_event_loop_t *loop, + + status = epoll_ctl (loop->epoll_fd, EPOLL_CTL_DEL, source->fd, NULL); + +- if (status < 0) ++ /* ++ * EBADF means that there was a disconnect handler, which has ++ * closed the fd, which is fine, do not log an error for this. ++ */ ++ if (status < 0 && errno != EBADF) + ply_trace ("failed to delete fd %d from epoll watch list: %m", source->fd); + source->is_getting_polled = false; + } +-- +2.25.1 + diff --git a/0005-event-loop-Remove-ply_trace-calls-around-the-disconn.patch b/0005-event-loop-Remove-ply_trace-calls-around-the-disconn.patch new file mode 100644 index 0000000..79dc4dc --- /dev/null +++ b/0005-event-loop-Remove-ply_trace-calls-around-the-disconn.patch @@ -0,0 +1,43 @@ +From 9c25da99889439924eeae953f357233bdb99d569 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 18 Feb 2020 21:19:38 +0100 +Subject: [PATCH 5/7] event-loop: Remove ply_trace calls around the disconnect + handler + +Doing a ply_trace both before and after the disconnect handler, which +gets called every time a boot client asks something of us through by +calling /sbin/plymouth leads to a lot of not really informative messages +in the debug-log. + +This removes the 2 ply_trace calls around the disconnect handlers to make +the logs easier to read. + +Signed-off-by: Hans de Goede +--- + src/libply/ply-event-loop.c | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +diff --git a/src/libply/ply-event-loop.c b/src/libply/ply-event-loop.c +index 5eb601c..57751c2 100644 +--- a/src/libply/ply-event-loop.c ++++ b/src/libply/ply-event-loop.c +@@ -1061,15 +1061,9 @@ ply_event_loop_handle_disconnect_for_source (ply_event_loop_t *loop, + destination = (ply_event_destination_t *) ply_list_node_get_data (node); + next_node = ply_list_get_next_node (source->destinations, node); + +- if (destination->disconnected_handler != NULL) { +- ply_trace ("calling disconnected_handler %p for fd %d", +- destination->disconnected_handler, source->fd); ++ if (destination->disconnected_handler != NULL) + destination->disconnected_handler (destination->user_data, source->fd); + +- ply_trace ("done calling disconnected_handler %p for fd %d", +- destination->disconnected_handler, source->fd); +- } +- + node = next_node; + } + } +-- +2.25.1 + diff --git a/0006-two-step-Add-UseEndAnimation-setting.patch b/0006-two-step-Add-UseEndAnimation-setting.patch new file mode 100644 index 0000000..dc4619c --- /dev/null +++ b/0006-two-step-Add-UseEndAnimation-setting.patch @@ -0,0 +1,170 @@ +From aba38f13c1af535efefb09683ced0920600e7dde Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 18 Feb 2020 22:03:58 +0100 +Subject: [PATCH 6/7] two-step: Add UseEndAnimation setting + +We try to start the end animation early based on our progress accounting +but this is highly unreliable because e.g.: +-It counts time to enter the diskcrypt passwd as normal boot time, while + this varies wildly from boot to boot +-Boot times for laptops can differ significantly between docked / undocked + state + +Between gdm calling /bin/plymouth deactivate and the drm plugin's deactivate +method getting called there can be e.g. 2.1 seconds (from a random boot), +with a theoretical maximum of 3 seconds (2 seconds to finish the throbber + +1 second for the end animation). + +On a modern system userland boot should be able to finish in say 5 seconds, +making gdm wait an additional 1 - 3 seconds for deactivation is a huge amount +of extra wait time! + +This commit adds a new "UseEndAnimation" option to the two-step plugin, +which defaults to true. Setting this to false makes deactivation immediate. + +This works nicely with the spinner (and bgrt) themes since we do not really +do anything special in the end animation there anyways and since we fade-over +into gdm things will still look ok, while shaving a signifcant chunk of our +boot time. + +Signed-off-by: Hans de Goede +--- + src/plugins/splash/two-step/plugin.c | 42 +++++++++++++++++++++++++--- + themes/bgrt/bgrt.plymouth.in | 3 ++ + themes/spinner/spinner.plymouth.in | 9 ++++++ + 3 files changed, 50 insertions(+), 4 deletions(-) + +diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c +index 3dfb011..964855c 100644 +--- a/src/plugins/splash/two-step/plugin.c ++++ b/src/plugins/splash/two-step/plugin.c +@@ -121,6 +121,7 @@ typedef struct + bool progress_bar_show_percent_complete; + bool use_progress_bar; + bool use_animation; ++ bool use_end_animation; + bool use_firmware_background; + char *title; + char *subtitle; +@@ -262,12 +263,13 @@ view_free (view_t *view) + static void + view_load_end_animation (view_t *view) + { ++ ply_boot_splash_plugin_t *plugin = view->plugin; + const char *animation_prefix; +- ply_boot_splash_plugin_t *plugin; + +- ply_trace ("loading animation"); ++ if (!plugin->mode_settings[plugin->mode].use_end_animation) ++ return; + +- plugin = view->plugin; ++ ply_trace ("loading animation"); + + switch (plugin->mode) { + case PLY_BOOT_SPLASH_MODE_BOOT_UP: +@@ -315,6 +317,7 @@ view_load_end_animation (view_t *view) + ply_trace ("optional animation didn't load"); + ply_animation_free (view->end_animation); + view->end_animation = NULL; ++ plugin->mode_settings[plugin->mode].use_end_animation = false; + } + + static bool +@@ -995,6 +998,13 @@ load_mode_settings (ply_boot_splash_plugin_t *plugin, + else + settings->use_animation = !settings->use_progress_bar; + ++ /* This defaults to true for compat. with older themes */ ++ if (ply_key_file_has_key (key_file, group_name, "UseEndAnimation")) ++ settings->use_end_animation = ++ ply_key_file_get_bool (key_file, group_name, "UseEndAnimation"); ++ else ++ settings->use_end_animation = true; ++ + /* If any mode uses the firmware background, then we need to load it */ + if (settings->use_firmware_background) + plugin->use_firmware_background = true; +@@ -1260,6 +1270,25 @@ start_end_animation (ply_boot_splash_plugin_t *plugin, + return; + } + ++ if (!plugin->mode_settings[plugin->mode].use_end_animation) { ++ node = ply_list_get_first_node (plugin->views); ++ while (node != NULL) { ++ view = ply_list_node_get_data (node); ++ ++ ply_progress_bar_hide (view->progress_bar); ++ ++ if (view->throbber != NULL) ++ ply_throbber_stop (view->throbber, NULL); ++ ++ if (view->progress_animation != NULL) ++ ply_progress_animation_hide (view->progress_animation); ++ ++ node = ply_list_get_next_node (plugin->views, node); ++ } ++ ply_trigger_pull (trigger, NULL); ++ return; ++ } ++ + ply_trace ("starting end animation"); + + node = ply_list_get_first_node (plugin->views); +@@ -1718,7 +1747,12 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin, + if (plugin->is_idle) + return; + +- if (percent_done >= SHOW_ANIMATION_PERCENT) { ++ /* ++ * If we do not have an end animation, we keep showing progress until ++ * become_idle gets called. ++ */ ++ if (plugin->mode_settings[plugin->mode].use_end_animation && ++ percent_done >= SHOW_ANIMATION_PERCENT) { + if (plugin->stop_trigger == NULL) { + ply_trace ("boot progressed to end"); + +diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in +index ac07bc9..994a995 100644 +--- a/themes/bgrt/bgrt.plymouth.in ++++ b/themes/bgrt/bgrt.plymouth.in +@@ -25,12 +25,15 @@ DialogClearsFirmwareBackground=true + MessageBelowAnimation=true + + [boot-up] ++UseEndAnimation=false + UseFirmwareBackground=true + + [shutdown] ++UseEndAnimation=false + UseFirmwareBackground=true + + [reboot] ++UseEndAnimation=false + UseFirmwareBackground=true + + [updates] +diff --git a/themes/spinner/spinner.plymouth.in b/themes/spinner/spinner.plymouth.in +index 5e5078e..88121c5 100644 +--- a/themes/spinner/spinner.plymouth.in ++++ b/themes/spinner/spinner.plymouth.in +@@ -23,6 +23,15 @@ ProgressBarBackgroundColor=0x606060 + ProgressBarForegroundColor=0xffffff + MessageBelowAnimation=true + ++[boot-up] ++UseEndAnimation=false ++ ++[shutdown] ++UseEndAnimation=false ++ ++[reboot] ++UseEndAnimation=false ++ + [updates] + SuppressMessages=true + ProgressBarShowPercentComplete=true +-- +2.25.1 + diff --git a/0007-themes-Drop-UseFirmwareBackground-true-from-spinner-.patch b/0007-themes-Drop-UseFirmwareBackground-true-from-spinner-.patch new file mode 100644 index 0000000..deae80d --- /dev/null +++ b/0007-themes-Drop-UseFirmwareBackground-true-from-spinner-.patch @@ -0,0 +1,41 @@ +From a575605b7dd835bab626f07ff37f283049da7b3c Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 18 Feb 2020 22:38:06 +0100 +Subject: [PATCH 7/7] themes: Drop UseFirmwareBackground=true from spinner/bgrt + firmware-upgrade settings + +The spinner theme should never have UseFirmwareBackground=true and in the +bgrt case we should not use it for modes which set a Title as the Title +location will conflict with the firmware background vendor logo. + +Signed-off-by: Hans de Goede +--- + themes/bgrt/bgrt.plymouth.in | 1 - + themes/spinner/spinner.plymouth.in | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/themes/bgrt/bgrt.plymouth.in b/themes/bgrt/bgrt.plymouth.in +index 994a995..5455eb7 100644 +--- a/themes/bgrt/bgrt.plymouth.in ++++ b/themes/bgrt/bgrt.plymouth.in +@@ -54,6 +54,5 @@ _SubTitle=Do not turn off your computer + SuppressMessages=true + ProgressBarShowPercentComplete=true + UseProgressBar=true +-UseFirmwareBackground=true + _Title=Upgrading Firmware... + _SubTitle=Do not turn off your computer +diff --git a/themes/spinner/spinner.plymouth.in b/themes/spinner/spinner.plymouth.in +index 88121c5..0687d12 100644 +--- a/themes/spinner/spinner.plymouth.in ++++ b/themes/spinner/spinner.plymouth.in +@@ -50,6 +50,5 @@ _SubTitle=Do not turn off your computer + SuppressMessages=true + ProgressBarShowPercentComplete=true + UseProgressBar=true +-UseFirmwareBackground=true + _Title=Upgrading Firmware... + _SubTitle=Do not turn off your computer +-- +2.25.1 + diff --git a/plymouth.rpmlintrc b/plymouth.rpmlintrc index bb84726..c048ed1 100644 --- a/plymouth.rpmlintrc +++ b/plymouth.rpmlintrc @@ -8,3 +8,5 @@ addFilter("non-readable") # Upstream (and RHEL) has named the logrotate file after the logfilename # rather then after the package-name addFilter("incoherent-logrotate-file") +# No provides, the throbgress plugin has been removed upstream +addFilter("W: obsolete-not-provided plymouth-plugin-throbgress") \ No newline at end of file diff --git a/plymouth.spec b/plymouth.spec index 039daa2..3bfbfa9 100644 --- a/plymouth.spec +++ b/plymouth.spec @@ -1,11 +1,11 @@ -%global commit 32c097cbcae1d106db4a75337a78310ad22267be -%global commitdate 20191022 +%global commit 58a728982cfa911a06326620a599333aea38960e +%global commitdate 20200306 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Summary: Graphical Boot Animation and Logger Name: plymouth Version: 0.9.4 -Release: 12.%{commitdate}git%{shortcommit}%{?dist} +Release: 13.%{commitdate}git%{shortcommit}%{?dist} License: GPLv2+ URL: http://www.freedesktop.org/wiki/Software/Plymouth @@ -16,7 +16,21 @@ Source2: charge.plymouth # but we really do not want to change soname in Fedora during a cycle. # The only libply* user in Fedora outside this pkg is plymouth-theme-breeze # and that does not need the removed symbols. -Patch1: 0001-Revert-configure-bump-so-name.patch +Patch0: 0001-Revert-configure-bump-so-name.patch + +# Patches pending upstream +# https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/92 +# For rhbz 1810070 +Patch1: 0001-ply-capslock-icon-Do-not-draw-on-free.patch +Patch2: 0002-ply-keymap-icon-Do-not-draw-on-free.patch +Patch3: 0003-ply-throbber-Do-not-redraw-when-we-need-to-stop-thro.patch +# https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/93 +Patch4: 0004-event-loop-Fix-debug-log-failed-to-delete-fd-from-ep.patch +Patch5: 0005-event-loop-Remove-ply_trace-calls-around-the-disconn.patch +# https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/94 +Patch6: 0006-two-step-Add-UseEndAnimation-setting.patch +# https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/95 +Patch7: 0007-themes-Drop-UseFirmwareBackground-true-from-spinner-.patch BuildRequires: gcc libtool git BuildRequires: pkgconfig(libdrm) @@ -129,24 +143,14 @@ This package contains the "space-flares" boot splash plugin for Plymouth. It features a corner image with animated flares. -%package plugin-throbgress -Summary: Plymouth "Throbgress" plugin -Requires: %{name} = %{version}-%{release} -Requires: %{name}-graphics-libs = %{version}-%{release} -Requires: plymouth-plugin-label = %{version}-%{release} - -%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 plugin-two-step Summary: Plymouth "two-step" plugin Requires: %{name} = %{version}-%{release} Requires: %{name}-graphics-libs = %{version}-%{release} Requires: plymouth-plugin-label = %{version}-%{release} +# Spinifinity like themes should now use two-step instead of throbgress +# No provides, the throbgress plugin has been removed upstream +Obsoletes: %{name}-plugin-throbgress < %{version}-%{release} %description plugin-two-step This package contains the "two-step" boot splash plugin for @@ -200,7 +204,7 @@ Plymouth. It features a blue flamed sun with animated solar flares. %package theme-spinfinity Summary: Plymouth "Spinfinity" theme -Requires: %{name}-plugin-throbgress = %{version}-%{release} +Requires: %{name}-plugin-two-step = %{version}-%{release} Requires(post): plymouth-scripts %description theme-spinfinity @@ -222,7 +226,7 @@ Plymouth. It features a small spinner on a dark background. %prep -%autosetup -n %{name}-%{commit} +%autosetup -p1 -n %{name}-%{commit} autoreconf --install --symlink -Wno-portability # Change the default theme sed -i -e 's/spinner/bgrt/g' src/plymouthd.defaults @@ -380,9 +384,6 @@ fi %files plugin-space-flares %{_libdir}/plymouth/space-flares.so -%files plugin-throbgress -%{_libdir}/plymouth/throbgress.so - %files plugin-two-step %{_libdir}/plymouth/two-step.so @@ -410,6 +411,13 @@ fi %changelog +* Mon Mar 9 2020 Hans de Goede - 0.9.4-13.20200306git58a7289 +- Add patches fixing crash on monitor hot(un)plug (rhbz#1809681) +- Add patches fixing delay between gdm telling us to deactivate and + us telling gdm it is ok to continue +- Drop plymouth-plugin-throbgress sub-package, the spinfinity theme now + uses the two-step plugin + * Thu Jan 30 2020 Fedora Release Engineering - 0.9.4-12.20191022git32c097c - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index 7802306..0eab27b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (plymouth-32c097c.tar.gz) = 479d9a7b27ad676fb3ce118269da947ebb95c2d7800945ea261d8aa70d0456ad51d51d5294b7d1a4d0ee87e248b6d3ff68334e4f9d3297ecda0c8131a44da979 +SHA512 (plymouth-58a7289.tar.gz) = e3d8daebc24f8c53ea1de819170a4ba9842ec1a98904243802e1f15b51b6aa234ef8d22db44b90b8fa42af960e2c71207b3e326c389c12d83327655149e84b2a