use plymouth git version to enable proprietary driver support

This commit is contained in:
AlmAck 2016-10-18 21:20:29 +01:00 committed by Chaoting Liu
parent bf6fa76540
commit 749a388b9e
10 changed files with 167 additions and 82 deletions

View File

@ -1,6 +1,7 @@
# Contributor: ahjolinna <@yahoo.com>
pkgname=plymouth
pkgver=0.9.2
pkgver=0.9.2.90.e4b7e495
pkgrel=1
pkgdesc="A graphical boot splash screen with kernel mode-setting support"
url="http://www.freedesktop.org/wiki/Software/Plymouth/"
@ -9,7 +10,7 @@ arch=('x86_64')
license=('GPL')
depends=('libdrm' 'pango' 'systemd')
makedepends=('docbook-xsl')
makedepends=('git' 'docbook-xsl')
optdepends=('ttf-dejavu')
options=('!libtool' '!emptydirs')
@ -18,41 +19,46 @@ provides=('plymouth')
conflicts=('plymouth-git')
backup=('etc/plymouth/plymouthd.conf')
source=("http://www.freedesktop.org/software/${pkgname}/releases/${pkgname}-${pkgver}.tar.bz2"
_gitsha='e4b7e495'
source=("git://anongit.freedesktop.org/plymouth#commit=${_gitsha}"
'chakra-logo.png'
'plymouth.encrypt_hook'
'plymouth.encrypt_install'
'plymouth-start.service'
'plymouth-start.path'
'plymouth.initcpio_hook'
'plymouth.initcpio_install'
'plymouth-quit.service.in.patch'
'plymouth-set-default-theme.in.patch'
'plymouth-update-initrd.patch')
'plymouth.encrypt_hook'
'plymouth.encrypt_install'
'sddm-plymouth.service'
'plymouth.initcpio_hook'
'plymouth.initcpio_install'
'sd-plymouth.initcpio_install'
'plymouth-set-default-theme.in.patch'
'plymouth-quit.service.in.patch'
'plymouth-update-initrd.patch'
'plymouthd.conf')
md5sums=('ff420994deb7ea203df678df92e7ab7d'
'ea55756c8ee1f38c3017043d7036c409'
'fbdd5d04e3089a214b9056357434df86'
'65eb269910f1b81e3f0970af456394ca'
'78340207f7391c682601b1b36baed14d'
'672ad913e2383483bcb4599a0a6bee48'
'32f04fdbd1eb94ade30d1e63fdcdd9b5'
'763785c26c6429a755d7b08798de2178'
'165a39dbedcc6e123c8ca05d5b4b2e25'
'f79edbbb30c71b0dbcd102c7dd31660b'
'0357775c16b5f90f1af485e6a4c80a9e')
sha256sums=('SKIP'
'17ba688027bad20e888f703fef33f2460be4cd4426dd2d5291f9126c71cfceb2'
'cbfb5bcb6897703e088eefdee9d578f75d987116becafecbb2018b283ba3865e'
'544399d4f3454644f24ad11e504eaa7d622c73942728f52fb55bea054c756fa1'
'62be126971068eb6138674f797dc9cfce4dc59371d31ff5388cd8de2b1cb397e'
'd349b30832ff84ea7e4b86265efd5d08f8ff00e9153f05f41c8e8b49addf321c'
'b0467b7c490539470f726358e5d0c72951efd58d268a2d16411dafacba68041a'
'f434dd9cc96c3cec470aedb7734663cd3e04ffa34eff2bea92708f966132a2da'
'b7ce99519c4ecbd582ac4b2ee873c56424c6eee4d32ba8b0074798f4c23a12df'
'fc900a0c330b9bcbf84afaa6575d9df392c4e8c2ea699b72dc9a137f4972de49'
'bb597e2ced7c3beca8c9e9f212bc001750746d9b41e00071697a0352ec2a2e27'
'4e28ed8a22dd722f939f788283edde6a6310985c2060c1fd9562ed5b72f6b5ae')
prepare() {
cd "$srcdir"/${pkgname}-${pkgver}
patch -p1 -i $srcdir/plymouth-set-default-theme.in.patch
patch -p1 -i $srcdir/plymouth-update-initrd.patch
patch -p1 -i $srcdir/plymouth-quit.service.in.patch
cd plymouth
patch -p1 -i $srcdir/plymouth-set-default-theme.in.patch
patch -p1 -i "$srcdir"/plymouth-update-initrd.patch
patch -p1 -i "$srcdir"/plymouth-quit.service.in.patch
}
build() {
cd "$srcdir"/${pkgname}-${pkgver}
LDFLAGS="$LDFLAGS -ludev" ./configure --prefix=/usr \
cd ${pkgname%-*}
LDFLAGS="$LDFLAGS -ludev" ./autogen.sh \
--prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@ -76,19 +82,22 @@ build() {
}
package() {
cd "$srcdir"/${pkgname}-${pkgver}
cd plymouth
make DESTDIR="$pkgdir" install
make DESTDIR="$pkgdir" install
install -Dm644 "$srcdir/chakra-logo.png" "$pkgdir/usr/share/plymouth/chakra-logo.png"
install -Dm644 "$srcdir"/chakra-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.encrypt_install" "$pkgdir/usr/lib/initcpio/install/plymouth-encrypt"
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/plymouth-start.service" "$pkgdir/usr/lib/systemd/system/plymouth-start.service"
install -Dm644 "$srcdir/plymouth-start.path" "$pkgdir/usr/lib/systemd/system/plymouth-start.path"
install -Dm644 "$pkgdir/usr/share/plymouth/plymouthd.defaults" "$pkgdir/etc/plymouth/plymouthd.conf"
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"/sddm-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 "$srcdir"/plymouthd.conf "$pkgdir"/etc/plymouth/plymouthd.conf
}

View File

@ -1,6 +1,6 @@
diff -aur plymouth-0.8.8.src/systemd-units/plymouth-quit.service.in plymouth-0.8.8.patch/systemd-units/plymouth-quit.service.in
--- plymouth-0.8.8.src/systemd-units/plymouth-quit.service.in 2012-09-27 02:50:53.000000000 +1000
+++ plymouth-0.8.8.patch/systemd-units/plymouth-quit.service.in 2014-02-11 16:36:58.813194805 +1100
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

View File

@ -1,10 +0,0 @@
[Unit]
Description=Automatically Start Plymouth Boot Screen
[Path]
PathExistsGlob=/sys/class/graphics/fb*/device/drm/
Unit=plymouth-start.service
[Install]
WantedBy=sysinit.target

View File

@ -1,16 +0,0 @@
[Unit]
Description=Show Plymouth Boot Screen
DefaultDependencies=no
Wants=systemd-ask-password-plymouth.path systemd-vconsole-setup.service
After=systemd-vconsole-setup.service systemd-udev-trigger.service systemd-udevd.service
Before=systemd-ask-password-plymouth.service
ConditionKernelCommandLine=!plymouth.enable=0
[Service]
ExecStart=/usr/bin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
ExecStartPost=-/usr/bin/plymouth show-splash
Type=forking
KillMode=none
SendSIGKILL=no
[Install]
WantedBy=sysinit.target

View File

@ -1,6 +1,6 @@
diff -aur plymouth-0.9.0.src/scripts/plymouth-update-initrd plymouth-0.9.0.patch/scripts/plymouth-update-initrd
--- plymouth-0.9.0.src/scripts/plymouth-update-initrd 2014-01-16 08:14:47.000000000 +1100
+++ plymouth-0.9.0.patch/scripts/plymouth-update-initrd 2014-05-21 19:04:16.802594001 +1000
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

View File

@ -1,12 +1,29 @@
### 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(){
# first trigger graphics subsystem
udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1
# first trigger graphics and tty subsystem
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/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

View File

@ -1,10 +1,10 @@
build() {
add_dir /dev/pts
add_dir /usr/share/plymouth/themes
add_dir /var/run/plymouth
add_dir /var/run/plymouth # <- needed?
DATADIR="/usr/share"
PLYMOUTH_LOGO_FILE="${DATADIR}/plymouth/chakra-logo.png"
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)"
@ -38,7 +38,7 @@ build() {
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

6
plymouth/plymouthd.conf Normal file
View File

@ -0,0 +1,6 @@
# Distribution defaults. Changes to this file will get overwritten during
# upgrades.
[Daemon]
Theme=breeze
ShowDelay=5
DeviceTimeout=5

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
}

View File

@ -0,0 +1,13 @@
[Unit]
Description=Simple Desktop Display Manager
Documentation=man:sddm(1) man:sddm.conf(5)
Conflicts=getty@tty1.service
Wants=plymouth-deactivate.service
After=systemd-user-sessions.service getty@tty1.service plymouth-deactivate.service plymouth-quit.service
[Service]
ExecStart=/usr/bin/sddm
Restart=always
[Install]
Alias=display-manager.service