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
+}

Reply via email to