From f13be0f6b749bf54a1babcea804b31c1795bab10 Mon Sep 17 00:00:00 2001 From: Ferass El Hafidi Date: Thu, 14 May 2026 15:06:51 +0000 Subject: [PATCH] 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 Part-of: --- main/postmarketos-bootsplash/APKBUILD | 10 ++++++++-- main/postmarketos-bootsplash/kill-plymouth | 19 +++++++++++++++++++ ...ostmarketos-bootsplash-openrc.post-install | 3 +++ ...ostmarketos-bootsplash-openrc.post-upgrade | 1 + 4 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 main/postmarketos-bootsplash/kill-plymouth create mode 100644 main/postmarketos-bootsplash/postmarketos-bootsplash-openrc.post-install create mode 120000 main/postmarketos-bootsplash/postmarketos-bootsplash-openrc.post-upgrade diff --git a/main/postmarketos-bootsplash/APKBUILD b/main/postmarketos-bootsplash/APKBUILD index 0ffaf2f46..e4fd330d2 100644 --- a/main/postmarketos-bootsplash/APKBUILD +++ b/main/postmarketos-bootsplash/APKBUILD @@ -1,6 +1,7 @@ +# Co-Maintainer: Ferass El Hafidi maintainer="Clayton Craft " 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 " diff --git a/main/postmarketos-bootsplash/kill-plymouth b/main/postmarketos-bootsplash/kill-plymouth new file mode 100644 index 000000000..a20af2601 --- /dev/null +++ b/main/postmarketos-bootsplash/kill-plymouth @@ -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 +} diff --git a/main/postmarketos-bootsplash/postmarketos-bootsplash-openrc.post-install b/main/postmarketos-bootsplash/postmarketos-bootsplash-openrc.post-install new file mode 100644 index 000000000..4a7c47627 --- /dev/null +++ b/main/postmarketos-bootsplash/postmarketos-bootsplash-openrc.post-install @@ -0,0 +1,3 @@ +#!/bin/sh + +rc-update add kill-plymouth default diff --git a/main/postmarketos-bootsplash/postmarketos-bootsplash-openrc.post-upgrade b/main/postmarketos-bootsplash/postmarketos-bootsplash-openrc.post-upgrade new file mode 120000 index 000000000..2f0b337a7 --- /dev/null +++ b/main/postmarketos-bootsplash/postmarketos-bootsplash-openrc.post-upgrade @@ -0,0 +1 @@ +postmarketos-bootsplash-openrc.post-install \ No newline at end of file