From 5d0fda83a87ba827433b92e4863580325cc6698d Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Tue, 06 Aug 2013 15:23:03 +0000
Subject: [PATCH] CR-2123 OPENDJ-1068 create resources for rpm packaging - added init.d script to RPM package.
---
opends/resource/rpm/files | 1
opends/build.xml | 2
opends/resource/rpm/specFile | 16 +++++
opends/resource/rpm/opendj | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 180 insertions(+), 0 deletions(-)
diff --git a/opends/build.xml b/opends/build.xml
index 56fb0a5..cb78d24 100644
--- a/opends/build.xml
+++ b/opends/build.xml
@@ -1465,6 +1465,8 @@
<copy file="resource/rpm/excludedFiles" tofile="${build.dir}/rpm/SOURCES/excludedFiles" />
<replace file="${build.dir}/rpm/SOURCES/excludedFiles" token="# [[ excludedListFiles ]]" value="${excludedRPMFiles}" />
+
+ <copy file="resource/rpm/opendj" tofile="${build.dir}/rpm/SOURCES/opendj" />
<rpm specfile="specFile"
topdir="${build.dir}/rpm"
diff --git a/opends/resource/rpm/files b/opends/resource/rpm/files
index 99aa84a..3fcb7d0 100644
--- a/opends/resource/rpm/files
+++ b/opends/resource/rpm/files
@@ -23,4 +23,5 @@
#
# Copyright 2013 ForgeRock AS
#
+/etc/init.d/opendj
# [[ listFiles ]]
\ No newline at end of file
diff --git a/opends/resource/rpm/opendj b/opends/resource/rpm/opendj
new file mode 100755
index 0000000..aedb321
--- /dev/null
+++ b/opends/resource/rpm/opendj
@@ -0,0 +1,161 @@
+#! /bin/sh
+#
+# OPENDJ SERVICE SCRIPT
+#
+
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opendj3/legal-notices/CDDLv1_0.txt
+# or http://forgerock.org/license/CDDLv1.0.html.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opendj3/legal-notices/CDDLv1_0.txt. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 2013 ForgeRock AS
+#
+
+
+# chkconfig: 2345 80 05
+# description: Starts and stops opendj LDAPv3 service.
+#
+### BEGIN INIT INFO
+# Provides: opendj
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: This is the opendj daemon
+# Description: OpenDJ is an LDAPv3 compliant directory service, developed for the Java
+# platform, providing a high performance, highly available and secure store
+# for the identities managed by enterprises. Its easy installation process,
+# combined with the power of the Java platform makes OpenDJ one of the
+# simplest and fastest directory servers to deploy and manage.
+### END INIT INFO
+
+# Set up source function library depending on the distribution
+if [ -f /etc/redhat-release ]
+then
+ # Redhat
+ . /etc/init.d/functions
+elif [ -f /etc/SuSE-release ]
+then
+ # SuSE
+ . /etc/rc.status
+else
+ # Other dist.
+ if [ -f /etc/init.d/functions.sh ]
+ then
+ . /etc/init.d/functions.sh
+ fi
+fi
+
+
+# Sets the script vars
+INSTALL_ROOT="/opt/opendj/"
+export INSTALL_ROOT
+DAEMON=opendj
+# Pid file is a symlink to /opt/opendj/log/server.pid
+PIDFILE=/var/run/opendj.pid
+RETVAL=0
+
+# If the daemon is not there, then exit / LSB return code.
+test -x "$INSTALL_ROOT/bin/start-ds" || exit 5
+
+#Starts the server and creates pid file.
+start() {
+ echo -n $"Starting $DAEMON: "
+ # Server is running
+ if [ -e $PIDFILE ]
+ then
+ echo "> Already running."
+ return 0
+ else
+ "$INSTALL_ROOT"/bin/start-ds --quiet
+ RETVAL=$?
+ if [ $RETVAL = 0 ]
+ then
+ echo "> SUCCESS."
+ else
+ echo "> FAILURE."
+ fi
+ echo ""
+ return $RETVAL
+ fi
+}
+
+#Stops the server and removes pid file.
+stop() {
+ echo -n $"Stopping $DAEMON: "
+ # Server is running
+ if [ -e $PIDFILE ]
+ then
+ "$INSTALL_ROOT"/bin/stop-ds --quiet
+ RETVAL=$?
+ if [ $RETVAL = 0 ]
+ then
+ echo "> SUCCESS."
+ else
+ echo "> FAILURE."
+ fi
+ echo ""
+ return $RETVAL
+ else
+ echo "> Already stopped."
+ echo ""
+ return 3
+ fi
+}
+
+# Displays the service status
+status() {
+ echo -n $"$DAEMON status: "
+ if [ -e $PIDFILE ]
+ then
+ echo "> Running."
+ return 0
+ else
+ echo "> Stopped."
+ return 3
+ fi
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ sleep 5
+ start
+ ;;
+ force-reload)
+ # Not implemented.
+ ;;
+ status)
+ status
+ ;;
+ *)
+ echo $"Usage: /etc/init.d/$DAEMON {start|restart|stop|force-reload|status}"
+ exit 1
+ ;;
+esac
+
+exit $RETVAL
diff --git a/opends/resource/rpm/specFile b/opends/resource/rpm/specFile
index f5465ec..8702a13 100644
--- a/opends/resource/rpm/specFile
+++ b/opends/resource/rpm/specFile
@@ -87,6 +87,10 @@
rm -r "${RPM_BUILD_ROOT}"%{_prefix}$excludedFiles
done
+# Moves the init.d script.
+mkdir -p "$RPM_BUILD_ROOT"/etc/init.d/
+install -m 755 "$RPM_SOURCE_DIR"/opendj "$RPM_BUILD_ROOT"/etc/init.d/opendj
+
%clean
[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf "${RPM_BUILD_ROOT}"
@@ -123,6 +127,10 @@
# -------------------------
# Post Install
%post
+# Registers the service
+/sbin/chkconfig --add opendj
+# Symlink to process ID
+ln -s /opt/opendj/logs/server.pid /var/run/opendj.pid
if [ "$1" == "1" ] ; then
echo "Post Install - initial install"
else if [ "$1" == "2" ] ; then
@@ -165,6 +173,11 @@
%preun
if [ "$1" == "0" ] ; then
echo "Pre Uninstall - uninstall"
+# Stops the service and delete it.
+ /etc/init.d/opendj stop >/dev/null 2>&1
+ /sbin/chkconfig --del opendj
+ # Unlink the symlink to the process ID.
+ unlink /var/run/opendj.pid
# Only if the instance has been configured
if [ -e "%{_prefix}"/config/buildinfo ] && [ "$(ls -A "%{_prefix}"/config/archived-configs)" ]
then
@@ -196,6 +209,9 @@
# Changelog
# =========================
%changelog
+* Tue Aug 6 2013 ForgeRock
+- Added init.d service script.
+
* Wed Jul 31 2013 ForgeRock
- Fixed the doc's section.
- Target no longer fails when build path contains spaces.
--
Gitblit v1.10.0