[packages/pathfinder] - added pathfinderd user, group, init script and config file (based on Fedora, not tested)

qboosh qboosh at pld-linux.org
Thu Feb 5 15:45:09 CET 2015


commit e22fa05db74208e2e6b719d95af065a7743afbd7
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Thu Feb 5 15:47:24 2015 +0100

    - added pathfinderd user, group, init script and config file (based on Fedora, not tested)

 pathfinder.spec       |  53 +++++++++++++++++++++++++
 pathfinderd.ini       |   2 +
 pathfinderd.init      | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++
 pathfinderd.sysconfig |   2 +
 4 files changed, 163 insertions(+)
---
diff --git a/pathfinder.spec b/pathfinder.spec
index 73dcf5c..e6045a1 100644
--- a/pathfinder.spec
+++ b/pathfinder.spec
@@ -12,6 +12,9 @@ Group:		Libraries
 #Source0Download: http://code.google.com/p/pathfinder-pki/downloads/list
 Source0:	http://pathfinder-pki.googlecode.com/files/%{name}-%{version}-Source.tar.gz
 # Source0-md5:	8307b2297c1efa6c526ce4b656a2e4aa
+Source1:	pathfinderd.init
+Source2:	pathfinderd.sysconfig
+Source3:	pathfinderd.ini
 Patch0:		%{name}-c++.patch
 Patch1:		%{name}-link.patch
 Patch2:		%{name}-libdir.patch
@@ -23,7 +26,18 @@ BuildRequires:	nss-devel
 BuildRequires:	openldap-devel
 BuildRequires:	openssl-devel
 BuildRequires:	pkgconfig
+BuildRequires:	rpmbuild(macros) >= 1.228
 BuildRequires:	wvstreams-devel
+Requires(pre):	/bin/id
+Requires(pre):	/usr/bin/getgid
+Requires(pre):	/usr/sbin/groupadd
+Requires(pre):	/usr/sbin/useradd
+Requires(post,preun):	/sbin/chkconfig
+Requires(postun):	/usr/sbin/groupdel
+Requires(postun):	/usr/sbin/userdel
+Requires:	rc-scripts
+Provides:	group(pathfinderd)
+Provides:	user(pathfinderd)
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define		specflags	-fpermissive
@@ -175,9 +189,41 @@ rm -rf $RPM_BUILD_ROOT
 %{__make} install \
 	DESTDIR=$RPM_BUILD_ROOT
 
+install -d $RPM_BUILD_ROOT/etc/pki/pathfinderd/trusted-certs
+
+install -D %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/pathfinderd
+install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/pathfinderd
+install -D %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/pathfinderd.ini
+
+install -d $RPM_BUILD_ROOT%{systemdtmpfilesdir}
+cat >$RPM_BUILD_ROOT%{systemdtmpfilesdir}/pathfinderd.conf <<EOF
+D /var/run/pathfinderd 0755 pathfinderd pathfinderd -
+EOF
+install -d $RPM_BUILD_ROOT/var/run/pathfinderd
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%pre
+%groupadd -g 314 pathfinderd
+%useradd -u 314 -d /var/run/pathfinderd -g pathfinderd -c "PathFinder User" -s /bin/false pathfinderd 
+
+%post
+/sbin/chkconfig --add pathfinderd
+%service pathfinderd restart
+
+%preun
+if [ "$1" = "0" ]; then
+	%service -q pathfinderd stop
+	/sbin/chkconfig --del pathfinderd
+fi
+
+%postun
+if [ "$1" = "0" ]; then
+	%userremove pathfinderd
+	%groupremove pathfinderd
+fi
+
 %post	nss -p /sbin/ldconfig
 %postun	nss -p /sbin/ldconfig
 
@@ -191,6 +237,13 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/pathverify
 %attr(755,root,root) %{_sbindir}/pathfinderd
 /etc/dbus-1/system.d/pathfinderd.conf
+%dir /etc/pki/pathfinderd
+%dir /etc/pki/pathfinderd/trusted-certs
+%attr(754,root,root) /etc/rc.d/init.d/pathfinderd
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/pathfinderd
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pathfinderd.ini
+%{systemdtmpfilesdir}/pathfinderd.conf
+%attr(755,pathfinderd,pathfinderd) %dir /var/run/pathfinderd
 %{_mandir}/man8/pathfinderd.8*
 
 %files devel
diff --git a/pathfinderd.ini b/pathfinderd.ini
new file mode 100644
index 0000000..ea97aa6
--- /dev/null
+++ b/pathfinderd.ini
@@ -0,0 +1,2 @@
+[Trusted directories]
+Extra certs = /etc/pki/pathfinderd/trusted-certs
diff --git a/pathfinderd.init b/pathfinderd.init
new file mode 100644
index 0000000..6740b17
--- /dev/null
+++ b/pathfinderd.init
@@ -0,0 +1,106 @@
+#!/bin/sh
+#
+# pathfinderd	X.509 Path Discovery and Validation Server
+#
+# chkconfig:	345 80 30
+#
+# description:	Pathfinder is designed to provide a mechanism for any program \
+#		to perform RFC3280-compliant path validation of X.509 \
+#		certificates, even when some of the intermediate certificates \
+#		are not present on the local machine. It will automatically \
+#		download any such certificates (and their CRLs) from the \
+#		Internet as needed using the AIA and CRL distribution point \
+#		extensions of the certificate it is processing.
+#
+# processname:	pathfinderd
+# config:	/etc/pathfinderd.ini
+#
+
+# 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 "pathfinderd"
+		exit 1
+	fi
+else
+	exit 0
+fi
+
+# Set defaults
+RUNUSER="pathfinderd"
+RUNFLAGS="-c ini:/etc/pathfinderd.ini -d"
+
+# Get service config - may override defaults
+. /etc/sysconfig/pathfinderd
+
+start() {
+	# Check if the service is already running?
+	if [ -f /var/lock/subsys/pathfinderd ]; then
+		msg_already_running "pathfinderd"
+		return
+	fi
+
+	msg_starting "pathfinderd"
+	daemon --user $RUNUSER /usr/sbin/pathfinderd $RUNFLAGS
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/pathfinderd
+}
+
+stop() {
+	if [ ! -f /var/lock/subsys/pathfinderd ]; then
+		msg_not_running "pathfinderd"
+		return
+	fi
+
+	msg_stopping "pathfinderd"
+	killproc pathfinderd
+	rm -f /var/lock/subsys/pathfinderd
+}
+
+condrestart() {
+	if [ ! -f /var/lock/subsys/pathfinderd ]; then
+		msg_not_running "pathfinderd"
+		RETVAL=$1
+		return
+	fi
+
+	stop
+	start
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  restart)
+	stop
+	start
+	;;
+  try-restart)
+	condrestart 0
+	;;
+	;;
+  force-reload)
+	condrestart 7
+	;;
+  status)
+	status pathfinderd
+	RETVAL=$?
+	;;
+  *)
+	msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
+	exit 3
+esac
+
+exit $RETVAL
diff --git a/pathfinderd.sysconfig b/pathfinderd.sysconfig
new file mode 100644
index 0000000..2de2270
--- /dev/null
+++ b/pathfinderd.sysconfig
@@ -0,0 +1,2 @@
+RUNUSER="pathfinderd"
+RUNFLAGS="-c ini:/etc/pathfinderd.ini -d"
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/pathfinder.git/commitdiff/e22fa05db74208e2e6b719d95af065a7743afbd7



More information about the pld-cvs-commit mailing list