[packages/elogind/initscript: 1/3] replace dbus activation with initscript

glen glen at pld-linux.org
Tue Aug 8 17:35:52 CEST 2017


commit 18b31da413bf424fd5ce4ca1acc04cee0af9dd06
Author: Elan Ruusamäe <glen at pld-linux.org>
Date:   Tue Aug 8 18:19:33 2017 +0300

    replace dbus activation with initscript
    
    https://github.com/elogind/elogind/issues/25

 elogind-service.patch |  15 --------
 elogind.init          | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++
 elogind.spec          |  22 +++++++++--
 3 files changed, 119 insertions(+), 19 deletions(-)
---
diff --git a/elogind.spec b/elogind.spec
index 09e69ef..3007fdd 100644
--- a/elogind.spec
+++ b/elogind.spec
@@ -2,13 +2,13 @@ Summary:	Elogind User, Seat and Session Manager
 Summary(pl.UTF-8):	Elogind - zarządca użytkowników, stanowisk i sesji
 Name:		elogind
 Version:	234.2
-Release:	1
+Release:	1.1
 License:	LGPL v2.1+
 Group:		Daemons
 # Source0Download: https://github.com/elogind/elogind/releases
 Source0:	https://github.com/elogind/elogind/archive/v%{version}/%{name}-%{version}.tar.gz
 # Source0-md5:	d3c52e4af85dddeb3d323a18c341164f
-Patch0:		%{name}-service.patch
+Source1:	%{name}.init
 URL:		https://github.com/elogind/elogind
 BuildRequires:	acl-devel
 BuildRequires:	autoconf >= 2.64
@@ -35,9 +35,11 @@ BuildRequires:	pam-devel >= 1:1.1.2
 BuildRequires:	pkgconfig
 BuildRequires:	rpmbuild(macros) >= 1.719
 BuildRequires:	udev-devel
+Requires(post,preun):	/sbin/chkconfig
 Requires:	%{name}-libs = %{version}-%{release}
 Requires:	dbus >= 1.4.0
 Requires:	pam >= 1:1.3.0-3
+Requires:	rc-scripts
 Requires:	udev-core >= 1:185
 Conflicts:	systemd
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -121,7 +123,6 @@ Pliki nagłówkowe biblioteki elogind.
 
 %prep
 %setup -q
-%patch0 -p1
 
 %build
 #install -d docs
@@ -145,10 +146,12 @@ Pliki nagłówkowe biblioteki elogind.
 
 %install
 rm -rf $RPM_BUILD_ROOT
-
 %{__make} install \
 	DESTDIR=$RPM_BUILD_ROOT
 
+install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
+install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libelogind.la \
 	$RPM_BUILD_ROOT/%{_lib}/security/*.la
 
@@ -172,6 +175,16 @@ rm -rf $RPM_BUILD_ROOT
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%post
+/sbin/chkconfig --add %{name}
+%service %{name} restart
+
+%preun
+if [ "$1" = "0" ]; then
+	%service -q %{name} stop
+	/sbin/chkconfig --del %{name}
+fi
+
 %post	libs -p /sbin/ldconfig
 %postun	libs -p /sbin/ldconfig
 
@@ -184,6 +197,7 @@ rm -rf $RPM_BUILD_ROOT
 /lib/udev/rules.d/70-uaccess.rules
 /lib/udev/rules.d/71-seat.rules
 /lib/udev/rules.d/73-seat-late.rules
+%attr(754,root,root) /etc/rc.d/init.d/%{name}
 %attr(755,root,root) /%{_lib}/security/pam_elogind.so
 %attr(755,root,root) %{_bindir}/loginctl
 %attr(755,root,root) %{_bindir}/elogind-inhibit
diff --git a/elogind-service.patch b/elogind-service.patch
deleted file mode 100644
index 8f5e2a2..0000000
--- a/elogind-service.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-
-start the daemon via dbus activation
-
-https://github.com/elogind/elogind/issues/25
-
---- elogind-234.2/src/login/org.freedesktop.login1.service~	2017-07-28 10:38:57.000000000 +0300
-+++ elogind-234.2/src/login/org.freedesktop.login1.service	2017-08-06 10:31:26.815479309 +0300
-@@ -7,6 +7,6 @@
- 
- [D-BUS Service]
- Name=org.freedesktop.login1
--Exec=/bin/false
-+Exec=@elogind@
- User=root
- SystemdService=dbus-org.freedesktop.login1.service
diff --git a/elogind.init b/elogind.init
new file mode 100755
index 0000000..25ccbfb
--- /dev/null
+++ b/elogind.init
@@ -0,0 +1,101 @@
+#!/bin/sh
+#
+# elogind	elogind short service description
+#
+# chkconfig:	345 10 90
+#
+# description:	elogind long service description
+#
+# processname:	elogind
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+	if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+		msg_network_down "elogind"
+		exit 1
+	fi
+else
+	exit 0
+fi
+
+# Get service config - may override defaults
+[ -f /etc/sysconfig/elogind ] && . /etc/sysconfig/elogind
+
+pidfile="/var/run/elogind.pid"
+
+start() {
+	# Check if the service is already running?
+	if [ -f /var/lock/subsys/elogind ]; then
+		msg_already_running "elogind"
+		return
+	fi
+
+	msg_starting "elogind"
+	daemon /usr/lib64/elogind/elogind
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/elogind
+}
+
+stop() {
+	if [ ! -f /var/lock/subsys/elogind ]; then
+		msg_not_running "elogind"
+		return
+	fi
+
+	# Stop daemons.
+	msg_stopping "elogind"
+	killproc --pidfile $pidfile elogind -TERM
+
+	rm -f /var/lock/subsys/elogind
+}
+
+condrestart() {
+	if [ ! -f /var/lock/subsys/elogind ]; then
+		msg_not_running "elogind"
+		RETVAL=$1
+		return
+	fi
+
+	stop
+	start
+}
+
+restart() {
+	stop
+	start
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  restart)
+	restart
+	;;
+  try-restart)
+	condrestart 0
+	;;
+  force-reload)
+	condrestart 7
+	;;
+  status)
+	status --pidfile $pidfile elogind
+	RETVAL=$?
+	;;
+  *)
+	msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"
+	exit 3
+esac
+
+exit $RETVAL
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/elogind.git/commitdiff/a2d9de2c224daa81ed903530c1a9b7551d6ca11a



More information about the pld-cvs-commit mailing list