#
|
# 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
|
#
|
%define _topdir [[ topDir ]]
|
%define _arch noarch
|
%define _prefix [[ prefix ]]
|
%define _pre [[ pre ]]
|
%define __os_install_post %{nil}
|
|
# =========================
|
# Header
|
# =========================
|
# Short Description
|
Summary: [[ shortName ]]
|
# Application Name
|
Name: [[ pkgName ]]
|
# Application Version
|
Version: [[ version ]]
|
# Packaging Revision
|
Release: [[ release ]]
|
# Software Licenced Under
|
License: CDDL
|
# RPM Group
|
Group: Productivity/Networking/LDAP/Servers
|
# Link to Application web site
|
URL: [[ referenceURL ]]
|
# Distributing Organisation
|
Vendor: ForgeRock AS
|
# Build Architecture
|
BuildArch: noarch
|
|
Requires: jre >= 1.6
|
|
# Long Description
|
%Description
|
OpenDJ LDAP Server
|
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.
|
|
|
# =========================
|
# Prepare, Build, Install
|
# =========================
|
# %prep
|
|
# %build
|
|
%install
|
mkdir -p "${RPM_BUILD_ROOT}%{_prefix}"
|
cd "${RPM_BUILD_ROOT}%{_prefix}"
|
# [[ installRpmFiles ]]
|
#Moves the doc files to doc folder
|
mkdir -p "%{buildroot}%{_defaultdocdir}/%{name}-%{version}"
|
/bin/grep -v '^#' "${RPM_SOURCE_DIR}/docFiles" | while read docFiles
|
do
|
mv "$RPM_BUILD_ROOT"%{_prefix}$docFiles "$RPM_BUILD_ROOT"%{_defaultdocdir}/%{name}-%{version}/
|
done
|
|
# Removes the excluded files. They shouldn't be a part of this package.
|
/bin/grep -v '^#' "${RPM_SOURCE_DIR}/excludedFiles" | while read excludedFiles
|
do
|
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}"
|
|
# =========================
|
# Pre & Post Install
|
# =========================
|
# If the first argument to %pre is 1, the RPM operation is an initial
|
# installation. If the argument to %pre is 2, the operation is an upgrade
|
# from an existing version to a new one.
|
# Similarly, the arguments to a %post are 1 and 2 for a new installation
|
# and upgrade, respectively. (%pre and %post aren't executed during
|
# an uninstallation.)
|
|
# -------------------------
|
# Pre Install
|
%pre
|
if [ "$1" == "1" ]; then
|
echo "Pre Install - initial install"
|
else if [ "$1" == "2" ] ; then
|
# Only if the instance has been configured
|
if [ -e "%{_prefix}"/config/buildinfo ] && [ "$(ls -A "%{_prefix}"/config/archived-configs)" ]
|
then
|
echo "Pre Install - upgrade install"
|
# If the server is running before upgrade, creates a file flag
|
if [ -f "%{_prefix}"/logs/server.pid ]
|
then
|
touch "%{_prefix}"/logs/status
|
fi
|
"%{_prefix}"/bin/./stop-ds
|
fi
|
fi
|
fi
|
|
# -------------------------
|
# 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
|
echo "Post Install - upgrade install"
|
# Only if the instance has been configured
|
if [ -e "%{_prefix}"/config/buildinfo ] && [ "$(ls -A "%{_prefix}"/config/archived-configs)" ]
|
then
|
"%{_prefix}"/./upgrade -n --acceptLicense
|
# Upgrade ok
|
if [ "$?" == "0" ] ; then
|
# Checks the server status flag for restart.
|
if [ -f "%{_prefix}"/logs/status ]
|
then
|
echo ""
|
echo "Restarting server..."
|
"%{_prefix}"/./bin/start-ds
|
echo ""
|
rm -f "%{_prefix}"/logs/status
|
fi
|
fi
|
# Upgrade fails, needs user interaction (eg. manual mode)
|
if [ "$?" == "2" ] ; then
|
exit "0"
|
fi
|
else
|
echo "Instance is not configured. Upgrade aborted."
|
exit -1
|
fi
|
fi
|
fi
|
|
# =========================
|
# Pre & Post Uninstall
|
# =========================
|
# If the first argument to %preun and %postun is 0, the action is
|
# uninstallation.
|
# If the first argument to %preun and %postun is 1, the action is an upgrade.
|
# -------------------------
|
# Pre Uninstall
|
%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
|
"%{_prefix}"/bin/./stop-ds
|
fi
|
else if [ "$1" == "1" ] ; then
|
echo "Pre Uninstall - upgrade uninstall"
|
fi
|
fi
|
# -------------------------
|
# Post Uninstall
|
%postun
|
if [ "$1" == "0" ] ; then
|
echo "Post Uninstall - uninstall"
|
echo "OpenDJ successfully removed."
|
else if [ "$1" == "1" ] ; then
|
echo "Post Uninstall - upgrade uninstall"
|
fi
|
fi
|
|
# =========================
|
# Files section
|
# =========================
|
%files -f "%{_sourcedir}"/files
|
%defattr(-,root,root)
|
%{_defaultdocdir}/%{name}-%{version}/
|
|
# =========================
|
# 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.
|
|
* Thu Jul 18 2013 ForgeRock
|
- Fixed the sections' order and added a new "clean" section.
|
- Added '%doc' section.
|
- Added '%changelog' at the end of the file.
|
- Added license to header's files.
|