This commit is contained in:
Evan 2015-06-18 18:17:44 +02:00
commit 4e806c4133
15 changed files with 601 additions and 0 deletions

52
.SRCINFO Normal file
View File

@ -0,0 +1,52 @@
# Generated by makepkg 4.2.1
# Wed Mar 18 01:51:07 UTC 2015
pkgbase = plymouth-git
pkgdesc = A graphical boot splash screen with kernel mode-setting support (development version)
pkgver = 0.9.2.r0.g2c437c3
pkgrel = 1
url = http://www.freedesktop.org/wiki/Software/Plymouth/
arch = i686
arch = x86_64
license = GPL
makedepends = git
makedepends = docbook-xsl
depends = libdrm
depends = pango
depends = systemd
optdepends = ttf-dejavu
provides = plymouth
conflicts = plymouth
options = !libtool
options = !emptydirs
backup = etc/plymouth/plymouthd.conf
source = git+http://anongit.freedesktop.org/git/plymouth
source = arch-logo.png
source = plymouth.encrypt_hook
source = plymouth.encrypt_install
source = gdm-plymouth.service
source = kdm-plymouth.service
source = lxdm-plymouth.service
source = lightdm-plymouth.service
source = slim-plymouth.service
source = plymouth.initcpio_hook
source = plymouth.initcpio_install
source = sd-plymouth.initcpio_install
source = plymouth-quit.service.in.patch
source = plymouth-update-initrd.patch
sha256sums = SKIP
sha256sums = 9bac679d2494d9b60b288be87021f1d7b85a9503ebbdce93d6e37c0fc07568ae
sha256sums = cbfb5bcb6897703e088eefdee9d578f75d987116becafecbb2018b283ba3865e
sha256sums = 544399d4f3454644f24ad11e504eaa7d622c73942728f52fb55bea054c756fa1
sha256sums = 53818ac8299edbb104e2fa09d376079c10a287da9f8a9b26bfb5fc8789b6bc3c
sha256sums = f9528f0df99f0182c062cd505a49a1e475128e78a7fe535db2a64ee5103abfc8
sha256sums = 6ffe016e8b03354b0a02e2e5d550a0f5f278fceccecfd8747619bdcf6ba9f800
sha256sums = 86d0230d9393c9d83eb7bb430e6b0fb5e3f32e78fcd30f3ecd4e6f3c30b18f71
sha256sums = 0cacaa68e164893ca97d06c7f06d56738a0902991585e456ce687bc2bc1705a0
sha256sums = d349b30832ff84ea7e4b86265efd5d08f8ff00e9153f05f41c8e8b49addf321c
sha256sums = b0467b7c490539470f726358e5d0c72951efd58d268a2d16411dafacba68041a
sha256sums = f434dd9cc96c3cec470aedb7734663cd3e04ffa34eff2bea92708f966132a2da
sha256sums = fc900a0c330b9bcbf84afaa6575d9df392c4e8c2ea699b72dc9a137f4972de49
sha256sums = bb597e2ced7c3beca8c9e9f212bc001750746d9b41e00071697a0352ec2a2e27
pkgname = plymouth-git

113
PKGBUILD Normal file
View File

@ -0,0 +1,113 @@
# Maintainer: Patrick Burroughs (Celti) <celti@celti.name>
# Contributors: Abbradar, Zephyr, Christian Autermann, Biginoz, Martin Lee, Ricardo Funke,
# PirateJonno, lh, Cilyan Olowen, Shaffer, Brcha, Lyle Putnam, Det, Boohbah,
# Lara Maia, Padfoot, Jorge Barroso, carstene1ns
pkgname=plymouth-git
pkgver=0.9.3.r0.g2c437c3
pkgrel=1
pkgdesc="A graphical boot splash screen with kernel mode-setting support (development version)"
url="http://www.freedesktop.org/wiki/Software/Plymouth/"
arch=('i686' 'x86_64')
license=('GPL')
depends=('libdrm' 'pango' 'systemd')
makedepends=('git' 'docbook-xsl')
optdepends=('ttf-dejavu')
options=('!libtool' '!emptydirs')
provides=('plymouth')
conflicts=('plymouth')
backup=('etc/plymouth/plymouthd.conf')
source=('git+http://anongit.freedesktop.org/git/plymouth'
'arch-logo.png'
'plymouth.encrypt_hook'
'plymouth.encrypt_install'
'gdm-plymouth.service'
'kdm-plymouth.service'
'lxdm-plymouth.service'
'lightdm-plymouth.service'
'slim-plymouth.service'
'plymouth.initcpio_hook'
'plymouth.initcpio_install'
'sd-plymouth.initcpio_install'
'plymouth-quit.service.in.patch'
'plymouth-update-initrd.patch')
sha256sums=('SKIP'
'9bac679d2494d9b60b288be87021f1d7b85a9503ebbdce93d6e37c0fc07568ae'
'cbfb5bcb6897703e088eefdee9d578f75d987116becafecbb2018b283ba3865e'
'544399d4f3454644f24ad11e504eaa7d622c73942728f52fb55bea054c756fa1'
'53818ac8299edbb104e2fa09d376079c10a287da9f8a9b26bfb5fc8789b6bc3c'
'f9528f0df99f0182c062cd505a49a1e475128e78a7fe535db2a64ee5103abfc8'
'6ffe016e8b03354b0a02e2e5d550a0f5f278fceccecfd8747619bdcf6ba9f800'
'86d0230d9393c9d83eb7bb430e6b0fb5e3f32e78fcd30f3ecd4e6f3c30b18f71'
'0cacaa68e164893ca97d06c7f06d56738a0902991585e456ce687bc2bc1705a0'
'd349b30832ff84ea7e4b86265efd5d08f8ff00e9153f05f41c8e8b49addf321c'
'b0467b7c490539470f726358e5d0c72951efd58d268a2d16411dafacba68041a'
'f434dd9cc96c3cec470aedb7734663cd3e04ffa34eff2bea92708f966132a2da'
'fc900a0c330b9bcbf84afaa6575d9df392c4e8c2ea699b72dc9a137f4972de49'
'bb597e2ced7c3beca8c9e9f212bc001750746d9b41e00071697a0352ec2a2e27')
pkgver() {
cd plymouth
git describe --long | sed 's/-/.r/;s/-/./'
}
prepare() {
cd plymouth
patch -p1 -i "$srcdir"/plymouth-update-initrd.patch
patch -p1 -i "$srcdir"/plymouth-quit.service.in.patch
}
build() {
cd ${pkgname%-*}
LDFLAGS="$LDFLAGS -ludev" ./autogen.sh \
--prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
--sbindir=/usr/bin \
--enable-systemd-integration \
--enable-drm \
--enable-tracing \
--enable-pango \
--enable-gtk=no \
--with-release-file=/etc/os-release \
--with-logo=/usr/share/plymouth/arch-logo.png \
--with-background-color=0x000000 \
--with-background-start-color-stop=0x000000 \
--with-background-end-color-stop=0x4D4D4D \
--without-rhgb-compat-link \
--without-system-root-install
make
}
package() {
cd plymouth
make DESTDIR="$pkgdir" install
install -Dm644 "$srcdir"/arch-logo.png "$pkgdir"/usr/share/plymouth/arch-logo.png
install -Dm644 "$srcdir"/plymouth.encrypt_hook "$pkgdir"/usr/lib/initcpio/hooks/plymouth-encrypt
install -Dm644 "$srcdir"/plymouth.initcpio_hook "$pkgdir"/usr/lib/initcpio/hooks/plymouth
install -Dm644 "$srcdir"/plymouth.encrypt_install "$pkgdir"/usr/lib/initcpio/install/plymouth-encrypt
install -Dm644 "$srcdir"/plymouth.initcpio_install "$pkgdir"/usr/lib/initcpio/install/plymouth
install -Dm644 "$srcdir"/sd-plymouth.initcpio_install "$pkgdir"/usr/lib/initcpio/install/sd-plymouth
install -dm755 "$pkgdir"/usr/lib/systemd/system
install -m644 "$srcdir"/{gdm,kdm,lxdm,slim,lightdm}-plymouth.service "$pkgdir"/usr/lib/systemd/system
ln -s '../systemd-ask-password-plymouth.path' "$pkgdir"/usr/lib/systemd/system/sysinit.target.wants/systemd-ask-password-plymouth.path
install -Dm644 "$pkgdir"/usr/share/plymouth/plymouthd.defaults "$pkgdir"/etc/plymouth/plymouthd.conf
}

BIN
arch-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

15
gdm-plymouth.service Normal file
View File

@ -0,0 +1,15 @@
[Unit]
Description=GNOME Display Manager
Conflicts=getty@tty1.service plymouth-quit.service
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
[Service]
ExecStart=/usr/bin/gdm
Restart=always
IgnoreSIGPIPE=no
BusName=org.gnome.DisplayManager
StandardOutput=syslog
StandardError=inherit
[Install]
Alias=display-manager.service

13
kdm-plymouth.service Normal file
View File

@ -0,0 +1,13 @@
[Unit]
Description=K Display Manager
Conflicts=getty@tty1.service plymouth-quit.service
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
[Service]
ExecStart=/usr/bin/kdm -nodaemon
Restart=always
IgnoreSIGPIPE=no
StandardOutput=syslog
[Install]
Alias=display-manager.service

13
lightdm-plymouth.service Normal file
View File

@ -0,0 +1,13 @@
[Unit]
Description=Light Display Manager
Conflicts=getty@tty1.service plymouth-quit.service
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
[Service]
ExecStart=/usr/bin/lightdm
Restart=always
IgnoreSIGPIPE=no
BusName=org.freedesktop.DisplayManager
[Install]
Alias=display-manager.service

12
lxdm-plymouth.service Normal file
View File

@ -0,0 +1,12 @@
[Unit]
Description=LXDE Display Manager
Conflicts=getty@tty1.service plymouth-quit.service
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
[Service]
ExecStart=/usr/sbin/lxdm
Restart=always
IgnoreSIGPIPE=no
[Install]
Alias=display-manager.service

View File

@ -0,0 +1,14 @@
diff -aur plymouth.src/systemd-units/plymouth-quit.service.in plymouth.patch/systemd-units/plymouth-quit.service.in
--- plymouth.src/systemd-units/plymouth-quit.service.in 2014-02-20 19:38:13.329427597 +1100
+++ plymouth.patch/systemd-units/plymouth-quit.service.in 2014-02-20 19:40:52.619343839 +1100
@@ -1,8 +1,9 @@
[Unit]
Description=Terminate Plymouth Boot Screen
After=rc-local.service plymouth-start.service systemd-user-sessions.service
+Before=getty@tty1.service
[Service]
-ExecStart=-@PLYMOUTH_CLIENT_DIR@/plymouth quit
+ExecStart=-@PLYMOUTH_CLIENT_DIR@/plymouth quit --retain-splash
Type=oneshot
TimeoutSec=20

View File

@ -0,0 +1,9 @@
diff -aur plymouth.src/scripts/plymouth-update-initrd plymouth.patch/scripts/plymouth-update-initrd
--- plymouth.src/scripts/plymouth-update-initrd 2014-02-20 19:38:13.319427393 +1100
+++ plymouth.patch/scripts/plymouth-update-initrd 2014-02-20 19:54:13.035553244 +1100
@@ -1,2 +1,4 @@
#!/bin/bash
-dracut -f
+find /etc/mkinitcpio.d/ -name \*.preset -a \! -name example.preset | while read p; do
+ mkinitcpio -p $p
+done

134
plymouth.encrypt_hook Normal file
View File

@ -0,0 +1,134 @@
#!/bin/bash
run_hook() {
modprobe -a -q dm-crypt >/dev/null 2>&1
[ "${quiet}" = "y" ] && CSQUIET=">/dev/null"
# Get keyfile if specified
ckeyfile="/crypto_keyfile.bin"
if [ -n "$cryptkey" ]; then
IFS=: read ckdev ckarg1 ckarg2 <<EOF
$cryptkey
EOF
if [ "$ckdev" = "rootfs" ]; then
ckeyfile=$ckarg1
elif resolved=$(resolve_device "${ckdev}" ${rootdelay}); then
case ${ckarg1} in
*[!0-9]*)
# Use a file on the device
# ckarg1 is not numeric: ckarg1=filesystem, ckarg2=path
mkdir /ckey
mount -r -t "$ckarg1" "$resolved" /ckey
dd if="/ckey/$ckarg2" of="$ckeyfile" >/dev/null 2>&1
umount /ckey
;;
*)
# Read raw data from the block device
# ckarg1 is numeric: ckarg1=offset, ckarg2=length
dd if="$resolved" of="$ckeyfile" bs=1 skip="$ckarg1" count="$ckarg2" >/dev/null 2>&1
;;
esac
fi
[ ! -f ${ckeyfile} ] && echo "Keyfile could not be opened. Reverting to passphrase."
fi
if [ -n "${cryptdevice}" ]; then
DEPRECATED_CRYPT=0
IFS=: read cryptdev cryptname cryptoptions <<EOF
$cryptdevice
EOF
else
DEPRECATED_CRYPT=1
cryptdev="${root}"
cryptname="root"
fi
warn_deprecated() {
echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated"
echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead."
}
for cryptopt in ${cryptoptions//,/ }; do
case ${cryptopt} in
allow-discards)
cryptargs="${cryptargs} --allow-discards"
;;
*)
echo "Encryption option '${cryptopt}' not known, ignoring." >&2
;;
esac
done
if resolved=$(resolve_device "${cryptdev}" ${rootdelay}); then
if cryptsetup isLuks ${resolved} >/dev/null 2>&1; then
[ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
dopassphrase=1
# If keyfile exists, try to use that
if [ -f ${ckeyfile} ]; then
if eval cryptsetup --key-file ${ckeyfile} luksOpen ${resolved} ${cryptname} ${cryptargs} ${CSQUIET}; then
dopassphrase=0
else
echo "Invalid keyfile. Reverting to passphrase."
fi
fi
# Ask for a passphrase
if [ ${dopassphrase} -gt 0 ]; then
echo
echo "A password is required to access the ${cryptname} volume:"
plymouth ask-for-password --prompt="Password for ${cryptname} volume" --dont-pause-progress --number-of-tries=5 --command="/sbin/cryptsetup luksOpen --key-file=- ${cryptdev} ${cryptname} ${cryptargs} ${CSQUIET}"
sleep 2
fi
if [ -e "/dev/mapper/${cryptname}" ]; then
if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
export root="/dev/mapper/root"
fi
else
err "Password succeeded, but ${cryptname} creation failed, aborting..."
exit 1
fi
elif [ -n "${crypto}" ]; then
[ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
msg "Non-LUKS encrypted device found..."
if echo "$crypto" | awk -F: '{ exit(NF == 5) }'; then
err "Verify parameter format: crypto=hash:cipher:keysize:offset:skip"
err "Non-LUKS decryption not attempted..."
return 1
fi
exe="cryptsetup create $cryptname $resolved $cryptargs"
IFS=: read c_hash c_cipher c_keysize c_offset c_skip <<EOF
$crypto
EOF
[ -n "$c_hash" ] && exe="$exe --hash '$c_hash'"
[ -n "$c_cipher" ] && exe="$exe --cipher '$c_cipher'"
[ -n "$c_keysize" ] && exe="$exe --key-size '$c_keysize'"
[ -n "$c_offset" ] && exe="$exe --offset '$c_offset'"
[ -n "$c_skip" ] && exe="$exe --skip '$c_skip'"
if [ -f "$ckeyfile" ]; then
exe="$exe --key-file $ckeyfile"
else
exe="$exe --verify-passphrase"
echo ""
echo "A password is required to access the ${cryptname} volume:"
fi
eval "$exe $CSQUIET"
if [ $? -ne 0 ]; then
err "Non-LUKS device decryption failed. verify format: "
err " crypto=hash:cipher:keysize:offset:skip"
exit 1
fi
if [ -e "/dev/mapper/${cryptname}" ]; then
if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
export root="/dev/mapper/root"
fi
else
err "Password succeeded, but ${cryptname} creation failed, aborting..."
exit 1
fi
else
err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume and the crypto= paramater was not specified."
fi
fi
rm -f ${ckeyfile}
}

49
plymouth.encrypt_install Normal file
View File

@ -0,0 +1,49 @@
#!/bin/bash
build() {
local mod
add_module dm-crypt
if [[ $CRYPTO_MODULES ]]; then
for mod in $CRYPTO_MODULES; do
add_module "$mod"
done
else
add_all_modules '/crypto/'
fi
add_binary "cryptsetup"
add_binary "dmsetup"
add_file "/usr/lib/udev/rules.d/10-dm.rules"
add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
add_binary "/usr/lib/plymouth/label.so"
add_binary "/usr/lib/plymouth/text.so"
add_file "/usr/share/fonts/TTF/DejaVuSans.ttf"
add_file "/etc/fonts/fonts.conf"
add_file "/etc/fonts/conf.d/60-latin.conf"
add_runscript
}
help() {
cat <<HELPEOF
This hook allows for an encrypted root device. Users should specify the device
to be unlocked using 'cryptdevice=device:dmname' on the kernel command line,
where 'device' is the path to the raw device, and 'dmname' is the name given to
the device after unlocking, and will be available as /dev/mapper/dmname.
For unlocking via keyfile, 'cryptkey=device:fstype:path' should be specified on
the kernel cmdline, where 'device' represents the raw block device where the key
exists, 'fstype' is the filesystem type of 'device' (or auto), and 'path' is
the absolute path of the keyfile within the device.
Without specifying a keyfile, you will be prompted for the password at runtime.
This means you must have a keyboard available to input it, and you may need
the keymap hook as well to ensure that the keyboard is using the layout you
expect.
HELPEOF
}
# vim: set ft=sh ts=4 sw=4 et:

40
plymouth.initcpio_hook Normal file
View File

@ -0,0 +1,40 @@
### former 'plymouth-git'
#run_hook() {
# msg -n ":: Loading plymouth..."
#
# /bin/mknod /dev/fb c 29 0 &>/dev/null
# #/bin/mount devpts /dev/pts -t devpts
#
# # plymouth deamon
# #/bin/mkdir -p /run/plymouth
# /usr/sbin/plymouthd --mode=boot --pid-file=/var/run/plymouth/pid --attach-to-session
#
# # plymouth frontend
# /usr/bin/plymouth --show-splash
# msg "done."
#}
### from stable 'plymouth'
run_earlyhook(){
udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1
udevadm trigger --action=add --subsystem-match=graphics --subsystem-match=drm --subsystem-match=tty >/dev/null 2>&1
udevadm settle --timeout=30 2>&1
/usr/bin/mknod /dev/fb c 29 &>/dev/null
/usr/bin/mkdir -p /dev/pts
/usr/bin/mount -t devpts -o noexec,nosuid,gid=5,mode=0620 devpts /dev/pts || true
/usr/bin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
}
run_hook() {
/usr/bin/plymouth --show-splash
}
run_latehook(){
/usr/bin/plymouth update-root-fs --new-root-dir=/new_root
}
# vim: set ft=sh:

60
plymouth.initcpio_install Normal file
View File

@ -0,0 +1,60 @@
build() {
add_dir /dev/pts
add_dir /usr/share/plymouth/themes
add_dir /var/run/plymouth # <- needed?
DATADIR="/usr/share"
PLYMOUTH_LOGO_FILE="${DATADIR}/plymouth/arch-logo.png"
PLYMOUTH_THEME_NAME="$(/usr/bin/plymouth-set-default-theme)"
PLYMOUTH_MODULE_NAME="$(grep "ModuleName *= *" ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ModuleName *= *//')"
PLYMOUTH_PLUGIN_PATH="$(plymouth --get-splash-plugin-path)"
add_binary /usr/bin/plymouthd
add_binary /usr/bin/plymouth
add_file ${DATADIR}/plymouth/themes/text/text.plymouth
add_binary ${PLYMOUTH_PLUGIN_PATH}/text.so
add_file ${DATADIR}/plymouth/themes/details/details.plymouth
add_binary ${PLYMOUTH_PLUGIN_PATH}/details.so
add_file "${PLYMOUTH_LOGO_FILE}"
add_file /etc/os-release
add_file /etc/plymouth/plymouthd.conf
add_file ${DATADIR}/plymouth/plymouthd.defaults
if [ ! -f ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so ]; then
echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" > /dev/stderr
exit 1
fi
add_binary ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so
add_binary ${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so
add_binary ${PLYMOUTH_PLUGIN_PATH}/renderers/frame-buffer.so
if [ -d ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then
for x in ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/* ; do
[ ! -f "$x" ] && break
add_file $x
done
fi
add_file /usr/lib/udev/rules.d/70-uaccess.rules
add_file /usr/lib/udev/rules.d/71-seat.rules
# suppress a warning in glib (which the label control uses)
# about uid 0 by building a dummy NSS stack (LP #649917)
add_file /etc/passwd
add_file /etc/nsswitch.conf
add_binary "$(readlink -e /lib/libnss_files.so.2)"
add_file /lib/libnss_files.so.2
add_runscript
}
help() {
echo "This hook includes plymouth in the initramfs image."
}
# vim: set ft=sh:
#EOF

View File

@ -0,0 +1,66 @@
#!/bin/bash
# /etc/initcpio/install/sd-plymouth — mkinitcpio/systemd hook for plymouth
build() {
add_dir /dev/pts
add_dir /usr/share/plymouth/themes
add_dir /run/plymouth
DATADIR="/usr/share"
PLYMOUTH_LOGO_FILE="${DATADIR}/plymouth/arch-logo.png"
PLYMOUTH_THEME_NAME="$(/usr/bin/plymouth-set-default-theme)"
PLYMOUTH_MODULE_NAME="$(grep "ModuleName *= *" ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ModuleName *= *//')"
PLYMOUTH_PLUGIN_PATH="$(plymouth --get-splash-plugin-path)"
add_binary /usr/bin/plymouthd
add_binary /usr/bin/plymouth
add_file ${DATADIR}/plymouth/themes/text/text.plymouth
add_binary ${PLYMOUTH_PLUGIN_PATH}/text.so
add_file ${DATADIR}/plymouth/themes/details/details.plymouth
add_binary ${PLYMOUTH_PLUGIN_PATH}/details.so
add_file "${PLYMOUTH_LOGO_FILE}"
add_file /etc/os-release
add_file /etc/plymouth/plymouthd.conf
add_file ${DATADIR}/plymouth/plymouthd.defaults
if [ ! -f ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so ]; then
echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" > /dev/stderr
exit 1
fi
add_binary ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so
add_binary ${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so
add_binary ${PLYMOUTH_PLUGIN_PATH}/renderers/frame-buffer.so
if [ -d ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then
for x in ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/* ; do
[ ! -f "$x" ] && break
add_file $x
done
fi
add_udev_rule 70-uaccess.rules
add_udev_rule 71-seat.rules
map add_systemd_unit \
systemd-ask-password-plymouth.path \
systemd-ask-password-plymouth.service \
plymouth-halt.service \
plymouth-kexec.service \
plymouth-poweroff.service \
plymouth-quit-wait.service \
plymouth-quit.service \
plymouth-read-write.service \
plymouth-reboot.service \
plymouth-start.service \
plymouth-switch-root.service
}
help() {
cat <<HELPEOF
This hook includes plymouth in a systemd-based initramfs image.
HELPEOF
}

11
slim-plymouth.service Normal file
View File

@ -0,0 +1,11 @@
[Unit]
Description=SLiM Simple Login Manager
Conflicts=getty@tty1.service plymouth-quit.service
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
[Service]
ExecStart=/usr/bin/slim -nodaemon
StandardOutput=syslog
[Install]
Alias=display-manager.service