Date: Tuesday, March 21, 2023 @ 01:25:10 Author: bgyorgy Revision: 1424555
Move plymouth from AUR with 580 votes Added: plymouth/ plymouth/trunk/ plymouth/trunk/PKGBUILD plymouth/trunk/plymouth.initcpio_hook plymouth/trunk/plymouth.initcpio_install plymouth/trunk/plymouth.install ---------------------------+ PKGBUILD | 65 +++++++++++++++++++++++++++++++++++++ plymouth.initcpio_hook | 16 +++++++++ plymouth.initcpio_install | 77 ++++++++++++++++++++++++++++++++++++++++++++ plymouth.install | 6 +++ 4 files changed, 164 insertions(+) Added: plymouth/trunk/PKGBUILD =================================================================== --- plymouth/trunk/PKGBUILD (rev 0) +++ plymouth/trunk/PKGBUILD 2023-03-21 01:25:10 UTC (rev 1424555) @@ -0,0 +1,65 @@ +# Maintainer: Balló György <ballogyor+arch at gmail dot com> +# Contributor: Taijian <[email protected]> +# Contributor: Sebastian Lau <[email protected]> +# Contributor: Damian01w <[email protected]> +# Contributor: Padfoot <[email protected]> + +pkgname=plymouth +pkgver=22.02.122 +pkgrel=5 +pkgdesc='Graphical boot splash screen' +arch=('x86_64') +url='https://www.freedesktop.org/wiki/Software/Plymouth/' +license=('GPL2') +depends=('bash' 'cairo' 'cantarell-fonts' 'filesystem' 'glib2' 'glibc' 'libdrm' 'libpng' 'pango' 'systemd-libs') +makedepends=('gtk3' 'docbook-xsl') +optdepends=('gtk3: x11 renderer') +backup=('etc/plymouth/plymouthd.conf') +install='plymouth.install' +source=("https://www.freedesktop.org/software/$pkgname/releases/$pkgname-$pkgver.tar.xz" + "plymouth-shutdown.patch::https://gitlab.freedesktop.org/plymouth/plymouth/-/commit/2f12aa4c5d27d1ee5a46f412559073f016d236ae.patch" + 'plymouth.initcpio_hook' + 'plymouth.initcpio_install') +sha256sums=('100551442221033ce868c447ad6c74d831d209c18ae232b98ae0207e34eadaeb' + 'c2567ed64d93169c40587933f701fcb4f16a40c428c6f36ca861ba6586499f93' + 'de852646e615e06d4125eb2e646d0528d1e349bd9e9877c08c5d32c43d288b6f' + 'b6d8c86815fe27370c7f62ba14120e0332b64cb930cab7d13b8eb8fef1384bfe') + +prepare() { + cd "$pkgname-$pkgver" + + # Add mkinitcpio support to plymouth-switch-root-initramfs.service + # https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/202 + patch -Np1 -i ../plymouth-shutdown.patch + + # Use mkinitcpio to update initrd + sed -i 's/dracut -f/mkinitcpio -P/' scripts/plymouth-update-initrd + + # Change default theme + sed -i 's/^Theme=spinner$/Theme=bgrt/' src/plymouthd.defaults +} + +build() { + cd "$pkgname-$pkgver" + ./configure --prefix=/usr --sbindir=/usr/bin --libexecdir=/usr/lib --sysconfdir=/etc \ + --localstatedir=/var --runstatedir=/run --with-runtimedir=/run \ + --with-logo=/usr/share/pixmaps/archlinux-logo.png + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make + + # Convert logo for the spinner theme + rsvg-convert '/usr/share/pixmaps/archlinux-logo-text-dark.svg' -o ../archlinux-logo-text-dark.png +} + +package() { + cd "$pkgname-$pkgver" + make DESTDIR="$pkgdir" install + rm -r "$pkgdir/var/run" + + # Install mkinitcpio hook + install -Dm644 ../plymouth.initcpio_hook "$pkgdir/usr/lib/initcpio/hooks/$pkgname" + install -Dm644 ../plymouth.initcpio_install "$pkgdir/usr/lib/initcpio/install/$pkgname" + + # Install logo for the spinner theme + install -Dm644 ../archlinux-logo-text-dark.png "$pkgdir/usr/share/$pkgname/themes/spinner/watermark.png" +} Added: plymouth/trunk/plymouth.initcpio_hook =================================================================== --- plymouth/trunk/plymouth.initcpio_hook (rev 0) +++ plymouth/trunk/plymouth.initcpio_hook 2023-03-21 01:25:10 UTC (rev 1424555) @@ -0,0 +1,16 @@ +#!/usr/bin/ash + +run_hook() { + mkdir -m755 -p /dev/pts + mount -t devpts devpts /dev/pts -o nosuid,noexec,gid=5,mode=620 + plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session + plymouth show-splash +} + +run_latehook(){ + plymouth update-root-fs --new-root-dir=/new_root +} + +run_emergencyhook(){ + plymouth --wait quit +} Added: plymouth/trunk/plymouth.initcpio_install =================================================================== --- plymouth/trunk/plymouth.initcpio_install (rev 0) +++ plymouth/trunk/plymouth.initcpio_install 2023-03-21 01:25:10 UTC (rev 1424555) @@ -0,0 +1,77 @@ +#!/bin/bash + +build() { + # get default theme settings + local PLYMOUTH_THEME_NAME=$(plymouth-set-default-theme) + local PLYMOUTH_THEME_DIR="/usr/share/plymouth/themes/$PLYMOUTH_THEME_NAME" + local PLYMOUTH_MODULE_NAME=$(sed -n "s/^ *ModuleName *= *//p" "$PLYMOUTH_THEME_DIR/$PLYMOUTH_THEME_NAME.plymouth") + local PLYMOUTH_IMAGE_DIR=$(sed -n "s/^ *ImageDir *= *//p" "$PLYMOUTH_THEME_DIR/$PLYMOUTH_THEME_NAME.plymouth") + local PLYMOUTH_FONT_NAME=$(sed -n "s/^ *Font *= *\([^ ]*\).*/\1/p" "$PLYMOUTH_THEME_DIR/$PLYMOUTH_THEME_NAME.plymouth") + local PLYMOUTH_FONT_PATH=$(fc-match -f %{file} "$PLYMOUTH_FONT_NAME") + + # exit if no module exists on the system for the theme + if [ ! -f "/usr/lib/plymouth/$PLYMOUTH_MODULE_NAME.so" ]; then + error "The default plymouth plugin (%s) doesn't exist" "$PLYMOUTH_MODULE_NAME" + return 1 + fi + + # copy binaries and base plugins + map add_binary \ + 'plymouthd' \ + 'plymouth' \ + '/usr/lib/plymouth/plymouthd-fd-escrow' \ + '/usr/lib/plymouth/text.so' \ + '/usr/lib/plymouth/details.so' \ + '/usr/lib/plymouth/label.so' \ + '/usr/lib/plymouth/renderers/drm.so' \ + '/usr/lib/plymouth/renderers/frame-buffer.so' \ + "/usr/lib/plymouth/$PLYMOUTH_MODULE_NAME.so" + + # copy base themes and logo + map add_file \ + '/etc/vconsole.conf' \ + '/usr/share/plymouth/themes/text/text.plymouth' \ + '/usr/share/plymouth/themes/details/details.plymouth' \ + '/usr/share/pixmaps/archlinux-logo.png' \ + '/etc/os-release' \ + '/usr/share/plymouth/plymouthd.defaults' \ + '/etc/plymouth/plymouthd.conf' \ + "$PLYMOUTH_FONT_PATH" + + # copy configured theme + if [ -d "$PLYMOUTH_THEME_DIR" ]; then + add_full_dir "$PLYMOUTH_THEME_DIR" + fi + + # copy images for the configured theme + if [ "$PLYMOUTH_IMAGE_DIR" != "$PLYMOUTH_THEME_DIR" -a -d "$PLYMOUTH_IMAGE_DIR" ]; then + add_full_dir "$PLYMOUTH_IMAGE_DIR" + fi + + # needed to access DRM devices + add_udev_rule '71-seat.rules' + + # copy systemd unit files for systemd boot, otherwise use runscript + if command -v add_systemd_unit >/dev/null; then + map add_systemd_unit \ + 'plymouth-halt.service' \ + 'plymouth-kexec.service' \ + 'plymouth-poweroff.service' \ + 'plymouth-quit-wait.service' \ + 'plymouth-quit.service' \ + 'plymouth-reboot.service' \ + 'plymouth-start.service' \ + 'plymouth-switch-root.service' \ + 'systemd-ask-password-plymouth.path' \ + 'systemd-ask-password-plymouth.service' + else + add_runscript + fi +} + +help() { + cat <<HELPEOF +This hook includes Plymouth in initramfs. It shows a graphical splash screen +during boot if the 'splash' kernel parameter is specified. +HELPEOF +} Added: plymouth/trunk/plymouth.install =================================================================== --- plymouth/trunk/plymouth.install (rev 0) +++ plymouth/trunk/plymouth.install 2023-03-21 01:25:10 UTC (rev 1424555) @@ -0,0 +1,6 @@ +post_upgrade() { + # Show warning for users of the old package from AUR + if (( $(vercmp $2 '22.02.122-5') < 0 )); then + echo "WARNING: The 'plymouth-encrypt' and 'sd-plymouth' hooks are no longer exist in the package. You should replace them with 'encrypt' and 'plymouth' hooks in your 'mkinitcpio.conf'. The 'lxdm-plymouth.service', 'lightdm-plymouth.service' and 'sddm-plymouth.service' systemd service files are no longer exist in the package. You should enable 'lxdm.service', 'lightdm.service' or 'sddm.service' instead." + fi +}
