Marcus Meissner
269a23abd0
- disable plymouth in initrd if the root volume is encrypted. This is a workaround until plymouth is able to handle the prompt correctly (bnc#834063). OBS-URL: https://build.opensuse.org/request/show/200841 OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=127
141 lines
4.3 KiB
Plaintext
141 lines
4.3 KiB
Plaintext
Index: plymouth-0.8.8_git201309032142/configure.ac
|
|
===================================================================
|
|
--- plymouth-0.8.8_git201309032142.orig/configure.ac
|
|
+++ plymouth-0.8.8_git201309032142/configure.ac
|
|
@@ -302,6 +302,7 @@ AC_CONFIG_FILES([Makefile
|
|
themes/spinner/Makefile
|
|
themes/script/Makefile
|
|
images/Makefile
|
|
+ scripts/setup-plymouth.sh
|
|
scripts/plymouth-generate-initrd
|
|
scripts/plymouth-populate-initrd
|
|
scripts/plymouth-set-default-theme
|
|
Index: plymouth-0.8.8_git201309032142/scripts/boot-plymouth.chroot.sh
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ plymouth-0.8.8_git201309032142/scripts/boot-plymouth.chroot.sh
|
|
@@ -0,0 +1,23 @@
|
|
+#!/bin/bash
|
|
+#%stage: setup
|
|
+#%depends: plymouth
|
|
+#%programs: /usr/bin/plymouth /usr/sbin/plymouthd /usr/bin/readlink
|
|
+#%dontshow
|
|
+
|
|
+ply_init_is_systemd()
|
|
+{
|
|
+ local d="$init"
|
|
+ [ -n "$d" ] || return 1
|
|
+ if [ -L "/root$d" ]; then
|
|
+ d=`readlink "/root$d"`
|
|
+ fi
|
|
+ [ "${d##*/}" = systemd ] || return 1
|
|
+ return 0
|
|
+}
|
|
+
|
|
+if ply_init_is_systemd; then
|
|
+ plymouth update-root-fs --new-root-dir=/root
|
|
+else
|
|
+ echo "init $init is not systemd, terminate plymouth"
|
|
+ plymouth quit
|
|
+fi
|
|
Index: plymouth-0.8.8_git201309032142/scripts/boot-plymouth.sh
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ plymouth-0.8.8_git201309032142/scripts/boot-plymouth.sh
|
|
@@ -0,0 +1,23 @@
|
|
+#!/bin/bash
|
|
+#%stage: boot
|
|
+#%depends: start udev kms
|
|
+#%programs: /usr/bin/plymouth /usr/sbin/plymouthd
|
|
+#%if: -z "$root_luks" -a -z "$luks"
|
|
+
|
|
+enable_plymouth=1
|
|
+for o in $(cat /proc/cmdline) ; do
|
|
+ case "$o" in
|
|
+ shell*|plymouth.enable=0*|rd.plymouth=0*)
|
|
+ enable_plymouth=0
|
|
+ break
|
|
+ ;;
|
|
+ esac
|
|
+done
|
|
+if [ "$enable_plymouth" = "1" ]; then
|
|
+ mkdir --mode 755 /run/plymouth
|
|
+
|
|
+ /usr/sbin/plymouthd --attach-to-session --pid-file /run/plymouth/pid
|
|
+
|
|
+ plymouth show-splash
|
|
+fi
|
|
+
|
|
Index: plymouth-0.8.8_git201309032142/scripts/setup-plymouth.sh.in
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ plymouth-0.8.8_git201309032142/scripts/setup-plymouth.sh.in
|
|
@@ -0,0 +1,59 @@
|
|
+#!/bin/bash
|
|
+#
|
|
+#%stage: setup
|
|
+#%depends: start
|
|
+
|
|
+# We don't need to copy the binaries since boot-plymouth.sh does that for us
|
|
+
|
|
+[ -z "$tmp_mnt" ] && exit 1
|
|
+
|
|
+THEME=$(plymouth-set-default-theme)
|
|
+
|
|
+PLUGIN_PATH=$(plymouth --get-splash-plugin-path)
|
|
+
|
|
+MODULE=$(grep "ModuleName *= *" @PLYMOUTH_DATADIR@/plymouth/themes/${THEME}/${THEME}.plymouth | sed 's/ModuleName *= *//')
|
|
+
|
|
+if [ ! -f "$PLUGIN_PATH/${MODULE}.so" ]; then
|
|
+ echo "The default plymouth plugin ($MODULE) doesn't exist." > /dev/stderr
|
|
+ exit 1
|
|
+fi
|
|
+
|
|
+FILES="/usr/share/plymouth/themes/text/text.plymouth \
|
|
+ /usr/share/plymouth/themes/details/details.plymouth \
|
|
+ /usr/share/plymouth/plymouthd.defaults \
|
|
+ /usr/share/plymouth/themes/${THEME}/* \
|
|
+ /etc/plymouth/plymouthd.conf \
|
|
+ /usr/share/fonts/uni/unifont.pcf.gz /etc/os-release \
|
|
+ /etc/fonts/fonts.conf \
|
|
+ /etc/fonts/conf.d/69-unifont.conf "
|
|
+
|
|
+PLUGINS="${PLUGIN_PATH}/details.so \
|
|
+ ${PLUGIN_PATH}/text.so \
|
|
+ ${PLUGIN_PATH}/label.so \
|
|
+ ${PLUGIN_PATH}/${MODULE}.so \
|
|
+ ${PLUGIN_PATH}/renderers/drm.so \
|
|
+ ${PLUGIN_PATH}/renderers/frame-buffer.so"
|
|
+
|
|
+for file in $FILES; do
|
|
+ install -D $file $tmp_mnt/$file
|
|
+done
|
|
+
|
|
+for plugin in $PLUGINS; do
|
|
+ mkdir -p $tmp_mnt/$(dirname $plugin)
|
|
+ cp_bin $plugin $tmp_mnt/$plugin
|
|
+done
|
|
+
|
|
+_libdir=`rpm --eval '%{_lib}'`
|
|
+mkdir -p $tmp_mnt/etc/pango
|
|
+if [ "$_libdir" == "lib64" ];
|
|
+ then
|
|
+ _pangodir=`pango-querymodules-64 | grep ModulesPath | awk '{print $4}'`
|
|
+ pango-querymodules-64 > $tmp_mnt/etc/pango/pango.modules
|
|
+ pangobasicfc="${_pangodir}/pango-basic-fc.so"
|
|
+ else
|
|
+ _pangodir=`pango-querymodules | grep ModulesPath | awk '{print $4}'`
|
|
+ pango-querymodules > $tmp_mnt/etc/pango/pango.modules
|
|
+ pangobasicfc="${_pangodir}/pango-basic-fc.so"
|
|
+fi
|
|
+install -D ${pangobasicfc} $tmp_mnt/${pangobasicfc}
|
|
+mkdir -p $tmp_mnt/var/cache/fontconfig
|
|
Index: plymouth-0.8.8_git201309032142/scripts/plymouth-update-initrd
|
|
===================================================================
|
|
--- plymouth-0.8.8_git201309032142.orig/scripts/plymouth-update-initrd
|
|
+++ plymouth-0.8.8_git201309032142/scripts/plymouth-update-initrd
|
|
@@ -1,2 +1,2 @@
|
|
#!/bin/bash
|
|
-mkinitrd -f /boot/initrd-$(uname -r).img $(uname -r)
|
|
+/sbin/mkinitrd
|