diff options
author | James Meyer <james.meyer@operamail.com> | 2013-02-19 21:10:18 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2013-02-19 21:10:18 (GMT) |
commit | 2648e999d277eac5c3d331a3609bcc73fafbea71 (patch) | |
tree | 40951fb8e7fdbe28a0baa324ae615055203f1e2e /abs/core/plymouth | |
parent | c759b5e0c4aa6fc37412b4dee2cf9ad993fd376d (diff) | |
parent | 7e6f7ca174e1af67178dc5293a312a4a733eb095 (diff) | |
download | linhes_pkgbuild-2648e999d277eac5c3d331a3609bcc73fafbea71.zip linhes_pkgbuild-2648e999d277eac5c3d331a3609bcc73fafbea71.tar.gz linhes_pkgbuild-2648e999d277eac5c3d331a3609bcc73fafbea71.tar.bz2 |
Merge branch 'testing'
# By James Meyer (1091) and others
# Via James Meyer (5) and others
* testing: (1148 commits)
LinHES-config: during install don't kill off lirc. This keeps the remote active all the way to the finish
Change version numbers to 8.0 to match the release number. LinHES-conifg LinHES-system mythdb-initial runit-scripts supplemental-web
LinHES-conifig: mv_install.py for the last partition don't go all the way to the end. Gotta leave room for gpt tables.
xf86-video-ati: xorg ati driver.
LinHES-config: timezip.py add syncing up of parental lvl passwords and starting level with MBE.
LinHES-system: correct the logic for breaking out of the wmctrl loop. As written it would break out of the inner loop..but not the 60 iteration loop.
e16_theme_settings: remove slide-in prop for new windows. For whatever reason this was preventing mplayer from being positioned correctly for appletrailers.
LinHES-config, mythinstall: change case of hd_pvr and serial to all lower refs #902
zilog-firmware: firmware for TX support of the hdpvr and pvr-150 In general I can't recommend anybody using these transmitters but including the firmware just in case someone really wants to
linhes-udev-rules: added hdprv_lirc rule. All of these lirc rules are limited to exactly one device. If more then one device is present then only the last device in init will get the symlink
runit-scripts: fix logging for igdeamon, add support to remote init script so that the blaster is always the first device in the chain. added support specificly for hd_pvr
LinHES-system: add lh_system_restore and lh_system_backup. These scripts are called from the mythmenu. refs #900
iguanair: rebuild with python 2.7
LinHES-system: msg_daemon.py fix init and nasty bug related to timeout. In a nutshell timeout wouldn't work unless a msg without a timeout was called first.
linhes-udev-rules: add rules for mce,streamzap,serial lirc devices.
mythinstall: recompile for matching libs
mythtv: latest .25-fixes and change mythbackup/restore call lh_system_$op to replace mythbackup/mythrestore. mythbackup no longer works correctly with the new windowmanager
linhes-scripts: myth2mp3, myth2x264, myth2xvid: use mythutil to get cutlist
LinHES-config, supplimental-web: Fix proxy numbering for Ceton infiniTV
linhes-system: add additional stuff to the system backup and also introduced an exclude file. The exclude/include files are locate in /home/mythtv/backup_config/
...
Diffstat (limited to 'abs/core/plymouth')
25 files changed, 694 insertions, 0 deletions
diff --git a/abs/core/plymouth/PKGBUILD b/abs/core/plymouth/PKGBUILD new file mode 100644 index 0000000..34c40c5 --- /dev/null +++ b/abs/core/plymouth/PKGBUILD @@ -0,0 +1,130 @@ +# Maintainer: M0Rf30 <morfeo89@hotmail.it> +# Contributor: PirateJonno <j@skurvy.no-ip.org> +# Contributor: Det <nimetonmaili at gmail dot com> +# Contributor: Biginoz <biginoz _at_ free _point_ fr> +# Based on plymouth-git: http://aur.archlinux.org/packages.php?ID=26117 + +pkgname=plymouth +pkgver=0.8.8 +pkgrel=3 +pkgdesc="A graphical boot splash screen with kernel mode-setting support" +arch=('i686' 'x86_64') +url="http://freedesktop.org/wiki/Software/Plymouth" +license=('GPL') +depends=('libdrm' 'pango' 'gtk2') +options=('!libtool' '!emptydirs') +install=${pkgname}.install +backup=('etc/plymouth/plymouthd.conf') +provides=('plymouth') +conflicts=('plymouth-git') +source=("http://www.freedesktop.org/software/$pkgname/releases/$pkgname-$pkgver.tar.bz2" + 'arch-logo.png' + "http://projects.archlinux.org/svntogit/packages.git/plain/cryptsetup/repos/core-i686/encrypt_hook" + 'encrypt_hook.patch' + "http://projects.archlinux.org/svntogit/packages.git/plain/cryptsetup/repos/core-i686/encrypt_install" + 'encrypt_install.patch' + 'gdm-plymouth.service' + 'kdm-plymouth.service' + 'kdm-unpatched-plymouth.service' + 'lightdm-plymouth.service' + 'lxdm-plymouth.service' + 'plymouth.functions' + 'plymouth.initcpio_hook' + 'plymouth.initcpio_install' + 'plymouth-pid.patch' + 'plymouth-quit.service' + 'plymouth-set-default-theme.in.patch' + 'plymouth-update-initrd.patch' + 'plymouthd.conf' + 'system-release' + 'systemd-unit-dir.patch' + 'udevadm.patch' +) + + +build() { + + cd $srcdir + msg "Applying Patches..." + + msg2 "Fixing encrypt HOOK" + #patch -p0 -i encrypt_hook.patch --follow-symlinks + #patch -p0 -i encrypt_install.patch --follow-symlinks + + + cd $srcdir/$pkgname-$pkgver + msg2 "Setting a human-readable error for '# plymouth-set-default-theme -R'" + patch -p0 -i ../plymouth-set-default-theme.in.patch + + msg2 "Fixing updating initrd" + patch -p0 -i ../plymouth-update-initrd.patch + + msg2 "Changing PID file to /run/plymouth.pid" + patch -p1 -i ../plymouth-pid.patch + + msg2 "Changing udevadm path" + patch -p1 -i ../udevadm.patch + + msg2 "Changing SYSTEMD_UNIT_DIR to /usr/lib/systemd/system/" + patch -p0 -i ../systemd-unit-dir.patch + + sed -e 's:png_set_gray_1_2_4_to_8:png_set_expand_gray_1_2_4_to_8:g' \ + -i src/libply-splash-graphics/ply-image.c + + msg "Starting make..." + + ./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib --libexecdir=/usr/lib \ + --enable-tracing \ + --without-rhgb-compat-link \ + --with-gdm-autostart-file=yes \ + --with-logo=/usr/share/plymouth/arch-logo.png \ + --with-background-start-color-stop=0x000000 \ + --with-background-end-color-stop=0x4D4D4D \ + --enable-systemd-integration \ + --without-system-root-install + + make +} + +package() { + cd $srcdir/$pkgname-$pkgver + + make DESTDIR="$pkgdir" install + + install -Dm644 "$srcdir/arch-logo.png" "$pkgdir/usr/share/plymouth/arch-logo.png" + install -Dm644 ../../encrypt_hook "$pkgdir/usr/lib/initcpio/hooks/plymouth-encrypt" + install -Dm644 ../../encrypt_install "$pkgdir/usr/lib/initcpio/install/plymouth-encrypt" + install -Dm644 "$srcdir/plymouth.functions" "$pkgdir/etc/rc.d/functions.d/plymouth.functions" + install -Dm644 "$srcdir/plymouth.initcpio_hook" "$pkgdir/usr/lib/initcpio/hooks/plymouth" + install -Dm644 "$srcdir/plymouth.initcpio_install" "$pkgdir/usr/lib/initcpio/install/plymouth" + install -Dm644 "$srcdir/plymouthd.conf" "$pkgdir/etc/plymouth/plymouthd.conf" + install -Dm644 "$srcdir/system-release" "$pkgdir/etc/system-release" + + # Plymouth<->systemd integration, including units for DMs + for i in {{gdm,kdm{,-unpatched},lightdm,lxdm}-plymouth,plymouth-quit}.service; do + install -Dm644 "$srcdir/$i" "$pkgdir/usr/lib/systemd/system/$i" + done +} + +md5sums=('38f5e613e5ab17806b950cee2d0d0d4e' + '65fa2763d5c9bb9f80973ea5e6e3db3e' + 'c970831d733ca42e20415005967e7843' + '59f703eafd1aee4ca5782a523d412a46' + '21c45f9cab3e0b5165f68358884fbd0f' + 'cdee5ae4c4087181e80fe14061b7d604' + '34d0ed7bbcb3d0ea498de24bc17b2ee9' + '75ec0ac73eb9a1e3f6104df64520d431' + 'ceec65ce58accdb270f3eaa23d794b4a' + 'e6d573b1913f3aa020cbde3863ee80f0' + '62c3b4e894330a2ca4c2b8fbcaba083c' + 'a1763999bc3282771e712765c9427d77' + '4f3be343eea9956bbc94d615d5f41def' + 'e606ce14ceace727c2f13758e371a4ed' + '761f5090dc999e50b4572138347c775b' + '3bb0b8008edfad9e23703674341766a0' + '42fddd683720dbacbe6e30b4b7892f3c' + 'c2a0cf5a499d6c14723461166a24ede7' + '37479b134827dc307b3c55bfb2711e99' + 'ab8a557d10f74bec5c94ed6cae34729c' + '30acbfc7722fb62ee464b8fec32b5cfd' + '89014b04513d61e0085e7a0c9924c183') diff --git a/abs/core/plymouth/__changelog b/abs/core/plymouth/__changelog new file mode 100644 index 0000000..21edf18 --- /dev/null +++ b/abs/core/plymouth/__changelog @@ -0,0 +1,2 @@ +removed systemd as a dep + diff --git a/abs/core/plymouth/arch-logo.png b/abs/core/plymouth/arch-logo.png Binary files differnew file mode 100644 index 0000000..9f8446b --- /dev/null +++ b/abs/core/plymouth/arch-logo.png diff --git a/abs/core/plymouth/encrypt_hook b/abs/core/plymouth/encrypt_hook new file mode 100644 index 0000000..11db344 --- /dev/null +++ b/abs/core/plymouth/encrypt_hook @@ -0,0 +1,139 @@ +#!/usr/bin/ash + +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:" + + #loop until we get a real password + while ! eval cryptsetup luksOpen ${resolved} ${cryptname} ${cryptargs} ${CSQUIET}; do + sleep 2; + done + 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} +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/abs/core/plymouth/encrypt_hook.patch b/abs/core/plymouth/encrypt_hook.patch new file mode 100644 index 0000000..a00a160 --- /dev/null +++ b/abs/core/plymouth/encrypt_hook.patch @@ -0,0 +1,19 @@ +--- encrypt_hooka 2012-07-15 11:17:04.000000000 +0300 ++++ encrypt_hook 2012-07-15 11:32:59.258648852 +0300 +@@ -73,13 +73,10 @@ + fi + # Ask for a passphrase + if [ ${dopassphrase} -gt 0 ]; then +- echo "" ++ echo + echo "A password is required to access the ${cryptname} volume:" +- +- #loop until we get a real password +- while ! eval cryptsetup luksOpen ${resolved} ${cryptname} ${cryptargs} ${CSQUIET}; do +- sleep 2; +- done ++ plymouth ask-for-password --prompt="Password for ${cryptname} volume" --dont-pause-progress --number-of-tries=5 --command="/sbin/cryptsetup luksOpen --key-file=- ${cryptdev} ${cryptname} ${CSQUIET}" ++ sleep 2 + fi + if [ -e "/dev/mapper/${cryptname}" ]; then + if [ ${DEPRECATED_CRYPT} -eq 1 ]; then diff --git a/abs/core/plymouth/encrypt_install b/abs/core/plymouth/encrypt_install new file mode 100644 index 0000000..38e5ddc --- /dev/null +++ b/abs/core/plymouth/encrypt_install @@ -0,0 +1,44 @@ +#!/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_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: diff --git a/abs/core/plymouth/encrypt_install.patch b/abs/core/plymouth/encrypt_install.patch new file mode 100644 index 0000000..d3a42b9 --- /dev/null +++ b/abs/core/plymouth/encrypt_install.patch @@ -0,0 +1,15 @@ +--- encrypt_install 2012-07-15 11:45:14.644764564 +0300 ++++ encrypt_installnew 2012-07-15 11:46:29.239269291 +0300 +@@ -18,6 +18,12 @@ + 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_file "/usr/lib/pango/1.6.0/modules/pango-basic-x.so" + + add_runscript + } diff --git a/abs/core/plymouth/gdm-plymouth.service b/abs/core/plymouth/gdm-plymouth.service new file mode 100644 index 0000000..d58c0e9 --- /dev/null +++ b/abs/core/plymouth/gdm-plymouth.service @@ -0,0 +1,13 @@ +[Unit] +Description=GNOME Display Manager +After=systemd-user-sessions.service + +Conflicts=plymouth-quit.service +After=plymouth-quit.service + +[Service] +ExecStart=/usr/sbin/gdm -nodaemon +StandardOutput=syslog + +[Install] +Alias=display-manager.service diff --git a/abs/core/plymouth/kdm-plymouth.service b/abs/core/plymouth/kdm-plymouth.service new file mode 100644 index 0000000..a9e9142 --- /dev/null +++ b/abs/core/plymouth/kdm-plymouth.service @@ -0,0 +1,13 @@ +[Unit] +Description=K Display Manager +After=systemd-user-sessions.service + +Conflicts=plymouth-quit.service +After=plymouth-quit.service + +[Service] +ExecStart=/usr/bin/kdm -nodaemon +StandardOutput=syslog + +[Install] +Alias=display-manager.service diff --git a/abs/core/plymouth/kdm-unpatched-plymouth.service b/abs/core/plymouth/kdm-unpatched-plymouth.service new file mode 100644 index 0000000..8a4c41d --- /dev/null +++ b/abs/core/plymouth/kdm-unpatched-plymouth.service @@ -0,0 +1,15 @@ +[Unit] +Description=K Display Manager +After=systemd-user-sessions.service + +Conflicts=plymouth-quit.service +After=plymouth-quit.service + +[Service] +ExecStartPre=-/usr/bin/plymouth deactivate +ExecStartPre=-/usr/bin/plymouth quit --retain-splash +ExecStart=/usr/bin/kdm -nodaemon +StandardOutput=syslog + +[Install] +Alias=display-manager.service diff --git a/abs/core/plymouth/lightdm-plymouth.service b/abs/core/plymouth/lightdm-plymouth.service new file mode 100644 index 0000000..47ec47e --- /dev/null +++ b/abs/core/plymouth/lightdm-plymouth.service @@ -0,0 +1,14 @@ +[Unit] +Description=LightDM Display Manager +After=systemd-user-sessions.service + +Conflicts=plymouth-quit.service +After=plymouth-quit.service + +[Service] +ExecStart=/usr/sbin/lightdm +StandardOutput=syslog + +[Install] +WantedBy=graphical.target +Alias=display-manager.service diff --git a/abs/core/plymouth/lxdm-plymouth.service b/abs/core/plymouth/lxdm-plymouth.service new file mode 100644 index 0000000..dc6b000 --- /dev/null +++ b/abs/core/plymouth/lxdm-plymouth.service @@ -0,0 +1,13 @@ +[Unit] +Description=LXDE Display Manager +After=systemd-user-sessions.service + +Conflicts=plymouth-quit.service +After=plymouth-quit.service + +[Service] +ExecStart=/usr/sbin/lxdm >/dev/null 2>&1 </dev/null +StandardOutput=syslog + +[Install] +Alias=display-manager.service diff --git a/abs/core/plymouth/plymouth-0.8.8.tar.bz2 b/abs/core/plymouth/plymouth-0.8.8.tar.bz2 Binary files differnew file mode 100644 index 0000000..bf8c051 --- /dev/null +++ b/abs/core/plymouth/plymouth-0.8.8.tar.bz2 diff --git a/abs/core/plymouth/plymouth-pid.patch b/abs/core/plymouth/plymouth-pid.patch new file mode 100644 index 0000000..3f141b0 --- /dev/null +++ b/abs/core/plymouth/plymouth-pid.patch @@ -0,0 +1,33 @@ +--- a/systemd-units/systemd-ask-password-plymouth.service.in 2012-09-26 18:50:53.000000000 +0200 ++++ b/systemd-units/systemd-ask-password-plymouth.service.in 2012-10-28 23:12:04.295327564 +0100 +@@ -6,7 +6,7 @@ + After=plymouth-start.service + Before=shutdown.target + ConditionKernelCommandLine=!plymouth.enable=0 +-ConditionPathExists=/run/plymouth/pid ++ConditionPathExists=/run/plymouth.pid + + [Service] + ExecStart=/bin/systemd-tty-ask-password-agent --watch --plymouth +--- a/systemd-units/systemd-ask-password-plymouth.path.in 2012-09-26 18:50:53.000000000 +0200 ++++ b/systemd-units/systemd-ask-password-plymouth.path.in 2012-10-28 23:11:54.348555717 +0100 +@@ -6,7 +6,7 @@ + After=plymouth-start.service + Before=basic.target shutdown.target + ConditionKernelCommandLine=!plymouth.enable=0 +-ConditionPathExists=/run/plymouth/pid ++ConditionPathExists=/run/plymouth.pid + + [Path] + DirectoryNotEmpty=/run/systemd/ask-password +--- a/systemd-units/plymouth-start.service.in 2012-09-26 18:50:53.000000000 +0200 ++++ b/systemd-units/plymouth-start.service.in 2012-10-28 23:11:35.731982414 +0100 +@@ -7,7 +7,7 @@ + ConditionKernelCommandLine=!plymouth.enable=0 + + [Service] +-ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=boot --pid-file=@plymouthruntimedir@/pid --attach-to-session ++ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=boot --pid-file=/run/plymouth.pid --attach-to-session + ExecStartPost=-/bin/udevadm settle --timeout=30 --exit-if-exists=/sys/class/drm/card0/dev ; /bin/udevadm settle --timeout=30 --exit-if-exists=/sys/class/graphics/fb0/dev ; @PLYMOUTH_CLIENT_DIR@/plymouth show-splash + Type=forking + KillMode=none diff --git a/abs/core/plymouth/plymouth-quit.service b/abs/core/plymouth/plymouth-quit.service new file mode 100644 index 0000000..9d16a27 --- /dev/null +++ b/abs/core/plymouth/plymouth-quit.service @@ -0,0 +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=-/usr/bin/plymouth quit
+Type=oneshot
+TimeoutSec=20
\ No newline at end of file diff --git a/abs/core/plymouth/plymouth-set-default-theme.in.patch b/abs/core/plymouth/plymouth-set-default-theme.in.patch new file mode 100644 index 0000000..21f975d --- /dev/null +++ b/abs/core/plymouth/plymouth-set-default-theme.in.patch @@ -0,0 +1,14 @@ +--- scripts/plymouth-set-default-theme.ina 2012-07-15 12:16:53.083156390 +0300 ++++ scripts/plymouth-set-default-theme.in 2012-07-15 12:17:32.715893173 +0300 +@@ -173,7 +173,10 @@ + exit $? + fi + +-if [ ! -e ${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth ]; then ++if [ -z ${THEME_NAME} ]; then ++ echo "Please specify a theme name" ++ exit 1 ++elif [ ! -e ${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth ]; then + echo "${PLYMOUTH_DATADIR}/plymouth/themes/${THEME_NAME}/${THEME_NAME}.plymouth does not exist" > /dev/stderr + exit 1 + fi diff --git a/abs/core/plymouth/plymouth-update-initrd.patch b/abs/core/plymouth/plymouth-update-initrd.patch new file mode 100644 index 0000000..648c874 --- /dev/null +++ b/abs/core/plymouth/plymouth-update-initrd.patch @@ -0,0 +1,8 @@ +--- scripts/plymouth-update-initrd.old ++++ scripts/plymouth-update-initrd +@@ -1,2 +1,4 @@ + #!/bin/bash +-mkinitrd -f /boot/initrd-$(uname -r).img $(uname -r) ++find /etc/mkinitcpio.d/ -name \*.preset -a \! -name example.preset | while read p; do ++ mkinitcpio -p $p ++done diff --git a/abs/core/plymouth/plymouth.functions b/abs/core/plymouth/plymouth.functions new file mode 100644 index 0000000..cfaa19b --- /dev/null +++ b/abs/core/plymouth/plymouth.functions @@ -0,0 +1,68 @@ +#!/bin/bash +if [[ -x /usr/bin/plymouth && -x /usr/sbin/plymouthd ]]; then + + ply_client() { /usr/bin/plymouth --ping && /usr/bin/plymouth "$@"; } + ply_daemon() { /usr/sbin/plymouthd "$@"; } + + # save a function under a new name + save_function() { + local ORIG=$(declare -f $1) + eval "$2${ORIG#$1}" + } + + save_function stat_busy std_stat_busy + save_function stat_fail std_stat_fail + + # overwrite status functions + stat_busy() { + ply_client --update="$1" + ply_client message --text="$1" + std_stat_busy "$@" + } + + stat_fail() { + #JM remove client quitting + #ply_client --quit + std_stat_fail "$@" + } + + # update after local filesystems are mounted + ply_sysinit_postmount() { ply_client --sysinit; } + add_hook sysinit_postmount ply_sysinit_postmount + + # stop plymouth after rc.multi + ply_quit_boot() { + ply_client quit --retain-splash + } + add_hook multi_end ply_quit_boot + + # stop plymouth before shutdown + ply_quit_shutdown() { + ply_quit_boot + [[ $(ps h $(cat /tmp/plymouthd)) ]] && kill -9 $(cat /tmp/plymouthd) + } +# JM add_hook shutdown_poweroff ply_quit_shutdown + + # start plymouth at the beginning of rc.shutdown + ply_shutdown_start(){ + XPID=`pidof X` + if [ "$XPID" ]; then + if [ "`runlevel | cut -c 3`" != '5' ]; then + local DM + for DM in slim gdm kdm xdm entrance; do + ck_daemon "$DM" || stop_daemon "$DM" + done + fi + kill -9 $XPID &> /dev/null + fi + ply_daemon --mode=shutdown --pid-file=/tmp/plymouthd + ply_client --show-splash + + # don't get killed by kill_all + add_omit_pids `cat /tmp/plymouthd` + } +#remove shutdown hook so plymouth doesn't start +#JM add_hook shutdown_start ply_shutdown_start + +fi +# vim: set ts=2 sw=2 ft=sh noet: diff --git a/abs/core/plymouth/plymouth.initcpio_hook b/abs/core/plymouth/plymouth.initcpio_hook new file mode 100644 index 0000000..d527f24 --- /dev/null +++ b/abs/core/plymouth/plymouth.initcpio_hook @@ -0,0 +1,16 @@ +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=/run/plymouth.pid + + # plymouth frontend + /usr/bin/plymouth --show-splash + msg "done." +} + +# vim: set ft=sh: diff --git a/abs/core/plymouth/plymouth.initcpio_install b/abs/core/plymouth/plymouth.initcpio_install new file mode 100644 index 0000000..16048f1 --- /dev/null +++ b/abs/core/plymouth/plymouth.initcpio_install @@ -0,0 +1,58 @@ +build() { + add_dir /dev/pts + add_dir /usr/share/plymouth/themes + + DATADIR="/usr/share" + PLYMOUTH_LOGO_FILE="${DATADIR}/plymouth/arch-logo.png" + PLYMOUTH_THEME_NAME="$(/usr/sbin/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/sbin/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/system-release /etc/system-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/x11.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 + + # 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 + + SCRIPT='plymouth' +} + +help() { + echo "This hook includes plymouth in the initramfs image." +} + +# vim: set ft=sh: +#EOF diff --git a/abs/core/plymouth/plymouth.install b/abs/core/plymouth/plymouth.install new file mode 100644 index 0000000..aafcca8 --- /dev/null +++ b/abs/core/plymouth/plymouth.install @@ -0,0 +1,45 @@ +post_install() { +cat <<EOT + +================================================================================== +1. To make Plymouth work: + 1.1. Add "plymouth" to HOOKS after "base" and "udev" in /etc/mkinitcpio.conf + 1.2. Add 'quiet splash' to the grub command line + 1.3. Rebuild your initrd image (# mkinitcpio -p [kernel preset name]). + E.g.: sudo mkinitcpio -p linux + +2. To enable encryption, replace "encrypt" with "plymouth-encrypt" in + mkinitcpio.conf and rebuild your initrd image. + +3. You will also need to rebuild your initrd image every time you change your theme + (the default is set as 'spinfinity'). + + To list all plymouth themes: + plymouth-set-default-theme -l + + To change theme: + # plymouth-set-default-theme <theme> + + To rebuild initrd image: + # mkinitcpio -p linux + +4. For Smooth Transition to Display Manager you have to: + 4.1. See the Wiki Page (link in 5) to prepare your Display Manager + 4.2. Disable your Display Manager Unit + E.g. : systemctl disable kdm.service + 4.3. Enable the respective DM-plymouth Unit (GDM,KDM,Lightdm,LXDM units provided) + E.g. : systemctl enable kdm-plymouth.service + +5. For more information please visit the Wiki page: + https://wiki.archlinux.org/index.php/Plymouth + +OBS. If you have any leftover "kill Plymouth" lines in /etc/rc.local or ~/.xinitrc + they are no longer required. +================================================================================== + +EOT +} + +post_upgrade() { + post_install +} diff --git a/abs/core/plymouth/plymouthd.conf b/abs/core/plymouth/plymouthd.conf new file mode 100644 index 0000000..50de7f8 --- /dev/null +++ b/abs/core/plymouth/plymouthd.conf @@ -0,0 +1,3 @@ +# Administrator customizations go in this file +[Daemon] +Theme=spinfinity diff --git a/abs/core/plymouth/system-release b/abs/core/plymouth/system-release new file mode 100644 index 0000000..850183e --- /dev/null +++ b/abs/core/plymouth/system-release @@ -0,0 +1 @@ +Arch Linux diff --git a/abs/core/plymouth/systemd-unit-dir.patch b/abs/core/plymouth/systemd-unit-dir.patch new file mode 100644 index 0000000..7058c8f --- /dev/null +++ b/abs/core/plymouth/systemd-unit-dir.patch @@ -0,0 +1,11 @@ +--- configure.ac.orig 2012-06-12 17:19:48.903409717 +0300 ++++ configure.ac 2012-06-12 17:20:01.916743217 +0300 +@@ -254,7 +254,7 @@ + + if test x$enable_systemd_integration = xyes; then + AC_DEFINE(PLY_ENABLE_SYSTEMD_INTEGRATION, 1, [Coordinate boot up with systemd]) +- SYSTEMD_UNIT_DIR=/lib/systemd/system ++ SYSTEMD_UNIT_DIR=/usr/lib/systemd/system + AC_SUBST(SYSTEMD_UNIT_DIR) + fi + diff --git a/abs/core/plymouth/udevadm.patch b/abs/core/plymouth/udevadm.patch new file mode 100644 index 0000000..aa01e00 --- /dev/null +++ b/abs/core/plymouth/udevadm.patch @@ -0,0 +1,11 @@ +--- a/systemd-units/plymouth-start.service.in 2012-09-26 18:50:53.000000000 +0200 ++++ b/systemd-units/plymouth-start.service.in 2012-11-01 00:12:35.186732840 +0100 +@@ -8,7 +8,7 @@ + + [Service] + ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=boot --pid-file=/run/plymouth.pid --attach-to-session +-ExecStartPost=-/bin/udevadm settle --timeout=30 --exit-if-exists=/sys/class/drm/card0/dev ; /bin/udevadm settle --timeout=30 --exit-if-exists=/sys/class/graphics/fb0/dev ; @PLYMOUTH_CLIENT_DIR@/plymouth show-splash ++ExecStartPost=-/usr/bin/udevadm settle --timeout=30 --exit-if-exists=/sys/class/drm/card0/dev ; /usr/bin/udevadm settle --timeout=30 --exit-if-exists=/sys/class/graphics/fb0/dev ; @PLYMOUTH_CLIENT_DIR@/plymouth show-splash + Type=forking + KillMode=none + SendSIGKILL=no |