Commit graph

2701 commits

Author SHA1 Message Date
muzena
48cbafd4b1 Add Croatian language 2022-01-11 14:25:25 +00:00
Ray Strode
202646d2fb Merge branch 'fix-configure-help-string' into 'main'
configure: Fix help string for --with-background-end-color-stop

See merge request plymouth/plymouth!149
2022-01-11 14:24:31 +00:00
João Paulo Rechi Vita
df10062109 configure: Fix help string for --with-background-end-color-stop
Looks like it was copied from --with-background-start-color-stop and
never updated to reflect the option it is describing.
2022-01-11 14:24:14 +00:00
Ray Strode
1906f04428 Merge branch 'fix-twostep-comments' into 'main'
two-step: Fix typos and missing words in comments

See merge request plymouth/plymouth!150
2022-01-11 14:23:40 +00:00
João Paulo Rechi Vita
315dc61851 two-step: Fix typos and missing words in comments 2021-12-01 10:32:06 -05:00
Ray Strode
5b91b9ed84 Merge branch 'configurable-show-animation-fraction' into 'main'
two-step: Make SHOW_ANIMATION_FRACTION configurable

See merge request plymouth/plymouth!151
2021-11-16 17:31:55 +00:00
Jasper St. Pierre
4d3f553efc two-step: Make SHOW_ANIMATION_FRACTION configurable
Allow themes to configure at which percentage of the boot progress the
animation should transition to the end animation.

At Endless we use this to only show the end animation from the start of
the boot splash by setting it to 0.0.
2021-11-15 19:25:59 -05:00
Ray Strode
18363cd887 Merge branch 'honour-rotation' into 'main'
drm: Honour screen rotation when detecting HiDPI

See merge request plymouth/plymouth!147
2021-10-18 23:45:12 +00:00
Emil Velikov
a76fe9a069 drm: Honour screen rotation when detecting HiDPI
Currently if the screen is rotated by 90 degrees, the effective
width/height will be swapped. Thus we will incorrectly detect the panel
as HiDPI.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2021-10-18 11:58:29 +01:00
Ray Strode
bad6d41504 Merge branch 'themepath-cfg' into 'master'
main: add ThemePath configuration option

See merge request plymouth/plymouth!142
2021-09-27 10:27:11 +00:00
Alfonso Sánchez-Beato
3003cabf96 scripts: support populating from configurable theme dir
Support populating initramfs with themes from the configurable theme
directory.
2021-09-27 10:03:53 +00:00
Alfonso Sánchez-Beato
3fa05404b0 main: add ThemeDir configuration option
Add a new option called ThemeDir to the configuration file, so a
configurable directory can be used to ship themes. The option applies
only to the theme specified in the same configuration file.
2021-09-27 10:03:53 +00:00
Alfonso Sánchez-Beato
a3607d7ad4 main: refactor code for searching the theme path
Refactor code that searched for the theme configuration so it can be
reused.
2021-09-27 10:03:53 +00:00
Alfonso Sánchez-Beato
a4a1afc83f ply-utils: add macro to count the number of elements in an array 2021-09-27 10:03:53 +00:00
Alfonso Sánchez-Beato
4bf060c5dd main: free path variables before exiting
Free path variables before exiting so the code is more asan/valgrind
friendly.
2021-09-27 10:03:53 +00:00
Ray Strode
dae14773bd Merge branch 'weblate-plymouth-master' into 'master'
Translations update from Weblate

See merge request plymouth/plymouth!145
2021-09-23 19:00:10 +00:00
Pavel Borecki
4ddeccb8cb Translated using Weblate (Czech)
Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Pavel Borecki <pavel.borecki@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/cs/
Translation: plymouth/master
2021-09-23 11:05:04 +02:00
Ray Strode
1297d4c3ee Merge branch 'crash_on_hide_message' into 'master'
Fix crash when hiding message in details splash mode

See merge request plymouth/plymouth!140
2021-09-22 14:33:26 +00:00
i.Dark_Templar
6f480678a6 Fix crash when hiding message in details splash mode 2021-09-22 14:26:27 +00:00
Ray Strode
ea99a2e140 Merge branch 'ignore-serial-option' into 'master'
main: add ignore-serial-consoles option

See merge request plymouth/plymouth!143
2021-09-22 14:22:48 +00:00
Alfonso Sánchez-Beato
0c503db27e main: add ignore-serial-consoles option
Add --ignore-serial-consoles option so we can ignore serial consoles
also when starting plymouthd and not only from the kernel command
line.
2021-09-22 14:18:35 +00:00
Ray Strode
2a4fbd8978 Merge branch 'weblate-plymouth-master' into 'master'
Translations update from Weblate

See merge request plymouth/plymouth!139
2021-09-22 14:17:05 +00:00
Jan Kuparinen
12b4608b8a Translated using Weblate (Finnish)
Currently translated at 100.0% (7 of 7 strings)

Added translation using Weblate (Finnish)

Co-authored-by: Jan Kuparinen <copper_fin@hotmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/fi/
Translation: plymouth/master
2021-09-21 19:10:02 +00:00
Hela Basa
5c1aa0aaf6 Translated using Weblate (Sinhala)
Currently translated at 14.2% (1 of 7 strings)

Co-authored-by: Hela Basa <r45xveza@pm.me>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/si/
Translation: plymouth/master
2021-09-21 19:10:02 +00:00
Liu Tao
4075ea7521 Translated using Weblate (Chinese (Simplified) (zh_CN))
Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Liu Tao <lyuutau@outlook.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/zh_CN/
Translation: plymouth/master
2021-09-21 19:10:02 +00:00
Danial Behzadi
ece1074efe Translated using Weblate (Persian)
Currently translated at 100.0% (7 of 7 strings)

Added translation using Weblate (Persian)

Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/fa/
Translation: plymouth/master
2021-09-21 19:10:02 +00:00
Fabio Tomat
f9577dbc15 Translated using Weblate (Friulian)
Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Fabio Tomat <f.t.public@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/fur/
Translation: plymouth/master
2021-09-21 19:10:02 +00:00
Yauhen Bugamol
c5da4acab2 Translated using Weblate (Belarusian)
Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Yauhen Bugamol <3abac@3a.by>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/be/
Translation: plymouth/master
2021-09-21 19:10:02 +00:00
Emilio Herrera
e9cb6294d6 Translated using Weblate (Spanish)
Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Emilio Herrera <ehespinosa57@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/es/
Translation: plymouth/master
2021-09-21 19:10:02 +00:00
Ray Strode
8ff8a78a35 Merge branch 'master' into 'master'
main: Ensure that doubles in config files are parsed with '.'

Closes #153

See merge request plymouth/plymouth!144
2021-09-21 14:40:01 +00:00
Robin Ebert
07458698b1
main: Ensure that doubles in config files are parsed with '.' 2021-09-21 16:11:16 +02:00
Hans de Goede
e55447500f Merge branch 'rework-shutdown-handling' into 'master'
Rework shutdown handling

See merge request plymouth/plymouth!138
2021-04-06 11:53:40 +00:00
Ray Strode
2a7755febb systemd: Add plymouth-switch-root-initramfs.service to switch back to initramfs on shutdown
Add a plymouth-switch-root-initramfs.service, which will call
"plymouth update-root-fs --new-root-dir=/run/initramfs" to switch back
to the initramfs (when applicable).

Systemd will run this service before plymouthd receives the SIGTERM on
shutdown, so this will cause the plymouthd-fd-escrow helper to run
from the initramfs.

This avoids the plymouthd-fd-escrow helper keeping the rootfs busy.

Changes by Hans de Goede:
- Fix a couple of typos
- Add Conflicts=dracut-shutdown.service to plymouth-switch-root-initramfs.service
  dracut-shutdown.service restores the initramfs when it is _stopped_
  use Conflicts to make sure its ExecStop has run before we do
- Add a check for switching back to the initramfs to on_newroot () and dump
  the debug-buffer before the switch (while we still have access to /var/log).
- Also add plymouth-switch-root-initramfs.service to kexec.target.wants.
  kexec.target.wants uses --mode=shutdown, so the plymouthd-fd-escrow helper
  will run, so we need to switch to the initramfs.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-04-06 13:45:41 +02:00
Ray Strode
a0c743c76a main: Add a plymouthd-fd-escrow helper
When plymouth receives SIGTERM during shutdown or reboot, we must
exit cleanly to avoid keeping files open on the rootfs and to avoid
making drmModeSetCrtc () calls after the kms driver's shutdown method
has ran.

But at the same time we also want the boot-splash to stay up (in its
idle form) until the system actually reboots or powers off.
So we want to avoid the boot-splash getting replaced by e.g.
the text-console.

Add a plymouthd-fd-escrow helper which will get forked off when we
receive a SIGTERM in reboot/shutdown mode with pixel-displays active.

This helper will keep the fds for the pixel-displays open, so that
the boot-splash stays up until the end.

Changes by Hans de Goede:
- Start the escrow helper from main.c instead of from the drm plugin
- Rename the helper from plymouthd-drm-escrow to plymouthd-fd-escrow, since it
  will be used to escrow fbdev fd-s too now
- In the child of the fork, continue with quiting normally (letting the
  bootsplash become idle) instead of exiting directly
- Make plymouthd-fd-escrow a normal dynamic binary instead of a static binary,
  the initrd already contains dynamic binaries so it does not have to be static
- Split the changes adding plymouth-switch-root-initramfs.service into a
  separate patch
- Rewrite commit message

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-04-06 13:15:05 +02:00
Hans de Goede
a4bb4c146b main: Dump debug log to plymouth-shutdown-debug.log on shutdown/reboot
When working on plymouth I always have "plymouth.debug=stream:/dev/null"
on the kernel commandline. This enables tracing without logging anything
to the console and causes the entire trace to be logged to
/var/log/plymouth-debug.log when plymouth quits.

This is very useful for debugging (non crash) issues with plymouth at boot.
With the recent "main: Cleanly quit on SIGTERM" change plymouth will now
also write a trace log to /var/log/plymouth-debug.log on shutdown/reboot,
but this will be overwritten again on boot by the boot log.

This commit changes the default debug_buffer_path value from:
/var/log/plymouth-debug.log to /var/log/plymouth-shutdown-debug.log
when in shutdown or reboot mode so that it does not get overwritten
by the debug-log written at boot.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-04-06 13:15:05 +02:00
Hans de Goede
eb5227b474 main: Cleanly quit on SIGTERM
Now that we are no longer unconditionally opting out of getting terminated,
we get send a SIGTERM when transitioning from the rootfs back to the initrd
on poweroff/reboot.

Catch this SIGTERM and then exit cleanly by calling the on_quit handler,
besides exiting cleanly being the right thing to do, this will also allow the
boot-splash to go idle, so that it can cleanly finish the end-animation.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-04-06 13:15:05 +02:00
Hans de Goede
156ae7437e main: Only mark plymouthd as unkillable when running from the initrd
Before this commit plymouthd would always mark itself as "unkillable"
by setting "argv[0][0] = '@';" as documented here:
https://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/

There are 2 problems with this:

1. This causes filesystems to fail to remount read-only in some case,
plymouthd may be holding open a deleted file (say an upgraded library).
If that happens, then the filesystem won't allow the disk to be remounted
read-only, because when plymouth dies, the filesystem will need to do I/O
to clean up the removed file from disk.

2. This causes the "gracefully shutdown" of displays which the kernel's
i915 driver recently introduced in commit fe0f1e3bfdfe ("drm/i915: Shut
down displays gracefully on reboot") to get undone. Because of being
"unkillable" plymouthd keeps running and showing the spinner animation
to the very end, this results in a drmModeSetCrtc () call after the i915
display driver has turned off the displays. This causes 2 issues:

2.1 This causes the screen to go black for 1-2 seconds and then show the
plymouth screen again for 1-2 seconds on poweroff/reboot which looks ugly:
https://bugzilla.redhat.com/show_bug.cgi?id=1941329

2.2 This may cause issues with the attached monitors on reboot, since it
undoes the gracefull shutdown which the i915 does.

Change the code to only set "argv[0][0] = '@';" when run from the initrd
at bootup, this solves the 2 mentioned issues and brings the code inline
with the above specification which says this should only ever be used for
daemons started from the initrd.

Note this will cause plymouth to get killed on shutdown, leading to the
last couple of text messages of shutdown being shown on shutdown.
This will be fixed by the next couple of patches.

Related: https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/118
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1941329
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-03-31 16:35:27 +02:00
Hans de Goede
630ca2e18f ply-device-manager: Don't deactivate renderers from ply_device_manager_free ()
Don't deactivate renderers from ply_device_manager_free (),
ply_device_manager_free () is only ever called with the renderers still
active on a "plymouth quit --retain-splash".

Since the splash is being retained in this case the renderers should not be
deactivated. Normally this does not matter because plymouthd exits almost
immediately afterwards and the kernels will close the renderers fds on exit.

But with the upcoming plymouthd-drm-escrow binary which keeps the renderers
fds open, not deactivate renderers; and thus not dropping DRM master rights
does make a difference.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-03-31 16:35:27 +02:00
Hans de Goede
fbe2b79da5 Merge branch 'text-n-details-splash-fixes' into 'master'
Text and details splash fixes

See merge request plymouth/plymouth!137
2021-03-29 07:40:32 +00:00
Hans de Goede
0e59dde83a details: Clear newly added text-display before replaying log messages
When switching between the "text" splash and the "details" splash the
"text" splash's hide function clears the console/terminal before
the "details" splash replays the log messages. So on each switch
the user sees all the log messages once.

But when switching between a graphical/pixel splash and details,
the console/terminal is not touched by the graphical splash's hide
function; and the details splash's hide function deliberately does
not clear the terminal on hide, so that when booting in detailed
mode, the log messages stay on the console when plymouth exits.

This means that when switching graphical-splash -> details ->
graphical-splash -> details, the second time the details splash
gets shown, the previous set of replayed log messages is still
on the terminal and all messages are now shown twice.
(and toggling back and forth a third time makes them all show 3
times, etc).

Fix this by clearing the terminal on show, before replaying the
log messages.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-03-29 09:27:01 +02:00
Hans de Goede
c6a8cf9dad text/tribar: Fix ply_boot_splash_hide () not clearing the terminal
In order to clear the console/terminal back to black again when hiding
the splash, we must restore the original terminal palette, so that
black actually is black before calling ply_text_display_clear_screen ().

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1933378
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-03-29 09:25:29 +02:00
Hans de Goede
9b9d7e1b3a ply-text-display: Fix bottom pixels of fbcon not getting cleared
When fbcon is used for the console then there might be some unused
rows of pixels at the bottom because the screen's height in pixel
is not fully divideable by the font height. So the remaining few
rows of pixels at the bottom are unused.

The "text" splash changes the background color of the terminal and
then does a ply_text_display_clear_screen () to clear the console
to the new background color.

ply_text_display_clear_screen () was using "ESC [ 2 J" as control-sequence
to clear the screen. Which means "clear the entire screen" but fbcon
seems to not always count the unused bottom rows part of the "entire
screen", leaving them black.

Also send an "ESC [ 3 J" control-sequence when clearing the screen,
which means "clear the entire screen; and the scrollback-buffer".
Using this does consistenly result in the unused bottom rows always
being set to the background color.

This new behavior is esp. important when hiding the splash (e.g.
when quiting) because under some circumstances (1) the "ESC [ 2 J"
would clear the unused bottom rows to plymouth's background color
and then when hiding the splash it would not clear the unused rows,
leaving the unused rows set to plymouth's background color after
plymouth has quit.

Note the "ESC [ 2 J" control sequences is also still send because older
(serial) terminals may not support the "ESC [ 3 J" control sequence.

1) The exact circumstances when this happens are unclear

Related: https://bugzilla.redhat.com/show_bug.cgi?id=1933378
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-03-29 09:25:29 +02:00
Hans de Goede
9ef171f733 ply-text-display: Only skip clearing the screen when tracing to a terminal
When the user has chosen to enable tracing to a file, so that the terminal
output stays the same as when not tracing, ply_text_display_clear_screen ()
should still clear the screen, as it does when not tracing.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-03-29 09:25:29 +02:00
Hans de Goede
8291d668ae main: Redirect stdio/stderr to null when tracing to a file
When the user has chosen to enable tracing to a file, so that the terminal
output stays the same as when not tracing, we should still redirect
tdio/stderr to /dev/null as we do when not tracing.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-03-29 09:25:29 +02:00
Hans de Goede
ca869a3fff ply-logger: Add a ply_is_tracing_to_terminal () helper
Track if we are logging to the terminal (or to a file) and add
a new ply_is_tracing_to_terminal () helper.

This will be used in follow-up patches to replace some
ply_is_tracing () checks for things which should only be done
when tracing to a terminal (and not when tracing to a file).

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2021-03-29 09:24:45 +02:00
Hans de Goede
cf1ca1945c Merge branch 'gportay/plymouth-do-not-close-vt-on-show-hide-splash'
main: Retain splash on on_show_splash() and on_hide_splash()

https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/127
2021-03-27 17:59:43 +01:00
Gaël PORTAY
e733f2b41d main: Retain splash on on_show_splash() and on_hide_splash()
The function ply_device_manager_activate_keyboard() asserts for positive
file-descriptors.

However, the daemon aborts after the splash screen is shown again after
being hidden; the virtual terminal file-descriptor is -1 (i.e. plymouth
show-splash; plymouth hide-splash; plymouth-show-spash).

The three helpers on_show_splash(), on_hide_splash() and on_quit() share
the same function dump_details_and_quit_splash().

This function calls on_hide() and on_quit(); the later deallocates and
closes the virtual terminal if the flag should_retain_splash is not set.
This is always the case on both on_show_splash() and on_hide_splash().
Only on_quit() has the ability to set that flag. Therefore, the virtual
terminal is always deallocated and closed on on_hide_splash (), and in a
some condition on on_show_splash().

The virtual terminal is allocated by ply_device_manager_new() in the
function main() and it is deallocated in the function quit_program()
(i.e. at the begining and at the end of the daemon). The function
quit_program() is called either by on_quit() or by on_boot_splash_idle()
(on quit only, not on deactivate). The two helpers on_show_splash() and
on_hide_splash() *MUST NOT* dealocates and closes the virtual terminal.

This sets the flag should_retain_splash in both helpers on_show_splash()
and on_hide_splash() to prevent them from deallocation the virtual
terminal.

Fixes:

	01:24:16.983 ply-event-loop.c:732:ply_event_loop_watch_fd                  : fd: 9
	01:24:16.994 ply-boot-server.c:393:print_connection_process_identity       : connection is from pid 8474 (plymouth show-splash) with parent pid 2137 (-ash)
	01:24:16.994 ply-boot-server.c:492:ply_boot_connection_on_request          : got show splash request
	01:24:16.994 main.c:832:plymouth_should_ignore_show_splash_calls           : checking if plymouth should be running
	01:24:16.994 main.c:933:on_show_splash                                     : at least one display already available, so loading splash
	01:24:16.994 main.c:864:plymouth_should_show_default_splash                : checking if plymouth should show default splash
	01:24:16.994 main.c:892:plymouth_should_show_default_splash                : using default splash because kernel command line has option "splash"
	01:24:16.994 main.c:445:show_default_splash                                : Showing splash screen
	01:24:16.994 main.c:459:show_default_splash                                : Trying distribution default splash
	01:24:16.994 main.c:1692:load_theme                                        : Loading boot splash theme '/usr/share/plymouth/themes/spinner/spinner.plymouth'
	01:24:16.995 ply-key-file.c:175:ply_key_file_load_group                    : trying to load group Plymouth Theme
	01:24:16.995 ply-key-file.c:175:ply_key_file_load_group                    : trying to load group two-step
	01:24:16.995 ply-key-file.c:175:ply_key_file_load_group                    : trying to load group boot-up
	01:24:16.995 ply-key-file.c:175:ply_key_file_load_group                    : trying to load group shutdown
	01:24:16.995 ply-key-file.c:175:ply_key_file_load_group                    : trying to load group reboot
	01:24:16.995 ply-key-file.c:175:ply_key_file_load_group                    : trying to load group updates
	01:24:16.995 ply-key-file.c:175:ply_key_file_load_group                    : trying to load group system-upgrade
	01:24:16.996 ply-key-file.c:175:ply_key_file_load_group                    : trying to load group firmware-upgrade
	01:24:16.996 ply-key-file.c:262:ply_key_file_load_groups                   : key file has no more groups
	01:24:16.996 plugin.c:1030:create_plugin                                   : Using '/usr/share/plymouth/themes/spinner' as working directory
	01:24:16.996 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'ProgressBarHorizontalAlignment'
	01:24:16.996 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'ProgressBarVerticalAlignment'
	01:24:16.996 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'ProgressBarWidth'
	01:24:16.996 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'ProgressBarHeight'
	01:24:16.996 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'SuppressMessages'
	01:24:16.997 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'ProgressBarShowPercentComplete'
	01:24:16.997 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'UseProgressBar'
	01:24:16.997 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'UseFirmwareBackground'
	01:24:16.997 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'Title'
	01:24:16.997 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'SubTitle'
	01:24:16.997 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'SuppressMessages'
	01:24:16.997 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'ProgressBarShowPercentComplete'
	01:24:16.997 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'UseProgressBar'
	01:24:16.997 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'UseFirmwareBackground'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'Title'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'SubTitle'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'SuppressMessages'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'ProgressBarShowPercentComplete'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'UseProgressBar'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'UseFirmwareBackground'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'Title'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'SubTitle'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'UseFirmwareBackground'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'UseFirmwareBackground'
	01:24:17.331 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'UseFirmwareBackground'
	01:24:17.332 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'DialogClearsFirmwareBackground'
	01:24:17.332 ply-key-file.c:359:ply_key_file_get_raw_value                 : key file does not have entry for key 'ProgressFunction'
	01:24:17.332 main.c:1708:load_theme                                        : attaching plugin to event loop
	01:24:17.332 main.c:1711:load_theme                                        : attaching progress to plugin
	01:24:17.332 ply-boot-splash.c:138:ply_boot_splash_add_pixel_display       : adding 1920x1080 pixel display
	01:24:17.332 plugin.c:1563:add_pixel_display                               : adding pixel display to plugin
	01:24:17.332 ply-device-manager.c:1028:ply_device_manager_activate_renderer: activating renderers
	01:24:17.332 plugin.c:918:activate                                         : taking master and scanning out
	01:24:17.332 ply-terminal.c:242:ply_terminal_unlock                        : couldn't unlock terminal settings: Bad file descriptor
	01:24:17.332 plugin.c:693:ply_renderer_head_set_scan_out_buffer            : Setting scan out buffer of 1920x1080 head to our buffer
	01:24:17.333 plugin.c:1693:flush_head                                      : Needed to reset scan out buffer on 1920x1080 renderer head
	01:24:17.334 ply-boot-splash.c:486:ply_boot_splash_show                    : showing splash screen
	01:24:17.334 plugin.c:1621:show_splash_screen                              : loading lock image
	01:24:17.335 plugin.c:1626:show_splash_screen                              : loading box image
	01:24:17.335 plugin.c:1635:show_splash_screen                              : loading corner image
	01:24:17.335 plugin.c:1644:show_splash_screen                              : loading header image
	01:24:17.335 plugin.c:1653:show_splash_screen                              : loading background tile image
	01:24:17.335 plugin.c:1681:show_splash_screen                              : loading watermark image
	01:24:17.335 plugin.c:615:view_load                                        : loading entry
	01:24:17.340 ply-keymap-icon.c:158:ply_keymap_icon_load                    : loading '/usr/share/plymouth/themes/spinner/keyboard.png': success
	01:24:17.495 ply-keymap-icon.c:165:ply_keymap_icon_load                    : loading '/usr/share/plymouth/themes/spinner/keymap-render.png': success
	01:24:17.496 plugin.c:625:view_load                                        : loading progress animation
	01:24:17.497 ply-progress-animation.c:373:ply_progress_animation_add_frames: could not find any progress animation frames
	01:24:17.497 plugin.c:627:view_load                                        : optional progress animation wouldn't load
	01:24:17.498 plugin.c:636:view_load                                        : loading throbber
	01:24:17.531 plugin.c:1697:show_splash_screen                              : starting boot animations
	01:24:17.531 plugin.c:1336:start_progress_animation                        : starting animation
	01:24:17.587 ply-terminal.c:242:ply_terminal_unlock                        : couldn't unlock terminal settings: Bad file descriptor
	01:24:17.599 ply-terminal.c:242:ply_terminal_unlock                        : couldn't unlock terminal settings: Bad file descriptor
	01:24:17.599 ply-device-manager.c:1061:ply_device_manager_activate_keyboard: activating keyboards
	Assertion failed: fd >= 0 (ply-event-loop.c: ply_event_loop_watch_fd: 732)
	Aborted

Signed-off-by: Gaël PORTAY <gael.portay@collabora.com>
2021-03-27 17:58:23 +01:00
Hans de Goede
8a3c9bbf24 Merge branch 'gportay/plymouth-fix-another-bad-assertion'
ply-device-manager: Fix bad assertion

https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/126
2021-03-23 11:05:47 +01:00
Gaël PORTAY
7dcd1f645d ply-device-manager: Fix bad assertion
The function watch_for_udev_events() asserts that udev_monitor cannot be
NULL.

This situation is actually possible and it is easy reproductible by
deactivating and reactivating the splash then.

This commit removes that assertion which is not true. Furthermore, the
function allocates a monitor if it is NULL, right after that assertion.

Fixes:

	00:12:42.405 ply-boot-server.c:393:print_connection_process_identity       : connection is from pid 2227 (plymouth reactivate) with parent pid 2137 (-ash)
	00:12:42.405 ply-boot-server.c:521:ply_boot_connection_on_request          : got reactivate request
	00:12:42.405 ply-terminal.c:637:ply_terminal_open                          : trying to open terminal '/dev/tty1'
	00:12:42.405 ply-terminal.c:430:ply_terminal_refresh_geometry              : looking up terminal text geometry
	00:12:42.405 ply-terminal.c:442:ply_terminal_refresh_geometry              : terminal is now 240x67 text cells
	00:12:42.405 ply-device-manager.c:1062:ply_device_manager_activate_keyboard: activating keyboards
	00:12:42.405 ply-device-manager.c:1114:ply_device_manager_unpause          : ply_device_manager_unpause() called, resuming watching for udev events
	00:12:42.405 ply-device-manager.c:1118:ply_device_manager_unpause          : ply_device_manager_unpause(): timeout elapsed while paused, looking for udev devices
	00:12:42.406 ply-device-manager.c:909:create_devices_from_udev             : Timeout elapsed, looking for devices from udev
	00:12:42.406 ply-device-manager.c:331:create_devices_for_subsystem         : creating objects for drm devices
	00:12:42.407 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/card0
	00:12:42.407 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.408 ply-device-manager.c:367:create_devices_for_subsystem         : found node /dev/dri/card0
	00:12:42.408 ply-device-manager.c:275:create_devices_for_udev_device       : device subsystem is drm
	00:12:42.408 ply-device-manager.c:278:create_devices_for_udev_device       : found DRM device /dev/dri/card0
	00:12:42.408 ply-device-manager.c:774:create_devices_for_terminal_and_rende: ignoring device /dev/dri/card0 since it's already managed
	00:12:42.408 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/card0/card0-Composite-1
	00:12:42.408 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.409 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/card0/card0-HDMI-A-1
	00:12:42.409 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.409 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/card0/card0-Writeback-1
	00:12:42.410 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.410 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/drm/renderD128
	00:12:42.410 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.410 ply-device-manager.c:371:create_devices_for_subsystem         : device doesn't have a devices tag
	00:12:42.410 ply-device-manager.c:331:create_devices_for_subsystem         : creating objects for frame buffer devices
	00:12:42.411 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/platform/soc/soc:gpu/graphics/fb0
	00:12:42.412 ply-device-manager.c:358:create_devices_for_subsystem         : device is initialized
	00:12:42.412 ply-device-manager.c:367:create_devices_for_subsystem         : found node /dev/fb0
	00:12:42.412 ply-device-manager.c:275:create_devices_for_udev_device       : device subsystem is graphics
	00:12:42.412 ply-device-manager.c:281:create_devices_for_udev_device       : found frame buffer device /dev/fb0
	00:12:42.412 ply-device-manager.c:231:fb_device_has_drm_device             : trying to find associated drm node for fb device (path: platform-soc:gpu)
	00:12:42.418 ply-device-manager.c:285:create_devices_for_udev_device       : ignoring, since there's a DRM device associated with it
	00:12:42.418 ply-device-manager.c:351:create_devices_for_subsystem         : found device /sys/devices/virtual/graphics/fbcon
	00:12:42.418 ply-device-manager.c:374:create_devices_for_subsystem         : it's not initialized
	Assertion failed: manager->udev_monitor == NULL (ply-device-manager.c: watch_for_udev_events: 461)
	Aborted

Signed-off-by: Gaël PORTAY <gael.portay@collabora.com>
2021-03-23 11:00:20 +01:00
Hans de Goede
0b9148a0ed Merge branch 'gportay/plymouth-two-step-link-libintl-if-nls'
two-step: Links against libintl.so if LNS

https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/128
2021-03-23 10:51:40 +01:00