]> git.ipfire.org Git - thirdparty/plymouth.git/log
thirdparty/plymouth.git
3 years agowip!themes: Add example twincam theme wip/external-command
Ray Strode [Fri, 28 Jan 2022 16:05:54 +0000 (11:05 -0500)] 
wip!themes: Add example twincam theme

This probably shouldn't go to plymouth upstream, but be a separate project?

3 years agowip!splash: Add new external-command plugin
Ray Strode [Fri, 28 Jan 2022 16:01:18 +0000 (11:01 -0500)] 
wip!splash: Add new external-command plugin

This commit adds a new plugin that farms out the actual splash
display to another process.

3 years agodrm: Retry setting scanout buffer on failure
Oleg Solovyov [Wed, 8 Dec 2021 16:15:47 +0000 (19:15 +0300)] 
drm: Retry setting scanout buffer on failure

Plymouth currently assumes that setting the scanout buffer will succeed.
if it fails because of a driver bug or transient failure it should try
again next frame.

This commit adds that error handling code.

3 years agoMerge branch 'version-naming-change' into 'main' 22.02.122
Ray Strode [Tue, 11 Jan 2022 17:10:11 +0000 (17:10 +0000)] 
Merge branch 'version-naming-change' into 'main'

autogoo: Determine project version from date

See merge request plymouth/plymouth!153

3 years agoautogoo: Determine project version from date
Ray Strode [Tue, 11 Jan 2022 15:17:59 +0000 (10:17 -0500)] 
autogoo: Determine project version from date

Numbers are arbitrary, and we've never successfully made it to
version 1.0 after like 15 years or something.

Furthermore, plymouth has a very slow release schedule at present
and some distros hate building from git.

So, I'd like to start generating tarballs more regularly.

Adopting a version number derived from the date will help facilitate
that.

This commit changes AC_INIT to compute the version automatically.

https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/143
https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/158

3 years agoMerge branch 'wip/use-logo-file' into 'main'
Ray Strode [Tue, 11 Jan 2022 14:35:27 +0000 (14:35 +0000)] 
Merge branch 'wip/use-logo-file' into 'main'

spinfinity: use logo file passed to configure

See merge request plymouth/plymouth!110

3 years agospinfinity: use logo file passed to configure
Ray Strode [Mon, 20 Apr 2020 20:20:52 +0000 (16:20 -0400)] 
spinfinity: use logo file passed to configure

At the moment we hardcode the header to a logo file that ships
in fedora.

This commit changes it to use the logo configured by the distro.

https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/106

3 years agoMerge branch 'weblate-plymouth-master' into 'main'
Ray Strode [Tue, 11 Jan 2022 14:26:24 +0000 (14:26 +0000)] 
Merge branch 'weblate-plymouth-master' into 'main'

Translations update from Weblate

See merge request plymouth/plymouth!146

3 years agoTranslated using Weblate (Belarusian)
Yauhen Bugamol [Sat, 25 Sep 2021 19:05:03 +0000 (21:05 +0200)] 
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

3 years agoMerge branch 'add_croatian_language' into 'main'
Ray Strode [Tue, 11 Jan 2022 14:25:37 +0000 (14:25 +0000)] 
Merge branch 'add_croatian_language' into 'main'

Add Croatian language

See merge request plymouth/plymouth!148

3 years agoAdd Croatian language
muzena [Fri, 29 Oct 2021 15:13:57 +0000 (17:13 +0200)] 
Add Croatian language

3 years agoMerge branch 'fix-configure-help-string' into 'main'
Ray Strode [Tue, 11 Jan 2022 14:24:31 +0000 (14:24 +0000)] 
Merge branch 'fix-configure-help-string' into 'main'

configure: Fix help string for --with-background-end-color-stop

See merge request plymouth/plymouth!149

3 years agoconfigure: Fix help string for --with-background-end-color-stop
João Paulo Rechi Vita [Wed, 10 Nov 2021 21:33:22 +0000 (16:33 -0500)] 
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.

3 years agoMerge branch 'fix-twostep-comments' into 'main'
Ray Strode [Tue, 11 Jan 2022 14:23:40 +0000 (14:23 +0000)] 
Merge branch 'fix-twostep-comments' into 'main'

two-step: Fix typos and missing words in comments

See merge request plymouth/plymouth!150

3 years agotwo-step: Fix typos and missing words in comments
João Paulo Rechi Vita [Thu, 11 Nov 2021 00:49:47 +0000 (19:49 -0500)] 
two-step: Fix typos and missing words in comments

3 years agoMerge branch 'configurable-show-animation-fraction' into 'main'
Ray Strode [Tue, 16 Nov 2021 17:31:55 +0000 (17:31 +0000)] 
Merge branch 'configurable-show-animation-fraction' into 'main'

two-step: Make SHOW_ANIMATION_FRACTION configurable

See merge request plymouth/plymouth!151

3 years agotwo-step: Make SHOW_ANIMATION_FRACTION configurable
Jasper St. Pierre [Fri, 27 Feb 2015 01:14:57 +0000 (17:14 -0800)] 
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.

3 years agoMerge branch 'honour-rotation' into 'main'
Ray Strode [Mon, 18 Oct 2021 23:45:12 +0000 (23:45 +0000)] 
Merge branch 'honour-rotation' into 'main'

drm: Honour screen rotation when detecting HiDPI

See merge request plymouth/plymouth!147

3 years agodrm: Honour screen rotation when detecting HiDPI
Emil Velikov [Mon, 18 Oct 2021 10:58:29 +0000 (11:58 +0100)] 
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>
3 years agoMerge branch 'themepath-cfg' into 'master'
Ray Strode [Mon, 27 Sep 2021 10:27:11 +0000 (10:27 +0000)] 
Merge branch 'themepath-cfg' into 'master'

main: add ThemePath configuration option

See merge request plymouth/plymouth!142

3 years agoscripts: support populating from configurable theme dir
Alfonso Sánchez-Beato [Thu, 23 Sep 2021 12:46:23 +0000 (14:46 +0200)] 
scripts: support populating from configurable theme dir

Support populating initramfs with themes from the configurable theme
directory.

3 years agomain: add ThemeDir configuration option
Alfonso Sánchez-Beato [Thu, 23 Sep 2021 12:45:39 +0000 (14:45 +0200)] 
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.

3 years agomain: refactor code for searching the theme path
Alfonso Sánchez-Beato [Thu, 23 Sep 2021 07:24:19 +0000 (09:24 +0200)] 
main: refactor code for searching the theme path

Refactor code that searched for the theme configuration so it can be
reused.

3 years agoply-utils: add macro to count the number of elements in an array
Alfonso Sánchez-Beato [Thu, 23 Sep 2021 07:12:49 +0000 (09:12 +0200)] 
ply-utils: add macro to count the number of elements in an array

3 years agomain: free path variables before exiting
Alfonso Sánchez-Beato [Thu, 23 Sep 2021 06:41:05 +0000 (08:41 +0200)] 
main: free path variables before exiting

Free path variables before exiting so the code is more asan/valgrind
friendly.

3 years agoMerge branch 'weblate-plymouth-master' into 'master'
Ray Strode [Thu, 23 Sep 2021 19:00:10 +0000 (19:00 +0000)] 
Merge branch 'weblate-plymouth-master' into 'master'

Translations update from Weblate

See merge request plymouth/plymouth!145

3 years agoTranslated using Weblate (Czech)
Pavel Borecki [Thu, 23 Sep 2021 09:05:04 +0000 (11:05 +0200)] 
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

3 years agoMerge branch 'crash_on_hide_message' into 'master'
Ray Strode [Wed, 22 Sep 2021 14:33:26 +0000 (14:33 +0000)] 
Merge branch 'crash_on_hide_message' into 'master'

Fix crash when hiding message in details splash mode

See merge request plymouth/plymouth!140

3 years agoFix crash when hiding message in details splash mode
i.Dark_Templar [Mon, 13 Sep 2021 18:43:44 +0000 (21:43 +0300)] 
Fix crash when hiding message in details splash mode

3 years agoMerge branch 'ignore-serial-option' into 'master'
Ray Strode [Wed, 22 Sep 2021 14:22:48 +0000 (14:22 +0000)] 
Merge branch 'ignore-serial-option' into 'master'

main: add ignore-serial-consoles option

See merge request plymouth/plymouth!143

3 years agomain: add ignore-serial-consoles option
Alfonso Sánchez-Beato [Tue, 21 Sep 2021 07:29:19 +0000 (09:29 +0200)] 
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.

3 years agoMerge branch 'weblate-plymouth-master' into 'master'
Ray Strode [Wed, 22 Sep 2021 14:17:05 +0000 (14:17 +0000)] 
Merge branch 'weblate-plymouth-master' into 'master'

Translations update from Weblate

See merge request plymouth/plymouth!139

3 years agoTranslated using Weblate (Finnish)
Jan Kuparinen [Thu, 26 Aug 2021 19:04:56 +0000 (21:04 +0200)] 
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

3 years agoTranslated using Weblate (Sinhala)
Hela Basa [Thu, 26 Aug 2021 19:04:56 +0000 (21:04 +0200)] 
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

3 years agoTranslated using Weblate (Chinese (Simplified) (zh_CN))
Liu Tao [Thu, 26 Aug 2021 19:04:56 +0000 (21:04 +0200)] 
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

3 years agoTranslated using Weblate (Persian)
Danial Behzadi [Thu, 26 Aug 2021 19:04:55 +0000 (21:04 +0200)] 
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

3 years agoTranslated using Weblate (Friulian)
Fabio Tomat [Thu, 26 Aug 2021 19:04:55 +0000 (21:04 +0200)] 
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

3 years agoTranslated using Weblate (Belarusian)
Yauhen Bugamol [Thu, 26 Aug 2021 19:04:55 +0000 (21:04 +0200)] 
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

3 years agoTranslated using Weblate (Spanish)
Emilio Herrera [Thu, 26 Aug 2021 19:04:55 +0000 (21:04 +0200)] 
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

3 years agoMerge branch 'master' into 'master'
Ray Strode [Tue, 21 Sep 2021 14:40:01 +0000 (14:40 +0000)] 
Merge branch 'master' into 'master'

main: Ensure that doubles in config files are parsed with '.'

Closes #153

See merge request plymouth/plymouth!144

3 years agomain: Ensure that doubles in config files are parsed with '.'
Robin Ebert [Tue, 21 Sep 2021 13:42:04 +0000 (15:42 +0200)] 
main: Ensure that doubles in config files are parsed with '.'

4 years agoMerge branch 'rework-shutdown-handling' into 'master'
Hans de Goede [Tue, 6 Apr 2021 11:53:40 +0000 (11:53 +0000)] 
Merge branch 'rework-shutdown-handling' into 'master'

Rework shutdown handling

See merge request plymouth/plymouth!138

4 years agosystemd: Add plymouth-switch-root-initramfs.service to switch back to initramfs on...
Ray Strode [Fri, 17 Jul 2020 20:06:44 +0000 (16:06 -0400)] 
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>
4 years agomain: Add a plymouthd-fd-escrow helper
Ray Strode [Mon, 29 Mar 2021 20:22:40 +0000 (22:22 +0200)] 
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>
4 years agomain: Dump debug log to plymouth-shutdown-debug.log on shutdown/reboot
Hans de Goede [Wed, 31 Mar 2021 12:58:11 +0000 (14:58 +0200)] 
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>
4 years agomain: Cleanly quit on SIGTERM
Hans de Goede [Tue, 30 Mar 2021 11:35:04 +0000 (13:35 +0200)] 
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>
4 years agomain: Only mark plymouthd as unkillable when running from the initrd
Hans de Goede [Mon, 29 Mar 2021 09:05:01 +0000 (11:05 +0200)] 
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>
4 years agoply-device-manager: Don't deactivate renderers from ply_device_manager_free ()
Hans de Goede [Tue, 30 Mar 2021 18:07:53 +0000 (20:07 +0200)] 
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>
4 years agoMerge branch 'text-n-details-splash-fixes' into 'master'
Hans de Goede [Mon, 29 Mar 2021 07:40:32 +0000 (07:40 +0000)] 
Merge branch 'text-n-details-splash-fixes' into 'master'

Text and details splash fixes

See merge request plymouth/plymouth!137

4 years agodetails: Clear newly added text-display before replaying log messages
Hans de Goede [Sat, 27 Mar 2021 15:34:28 +0000 (16:34 +0100)] 
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>
4 years agotext/tribar: Fix ply_boot_splash_hide () not clearing the terminal
Hans de Goede [Sat, 27 Mar 2021 15:24:39 +0000 (16:24 +0100)] 
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>
4 years agoply-text-display: Fix bottom pixels of fbcon not getting cleared
Hans de Goede [Sat, 27 Mar 2021 15:13:26 +0000 (16:13 +0100)] 
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>
4 years agoply-text-display: Only skip clearing the screen when tracing to a terminal
Hans de Goede [Sat, 27 Mar 2021 12:22:45 +0000 (13:22 +0100)] 
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>
4 years agomain: Redirect stdio/stderr to null when tracing to a file
Hans de Goede [Sat, 27 Mar 2021 12:20:29 +0000 (13:20 +0100)] 
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>
4 years agoply-logger: Add a ply_is_tracing_to_terminal () helper
Hans de Goede [Sat, 27 Mar 2021 12:07:32 +0000 (13:07 +0100)] 
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>
4 years agoMerge branch 'gportay/plymouth-do-not-close-vt-on-show-hide-splash'
Hans de Goede [Sat, 27 Mar 2021 16:59:43 +0000 (17:59 +0100)] 
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

4 years agomain: Retain splash on on_show_splash() and on_hide_splash()
Gaël PORTAY [Fri, 18 Dec 2020 11:24:09 +0000 (06:24 -0500)] 
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>
4 years agoMerge branch 'gportay/plymouth-fix-another-bad-assertion'
Hans de Goede [Tue, 23 Mar 2021 10:00:33 +0000 (11:00 +0100)] 
Merge branch 'gportay/plymouth-fix-another-bad-assertion'

ply-device-manager: Fix bad assertion

https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/126

4 years agoply-device-manager: Fix bad assertion
Gaël PORTAY [Fri, 18 Dec 2020 09:19:28 +0000 (04:19 -0500)] 
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>
4 years agoMerge branch 'gportay/plymouth-two-step-link-libintl-if-nls'
Hans de Goede [Tue, 23 Mar 2021 09:51:40 +0000 (10:51 +0100)] 
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

4 years agotwo-step: Links against libintl.so if LNS
Gaël PORTAY [Fri, 18 Dec 2020 17:12:54 +0000 (12:12 -0500)] 
two-step: Links against libintl.so if LNS

The plugin two-step cannot be loaded on a system based on the musl libc
library.

01:25:00.427 ply-utils.c:536:ply_open_module                               : Could not load module "/usr/lib/plymouth/two-step.so": Error relocating /usr/lib/plymouth/two-step.so: libintl_dgettext: symbol not found

The utilities ldd and objdump reports the missing symbol:

# ldd /usr/lib/plymouth/two-step.so
/lib/ld-musl-aarch64.so.1 (0x7fad6c0000)
libply-splash-graphics.so.5 => /usr/lib/libply-splash-graphics.so.5 (0x7fad683000)
libply-splash-core.so.5 => /lib/libply-splash-core.so.5 (0x7fad654000)
libply.so.5 => /lib/libply.so.5 (0x7fad629000)
libc.musl-aarch64.so.1 => /lib/ld-musl-aarch64.so.1 (0x7fad6c0000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x7fad5ea000)
libudev.so.1 => /lib/libudev.so.1 (0x7fad5b7000)
libz.so.1 => /lib/libz.so.1 (0x7fad590000)
Error relocating /usr/lib/plymouth/two-step.so: libintl_dgettext: symbol not found

# objdump -T /usr/lib/plymouth/two-step.so | grep gettext
0000000000000000      D  *UND* 0000000000000000 libintl_dgettext

The missing symbol is archived to the library libintl.so (running
plymouthd with the environment LD_PRELOAD=/usr/lib/libintl.so fixes the
issue).

# objdump -T /usr/lib/libintl.so | grep gettext
0000000000005aa0 g    DF .text 0000000000000008 libintl_dngettext
0000000000007134 g    DF .text 0000000000000004 dgettext
0000000000002300 g    DF .text 0000000000000014 libintl_dcgettext
0000000000005aa8 g    DF .text 0000000000000018 libintl_ngettext
0000000000007130 g    DF .text 0000000000000004 gettext
0000000000007140 g    DF .text 0000000000000004 dngettext
0000000000002314 g    DF .text 0000000000000008 libintl_dgettext
000000000000231c g    DF .text 0000000000000010 libintl_gettext
0000000000007138 g    DF .text 0000000000000004 dcgettext
000000000000713c g    DF .text 0000000000000004 ngettext
0000000000005a90 g    DF .text 0000000000000010 libintl_dcngettext
0000000000007144 g    DF .text 0000000000000004 dcngettext

The story is much complicated, however, the autotools does the magic.

The GNU gettext FAQ[1] says explicitly that if the program's final link
command does not contain the option -lintl...

> In this case it's likely a bug in the package you are building: The
package's Makefiles should make sure that “-lintl” is used where needed.

Autoconf sets both variables LIBINTL and LTLIBINTL with the appropriate
link options if NLS is being used. These variables are left empty if the
option --disable-nls is set at the configure step.

LIBINTL = /usr/lib/libintl.so
LTLIBINTL = -L/usr/lib -lintl

This links the plugin two-step to libintl by adding the libtool variable
LTLIBINTL to the list of the plugin's libraries to link with.

Note: The plugin two-step loads fine on a system based on the glibc
library (without this commit). The plugin uses the intermediate symbol
dcgettext which is implemented by the glibc instead of the remapped
symbol libintl_gettext which is implemented by gettext in libintl.

On glibc:

# objdump -T /usr/lib/plymouth/two-step.so | grep gettext
0000000000000000      DF *UND* 0000000000000000  GLIBC_2.2.5 dcgettext

$ objdump -T /usr/lib/libc.so.6 | grep gettext
0000000000037ec0  w   DF .text 0000000000000014  GLIBC_2.2.5 dcngettext
0000000000036630  w   DF .text 0000000000000013  GLIBC_2.2.5 dcgettext
0000000000037ef0  w   DF .text 000000000000001a  GLIBC_2.2.5 ngettext
0000000000036660  w   DF .text 0000000000000013  GLIBC_2.2.5 gettext
0000000000036630 g    DF .text 0000000000000013  GLIBC_2.2.5 __dcgettext
0000000000036650  w   DF .text 000000000000000e  GLIBC_2.2.5 dgettext
0000000000036650 g    DF .text 000000000000000e  GLIBC_2.2.5 __dgettext
0000000000037ee0  w   DF .text 000000000000000f  GLIBC_2.2.5 dngettext

On musl:

# objdump -T /usr/lib/plymouth/two-step.so | grep gettext
0000000000000000      D  *UND* 0000000000000000 libintl_dgettext

# objdump -T /lib/libc.musl-aarch64.so.1 | grep gettext
0000000000025724 g    DF .text 0000000000000010 dcgettext
0000000000027828 g    DF .text 0000000000000014 ngettext
0000000000025734 g    DF .text 0000000000000008 dngettext
000000000002573c g    DF .text 0000000000000010 dgettext
000000000002781c g    DF .text 000000000000000c gettext
0000000000025294 g    DF .text 0000000000000490 dcngettext

# objdump -T /usr/lib/libintl.so | grep libintl_dgettext
0000000000002314 g    DF .text 0000000000000008 libintl_dgettext

However, this commit changes nothing for system based on glibc as the
magic of the Autoconf leaves the LIBINTL and LTLIBINTL empty even if the
NLS is being used.

[1]: https://www.gnu.org/software/gettext/FAQ.html#integrating_undefined

Signed-off-by: Gaël PORTAY <gael.portay@collabora.com>
4 years agoMerge branch 'weblate/plymouth-weblate-plymouth-master'
Hans de Goede [Tue, 23 Mar 2021 09:44:02 +0000 (10:44 +0100)] 
Merge branch 'weblate/plymouth-weblate-plymouth-master'

4 years agoAdded translation using Weblate (Sinhala)
Hela Basa [Wed, 3 Mar 2021 20:47:34 +0000 (21:47 +0100)] 
Added translation using Weblate (Sinhala)

Co-authored-by: Hela Basa <r45xveza@pm.me>
4 years agoTranslated using Weblate (Serbian)
Марко Костић (Marko Kostić) [Wed, 3 Mar 2021 20:47:33 +0000 (21:47 +0100)] 
Translated using Weblate (Serbian)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Марко Костић (Marko Kostić) <marko.m.kostic@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/sr/
Translation: plymouth/master

4 years agoTranslated using Weblate (Dutch)
Geert Warrink [Wed, 3 Mar 2021 20:47:33 +0000 (21:47 +0100)] 
Translated using Weblate (Dutch)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Geert Warrink <geert.warrink@onsnet.nu>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/nl/
Translation: plymouth/master

4 years agoTranslated using Weblate (Basque)
Mikel Olasagasti [Wed, 3 Mar 2021 20:47:33 +0000 (21:47 +0100)] 
Translated using Weblate (Basque)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Mikel Olasagasti <mikel@olasagasti.info>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/eu/
Translation: plymouth/master

4 years agoTranslated using Weblate (Russian)
Igor Gorbounov [Wed, 3 Mar 2021 20:47:33 +0000 (21:47 +0100)] 
Translated using Weblate (Russian)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Igor Gorbounov <igor.gorbounov@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ru/
Translation: plymouth/master

4 years agoTranslated using Weblate (Hungarian)
Balázs Meskó [Wed, 3 Mar 2021 20:47:32 +0000 (21:47 +0100)] 
Translated using Weblate (Hungarian)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Balázs Meskó <meskobalazs@mailbox.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/hu/
Translation: plymouth/master

4 years agoTranslated using Weblate (Hebrew)
Yaron Shahrabani [Wed, 3 Mar 2021 20:47:32 +0000 (21:47 +0100)] 
Translated using Weblate (Hebrew)

Currently translated at 100.0% (7 of 7 strings)

Added translation using Weblate (Hebrew)

Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/he/
Translation: plymouth/master

4 years agoTranslated using Weblate (Chinese (Simplified) (zh_CN))
玉堂白鹤 [Wed, 3 Mar 2021 20:47:32 +0000 (21:47 +0100)] 
Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 85.7% (6 of 7 strings)

Co-authored-by: 玉堂白鹤 <yjwork@qq.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/zh_CN/
Translation: plymouth/master

4 years agoTranslated using Weblate (Esperanto)
Carmen Bianca Bakker [Wed, 3 Mar 2021 20:47:32 +0000 (21:47 +0100)] 
Translated using Weblate (Esperanto)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Carmen Bianca Bakker <carmen@carmenbianca.eu>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/eo/
Translation: plymouth/master

4 years agoTranslated using Weblate (Malay)
Robbi Nespu [Wed, 3 Mar 2021 20:47:31 +0000 (21:47 +0100)] 
Translated using Weblate (Malay)

Currently translated at 100.0% (7 of 7 strings)

Translated using Weblate (Malay)

Currently translated at 100.0% (7 of 7 strings)

Added translation using Weblate (Malay)

Co-authored-by: Robbi Nespu <robbinespu@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ms/
Translation: plymouth/master

4 years agoTranslated using Weblate (Punjabi)
A S Alam [Wed, 3 Mar 2021 20:47:31 +0000 (21:47 +0100)] 
Translated using Weblate (Punjabi)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: A S Alam <amanpreet.alam@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/pa/
Translation: plymouth/master

4 years agoTranslated using Weblate (Indonesian)
Andika Triwidada [Wed, 3 Mar 2021 20:47:31 +0000 (21:47 +0100)] 
Translated using Weblate (Indonesian)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Andika Triwidada <andika@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/id/
Translation: plymouth/master

4 years agoTranslated using Weblate (Danish)
scootergrisen [Wed, 3 Mar 2021 20:47:30 +0000 (21:47 +0100)] 
Translated using Weblate (Danish)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: scootergrisen <scootergrisen@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/da/
Translation: plymouth/master

4 years agoTranslated using Weblate (French)
Julien Humbert [Wed, 3 Mar 2021 20:47:30 +0000 (21:47 +0100)] 
Translated using Weblate (French)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Julien Humbert <julroy67@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/fr/
Translation: plymouth/master

4 years agoTranslated using Weblate (Swedish)
Göran Uddeborg [Wed, 3 Mar 2021 20:47:30 +0000 (21:47 +0100)] 
Translated using Weblate (Swedish)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/sv/
Translation: plymouth/master

4 years agoTranslated using Weblate (Italian)
Milo Casagrande [Wed, 3 Mar 2021 20:47:30 +0000 (21:47 +0100)] 
Translated using Weblate (Italian)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Milo Casagrande <milo@milo.name>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/it/
Translation: plymouth/master

4 years agoTranslated using Weblate (French)
Jean-Baptiste Holcroft [Wed, 3 Mar 2021 20:47:29 +0000 (21:47 +0100)] 
Translated using Weblate (French)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Jean-Baptiste Holcroft <jean-baptiste@holcroft.fr>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/fr/
Translation: plymouth/master

4 years agoTranslated using Weblate (German)
Tobias Weise [Wed, 3 Mar 2021 20:47:29 +0000 (21:47 +0100)] 
Translated using Weblate (German)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Tobias Weise <tobias.weise@web.de>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/de/
Translation: plymouth/master

4 years agoMerge branch 'fix-compile-gettext-mismatch' into 'master'
Ray Strode [Tue, 9 Mar 2021 12:16:39 +0000 (12:16 +0000)] 
Merge branch 'fix-compile-gettext-mismatch' into 'master'

Fix compilation when system has mismatching gettext

See merge request plymouth/plymouth!135

4 years agoThe use of AM_GNU_GETTEXT_VERSION in configure.ac instructs autopoint to
Wolfgang Haupt [Wed, 3 Mar 2021 15:06:37 +0000 (16:06 +0100)] 
The use of AM_GNU_GETTEXT_VERSION in configure.ac instructs autopoint to
copy po/Makefile.in.in from the exact gettext version. It is fine if the
version of gettext installed on the system has the same minor version
number with the requested version, but it fails if you have a newer
version of gettext because of the mismatch between autoconf macros and
Makefile.in.in.

  *** error: gettext infrastructure mismatch: using a Makefile.in.in
  from gettext version 0.19 but the autoconf macros are from gettext
  version 0.20

Instead of specifying the exact version with AM_GNU_GETTEXT_VERSION, we
can use AM_GNU_GETTEXT_REQUIRE_VERSION to ask autopoint to simply use
the gettext version installed on the system to prevent the mismatch.

4 years agoMerge branch 'drm_probe_speedup' into 'master'
Hans de Goede [Tue, 9 Mar 2021 11:25:31 +0000 (11:25 +0000)] 
Merge branch 'drm_probe_speedup' into 'master'

Speed up DRM-connector probing

See merge request plymouth/plymouth!133

4 years agoply-device-manager: Speed up DRM-connector probing
Hans de Goede [Fri, 5 Mar 2021 11:25:36 +0000 (12:25 +0100)] 
ply-device-manager: Speed up DRM-connector probing

During the initial monitor/connector enumeration on boot the kernel
fires a large number of change events. If we process these 1 by 1,
we spend a lot of time probing the DRM-connectors. So instead we
collect them all and then coalescence them so that if there are multiple
change events pending for a single card, we only re-probe the card once.

Here are some numbers of the probing times before / after this patch:

1. Lenovo X1 carbon 8th gen connected to a Lenovo Thunderbolt dock gen 2
   with 2 FullHD monitors connected:
Before: add event card0: 00:00:02.543 last change complete at: 00:00:04.250,
   12 change events processed, 13 probes done!
After: add event card0: 00:00:02.548 last change complete at: 00:00:04.049
   1 change event processed, 2 probes done!

2. Intel skylake CPU + iGPU based desktop with 2 FullHD monitors connected:
Before: add event card0: 00:00:02.394 last change complete at: 00:00:05.024,
   5 change events processed, 6 probes done!
After: add event card0: 00:00:02.343 last change complete at: 00:00:03.744,
   1 change event processed, 2 probes done!

In the Thunderbolt dock case we probe the DRM-connectors 2 times instead
of 13 times after this change. This does not lead to a big speed-up though
because the dock caches the monitors EDID info and the DP aux channel to
the dock is quite fast.

In the desktop case we only reduce the amount of probes from 6 to 2, so
less then in the Thunderbolt dock case, but since we don't have the EDID
caching happening there this does reduce the time which it takes to probe
the DRM-connectors from 2.6 seconds to 1.4 seconds which is a huge
improvement.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
4 years agoply-device-manager: add a verify_add_or_change() helper
Hans de Goede [Fri, 5 Mar 2021 11:20:52 +0000 (12:20 +0100)] 
ply-device-manager: add a verify_add_or_change() helper

Add a verify_add_or_change() helper function. This is a preparation
patch for coalescing multiple change events on the same card together
to speed up probing of the drm connectors.

Note this causes the action == "add" || action == "change" check to
be done twice. This double checking goes away in the next patch.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
4 years agoply-device-manager: push udev_device_get_devnode call up into on_udev_event
Hans de Goede [Mon, 28 Sep 2020 13:04:11 +0000 (15:04 +0200)] 
ply-device-manager: push udev_device_get_devnode call up into on_udev_event

on_udev_event calls either on_drm_udev_add_or_change; or
free_devices_for_udev_device. Both of these functions call
udev_device_get_devnode and are a no-op if that returns NULL.

Cleanup things by directly calling udev_device_get_devnode from
on_udev_event and exit eary if the udev_device does not have
an associated devnode.

With the udev_device_get_devnode call handled by on_udev_event,
all that is left of free_devices_for_udev_device is a single
line calling free_devices_from_device_path. So drop
free_devices_for_udev_device and directly call
free_devices_from_device_path from on_udev_event.

Note this also fixes a theoretical udev_device reference leak
in the action == NULL early-exit path. In practice action never
is NULL, so this was not really a problem. But in the refactored
code we now also do the early-exit on dev_path == NULL which does
actually happen.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
4 years agotwo-step: Fix unused variable compiler warning
Hans de Goede [Sat, 6 Mar 2021 09:54:31 +0000 (10:54 +0100)] 
two-step: Fix unused variable compiler warning

Fix the following:

plugin.c: In function ‘show_splash_screen’:
plugin.c:1645:13: warning: unused variable ‘i’ [-Wunused-variable]
 1645 |         int i;
      |

Compiler warning which I introduced in:

https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/132/

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
4 years agoMerge branch 'remove_new_object_sh' into 'master'
Hans de Goede [Sat, 6 Mar 2021 09:53:53 +0000 (09:53 +0000)] 
Merge branch 'remove_new_object_sh' into 'master'

scripts: Remove new-object.sh

See merge request plymouth/plymouth!134

4 years agoscripts: Remove new-object.sh
Hans de Goede [Sat, 6 Mar 2021 09:35:01 +0000 (10:35 +0100)] 
scripts: Remove new-object.sh

Remove new-object.sh. As discussed in:

https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/113

It is not used (and may very well have never been used?).

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
4 years agoMerge branch 'bgrt_fallback_image_fixes' into 'master'
Hans de Goede [Fri, 5 Mar 2021 14:51:55 +0000 (14:51 +0000)] 
Merge branch 'bgrt_fallback_image_fixes' into 'master'

BGRT fallback image fixes

See merge request plymouth/plymouth!132

4 years agotwo-step: Only create background_bgrt_fallback_image if use_firmware_background is set
Hans de Goede [Fri, 5 Mar 2021 11:02:21 +0000 (12:02 +0100)] 
two-step: Only create background_bgrt_fallback_image if use_firmware_background is set

We should not create (and try to use) the background_bgrt_fallback_image
when the config file has not requested use of the firmware-background.

Otherwise we will end up using bgrt-fallback.png if present even when the
config file has not requested usage of the firmware-background.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
4 years agotwo-step: Always load the BGRT fallback image
Hans de Goede [Fri, 5 Mar 2021 10:57:53 +0000 (11:57 +0100)] 
two-step: Always load the BGRT fallback image

view_set_bgrt_background() can fail even if the BGRT image was loaded
successfully. So we may need the fallback image even though the
BGRT image was loaded successfully.

This commit also fixes plugin->background_bgrt_fallback_image not being
free-ed and set to NULL when loading the fallback image fails.

Note this also drops the clearing of the use_firmware_background flagss
when we fail to load both the BGRT and the fallback images. Clearing
these flags is not necessary. They are only checked if
plugin->background_bgrt_image or plugin->background_bgrt_fallback_image
are non NULL; and if the loading of both images failed then both
are NULL.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
4 years agoMerge branch 'fix-bgrt-fallback' into 'master'
Hans de Goede [Fri, 5 Mar 2021 10:41:06 +0000 (10:41 +0000)] 
Merge branch 'fix-bgrt-fallback' into 'master'

Fix BGRT fallback rendering

Closes #142

See merge request plymouth/plymouth!131

4 years agoFix BGRT fallback rendering
Adrian Vovk [Tue, 2 Mar 2021 21:13:23 +0000 (16:13 -0500)] 
Fix BGRT fallback rendering

4 years agoMerge branch 'kill-mode-change' into 'master'
Ray Strode [Mon, 22 Feb 2021 12:49:19 +0000 (12:49 +0000)] 
Merge branch 'kill-mode-change' into 'master'

systemd: switch to KillMode=mixed

See merge request plymouth/plymouth!122

4 years agosystemd: switch to KillMode=mixed
Ray Strode [Tue, 25 Aug 2020 14:49:11 +0000 (10:49 -0400)] 
systemd: switch to KillMode=mixed

KillMode=none is deprecated, so we need to stop using it.

For now, use `KillMode=mixed` and `IgnoreOnIsolate=true` instead.

In the future, we should change plymouth to be able to exit and
start again without restarting the active animation, but that's
going to require some effort.

https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/123

4 years agoMerge branch 'use-fallback-image-if-bgrt-is-not-supported' into 'master'
Ray Strode [Mon, 7 Dec 2020 22:39:07 +0000 (22:39 +0000)] 
Merge branch 'use-fallback-image-if-bgrt-is-not-supported' into 'master'

Use fallback image if BGRT is not supported

See merge request plymouth/plymouth!125

4 years agoUse fallback image if BGRT is not supported
Marius Meisenzahl [Mon, 7 Dec 2020 22:39:07 +0000 (22:39 +0000)] 
Use fallback image if BGRT is not supported

4 years agoclient: Don't wait forever for a ping reply
Brian Murray [Mon, 26 Oct 2020 19:13:20 +0000 (20:13 +0100)] 
client: Don't wait forever for a ping reply

In the event that plymouthd is not responding the plymouth client will
wait forever when sending a ping to the daemon.

This commit introduces a timeout of 30 seconds to better cope with a
hung plymouthd process.

(Some small changes to original patch by Ray Strode)

https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/130

4 years agoRevert "Don't wait forever for a ping reply."
Ray Strode [Wed, 28 Oct 2020 14:00:22 +0000 (14:00 +0000)] 
Revert "Don't wait forever for a ping reply."

This reverts commit 55902ceddef767907e744df72f0d0c93b8f3dcb0