SHA256
1
0
forked from pool/systemd

Accepting request 60104 from home:jeff_mahoney:betterbooting

OBS-URL: https://build.opensuse.org/request/show/60104
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=110
This commit is contained in:
Kay Sievers 2011-02-07 17:03:14 +00:00 committed by Git OBS Bridge
parent 5b6cb64809
commit 43ccf3e06c
3 changed files with 148 additions and 6 deletions

107
systemd-use-plymouth Normal file
View File

@ -0,0 +1,107 @@
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

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Fri Feb 4 21:24:11 CET 2011 - jeffm@suse.de
- Split plymouth support into systemd-plymouth package.
-------------------------------------------------------------------
Sat Jan 22 14:42:34 CET 2011 - kay.sievers@novell.com
@ -84,6 +89,11 @@ Sat Jan 8 19:25:40 CET 2011 - kay.sievers@novell.com
- util: invoke sync() implicitly on freeze()
- tmpfiles: do no follow symlinks when cleaning up dirs
-------------------------------------------------------------------
Tue Dec 28 22:08:28 CET 2010 - jeffm@suse.de
- Add support for building plymouth support with openSUSE
-------------------------------------------------------------------
Mon Dec 27 22:15:41 CET 2010 - kay.sievers@novell.com

View File

@ -21,7 +21,7 @@
Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 17
Release: 1
Release: 2
License: GPLv2+
Group: System/Base
Summary: A System and Session Manager
@ -42,6 +42,7 @@ Requires: util-linux >= 2.18.91
Conflicts: mkinitrd < 2.6.0-5
Source0: http://www.freedesktop.org/software/systemd/releases/%{name}-%{version}.tar.bz2
Source1: systemd-rpmlintrc
Patch1: systemd-use-plymouth
Patch42: 0001-Add-bootsplash-handling-for-password-dialogs.patch
%description
@ -69,17 +70,29 @@ Group: System/Base
Summary: System V init tools
Requires: %{name} = %{version}-%{release}
Provides: sbin_init
Conflicts: sysvinit
Obsoletes: sysvinit
Conflicts: upstart
%description sysvinit
Drop-in replacement of System V init tools.
%package plymouth
License: GPLv2+
Group: System/Base
Summary: Plymouth support for systemd
Requires: %{name} = %{version}-%{release}
Requires: plymouth
%description plymouth
Plymouth integration for systemd
%prep
%setup -q
%patch42 -p1
%patch1 -p1
%build
autoreconf -fiv
# prevent pre-generated and distributed files from re-building
find . -name "*.[1-8]" -exec touch '{}' \;
touch src/systemadm.c
@ -116,6 +129,8 @@ ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/localfs.service
ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto-early.service
ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/crypto.service
(cd $RPM_BUILD_ROOT && find . -name '*plymouth*') > files.plymouth
%post
/bin/systemctl daemon-reexec >/dev/null 2>&1 || :
@ -177,6 +192,10 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
%{_datadir}/systemd
%{_datadir}/pkgconfig/systemd.pc
# Packaged in plymouth subpackage
%exclude /lib/systemd/system/plymouth-*.service
%exclude /lib/systemd/system/*.wants/plymouth-*.service
%exclude /lib/systemd/system/systemd-ask-password-plymouth.*
# Packaged in gtk subpackage
%exclude %{_mandir}/man1/systemadm.1*
# Packaged in sysvinit subpackage
@ -207,6 +226,12 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/systemd-gnome-ask-password-agent
%{_mandir}/man1/systemadm.1*
%files plymouth
%defattr(-,root,root,-)
/lib/systemd/system/plymouth-*.service
/lib/systemd/system/*.wants/plymouth-*.service
/lib/systemd/system/systemd-ask-password-plymouth.*
%files sysvinit
%defattr(-,root,root,-)
/sbin/init