systemd/systemd-use-plymouth

108 lines
4.2 KiB
Plaintext

From: Jeff Mahoney <jeffm@suse.com>
Subject: systemd: Allow plymouth support from other distros than Fedora
This patch allows plymouth support to be included when building
on distros other than Fedora. Specifically, it allows openSUSE.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
Makefile.am | 27 +++++++++++++++++----------
configure.ac | 3 +++
units/fedora/plymouth-start.service | 7 +++++--
3 files changed, 25 insertions(+), 12 deletions(-)
--- a/Makefile.am
+++ b/Makefile.am
@@ -331,7 +331,11 @@ if TARGET_FEDORA
dist_systemunit_DATA += \
units/fedora/prefdm.service \
units/fedora/rc-local.service \
- units/fedora/halt-local.service \
+ units/fedora/halt-local.service
+endif
+
+if HAVE_PLYMOUTH
+dist_systemunit_DATA += \
units/fedora/plymouth-start.service \
units/fedora/plymouth-read-write.service \
units/fedora/plymouth-quit.service \
@@ -1271,20 +1275,13 @@ install-data-hook:
( cd $(DESTDIR)$(dbussessionservicedir) && \
rm -f org.freedesktop.systemd1.service && \
$(LN_S) ../system-services/org.freedesktop.systemd1.service org.freedesktop.systemd1.service )
-if TARGET_FEDORA
+if HAVE_PLYMOUTH
$(MKDIR_P) -m 0755 \
$(DESTDIR)$(SYSTEM_SYSVINIT_PATH) \
$(DESTDIR)$(systemunitdir)/reboot.target.wants \
$(DESTDIR)$(systemunitdir)/kexec.target.wants \
$(DESTDIR)$(systemunitdir)/poweroff.target.wants \
- $(DESTDIR)$(systemunitdir)/halt.target.wants \
- $(DESTDIR)$(systemunitdir)/final.target.wants
- ( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \
- rm -f rc-local.service && \
- $(LN_S) $(systemunitdir)/rc-local.service rc-local.service )
- ( cd $(DESTDIR)$(systemunitdir)/final.target.wants && \
- rm -f halt-local.service && \
- $(LN_S) $(systemunitdir)/halt-local.service halt-local.service )
+ $(DESTDIR)$(systemunitdir)/halt.target.wants
( cd $(DESTDIR)$(systemunitdir)/sysinit.target.wants && \
rm -f plymouth-start.service plymouth-read-write.service && \
$(LN_S) ../plymouth-start.service plymouth-start.service && \
@@ -1304,6 +1301,16 @@ if TARGET_FEDORA
( cd $(DESTDIR)$(systemunitdir)/halt.target.wants && \
rm -f plymouth-halt.service && \
$(LN_S) ../plymouth-halt.service plymouth-halt.service )
+endif
+
+if TARGET_FEDORA
+ $(MKDIR_P) -m 0755 $(DESTDIR)$(systemunitdir)/final.target.wants
+ ( cd $(DESTDIR)$(systemunitdir)/multi-user.target.wants && \
+ rm -f rc-local.service && \
+ $(LN_S) $(systemunitdir)/rc-local.service rc-local.service )
+ ( cd $(DESTDIR)$(systemunitdir)/final.target.wants && \
+ rm -f halt-local.service && \
+ $(LN_S) $(systemunitdir)/halt-local.service halt-local.service )
( cd $(DESTDIR)$(systemunitdir) && \
rm -f display-manager.service && \
$(LN_S) prefdm.service display-manager.service )
--- a/configure.ac
+++ b/configure.ac
@@ -321,11 +321,13 @@ case $with_distro in
SPECIAL_SYSLOG_SERVICE=rsyslog.service
AC_DEFINE(TARGET_FEDORA, [], [Target is Fedora/RHEL])
M4_DISTRO_FLAG=-DTARGET_FEDORA=1
+ have_plymouth=true
;;
suse)
SYSTEM_SYSVRCND_PATH=/etc/init.d
AC_DEFINE(TARGET_SUSE, [], [Target is openSUSE/SLE])
M4_DISTRO_FLAG=-DTARGET_SUSE=1
+ have_plymouth=true
;;
debian)
SYSTEM_SYSVRCND_PATH=/etc
@@ -421,6 +423,7 @@ AM_CONDITIONAL(TARGET_ARCH, test x"$with
AM_CONDITIONAL(TARGET_GENTOO, test x"$with_distro" = xgentoo)
AM_CONDITIONAL(TARGET_SLACKWARE, test x"$with_distro" = xslackware)
AM_CONDITIONAL(TARGET_FRUGALWARE, test x"$with_distro" = xfrugalware)
+AM_CONDITIONAL(HAVE_PLYMOUTH, test -n "$have_plymouth")
AC_DEFINE_UNQUOTED(SPECIAL_SYSLOG_SERVICE, ["$SPECIAL_SYSLOG_SERVICE"], [Syslog service name])
--- a/units/fedora/plymouth-start.service
+++ b/units/fedora/plymouth-start.service
@@ -13,6 +13,9 @@ After=systemd-vconsole-setup.service ude
Before=systemd-ask-password-plymouth.service
[Service]
-ExecStart=/sbin/plymouthd --mode=boot
-ExecStartPost=-/bin/plymouth --show-splash
+ExecStart=/bin/true
+
+# We'd need these if we didn't start plymouth in the initramfs
+#ExecStart=/sbin/plymouthd --mode=boot
+#ExecStartPost=-/bin/plymouth --show-splash
Type=forking