main/postmarketos-bootsplash: revert to killing plymouth using an openrc service

plymouth-openrc-plugin (and any other OpenRC plugins really) trigger a
bug in OpenRC that only happens on musl-based systems, which can result
in a hang if a service fails.

A PR has been submitted to OpenRC to fix this bug. While the PR is
waiting for review and merging, work around this by reverting to killing
the splash from an OpenRC service to at least no longer trigger this
bug. See pmaports#4536 for more context.

Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8560>
This commit is contained in:
Ferass El Hafidi 2026-05-14 15:06:51 +00:00 committed by The Friendly Meow (merge) Bot
parent 921c30190b
commit f13be0f6b7
No known key found for this signature in database
4 changed files with 31 additions and 2 deletions

View file

@ -1,6 +1,7 @@
# Co-Maintainer: Ferass El Hafidi <funderscore@postmarketos.org>
maintainer="Clayton Craft <clayton@craftyguy.net>"
pkgname=postmarketos-bootsplash
pkgver=0.5.0
pkgver=0.5.1
pkgrel=0
pkgdesc="pmOS integration components for boot/shutdown splash screen"
url="https://postmarketos.org"
@ -13,19 +14,23 @@ depends="
plymouth-drm
postmarketos-plymouth-themes
"
depends_openrc="plymouth-openrc-plugin"
options="!check" # no testsuite
subpackages="$pkgname-openrc"
source="
20-plymouth.conf
kill-plymouth
plymouthd.conf
postmarketos-bootsplash.files
"
replaces="plymouth"
install="postmarketos-bootsplash-openrc.post-install postmarketos-bootsplash-openrc.post-upgrade"
provides="postmarketos-bootsplash-virtual"
provider_priority=100
package() {
# Temporary workaround for OpenRC, see pmaports#4536
install -Dm755 "$srcdir/kill-plymouth" -t "$pkgdir"/etc/init.d/
# NOTE: install files to initramfs-extra due to size
install -Dm644 "$srcdir"/postmarketos-bootsplash.files \
"$pkgdir"/usr/share/mkinitfs/files-extra/30-postmarketos-bootsplash.files
@ -48,6 +53,7 @@ openrc() {
sha512sums="
dc6d38d3048ee3be47871cb9f4909cc7572f57be792c1cf39688abfd9659e5149699308ead35fe7fd37b87fbac5668cbf03d3b6acd74ec05c8c4b39735e9e8df 20-plymouth.conf
5d11ab555600606f5f27146aa982075d622068bb82b34144459c174da9e22c19b3adcd076d780885cd97313f1e3aee87052769e32d8b1332e4516abd0c9dda0d kill-plymouth
d4cab2578116afa4ca33ca94671191d44e71d4c46cfb11248c42f6bd1e49714eae56339330f483b247a3da0865892a100dc6f33e378a9cbfaea2f56e9616fcd8 plymouthd.conf
c261e23acc70c8062abf4d5419806a832889a70ed8222535269206bb333dfa6f9ab953fe2ddfcf032fe7f89c2ca0ed6497e6a61cf9fd99f6b6372b3dd55658af postmarketos-bootsplash.files
"

View file

@ -0,0 +1,19 @@
#!/sbin/openrc-run
# This is a *temporary* workaround to OpenRC hanging at times if plugins are
# used on a musl-based system (such as plymouth-openrc-plugin). This also means
# plymouth will not be ran on shutdown, but given this service is temporary, it
# should be fine. It will be replaced with the plymouth-openrc-plugin again when
# this is fixed upstream, which has better integration.
#
# See also:
# * https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4536
# * https://github.com/OpenRC/openrc/pull/1007
name="Exit plymouthd"
description="Stop plymouthd before running the graphical UI"
command="/usr/bin/plymouth"
command_args="quit"
depend() {
before display-manager
}

View file

@ -0,0 +1,3 @@
#!/bin/sh
rc-update add kill-plymouth default

View file

@ -0,0 +1 @@
postmarketos-bootsplash-openrc.post-install