]> git.ipfire.org Git - thirdparty/plymouth.git/log
thirdparty/plymouth.git
3 days agoMerge branch 'lichangze512-main-patch-7dfc' into 'main' main
Hans de Goede [Mon, 22 Dec 2025 07:37:17 +0000 (08:37 +0100)] 
Merge branch 'lichangze512-main-patch-7dfc' into 'main'

systemd: fix plymouth-switch-root-initramfs.service

See merge request plymouth/plymouth!339

6 days agosystemd: fix plymouth-switch-root-initramfs.service 339/head
李昌泽 [Fri, 22 Nov 2024 06:20:08 +0000 (06:20 +0000)] 
systemd: fix plymouth-switch-root-initramfs.service

remove repeat service config

9 days agoMerge branch 'weblate-plymouth-master' into 'main'
n3rdopolis [Tue, 16 Dec 2025 01:57:20 +0000 (01:57 +0000)] 
Merge branch 'weblate-plymouth-master' into 'main'

Translations update from Fedora Weblate

See merge request plymouth/plymouth!370

10 days agoTranslated using Weblate (Estonian) 370/head
Priit Jõerüüt [Mon, 15 Dec 2025 04:13:32 +0000 (04:13 +0000)] 
Translated using Weblate (Estonian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Priit Jõerüüt <jrtkbfdr@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/et/
Translation: plymouth/main

10 days agoTranslated using Weblate (Estonian)
Weblate Translation Memory [Mon, 15 Dec 2025 04:13:31 +0000 (04:13 +0000)] 
Translated using Weblate (Estonian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/et/
Translation: plymouth/main

10 days agoAdded translation using Weblate (Estonian)
Priit Jõerüüt [Mon, 15 Dec 2025 04:13:31 +0000 (04:13 +0000)] 
Added translation using Weblate (Estonian)

Co-authored-by: Priit Jõerüüt <jrtkbfdr@users.noreply.translate.fedoraproject.org>
2 weeks agoMerge branch 'fixkeymapdisplay' into 'main'
Hans de Goede [Sat, 6 Dec 2025 11:56:11 +0000 (12:56 +0100)] 
Merge branch 'fixkeymapdisplay' into 'main'

Display the first specified XKBLAYOUT as the active one, instead of the last

See merge request plymouth/plymouth!369

2 weeks agoDisplay the first specified XKBLAYOUT as the active one, instead of the last
n3rdopolis [Thu, 4 Dec 2025 13:31:36 +0000 (08:31 -0500)] 
Display the first specified XKBLAYOUT as the active one, instead of the last

This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2416197
This corrects the keymap display when users specify multiple keymaps
in /etc/vconsole.conf

2 weeks agoMerge branch 'fix_parse' into 'main'
n3rdopolis [Thu, 4 Dec 2025 13:43:36 +0000 (13:43 +0000)] 
Merge branch 'fix_parse' into 'main'

key-file: ignore empty lines before the first group

Closes #307

See merge request plymouth/plymouth!364

2 weeks agokey-file: ignore empty lines before the first group
Leon Marz [Sun, 31 Aug 2025 15:47:29 +0000 (17:47 +0200)] 
key-file: ignore empty lines before the first group

Fixes: plymouth/plymouth#307
3 weeks agoMerge branch 'feature/fix-freetype-hidpi' into 'main'
n3rdopolis [Mon, 1 Dec 2025 15:19:51 +0000 (15:19 +0000)] 
Merge branch 'feature/fix-freetype-hidpi' into 'main'

label-freetype: fix UAF in set_font_for_control() with hidpi

See merge request plymouth/plymouth!366

3 weeks agolabel-freetype: fix UAF in set_font_for_control() with hidpi (scale_factor 2)
Ferdinand Bachmann [Tue, 7 Oct 2025 20:16:45 +0000 (22:16 +0200)] 
label-freetype: fix UAF in set_font_for_control() with hidpi (scale_factor 2)

On hidpi screens, label-freetype will trigger a use-after-free in
set_font_for_control() via the call in update_scale_factor_from_pixel_buffer().

That call passes label->font as the font parameter to set_font_for_control().
set_font_for_control() then calls strdup() on its font argument, and
frees label->font. In this case this causes font to point into freed
memory, causing a read use-after-free in the following strstr() and
strrchr() calls.

Fix the issue by only using the freshly strdup()'d new_font variable
after freeing label->font.

3 weeks agoMerge branch 'weblate-plymouth-master' into 'main'
n3rdopolis [Mon, 1 Dec 2025 15:05:18 +0000 (15:05 +0000)] 
Merge branch 'weblate-plymouth-master' into 'main'

Translations update from Fedora Weblate

See merge request plymouth/plymouth!367

3 weeks agoTranslated using Weblate (Belarusian)
Yauhen Bugamol [Mon, 24 Nov 2025 06:08:02 +0000 (06:08 +0000)] 
Translated using Weblate (Belarusian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Yauhen Bugamol <bugamol@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/be/
Translation: plymouth/main

3 weeks agoTranslated using Weblate (Russian)
Aleksandr Sidorenko [Mon, 24 Nov 2025 06:08:02 +0000 (06:08 +0000)] 
Translated using Weblate (Russian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Aleksandr Sidorenko <auroragamesproject@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ru/
Translation: plymouth/main

3 weeks agoTranslated using Weblate (Slovak)
Ondrej Sulek [Mon, 24 Nov 2025 06:08:02 +0000 (06:08 +0000)] 
Translated using Weblate (Slovak)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Ondrej Sulek <feonsu@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/sk/
Translation: plymouth/main

3 weeks agoMerge branch 'fix-more-displays' into 'main'
n3rdopolis [Mon, 1 Dec 2025 14:51:36 +0000 (14:51 +0000)] 
Merge branch 'fix-more-displays' into 'main'

Fix: script: Ensure Window.GetX/Y() returns 0 for correct multi-display centering

See merge request plymouth/plymouth!368

3 weeks agoFix: script: Ensure Window.GetX/Y() returns 0 for correct multi-display centering
xinpeng wang [Mon, 1 Dec 2025 08:16:19 +0000 (16:16 +0800)] 
Fix: script: Ensure Window.GetX/Y() returns 0 for correct multi-display centering

When multiple displays of different resolutions are attached, the Plymouth script
plugin uses a virtual "max canvas" (defined by max_width and max_height) for
rendering. Individual displays calculate their offsets (display->x, display->y)
relative to this max canvas for mirroring/centering.

The script-level centering formula, as seen in example themes:
logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2);

Issue:
For the script to correctly calculate the absolute center position on the max canvas,
Window.GetX() must conceptually return the origin of the max canvas, which is 0.

However, the non-indexed implementation of sprite_window_get_x (and GetY) currently
returns the maximum calculated display offset (MAX(display->x)), which corresponds to
the offset of the smallest display. This incorrect, non-zero return value introduces
an unintended shift, pushing sprites (like the logo) off-center, and breaking the
centering logic.

Solution:
Update sprite_window_get_x and sprite_window_get_y to return the minimum calculated
display offset (MIN(display->x)). Since the largest display always has an offset of 0,
this guarantees that Window.GetX() and Window.GetY() return 0 when called without
parameters, correctly anchoring the script-calculated center position to the absolute
max canvas origin.

Signed-off-by: xinpeng.wang <wangxinpeng@uniontech.com>
2 months agoMerge branch 'weblate-plymouth-master' into 'main'
Hans de Goede [Wed, 22 Oct 2025 13:01:23 +0000 (15:01 +0200)] 
Merge branch 'weblate-plymouth-master' into 'main'

Translations update from Fedora Weblate

See merge request plymouth/plymouth!362

2 months agoTranslated using Weblate (Punjabi)
A S Alam [Thu, 16 Oct 2025 17:54:22 +0000 (17:54 +0000)] 
Translated using Weblate (Punjabi)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: A S Alam <aalam@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/pa/
Translation: plymouth/main

2 months agoTranslated using Weblate (Italian)
Salvatore Cocuzza [Thu, 16 Oct 2025 17:54:22 +0000 (17:54 +0000)] 
Translated using Weblate (Italian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Salvatore Cocuzza <info@salvatorecocuzza.it>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/it/
Translation: plymouth/main

2 months agoTranslated using Weblate (Indonesian)
Arif Budiman [Thu, 16 Oct 2025 17:54:22 +0000 (17:54 +0000)] 
Translated using Weblate (Indonesian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Arif Budiman <arifpedia@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/id/
Translation: plymouth/main

2 months agoTranslated using Weblate (Turkish)
Oğuz Ersen [Thu, 16 Oct 2025 17:54:22 +0000 (17:54 +0000)] 
Translated using Weblate (Turkish)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/tr/
Translation: plymouth/main

2 months agoTranslated using Weblate (German)
Ettore Atalan [Thu, 16 Oct 2025 17:54:22 +0000 (17:54 +0000)] 
Translated using Weblate (German)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/de/
Translation: plymouth/main

2 months agoTranslated using Weblate (Chinese (Simplified) (zh_CN))
lumingzh [Thu, 16 Oct 2025 17:54:22 +0000 (17:54 +0000)] 
Translated using Weblate (Chinese (Simplified) (zh_CN))

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: lumingzh <lumingzh@qq.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/zh_CN/
Translation: plymouth/main

2 months agoTranslated using Weblate (Catalan)
naly zzwd [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Catalan)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: naly zzwd <xeanhort007@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ca/
Translation: plymouth/main

2 months agoTranslated using Weblate (Slovenian)
Matjaž Jeran [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Slovenian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Matjaž Jeran <matjaz.jeran@amis.net>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/sl/
Translation: plymouth/main

2 months agoTranslated using Weblate (French)
Léane GRASSER [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (French)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Léane GRASSER <leane.grasser@proton.me>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/fr/
Translation: plymouth/main

2 months agoTranslated using Weblate (Romanian)
Remus-Gabriel Chelu [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Romanian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ro/
Translation: plymouth/main

2 months agoTranslated using Weblate (Finnish)
Ricky Tigg [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Finnish)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/fi/
Translation: plymouth/main

2 months agoTranslated using Weblate (Greek)
Jim Spentzos [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Greek)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/el/
Translation: plymouth/main

2 months agoTranslated using Weblate (Czech)
Daniel Rusek [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Czech)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Daniel Rusek <mail@asciiwolf.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/cs/
Translation: plymouth/main

2 months agoTranslated using Weblate (Swedish)
Anders Jonsson [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Swedish)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Anders Jonsson <anders.jonsson@norsjovallen.se>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/sv/
Translation: plymouth/main

2 months agoTranslated using Weblate (Polish)
Piotr Drąg [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Polish)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Piotr Drąg <piotrdrag@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/pl/
Translation: plymouth/main

2 months agoTranslated using Weblate (Arabic)
Ahmed Najmawi [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Arabic)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Ahmed Najmawi <iramosu@protonmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ar/
Translation: plymouth/main

2 months agoTranslated using Weblate (Georgian)
Temuri Doghonadze [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Georgian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ka/
Translation: plymouth/main

2 months agoTranslated using Weblate (Ukrainian)
Yuri Chornoivan [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Ukrainian)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Yuri Chornoivan <yurchor@ukr.net>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/uk/
Translation: plymouth/main

2 months agoTranslated using Weblate (Portuguese (Brazil))
Rafael Fontenelle [Thu, 16 Oct 2025 17:54:21 +0000 (17:54 +0000)] 
Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Rafael Fontenelle <rafaelff@gnome.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/pt_BR/
Translation: plymouth/main

2 months agoTranslated using Weblate (Portuguese)
Américo Monteiro [Thu, 16 Oct 2025 17:54:20 +0000 (17:54 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/pt/
Translation: plymouth/main

2 months agoTranslated using Weblate (Spanish)
Fco. Javier F. Serrador [Thu, 16 Oct 2025 17:54:20 +0000 (17:54 +0000)] 
Translated using Weblate (Spanish)

Currently translated at 100.0% (8 of 8 strings)

Co-authored-by: Fco. Javier F. Serrador <fserrador@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/es/
Translation: plymouth/main

2 months agoUpdate translation files
Weblate [Thu, 16 Oct 2025 17:54:20 +0000 (17:54 +0000)] 
Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/
Translation: plymouth/main

2 months agoTranslated using Weblate (French)
Léane GRASSER [Thu, 16 Oct 2025 17:54:20 +0000 (17:54 +0000)] 
Translated using Weblate (French)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Léane GRASSER <leane.grasser@proton.me>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/fr/
Translation: plymouth/main

3 months agoMerge branch 'simpledrm-kvm-res' into 'main'
Hans de Goede [Sun, 31 Aug 2025 09:24:40 +0000 (11:24 +0200)] 
Merge branch 'simpledrm-kvm-res' into 'main'

drm: Also exclude SimpleDRM framebuffers with resolution 640x480

See merge request plymouth/plymouth!360

3 months agodrm: Also exclude SimpleDRM framebuffers with resolution 640x480
Alessandro Astone [Wed, 6 Aug 2025 13:16:37 +0000 (15:16 +0200)] 
drm: Also exclude SimpleDRM framebuffers with resolution 640x480

I'm getting this low resolution in QEMU/KVM

3 months agoMerge branch 'fix-translations' into 'main'
Hans de Goede [Fri, 29 Aug 2025 14:56:55 +0000 (16:56 +0200)] 
Merge branch 'fix-translations' into 'main'

Fix POT generation

Closes #306

See merge request plymouth/plymouth!361

4 months agoUpdate POT file
Rafael Fontenelle [Mon, 11 Aug 2025 19:56:31 +0000 (16:56 -0300)] 
Update POT file

4 months agoAdd keywords needed for BGRT to po/meson.build
Rafael Fontenelle [Mon, 11 Aug 2025 19:56:15 +0000 (16:56 -0300)] 
Add keywords needed for BGRT to po/meson.build

4 months agoMerge branch 'bind-directory' into 'main'
Hans de Goede [Wed, 6 Aug 2025 13:09:14 +0000 (15:09 +0200)] 
Merge branch 'bind-directory' into 'main'

ply-utils: Create parent directory before binding concrete socket

See merge request plymouth/plymouth!359

5 months agoply-utils: Create parent directory before binding concrete socket
Alessandro Astone [Tue, 22 Jul 2025 07:40:43 +0000 (09:40 +0200)] 
ply-utils: Create parent directory before binding concrete socket

bind()'ing a concrete socket requires that the parent directory exists already.

5 months agoMerge branch 'fix-keymap-icon-on-second-gpu' into 'main'
Hans de Goede [Mon, 14 Jul 2025 09:23:05 +0000 (11:23 +0200)] 
Merge branch 'fix-keymap-icon-on-second-gpu' into 'main'

Fix keymap and capslock icon on displays on second GPU

See merge request plymouth/plymouth!356

5 months agoFix keymap and capslock icon on displays on second GPU
Hans de Goede [Wed, 2 Jul 2025 07:31:21 +0000 (09:31 +0200)] 
Fix keymap and capslock icon on displays on second GPU

The keymap and capslock code in src/plugins/renderers/drm/plugin.c relies
on the terminal passed to backend_create() to get the keymap and current
capslock state (when not using evdev input because of e.g. no XKBLAYOUT
in /etc/vconsole.conf which is the default in at least Fedora).

When 2 GPUs which both have displays attached are used only the first
one gets passed the local_console_terminal as terminal (it is considered
the terminal owner and e.g. listens for keypresses). This leads to keymap
and capslock icons not being shown on displays attached to the second GPU.

To fix this add a second ply_terminal_t argument to backend_create() called
local_console_terminal, which will pass the local_console_terminal to both
drm plugin instances. And modify the drm plugin capslock and keymap code to
use this instead of the normal terminal argument which will be NULL on
the second GPU.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=2375854
Signed-off-by: Hans de Goede <hansg@kernel.org>
5 months agoMerge branch 'use-simpledrm-no-luks' into 'main'
Hans de Goede [Mon, 14 Jul 2025 09:20:17 +0000 (11:20 +0200)] 
Merge branch 'use-simpledrm-no-luks' into 'main'

Add UseSimpledrmNoLuks config file keyword

See merge request plymouth/plymouth!355

5 months agoAdd UseSimpledrmNoLuks config file keyword
Hans de Goede [Tue, 1 Jul 2025 18:41:24 +0000 (20:41 +0200)] 
Add UseSimpledrmNoLuks config file keyword

Add a UseSimpledrmNoLuks config file keyword this enables simpledrm use,
like the existing "UseSimpledrm" config file keyword. Except when using
LUKS. Showing the LUKS unlock screen using simpledrm has 2 problems:

1. If the GPU drivers are built into the initrd then typically the
   unlock screen will briefly show and then the screen goes black

2. The i915 driver uses the firmware framebuffer as fallback when
   userspace has not installed a fb to scan out from. This happens
   e.g. on logout between the user-session and the display-manager.
   Drawing the unlock screen on the simpledrm fb results in it briefly
   showing when logging out, which looks quite ugly.

This allows distributions to chose to only enable simpledrm when
LUKS is not used.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=2359283
Signed-off-by: Hans de Goede <hansg@kernel.org>
5 months agoMerge branch 'ply_event_loop_watch_fd-assert-fix' into 'main'
Hans de Goede [Mon, 14 Jul 2025 08:52:16 +0000 (10:52 +0200)] 
Merge branch 'ply_event_loop_watch_fd-assert-fix' into 'main'

drm: Fix crash when terminal fd is still -1 after reconnect

See merge request plymouth/plymouth!354

5 months agodrm: Fix crash when terminal fd is still -1 after reconnect
Hans de Goede [Tue, 1 Jul 2025 12:37:03 +0000 (14:37 +0200)] 
drm: Fix crash when terminal fd is still -1 after reconnect

The drm plugin code installs a fd disconnect handler for the terminal fd
which simply calls open_input_source () again.

This assumes that the ply-terminal code's disconnect handler has run first
(which it should) and that ply_terminal_reopen_device () has successfully
re-opened the terminal. This last condition is not always true, resulting
in open_input_source () calling ply_event_loop_watch_fd () with a -1 fd
triggerig an assert in ply_event_loop_watch_fd ():

5  0x00007f62d39a1c6f in __assert_fail (assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at assert.c:127
6  0x00007f62d3bc22c7 in ply_event_loop_watch_fd (loop=<optimized out>, fd=-1, status=status@entry=PLY_EVENT_LOOP_FD_STATUS_HAS_DATA,
    status_met_handler=status_met_handler@entry=0x7f62d3790870 <on_terminal_key_event>,
    disconnected_handler=disconnected_handler@entry=0x7f62d3790c70 <on_input_source_disconnected>, user_data=user_data@entry=0x5647f7dd9fb8)
    at ../src/libply/ply-event-loop.c:732
7  0x00007f62d3790bf6 in open_input_source (backend=0x5647f7dd9f90, input_source=0x5647f7dd9fb8) at ../src/plugins/renderers/drm/plugin.c:1930
8  0x00007f62d3bcbd53 in ply_event_loop_handle_disconnect_for_source (loop=<optimized out>, source=0x5647f7dd69f0) at ../src/libply/ply-event-loop.c:1065
9  ply_event_loop_disconnect_source (loop=<optimized out>, source=0x5647f7dd69f0) at ../src/libply/ply-event-loop.c:1157
10 ply_event_loop_process_pending_events (loop=0x5647f7dd13e0) at ../src/libply/ply-event-loop.c:1277
11 0x00007f62d3bcc068 in ply_event_loop_run (loop=0x5647f7dd13e0) at ../src/libply/ply-event-loop.c:1311
12 0x00005647c99bba48 in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:2572

Fix this by checking that the fd >= 0 before calling
ply_event_loop_watch_fd ().

The above backtrace is from the drm plugin, but the same problem exists
in the frame-buffer plugin. So this fix is applied to both.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=2370979
Signed-off-by: Hans de Goede <hansg@kernel.org>
5 months agoMerge branch 'two-step-diskunlockscreen-tweaks' into 'main'
Hans de Goede [Mon, 14 Jul 2025 08:49:07 +0000 (10:49 +0200)] 
Merge branch 'two-step-diskunlockscreen-tweaks' into 'main'

two-step: 2 small disk unlock screen cosmetic tweaks

See merge request plymouth/plymouth!357

5 months agotwo-step: Add some padding between text-entry field and prompt
Hans de Goede [Thu, 3 Jul 2025 10:28:41 +0000 (12:28 +0200)] 
two-step: Add some padding between text-entry field and prompt

Two-step's disk unlock screen shows the prompt text directly below
the text entry field without any padding which looks bad.

Add some padding to make things look better.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=2356893
Signed-off-by: Hans de Goede <hansg@kernel.org>
5 months agotwo-step: Remove ':' at the end of (passphrase) prompt below text entry field
Hans de Goede [Thu, 3 Jul 2025 10:23:57 +0000 (12:23 +0200)] 
two-step: Remove ':' at the end of (passphrase) prompt below text entry field

When asked for e.g. a disk unlock passphrase, plymouth will be passed
a prompt like: "Please enter passphrase for disk $DISK:" the ':' in
the end makes sense when asking for this a text console, but this makes
less sense in the two-step disk unlock screen where the text is below
the passphrase entry field.

Strip any ':' char at the prompt's end on two-step's disk unlock screen.

Link: https://bugzilla.redhat.com/show_bug.cgi?id=2356893
Signed-off-by: Hans de Goede <hansg@kernel.org>
5 months agoMerge branch 'fix-ply-keymap-icon-label-fallback' into 'main'
Hans de Goede [Mon, 14 Jul 2025 08:30:42 +0000 (10:30 +0200)] 
Merge branch 'fix-ply-keymap-icon-label-fallback' into 'main'

ply-keymap-icon: Fix falling back to label-plugin when there is no pre-rendered text

See merge request plymouth/plymouth!358

5 months agoply-keymap-icon: Fix falling back to label-plugin when there is no pre-rendered text
Hans de Goede [Thu, 3 Jul 2025 11:05:13 +0000 (13:05 +0200)] 
ply-keymap-icon: Fix falling back to label-plugin when there is no pre-rendered text

In order for the fallback path (keymap_icon->has_prerendered_text == false)
to work properly keymap_icon->keymap_name must be set when no pre-rendered
text is found.

Tested by temporarily removing the "us" entry from ply-keymap-metadata.h.

Signed-off-by: Hans de Goede <hansg@kernel.org>
5 months agoMerge branch 'drm_simpledrm_dpi' into 'main'
Hans de Goede [Mon, 14 Jul 2025 07:29:42 +0000 (09:29 +0200)] 
Merge branch 'drm_simpledrm_dpi' into 'main'

drm: Add simpledrm HiDPI display support

See merge request plymouth/plymouth!348

5 months agodrm: Add simpledrm HiDPI display support
Janne Grunau [Sat, 17 May 2025 06:57:06 +0000 (08:57 +0200)] 
drm: Add simpledrm HiDPI display support

For devicetree based systems simpledrm might know the actual physical
display dimensions. Test if the reported connector width and height
result in a pixel density larger than 96 DPI. If that's the case
calculate the device scale instead of guessing it based on the
resolution.
This restores HiDPI scaling on 13-inch Apple silicon Macbooks with a
resolution of 2560x1600 (224 - 227 DPI) after commit 1421a9f6
("ply-utils: Increase threshold for guessed hiDPI scaling
to >= 2880x1620").

Signed-off-by: Janne Grunau <j@jannau.net>
5 months agoMerge branch 'lower_hidpi_cutoff_value' into 'main'
Hans de Goede [Thu, 3 Jul 2025 13:09:58 +0000 (15:09 +0200)] 
Merge branch 'lower_hidpi_cutoff_value' into 'main'

ply-utils: Adjust HiDPI cut-off value to 1.625f

See merge request plymouth/plymouth!349

5 months agoply-utils: Adjust HiDPI cut-off value to 1.625f
Janne Grunau [Sat, 17 May 2025 16:20:30 +0000 (18:20 +0200)] 
ply-utils: Adjust HiDPI cut-off value to 1.625f

This matches mutter's behaviour before
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3616 was merged.
It first rounded to the newest fractional scale factor (in 0.25 steps)
and then rounded N.25 and N.5 down to N and N.75 up to N+1.

Commit 3b8e9184 ("ply-utils: Only choose scale 2 when the perfect scale
would be >= 1.75") interprets the mentioned difference of at most 0.25
for rounding up very literal. A differnt ionterpretation of
https://github.com/GNOME/mutter/commit/d03dce43786ddfaca86a0ec006264c1b0dfd74d9
intend is that it's desireable to round N.5 down.

This change has unexpected side effect of using a device scale of 1 for
most of Apple's Retina displays in Macbooks (221 - 227 DPI). Raised as
https://gitlab.gnome.org/GNOME/mutter/-/issues/4110 in mutter.

Using 1.75f cut-off value requires a pixel density of 236.25 for HiDPI
while 1.625f requires only 219.375 DPI.

Mutter use the same calculation with
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4490 merged.

Signed-off-by: Janne Grunau <j@jannau.net>
6 months agoMerge branch 'weblate-plymouth-master' into 'main'
n3rdopolis [Tue, 24 Jun 2025 15:08:05 +0000 (15:08 +0000)] 
Merge branch 'weblate-plymouth-master' into 'main'

Translations update from Fedora Weblate

See merge request plymouth/plymouth!350

6 months agoTranslated using Weblate (Catalan)
David Medina [Tue, 17 Jun 2025 17:11:08 +0000 (17:11 +0000)] 
Translated using Weblate (Catalan)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: David Medina <dmedinacpnl@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ca/
Translation: plymouth/main

6 months agoTranslated using Weblate (Portuguese)
Américo Monteiro [Tue, 17 Jun 2025 17:11:07 +0000 (17:11 +0000)] 
Translated using Weblate (Portuguese)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/pt/
Translation: plymouth/main

6 months agoTranslated using Weblate (Chinese (Traditional) (zh_TW))
hsu zangmen [Tue, 17 Jun 2025 17:11:07 +0000 (17:11 +0000)] 
Translated using Weblate (Chinese (Traditional) (zh_TW))

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: hsu zangmen <chzang55@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/zh_TW/
Translation: plymouth/main

6 months agoMerge branch 'fix-288-frame-buffer' into 'main'
n3rdopolis [Tue, 24 Jun 2025 13:13:28 +0000 (13:13 +0000)] 
Merge branch 'fix-288-frame-buffer' into 'main'

frame-buffer: Check for NULL terminal in watch_input_device

See merge request plymouth/plymouth!353

6 months agoframe-buffer: Check for NULL terminal in watch_input_device
n3rdopolis [Fri, 20 Jun 2025 16:44:36 +0000 (12:44 -0400)] 
frame-buffer: Check for NULL terminal in watch_input_device

Match the drm backend

6 months agoMerge branch 'fix-issue-288' into 'main'
Hans de Goede [Thu, 19 Jun 2025 21:15:37 +0000 (21:15 +0000)] 
Merge branch 'fix-issue-288' into 'main'

drm: Check for NULL terminal in watch_input_device

Closes #288

See merge request plymouth/plymouth!344

6 months agodrm: Check for NULL terminal in watch_input_device
Daniel van Vugt [Thu, 27 Mar 2025 09:19:44 +0000 (17:19 +0800)] 
drm: Check for NULL terminal in watch_input_device

It's allowed to be NULL and the rest of the source file checks for NULL.
Seems the check was just forgotten here.

Closes: https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/288
6 months agoMerge branch 'double-underline-fix' into 'main'
n3rdopolis [Wed, 18 Jun 2025 17:18:35 +0000 (17:18 +0000)] 
Merge branch 'double-underline-fix' into 'main'

Fix doubly underlined text output and incorrect SGR attribute handling

See merge request plymouth/plymouth!346

6 months agoply-terminal-emulator: Fix incorrect SGR attribute handling
Tomita Moeko [Wed, 7 May 2025 14:25:24 +0000 (22:25 +0800)] 
ply-terminal-emulator: Fix incorrect SGR attribute handling

According to ECMA-48 [1], Select Graphic Rendition (SGR) attribute 21
is for "doubly underlined", not "disabling bold" in current plymouth
implementation.

Additionally, SGR 22 is for "normal colour or normal intensity (neither
bold nor faint)", both bold and dim should be disabled with it.

[1] 8.3.117, https://www.ecma-international.org/wp-content/uploads/ECMA-48_5th_edition_june_1991.pdf

Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
6 months agoply-kmsg-reader: Fix doubly underlined text output
Tomita Moeko [Wed, 7 May 2025 13:59:28 +0000 (21:59 +0800)] 
ply-kmsg-reader: Fix doubly underlined text output

Currently plymouth applies Select Graphic Rendition (SGR) attribute 21
to disable bold text. However, per ECMA-48 [1], this attribute is for
doubly underlined text, not for disabling bold, resulting unintended
doubly underlined output on boot. Fix it by conditionally applying
standard bold attribute (SGR 1) on bold text.

[1] 8.3.117, https://www.ecma-international.org/wp-content/uploads/ECMA-48_5th_edition_june_1991.pdf

Signed-off-by: Tomita Moeko <tomitamoeko@gmail.com>
6 months agoMerge branch 'fix-handle-kmsg-reader-crash' into 'main'
n3rdopolis [Mon, 16 Jun 2025 00:39:39 +0000 (00:39 +0000)] 
Merge branch 'fix-handle-kmsg-reader-crash' into 'main'

kmsg-reader: handle multipart messages

Closes #303

See merge request plymouth/plymouth!352

6 months agokmsg-reader: handle multipart messages
Cedric Hombourger [Fri, 13 Jun 2025 17:43:02 +0000 (19:43 +0200)] 
kmsg-reader: handle multipart messages

handle_ksmg_message wrongly assumed that all messages are terminated
with a trailing line feed: kernel messages emitted by pr_cont() may
not. At any rate, the return value of the strchr() call ought to be
checked to avoid crashing when parsing incoming messages.

Closes #303

6 months agoMerge branch 'ctrl_alt_delete' into 'main'
n3rdopolis [Sat, 14 Jun 2025 01:10:37 +0000 (01:10 +0000)] 
Merge branch 'ctrl_alt_delete' into 'main'

ply-input-device: Reboot when users press Ctrl+Alt+Delete

See merge request plymouth/plymouth!351

6 months agoply-input-device: Reboot when users press Ctrl+Alt+Delete
n3rdopolis [Fri, 6 Jun 2025 03:49:53 +0000 (23:49 -0400)] 
ply-input-device: Reboot when users press Ctrl+Alt+Delete

7 months agoMerge branch 'dmesg-replay' into 'main'
Adrian Vovk [Thu, 15 May 2025 21:31:13 +0000 (17:31 -0400)] 
Merge branch 'dmesg-replay' into 'main'

details: Don't duplicate output on console

Closes #298

See merge request plymouth/plymouth!347

7 months agokmsg-reader: Seek to the end of the ringbuffer dmesg-replay
Adrian Vovk [Fri, 9 May 2025 19:35:38 +0000 (15:35 -0400)] 
kmsg-reader: Seek to the end of the ringbuffer

Otherwise, whenever plymouth starts we'd replay all previous kmsg
entries, even if they've already been logged to the console. This leads
to duplicated log entires, and makes it hard to debug things.

With /dev/console, we only log what we capture while Plymouth is
running. Let's do the same with /dev/kmsg

7 months agodetails: Suppress kernel's own kmsg console output
Adrian Vovk [Fri, 9 May 2025 19:17:48 +0000 (15:17 -0400)] 
details: Suppress kernel's own kmsg console output

Plymouth forwards /dev/console and /dev/kmsg to all consoles (and to the
graphical splash). With the details plugin, we would do this without
suppressing the kernel's own output first. This would lead to duplicate
log entries

7 months agoutils: Don't lose log level when silencing kmsg
Adrian Vovk [Fri, 9 May 2025 18:44:24 +0000 (14:44 -0400)] 
utils: Don't lose log level when silencing kmsg

Once we disable kmsg logging to the console, the kernel will set the
console log level to the minimum log level (i.e. only logging kernel
panics). However the unintended side effect is that our own kmsg-reader
will start filtering out all kernel log messages, since we also respect
the kernel's console log level.

This change make it so that we keep using the original console log level
whenever we disable the kernel's output. This lets us keep forwarding
the kernel's kmsg output

7 months agoMerge branch 'weblate-plymouth-master' into 'main'
Rafael Fontenelle [Wed, 7 May 2025 16:38:59 +0000 (16:38 +0000)] 
Merge branch 'weblate-plymouth-master' into 'main'

Translations update from Fedora Weblate

See merge request plymouth/plymouth!333

7 months agoTranslated using Weblate (Kabyle)
ButterflyOfFire [Sat, 3 May 2025 18:25:44 +0000 (18:25 +0000)] 
Translated using Weblate (Kabyle)

Currently translated at 100.0% (7 of 7 strings)

Co-authored-by: ButterflyOfFire <butterflyoffire@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/kab/
Translation: plymouth/main

7 months agoTranslated using Weblate (Arabic)
joo es [Sat, 3 May 2025 18:25:44 +0000 (18:25 +0000)] 
Translated using Weblate (Arabic)

Currently translated at 100.0% (7 of 7 strings)

Added translation using Weblate (Arabic)

Co-authored-by: joo es <jonnyse@users.noreply.translate.fedoraproject.org>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ar/
Translation: plymouth/main

7 months agoTranslated using Weblate (Belarusian)
Yauhen Bugamol [Sat, 3 May 2025 18:25:43 +0000 (18:25 +0000)] 
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/main

7 months agoTranslated using Weblate (Catalan)
Icar NS [Sat, 3 May 2025 18:25:43 +0000 (18:25 +0000)] 
Translated using Weblate (Catalan)

Currently translated at 100.0% (7 of 7 strings)

Added translation using Weblate (Catalan)

Co-authored-by: Icar NS <fedoraproject.relock974@passmail.net>
Translate-URL: https://translate.fedoraproject.org/projects/plymouth/master/ca/
Translation: plymouth/main

7 months agoMerge branch 'get_device_scale_guess' into 'main'
Hans de Goede [Tue, 6 May 2025 11:49:25 +0000 (11:49 +0000)] 
Merge branch 'get_device_scale_guess' into 'main'

ply-utils: Guessed device-scale improvements

See merge request plymouth/plymouth!343

7 months agoply-utils: Increase threshold for guessed hiDPI scaling to >= 2880x1620
Hans de Goede [Thu, 6 Mar 2025 16:53:43 +0000 (17:53 +0100)] 
ply-utils: Increase threshold for guessed hiDPI scaling to >= 2880x1620

1440 is only 33% more then FHD, so using 2x there is a bit too much and
leads to the spinner being much too large on e.g 27" monitors.

And on e.g. Dell ultrawide 34" 3440x1440 which are only 110 DPI this effect
is even worse.

Change the threshold to >= 2880x1620 to avoid using 2x scaling on 1440p
monitors. 2880x1620 is ~240DPI when used in a 14" laptop at which point
using 2x scaling is really necessary.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
7 months agoply-utils: Use lower threshold for hiDPI scaling on 3:2 screens
Hans de Goede [Thu, 6 Mar 2025 16:46:34 +0000 (17:46 +0100)] 
ply-utils: Use lower threshold for hiDPI scaling on 3:2 screens

3:2 screens are only used in mobile form factors, add a special case for
this with a lower threshold to enable 2x hiDPI scaling.

Also remove the HIDPI_MIN_* defines these were only used in one place
and adding a second set for the 3:2 screens just makes things harder
to read.

Instead write the actual width/height thresholds directly in the code
of the new get_device_scale_guess () helper.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
7 months agoply-utils: Swap width <-> height for portrait screens when guessing device-scale
Hans de Goede [Thu, 6 Mar 2025 16:38:33 +0000 (17:38 +0100)] 
ply-utils: Swap width <-> height for portrait screens when guessing device-scale

Swap width <-> height for portrait screens when guessing device-scale,
this fixes the heuristics not working for portrait screens.

Also move the heuristics to a new get_device_scale_guess () helper, because
it has become a bit larger now.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
7 months agoMerge branch 'use_simpledrm-config' into 'main'
Hans de Goede [Tue, 6 May 2025 11:37:33 +0000 (11:37 +0000)] 
Merge branch 'use_simpledrm-config' into 'main'

Make simpledrm selection configurable from config file

Closes #264

See merge request plymouth/plymouth!342

9 months agoply-device-manager: Update verify_drm_device () comment
Hans de Goede [Thu, 6 Mar 2025 16:25:12 +0000 (17:25 +0100)] 
ply-device-manager: Update verify_drm_device () comment

The comment about why SimpleDRM devices should be skipped is no longer
accurate, the kernel does provide rotation info now; and plymouth now
has heuristics to guess the device-scale.

If SimpleDRM devices should be used or not now mostly is a user
preference.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 months agodrm: Reject 800x600 and 1024x768 simpledrm drm devices
Hans de Goede [Tue, 4 Mar 2025 17:26:01 +0000 (18:26 +0100)] 
drm: Reject 800x600 and 1024x768 simpledrm drm devices

Sometimes the EFI firmware initializes the framebuffer at a very low
resolution rather then at the panel's native resolution.

In this case it is better to wait for the native GPU driver to load
rather then rendering a not-so-pretty splash at this very low resolution.

Reject these low resolutions for simpledrm devices except when
query_device () is called with force=true.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 months agolibply-splash-core: Add a force argument to ply_renderer_open ()
Hans de Goede [Tue, 4 Mar 2025 14:22:45 +0000 (15:22 +0100)] 
libply-splash-core: Add a force argument to ply_renderer_open ()

Sometimes a renderer plugin may want to refuse to open a device
because it has suboptimal settings, like e.g. an EFI framebuffer
based simpledrm when the EFI firmware has set the resolution to
800x600 instead of the native panel resolution.

In such a case it might be better to wait for another better
/dev/dri/card# device to show up.

This skipping of devices by renderer plugins needs to be configurable
in case the timeout hits, or the user wishes to override things.

Add a force argument to ply_renderer_open () to allow overriding
this behavior. User can force using simpledrm by passing
plymouth.use-simpledrm=2 on the kernel commandline or by setting
UseSimpledrm=2 in the config-file.

This flag is passed to the renderer plugin's query_device () method
as that is the best place for the renderer plugin to determine
a device's usability.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 months agoMake simpledrm selection configurable from config file
Hans de Goede [Mon, 17 Feb 2025 14:47:11 +0000 (15:47 +0100)] 
Make simpledrm selection configurable from config file

Move the handling of the "plymouth.use-simpledrm" commandline argument from
ply-device-manager to main.c, and allow specifying its default value in
the "[Daemon]" section of the config-file using a new UseSimpledrm keyword.

Extend the "plymouth.use-simpledrm" handling to also accept a value e.g.
"plymouth.use-simpledrm=0" to allow overriding a "UseSimpledrm=1" in
the configfile.

And pass the use-simpledrm value to ply_device_manager_new () through a new
PLY_DEVICE_MANAGER_FLAGS_USE_SIMPLEDRM flag.

This also moves the kernel commandline handling to src/main.c grouping
it together with most of the other commandline handling.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 months agomain: Do not override device_scale from lower-priorities config files
Hans de Goede [Mon, 17 Feb 2025 15:15:50 +0000 (16:15 +0100)] 
main: Do not override device_scale from lower-priorities config files

main () calls functions to get the theme and other config settings from
the commandline / config files in order of *descending* priority:

1. find_override_splash ()             /* Parses commandline */
2. find_system_default_splash ()       /* /etc/plymouth/plymouthd.conf */
3. find_distribution_default_splash () /* /usr/share/plymouth/plymouthd.defaults */

To avoid the later parsed config files *with lower priorities* overriding
earlier settings the code initializes the config variables to NAN and only
sets them if they are still set to NAN.

Except for the device_scale handling, where load_settings () always calls
ply_set_device_scale () overriding earlier values, the commandline
handling for "plymouth.force-scale=..." is done separately later so that
the commandline does take priority over the config files, but since
/usr/share/plymouth/plymouthd.defaults is parsed last any DeviceScale
setting there will override /etc/plymouth/plymouthd.conf settings.

Fix this by following the pattern used by start_time/splash_delay/
device_timeout, add a device_scale variable initialized to -1 and
only override that variable if it is at -1.

This also allows removing find_force_scale () moving the commandline
parsing to find_override_splash () together with the other commandline
handling.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 months agoply-utils: Add ply_kernel_command_line_get_ulong () helper
Hans de Goede [Tue, 4 Mar 2025 11:50:53 +0000 (12:50 +0100)] 
ply-utils: Add ply_kernel_command_line_get_ulong () helper

Add a ply_kernel_command_line_get_ulong () helper mirroring
ply_key_file_get_ulong ().

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
9 months agoply-keyfile: Change ply_key_file_get_long () into ply_key_file_get_ulong ()
Hans de Goede [Mon, 17 Feb 2025 15:05:54 +0000 (16:05 +0100)] 
ply-keyfile: Change ply_key_file_get_long () into ply_key_file_get_ulong ()

Change ply_key_file_get_long () into ply_key_file_get_ulong () and add
error checking.

All callers of ply_key_file_get_long () expect a positive / unsigned number.
Rename it to ply_key_file_get_ulong ().

Also add error checkig for non valid numbers and return the default value
for these instead of 0.

Note this also fixes the return value of ply_key_file_get_long () being
a double (this is now changed to an unsigned long).

Signed-off-by: Hans de Goede <hdegoede@redhat.com>