]> git.ipfire.org Git - thirdparty/plymouth.git/log
thirdparty/plymouth.git
6 years agoscript: Add image tile support.
Dimitri John Ledkov [Tue, 10 Sep 2019 13:00:08 +0000 (14:00 +0100)] 
script: Add image tile support.

Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
6 years agoMerge branch 'sync_l10n_gnome_translations' into 'master'
Ray Strode [Wed, 11 Sep 2019 13:05:20 +0000 (13:05 +0000)] 
Merge branch 'sync_l10n_gnome_translations' into 'master'

Translations: Sync l10n.gnome.org's translation.

See merge request plymouth/plymouth!63

6 years agoTranslations: Sync l10n.gnome.org's translation.
ZhaoQiang [Mon, 9 Sep 2019 08:21:48 +0000 (16:21 +0800)] 
Translations: Sync l10n.gnome.org's translation.

6 years agoMerge branch 'adjust_Turkish_translation' into 'master'
Ray Strode [Mon, 9 Sep 2019 20:15:35 +0000 (20:15 +0000)] 
Merge branch 'adjust_Turkish_translation' into 'master'

Translation: Adjust the Turkish translation(tr.po), it's better to keep all po files in the /po directory together.

See merge request plymouth/plymouth!62

6 years agoTranslation: Adjust the Turkish translation(tr.po), it's better to keep all po
ZhaoQiang [Mon, 9 Sep 2019 05:40:22 +0000 (13:40 +0800)] 
Translation: Adjust the Turkish translation(tr.po), it's better to keep all po
files in the /po directory together.

6 years agoMerge branch 'device-timeout-default' into 'master'
Hans de Goede [Sun, 8 Sep 2019 13:45:08 +0000 (13:45 +0000)] 
Merge branch 'device-timeout-default' into 'master'

plymouthd.defaults: Bump default DeviceTimeout to 8 seconds

See merge request plymouth/plymouth!58

6 years agoplymouthd.defaults: Bump default DeviceTimeout to 8 seconds
Hans de Goede [Fri, 6 Sep 2019 15:40:06 +0000 (17:40 +0200)] 
plymouthd.defaults: Bump default DeviceTimeout to 8 seconds

The amdgpu driver needs up to 5 seconds to initialize / boot some
AMD GPUs, which makes our 5 second timeout much too close to the actual
needed time, leading to systems where sometimes the boot is fine and the
next boot we fallback to a text based splash because we won the race from
the GPU probe code.

This commit bumps the default DeviceTimeout to 8 seconds giving us a
decent marging here without making it overly long.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1737221
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'libreajans-master-patch-41995' into 'master'
Ray Strode [Sat, 7 Sep 2019 21:31:59 +0000 (21:31 +0000)] 
Merge branch 'libreajans-master-patch-41995' into 'master'

Update tr.po

See merge request plymouth/plymouth!61

6 years agoUpdate tr.po
libre ajans [Sat, 7 Sep 2019 21:31:59 +0000 (21:31 +0000)] 
Update tr.po

6 years agoMerge branch 'twostep-another-bgrt-fix' into 'master'
Hans de Goede [Fri, 6 Sep 2019 15:38:17 +0000 (15:38 +0000)] 
Merge branch 'twostep-another-bgrt-fix' into 'master'

two-step: bgrt: Add workaround for desktops which do not use the golden ratio

See merge request plymouth/plymouth!56

6 years agotwo-step: bgrt: Add workaround for desktops which do not use the golden ratio
Hans de Goede [Sun, 25 Aug 2019 16:01:59 +0000 (18:01 +0200)] 
two-step: bgrt: Add workaround for desktops which do not use the golden ratio

On desktops (no panel) we normally do not use the BGRT provided
xoffset and yoffset because the resolution they are intended for
may be differtent then the resolution of the current display.

On some desktops (no panel) the image gets centered not only
horizontally, but also vertically. In this case our default of using
the golden ratio for the vertical position causes the BGRT image
to jump.

To avoid this this commits adds an extra check to see if the provided
xoffset and yoffset perfectly center the image and in that case uses them.

An example of a system needing this workaround is the Minix Neo Z83-4.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'revert-0d0f21a8' into 'master'
Ray Strode [Fri, 6 Sep 2019 11:57:13 +0000 (11:57 +0000)] 
Merge branch 'revert-0d0f21a8' into 'master'

Revert "Merge branch 'avoid_shutdown_failure_v2' into 'master'"

See merge request plymouth/plymouth!57

6 years agoRevert "Merge branch 'avoid_shutdown_failure_v2' into 'master'"
ZhaoQiang [Fri, 6 Sep 2019 10:17:07 +0000 (10:17 +0000)] 
Revert "Merge branch 'avoid_shutdown_failure_v2' into 'master'"

This reverts merge request !55

6 years agoMerge branch 'bugfix' into 'master'
Ray Strode [Thu, 5 Sep 2019 13:36:09 +0000 (13:36 +0000)] 
Merge branch 'bugfix' into 'master'

ply-utils: Drop ply_fd_can_take_data and ply_fd_may_block function

See merge request plymouth/plymouth!50

6 years agoply-utils: Drop ply_fd_can_take_data and ply_fd_may_block function Since it is from...
ZhaoQiang [Sun, 21 Jul 2019 13:59:58 +0000 (21:59 +0800)] 
ply-utils: Drop ply_fd_can_take_data and ply_fd_may_block function Since it is from a bygone time which is no longer in use.

6 years agoMerge branch 'get_rid_of_dead_code' into 'master'
Ray Strode [Thu, 5 Sep 2019 13:35:22 +0000 (13:35 +0000)] 
Merge branch 'get_rid_of_dead_code' into 'master'

ply-utils: Get rid of unused old code,

See merge request plymouth/plymouth!53

6 years agoply-utils: Get rid of unused old code, drop function ply_get_max_open_fds,
ZhaoQiang [Tue, 30 Jul 2019 09:04:25 +0000 (17:04 +0800)] 
ply-utils: Get rid of unused old code, drop function ply_get_max_open_fds,
ply_close_open_fds, ply_close_all_fds.

6 years agoMerge branch 'update_spec' into 'master'
Ray Strode [Thu, 5 Sep 2019 13:32:08 +0000 (13:32 +0000)] 
Merge branch 'update_spec' into 'master'

scripts: update file plymouth.spec to integrate recent fixes.

See merge request plymouth/plymouth!54

6 years agoscripts: update file plymouth.spec to integrate recent fixes.
zhaoqiang [Sun, 4 Aug 2019 14:43:32 +0000 (22:43 +0800)] 
scripts: update file plymouth.spec to integrate recent fixes.

6 years agoMerge branch 'avoid_shutdown_failure_v2' into 'master'
Ray Strode [Wed, 14 Aug 2019 15:33:09 +0000 (15:33 +0000)] 
Merge branch 'avoid_shutdown_failure_v2' into 'master'

ply-systemd-units: Drop attach-session in systemd-units to avoid the failure of unmounting separate /var during poweroff.

See merge request plymouth/plymouth!55

6 years agoply-systemd-units: Drop attach-session in systemd-units to avoid
ZhaoQiang [Tue, 13 Aug 2019 09:39:10 +0000 (17:39 +0800)] 
ply-systemd-units: Drop attach-session in systemd-units to avoid
the failure of unmounting separate /var during poweroff.

6 years agoMerge branch 'twostep-bgrt-fix' into 'master'
Hans de Goede [Thu, 8 Aug 2019 10:07:12 +0000 (10:07 +0000)] 
Merge branch 'twostep-bgrt-fix' into 'master'

two-step: Deal with buggy firmware which does not pre-rotate the bgrt image

See merge request plymouth/plymouth!49

6 years agotwo-step: Deal with buggy firmware which does not pre-rotate the bgrt image
Hans de Goede [Thu, 18 Jul 2019 15:51:54 +0000 (17:51 +0200)] 
two-step: Deal with buggy firmware which does not pre-rotate the bgrt image

Some buggy Lenovo 2-in-1s with a 90 degree rotated panel, behave as
if the panel is mounted up-right / not rotated at all. These devices
have a buggy efifb size (landscape resolution instead of the actual
portrait resolution of the panel), this gets fixed-up by the kernel.

These buggy devices also do not pre-rotate the bgrt_image nor do
they set the ACPI-6.2 rotation status-bits. We can detect this by
checking that the bgrt_image is perfectly centered horizontally
when we use the panel's height as the width.

This commit uses this check to override the bgrt-rotation read from
the ACPI-6.2 rotation status-bits, fixing us displaying the bgrt image
with the wrong rotation.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1730783
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'revert-2572c428' into 'master'
Ray Strode [Tue, 16 Jul 2019 13:50:51 +0000 (13:50 +0000)] 
Merge branch 'revert-2572c428' into 'master'

Revert "Merge branch 'bugfix' into 'master'"

See merge request plymouth/plymouth!47

6 years agoRevert "Merge branch 'bugfix' into 'master'"
Ray Strode [Tue, 16 Jul 2019 13:50:37 +0000 (13:50 +0000)] 
Revert "Merge branch 'bugfix' into 'master'"

This reverts merge request !46

6 years agoMerge branch 'bugfix' into 'master'
Ray Strode [Tue, 16 Jul 2019 13:37:29 +0000 (13:37 +0000)] 
Merge branch 'bugfix' into 'master'

ply-utils: Drop ply_fd_can_take_data and ply_fd_may_block function

See merge request plymouth/plymouth!46

6 years agoply-utils: Drop ply_fd_can_take_data and ply_fd_may_block function Since it is from
ZhaoQiang [Tue, 16 Jul 2019 13:37:29 +0000 (13:37 +0000)] 
ply-utils: Drop ply_fd_can_take_data and ply_fd_may_block function Since it is from
a bygone time which is no longer in use.

6 years agoconfigure: bump so name
Ray Strode [Mon, 15 Jul 2019 14:51:54 +0000 (10:51 -0400)] 
configure: bump so name

not that our library is really general purpose or anything, but
dropped some functions, so incr the so.

6 years agoMerge branch 'bugfix' into 'master'
Ray Strode [Mon, 15 Jul 2019 10:14:06 +0000 (10:14 +0000)] 
Merge branch 'bugfix' into 'master'

ply terminal session: Drop function ply_terminal_session_execute and ply_terminal_session_open_console

See merge request plymouth/plymouth!45

6 years agoply terminal session: Drop function ply_terminal_session_execute and
ZhaoQiang [Mon, 15 Jul 2019 10:14:06 +0000 (10:14 +0000)] 
ply terminal session: Drop function ply_terminal_session_execute and
ply_terminal_session_open_console, Since this is a feature from a bygone
time which is no longer in use without ply_terminal_session_run.

6 years agoMerge branch 'bugfix' into 'master'
Ray Strode [Fri, 12 Jul 2019 17:44:29 +0000 (17:44 +0000)] 
Merge branch 'bugfix' into 'master'

Internationalization: Add zh_HK and zh_TW translations.

See merge request plymouth/plymouth!42

6 years agoInternationalization: Add zh_HK and zh_TW translations.
ZhaoQiang [Fri, 12 Jul 2019 17:44:29 +0000 (17:44 +0000)] 
Internationalization: Add zh_HK and zh_TW translations.

6 years agoMerge branch 'bugfix' into 'master'
Ray Strode [Thu, 11 Jul 2019 21:53:31 +0000 (21:53 +0000)] 
Merge branch 'bugfix' into 'master'

Drop function ply_terminal_session_run

See merge request plymouth/plymouth!41

6 years agoply terminal session: Drop ply_terminal_session_run, this is a feature from a bygone...
ZhaoQiang [Thu, 11 Jul 2019 21:53:31 +0000 (21:53 +0000)] 
ply terminal session: Drop ply_terminal_session_run, this is a feature from a bygone time which is no longer in use

6 years agoRegenerate plymouth.pot
Hans de Goede [Wed, 12 Jun 2019 09:55:21 +0000 (11:55 +0200)] 
Regenerate plymouth.pot

Regenerate plymouth.pot to add the strings for the new firmware-upgrade
mode.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'twostep-bgrt-fix' into 'master'
Hans de Goede [Tue, 11 Jun 2019 14:53:13 +0000 (14:53 +0000)] 
Merge branch 'twostep-bgrt-fix' into 'master'

two-step: Add support for firmware-splashes with rotation status bits set

See merge request plymouth/plymouth!35

6 years agotwo-step: Add support for firmware-splashes with rotation status bits set
Hans de Goede [Fri, 24 May 2019 20:49:15 +0000 (22:49 +0200)] 
two-step: Add support for firmware-splashes with rotation status bits set

Before the ACPI 6.2 specification, the BGRT table did not contain any rotation
information, so to make sure that the firmware-splash showed the right way up
the firmware would contain a pre-rotated image and our BGRT / firmware-splash
loading code assumed this is alwast true.

Starting with ACPI 6.2 tge bgrt status fields has 2 bits to tell the firmware
the image needs to be rotated before being displayed. If these bits are set
then the firmwares-splash is not pre-rotated and we must handle it differently.

This commit adds support for reading the new rotation bits from the sysfs
bgrt/status file and adds handling for the case where the bits indicate
that the image is not pre-rotated.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'bugfix' into 'master'
Ray Strode [Wed, 5 Jun 2019 10:42:24 +0000 (10:42 +0000)] 
Merge branch 'bugfix' into 'master'

Unify all code's vi format control.

See merge request plymouth/plymouth!40

6 years agoUnify all code's vi format control.
ZhaoQiang [Wed, 5 Jun 2019 10:42:24 +0000 (10:42 +0000)] 
Unify all code's vi format control.
Update several file's vi format control line to make it easy to maintain.

6 years agoMerge branch 'bugfix' into 'master'
Ray Strode [Sun, 2 Jun 2019 19:52:58 +0000 (19:52 +0000)] 
Merge branch 'bugfix' into 'master'

ply-text-display.c: Correct vi format line

See merge request plymouth/plymouth!38

6 years agoply-text-display.c: Correct vi format line
ZhaoQiang [Sun, 2 Jun 2019 19:52:58 +0000 (19:52 +0000)] 
ply-text-display.c: Correct vi format line
make vi can directly edit this file without errors and make it use 8 space
tabs etc.

6 years agoMerge branch 'wip/hughsie/firmware-upgrade' into 'master'
Ray Strode [Wed, 29 May 2019 17:52:43 +0000 (17:52 +0000)] 
Merge branch 'wip/hughsie/firmware-upgrade' into 'master'

Add a new firmware-upgrade mode for use by fwupd

See merge request plymouth/plymouth!33

6 years agoAdd a new firmware-upgrade mode for use by fwupd
Richard Hughes [Mon, 25 Mar 2019 09:39:24 +0000 (09:39 +0000)] 
Add a new firmware-upgrade mode for use by fwupd

This allows us to have accurate localised text, and also to use the vendor BIOS
logo when applying firmware updates.

6 years agoMerge branch 'drm-tile-fix' into 'master'
Ray Strode [Tue, 28 May 2019 14:53:05 +0000 (14:53 +0000)] 
Merge branch 'drm-tile-fix' into 'master'

drm: Fix tiled mode detection

See merge request plymouth/plymouth!36

6 years agodrm: Fix tiled mode detection
Hans de Goede [Sun, 26 May 2019 15:54:05 +0000 (17:54 +0200)] 
drm: Fix tiled mode detection

The TILE property is present on all connectors which are DisplayPort
MST (Multi-Stream) outputs, independent if they are connected to a tiled
display are not.

Starting with the 5.2 kernel, it is actually present on almost all outputs.

Rather then just checking if the property is present, check that if it
is present it has a valid (non zero) blob-id assigned to it, this fixes
us mis-identifying DP MST outputs as always being tiled.

Which in turn fixes us failing to pick the preferred mode on these outputs.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'transfix' into 'master'
Ray Strode [Tue, 28 May 2019 14:49:41 +0000 (14:49 +0000)] 
Merge branch 'transfix' into 'master'

Translation: Update plymouth.pot's misc infomation

See merge request plymouth/plymouth!37

6 years agoTranslation: Update plymouth.pot's misc infomation
ZhaoQiang [Tue, 28 May 2019 14:49:41 +0000 (14:49 +0000)] 
Translation: Update plymouth.pot's misc infomation
plymouth.pot is using old Bugzilla as issue discussing URL, update it to
Gitlab, and also correct other translation files which already been
traslated.

6 years agoMerge branch 'master' into 'master'
Ray Strode [Thu, 23 May 2019 19:24:55 +0000 (19:24 +0000)] 
Merge branch 'master' into 'master'

main.c: Deprecate gdm transition signal

See merge request plymouth/plymouth!34

6 years agomain.c: Deprecate gdm transition signal
ZhaoQiang [Thu, 23 May 2019 19:24:55 +0000 (19:24 +0000)] 
main.c: Deprecate gdm transition signal

plymouth used to create a file in /var to tell gdm to start in active vt,
but gdm don't use this file now. and create file in filesystem too early
will cause race problem when /var is a seperate partition or it's on an
lvm volume.

6 years agoMerge branch 'spinner-bgrt-theme-background' into 'master'
Hans de Goede [Mon, 25 Mar 2019 08:20:07 +0000 (08:20 +0000)] 
Merge branch 'spinner-bgrt-theme-background' into 'master'

themes: Update spinner and bgrt background settings

See merge request plymouth/plymouth!32

6 years agoTranslations: Sync translations with zanata
Hans de Goede [Mon, 25 Mar 2019 07:23:00 +0000 (08:23 +0100)] 
Translations: Sync translations with zanata

Add new fur and sr translations from fedora.zanata.org :
https://fedora.zanata.org/iteration/view/plymouth/master

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agothemes: Update spinner and bgrt background settings
Hans de Goede [Mon, 25 Mar 2019 07:13:26 +0000 (08:13 +0100)] 
themes: Update spinner and bgrt background settings

Update the spinner and bgrt themes background to solid black so that we get
the same background, independent of whether the firmware-splash (ACPI
BGRT extension) is available and to closer match the mock-ups from:

https://wiki.gnome.org/Design/OS/BootProgress

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'ply-pixel-buf-interpolate-fix' into 'master'
Hans de Goede [Mon, 4 Mar 2019 09:48:52 +0000 (09:48 +0000)] 
Merge branch 'ply-pixel-buf-interpolate-fix' into 'master'

ply-pixel-buffer: Fix right and bottom edge rendering of scaled buffers

See merge request plymouth/plymouth!31

6 years agoply-pixel-buffer: Fix right and bottom edge rendering of scaled buffers
Hans de Goede [Fri, 1 Mar 2019 16:22:30 +0000 (17:22 +0100)] 
ply-pixel-buffer: Fix right and bottom edge rendering of scaled buffers

When scaling a buffer 2x and calling ply_pixels_interpolate to interpolate
the last row / column, the extra pixels used for pixels would go out of
bounds and be replaced with a black pixel. This causes a 50% dimming of the
last row / column.

This 50% dimming leads to an ugly darkline when a theme draws 2 images
which are supposed to be joined together.

This commit fixes this by clipping the coordinates to the source image
limits instead of using black pixels when interpolating right and bottom
edge pixels.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'theme-translation' into 'master'
Hans de Goede [Mon, 4 Mar 2019 09:46:24 +0000 (09:46 +0000)] 
Merge branch 'theme-translation' into 'master'

Theme translation support

See merge request plymouth/plymouth!30

6 years agoSync translations with zanata
Hans de Goede [Mon, 4 Mar 2019 09:42:29 +0000 (10:42 +0100)] 
Sync translations with zanata

Sync the translations with the translations from zanata:
https://fedora.zanata.org/iteration/view/plymouth/master

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoAdd support for translating the user visible strings in some themes
Hans de Goede [Tue, 26 Feb 2019 10:03:36 +0000 (11:03 +0100)] 
Add support for translating the user visible strings in some themes

This commit adds initial translation support, for now translation support
is limited to the user visible strings in some splash plugins and themes,
the daemon and commandline utils output are left untranslated for now.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoPrefix Title and Subtitle theme config keywords with an underscore
Hans de Goede [Tue, 26 Feb 2019 09:23:06 +0000 (10:23 +0100)] 
Prefix Title and Subtitle theme config keywords with an underscore

Prefix Title and Subtitle theme config keywords with an underscore ('_')
so that "intltool-extract --type=gettext/ini" can be used to make the
title and subtitle translatable.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'system-upgrade-mode' into 'master'
Hans de Goede [Tue, 26 Feb 2019 16:03:19 +0000 (16:03 +0000)] 
Merge branch 'system-upgrade-mode' into 'master'

Add new reboot and system-upgrade modes

See merge request plymouth/plymouth!29

6 years agoAdd new reboot and system-upgrade modes
Hans de Goede [Mon, 25 Feb 2019 15:47:13 +0000 (16:47 +0100)] 
Add new reboot and system-upgrade modes

Some themes show certain text strings to the user depending on the mode,
see e.g. the shutdown vs reboot mockups of:
https://wiki.gnome.org/Design/OS/BootProgress

Besides during shutdown vs reboot, we also want different theming for
installing offline (security) updates versus doing an offline OS upgrade.

To make this possible this commit adds new reboot and system-upgrade
modes which can be specified either when starting plymouthd, or through
plymouth change-mode --<mode>.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agomain: Remove private ply_mode_t
Hans de Goede [Mon, 25 Feb 2019 14:45:26 +0000 (15:45 +0100)] 
main: Remove private ply_mode_t

Remove the private ply_mode_t from main.c, this is a 1:1 mirror of
ply_boot_splash_mode_t, so use ply_boot_splash_mode_t directly, leading
to a nice cleanup.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agotwo-step: Make ProgressBarShowPercentComplete a per mode setting
Hans de Goede [Mon, 25 Feb 2019 15:56:16 +0000 (16:56 +0100)] 
two-step: Make ProgressBarShowPercentComplete a per mode setting

Make ProgressBarShowPercentComplete a per mode setting, this gives the
theme more flexibility wrt which messages to show in different modes.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'default-showdelay0' into 'master'
Hans de Goede [Sat, 23 Feb 2019 14:02:55 +0000 (14:02 +0000)] 
Merge branch 'default-showdelay0' into 'master'

plymouthd.defaults: Change default ShowDelay to 0

Closes #64

See merge request plymouth/plymouth!26

6 years agoplymouthd.defaults: Change default ShowDelay to 0
Hans de Goede [Wed, 13 Feb 2019 14:10:23 +0000 (15:10 +0100)] 
plymouthd.defaults: Change default ShowDelay to 0

ShowDelay was added with as goal to reduce the number of jarring /
flickering visual transitions.

The idea being that if a system boots within 5 seconds, we would avoid
the transition from a black screen to plymouth, instead directly going
to e.g. gdm.

In practive most modern systems (with SSD) take about 4-7 seconds to
boot, this causes plymouth to only show briefly (aprox. 1 second).

IOW on some modern systems it quicky flashes by, this "flash" is the end
result of the ShowDelay=5 default which is intended to *reduce* the number
of jarring / flickering visual transitions.

On older systems the boot will likely take significantly longer then the
5 seconds, so we will show the splash anyways and we might as well show
it right away, so that the user can see something is happening right away.

Note this has been discussed in more detail in issue #64, which also
contains an alternative much more involved fix for the issues surrounding
SplashDelay, but simply defaulting it to 0 seems to be best.

Closes #64

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'misc-fixes2' into 'master'
Hans de Goede [Sat, 23 Feb 2019 14:01:45 +0000 (14:01 +0000)] 
Merge branch 'misc-fixes2' into 'master'

Misc fixes

See merge request plymouth/plymouth!25

6 years agoply-boot-splash: Do not add ply_boot_splash_update_progress timeout multiple times
Hans de Goede [Wed, 16 Jan 2019 11:51:05 +0000 (12:51 +0100)] 
ply-boot-splash: Do not add ply_boot_splash_update_progress timeout multiple times

Before this commit when freeing the splash, the following would be logged:

multiple matching timeouts found for removal
multiple matching timeouts found for removal

This is caused by us adding the ply_boot_splash_update_progress timeout
handler to the event loop 3 times: 1 on first show, 2 on second show with
a different mode, 3 on becoming idle.

This commit fixes the 2nd add by stopping the timer when changing modes
and the 3th add by not calling ply_boot_splash_update_progress to update
the progress, as that will re-add itself. Instead this commit directly calls
plugin_interface->on_boot_progress from ply_boot_splash_become_idle.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agologging: Minor log-message fixes
Hans de Goede [Wed, 16 Jan 2019 11:27:01 +0000 (12:27 +0100)] 
logging: Minor log-message fixes

This fixes 2 minor issues with our log-messages:
1. ply_trace adds a "\n" itself, so there is no need to pass one extra.
2. Correct spelling of quitting

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agologging: Improve logging format
Hans de Goede [Wed, 13 Feb 2019 13:39:42 +0000 (14:39 +0100)] 
logging: Improve logging format

This commit adds 2 improvemens to the ply_trace logging format:

1) It prefixes the log messages with timestamps (since system boot)

2) Previously function-names where right aligned / left padded to 45
characters. But they were prefixed with a [file:line] prefix which does
not have a fixed width, making the column aligment for the actual messages
fail resulting in hard to read logs.

This commit fixes 2. by printing "<timestamp> file:line:func" to a
prefix-buffer and then left-aligning / right padding this prefix buffer
to 75 chars.

The resulting logged lines now look like this:

00:00:01.741 main.c:1928:check_logging                                     : checking if console messages should be redirected and logged
00:00:01.741 main.c:1937:check_logging                                     : logging will be enabled!

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'offline-updates' into 'master'
Hans de Goede [Sat, 23 Feb 2019 14:00:25 +0000 (14:00 +0000)] 
Merge branch 'offline-updates' into 'master'

Improved offline updates theme support

See merge request plymouth/plymouth!24

6 years agothemes: Update spinner and bgrt theme offline updates mode
Hans de Goede [Wed, 6 Feb 2019 16:04:04 +0000 (17:04 +0100)] 
themes: Update spinner and bgrt theme offline updates mode

Make the spinner and bgrt offline updates mode match the GNOME design
mockups from: https://wiki.gnome.org/Design/OS/BootProgress

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agotwo-step: Add a per mode setting to suppress messages
Hans de Goede [Tue, 12 Feb 2019 14:15:26 +0000 (15:15 +0100)] 
two-step: Add a per mode setting to suppress messages

The messages passed to plymouth display-message can be quite verbose, esp.
in the offline-updates case. Combined with some themes now showing their
own prominent title message explaining what is going on this leads to
undesirable repetitive text being shown.

This commit adds support for a per mode SuppressMessages setting which
allows themes to suppress messages passed to plymouth display-message
on a per mode basis.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agotwo-step: Add progress-bar support
Hans de Goede [Fri, 8 Feb 2019 21:41:15 +0000 (22:41 +0100)] 
two-step: Add progress-bar support

Some themes may want to use a progress-bar instead of the throbber for
some modes. This commit adds a new per mode UseProgressBar setting allowing
this.

One case where this will be used is the offline updates splash-screen
mockup from: https://wiki.gnome.org/Design/OS/BootProgress

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agotwo-step: Add MessageBelowAnimation option
Hans de Goede [Thu, 7 Feb 2019 16:44:32 +0000 (17:44 +0100)] 
two-step: Add MessageBelowAnimation option

So far we've always printed messages coming from "plymouth display-message"
in the top left corner. In some cases the theme may want to instead display
the messages below the animation (where they are more prominently visible).

My first attempt to support this added MessageHorizontal/VerticalAlignment
options. That did not work since we want a more or less fixed distance
between the animation bottom and the message and with screen-heights varying
from 480 to 1200 that is not possible using alignment options to place both
the animation and the message.

Note the default is unchanged and still is the top left corner.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agotwo-step: Add support for specifying a title and sub-title in the theme file
Hans de Goede [Wed, 6 Feb 2019 15:58:58 +0000 (16:58 +0100)] 
two-step: Add support for specifying a title and sub-title in the theme file

The idea behind this is to allow a splash-screen containing something like this:

            <TITLE FONT>Installing updates...</TITLE FONT>

                    Do not turn off your computer

                      /-----------------------\
                      |Animation / progres-bar|
                      \-----------------------/

As can be seen in the mockups here:
https://wiki.gnome.org/Design/OS/BootProgress

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agotwo-step: Add per mode settings
Hans de Goede [Wed, 6 Feb 2019 09:34:56 +0000 (10:34 +0100)] 
two-step: Add per mode settings

We want theme files to be able to specify different settings for
different modes ("boot-up" / "shutdown" / "updates"). Specifically we
want themes to be able to specify a text for (offline) updates mode to
tell the user what is going on, see the mockups at:
https://wiki.gnome.org/Design/OS/BootProgress

This commit adds support for per mode settings to the two-step plugins
and for starters moves the UseFirmwareBackground setting there, since we
don't want to show the firmware-background when showing the help-text.

Follow-up commits will add support for specifying the (optional) per mode
text to show, note eventually we will need to make these texts translatable.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agotwo-step: Drop background_is_bgrt view_t member
Hans de Goede [Wed, 6 Feb 2019 09:08:12 +0000 (10:08 +0100)] 
two-step: Drop background_is_bgrt view_t member

This is always set to true if plugin->background_bgrt_image is set, so
we can simply check for plugin->background_bgrt_image instead.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoply-progress-bar: Allow caller to specify the widgets width and height
Hans de Goede [Fri, 8 Feb 2019 13:38:44 +0000 (14:38 +0100)] 
ply-progress-bar: Allow caller to specify the widgets width and height

Before this commit ply_progress_bar_show would take coordinates for where
to show the progress-bar but the width and height were hardcodec. This
commit adds width and height parametes, so that the caller can specify
the width and height too.

This commit does not change behavior for existing users (tested with the
spinfinity theme).

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoply-progress-bar: Allow choosing fore- and back-ground color
Hans de Goede [Fri, 8 Feb 2019 13:06:28 +0000 (14:06 +0100)] 
ply-progress-bar: Allow choosing fore- and back-ground color

Allow choosing a fore- and back-ground color instead of hardcoding
the foreground to white and the background to transparent.

This commit does not change behavior for existing users (tested with the
spinfinity theme).

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoply-progress-bar: Redraw on percentage update
Hans de Goede [Fri, 8 Feb 2019 17:04:01 +0000 (18:04 +0100)] 
ply-progress-bar: Redraw on percentage update

All the other plymouth widgets do a (re)draw when one of their
properties get updated. Make ply-progress-bar also do this, this allows
dropping the draw calls directly after the 2 current callers of
ply_progress_bar_set_percent_done.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoply-label: Make sure get_width_of_control / get_height_of_control return correct...
Hans de Goede [Wed, 6 Feb 2019 10:48:55 +0000 (11:48 +0100)] 
ply-label: Make sure get_width_of_control / get_height_of_control return correct values

Users of ply_label may want to know the height / width of the text before
calling ply_label_show, so that they can e.g. vertically align it.

This commit adds a size_needs_update bool to the label plugin and uses this
to check if executing size_control is necessary before returning the
width / height and also modifies the ply-label code to load the plugin
from its get_width / get_height methods.

As an added advantage this will also skip unnecessary size_control calls
when calling ply_label_show on an already visible label.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'wip/over-allocation-fix' into 'master'
Ray Strode [Mon, 18 Feb 2019 15:24:24 +0000 (15:24 +0000)] 
Merge branch 'wip/over-allocation-fix' into 'master'

boot-server: fix type confusion when allocating connection object

See merge request plymouth/plymouth!27

6 years agoboot-server: fix type confusion when allocating connection object
Ray Strode [Mon, 18 Feb 2019 15:22:21 +0000 (10:22 -0500)] 
boot-server: fix type confusion when allocating connection object

Right now we allocate enough room for a whole ply_boot_server_t
object for every connection object.

This commit mops up the over-allocation

6 years agoMerge branch 'drm-hotplug' into 'master'
Hans de Goede [Fri, 25 Jan 2019 09:06:31 +0000 (09:06 +0000)] 
Merge branch 'drm-hotplug' into 'master'

Drm hotplug

See merge request plymouth/plymouth!23

6 years agoply-device-manager: Handle change events for monitor hotplugging
Hans de Goede [Mon, 14 Jan 2019 10:47:21 +0000 (11:47 +0100)] 
ply-device-manager: Handle change events for monitor hotplugging

Not only handle add but also change events for drm-subsys devices,
change events are generated when the hardware detect a new monitor
has been plugged in.

This is esp. important with modern DisplayPort MST docking stations where
discovery / enumeration can take so long that the connected displays
are not enumerated by the kernel yet when the drm plugin first calls
drmModeGetResources(). Causing the monitors on these docks to sometimes
not show plymouth during boot (based on various timing parameters).

Note that if during the add event drm-renderer could not be bound, this
commit tries to re-bind the DRM renderer on change events in case a
monitor got plugged into a GPU which did not have anything connected before.
This often happens with the second GPU in a laptop with a hybrid GPU setup.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1652279
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoply-device-manager: Consume all events in one go
Hans de Goede [Thu, 17 Jan 2019 13:52:41 +0000 (14:52 +0100)] 
ply-device-manager: Consume all events in one go

Drm devices generate a bunch of add and change events when the kms
driver loads, consume these all in one go.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Stop limiting preferred-mode picking to UEFI systems
Hans de Goede [Mon, 21 Jan 2019 14:41:37 +0000 (15:41 +0100)] 
drm: Stop limiting preferred-mode picking to UEFI systems

When the code to pick the preferred-mode for outputs was first added, it
was limited to UEFI systems, since it was necessary there.

It was not enabled everywhere right away because there were some worries
it might cause regressions.

We've been shipping this for a while now and no regressions have been
reported, moreover with the new hotplug support we really want to pick the
preferred-mode rather then falling back to the first mode in the list.

Therefor this commits removes the check for UEFI systems from
should_use_preferred_mode().

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Reset mode on display-port connected outputs with a bad link-status
Hans de Goede [Thu, 17 Jan 2019 10:41:46 +0000 (11:41 +0100)] 
drm: Reset mode on display-port connected outputs with a bad link-status

With Display-Port links, esp. with DP MST links we may need to reset the
mode if the kernel decides to retrain the link.

If the kernel has retrained the link, the list of available modes may
have changed. If it changed and the mode we picked is no longer available
because of this, we treat this as an unplug + replug.

Since we may want to set another mode, the kernel does not automatically
restore the previous mode. So in case the mode did not change we need to
do an explicit mode-set.

This commits adds support for this, by:

1) Adding a scan_out_buffer_needs_reset member to ply_renderer_head
2) Storing the link-status when going over the connector properties
3) Checking the link-status when adding a connector to a head and setting
   the scan_out_buffer_needs_reset flag when the link-status is bad

This commit also makes ply_renderer_head_map set
scan_out_buffer_needs_reset, avoiding an unnecessary round-trip to the
kernel in the first reset_scan_out_buffer_if_needed call.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Implement handle_change_event
Hans de Goede [Wed, 16 Jan 2019 08:41:42 +0000 (09:41 +0100)] 
drm: Implement handle_change_event

Now that we can call create_heads_for_active_connectors multiple times
we can implement handle_change_event.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Ensure heads are mapped before flushing them
Hans de Goede [Wed, 16 Jan 2019 13:50:34 +0000 (14:50 +0100)] 
drm: Ensure heads are mapped before flushing them

The drm plugin's map_to_device function will return true if mapping of
any of the heads has succeeded, potentially leaving some heads unmapped.

This causes the "assert (buffer != NULL)" in begin_flush to trigger when
flushing the heads as head->scan_out_buffer_id is 0.

It seems that even though this is a pre-existing problem we sofar have
not hit this, likely because ply_renderer_head_map in pratice never fails.

However with the new monitor hotplug support, a head may be added after
map_to_device is called, triggering the assert.

This commit fixes both the theoretical pre-existing problem and the
actual problem triggered by hotplug support by ensuring that the head
is mapped before flushing it.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Allow calling create_heads_for_active_connectors multiple times
Hans de Goede [Tue, 15 Jan 2019 09:43:45 +0000 (10:43 +0100)] 
drm: Allow calling create_heads_for_active_connectors multiple times

To support hotplugging monitors while plymouth is running, we must
rebuild our outputs list and create and/or remove heads as necessary
on every change event.

This commit adds support for removing single outputs (rather then
tearing down the whole backend) and adds a new first step to
create_heads_for_active_connectors which goes over our view of the
outputs before the change and removes any changed outputs from the
heads they belong to, destroying the head if the last output/connector
is removed.

On the first call backend->output_len is 0, so this new first step
is a no-op.

On subsequent calls we can simply build the list as we do on the first
call, changed outputs will already be removed by the new first step
and for unchanged outputs we end up in ply_renderer_head_add_connector
which will ignore the already added connector.

Note this drops the "couldn't connect monitor to existing head" message,
this is confusing when create_heads_for_active_connectors is called more
then once and is unnecessary as ply_renderer_head_add_connector already
logs a message on both failure exit paths.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Allow calling ply_renderer_head_add_connector with existing connector_id
Hans de Goede [Tue, 15 Jan 2019 08:54:09 +0000 (09:54 +0100)] 
drm: Allow calling ply_renderer_head_add_connector with existing connector_id

Allow calling ply_renderer_head_add_connector with an existing
connector_id and ignore this call.

This allows calling create_heads_for_active_connectors multiple times,
only creating/adding heads for new connectors.

This is a preparation patch for adding support for hotplugging
monitors while plymouth is running.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Limit backend->resources lifetime to within query_device
Hans de Goede [Tue, 15 Jan 2019 08:21:05 +0000 (09:21 +0100)] 
drm: Limit backend->resources lifetime to within query_device

We do not need / use backend->resources anywhere outside of the query_device
function and with the upcoming hotplug support we need to get a fresh set
of resources on change events, so limit the resources lifetime to
query_device.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Store and keep all the outputs in the backend
Hans de Goede [Tue, 15 Jan 2019 07:58:45 +0000 (08:58 +0100)] 
drm: Store and keep all the outputs in the backend

Put all outputs in the outputs array instead of just the connected ones
and store the outputs array and the controller_id-to-head hashtable in the
backend object instead of temporarily allocating them during enumeration.

Also add new heads to the heads list and to the controller_id-to-head
hashtable in ply_renderer_head_new where this really belongs. This
allows nicely balancing these 2 with removing the head from the list
and hash_table in the ply_renderer_head_remove function which is added
in a follow-up commit.

This is a preparation patch for adding support for hotplugging
monitors while plymouth is running.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Add get_output_info helper function
Hans de Goede [Tue, 15 Jan 2019 07:34:58 +0000 (08:34 +0100)] 
drm: Add get_output_info helper function

Add a new get_output_info helper function, which fill a ply_output_t with
all info related to the connecter based on a connector-id.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Stop storing a pointer to drmModeConnector in ply_output_t
Hans de Goede [Tue, 15 Jan 2019 07:31:20 +0000 (08:31 +0100)] 
drm: Stop storing a pointer to drmModeConnector in ply_output_t

This is a preparation patch for hotplug support, for hotplug support we
want to keep the ply_output_t for connectors around, this change decouples
the lifetime of the drmModeConnector from the ply_output_t lifetime.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Stop keeing a drmModeConnector instance around
Hans de Goede [Tue, 15 Jan 2019 06:31:32 +0000 (07:31 +0100)] 
drm: Stop keeing a drmModeConnector instance around

Before this commit we were storing a pointer to the drmModeConnector
in struct _ply_renderer_head, solely so that we can free it when
destroying the head. This was necessary because we also stored a pointer
to the mode we picked, which comes from insided the drmModeConnector.

The drmModeModeInfo struct has no pointers, so we can simply store a copy
of it instead of a pointer, which removes the need to keep the
drmModeConnector around after probing the connectors.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agodrm: Refactor ply_renderer_head_add_connector and ply_renderer_head_new
Hans de Goede [Mon, 14 Jan 2019 16:36:22 +0000 (17:36 +0100)] 
drm: Refactor ply_renderer_head_add_connector and ply_renderer_head_new

Both these function take a bunch of info coming from the ply_output_t
struct and with upcoming changes they are going to be using even more
ply_output_t fields. Instead of passing all these fields one by one,
simply directly pass a pointer to ply_output_t.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoply-renderer: Add ply_renderer_handle_change_event function
Hans de Goede [Wed, 16 Jan 2019 08:21:59 +0000 (09:21 +0100)] 
ply-renderer: Add ply_renderer_handle_change_event function

This function can be called to notify the renderer of udev change-events.

This is a preparation patch for adding support for hotplugging
monitors while plymouth is running.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoply-array: Add ply_array_contains_uint32_element function
Hans de Goede [Tue, 15 Jan 2019 08:48:30 +0000 (09:48 +0100)] 
ply-array: Add ply_array_contains_uint32_element function

Add a new ply_array_contains_uint32_element which checks if the queried
ply-array contains an element with the passed in uint32_t value.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
6 years agoMerge branch 'spinner-bgrt-theme-update' into 'master'
Hans de Goede [Wed, 16 Jan 2019 08:32:25 +0000 (08:32 +0000)] 
Merge branch 'spinner-bgrt-theme-update' into 'master'

Spinner bgrt theme update

See merge request plymouth/plymouth!22