mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Violette Roche-Montane
26.04.2013 709f2e00aace14c87d65a8a382337eff43b81186
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#
# 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: Applications/Network
# 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 ]]
# Remove 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
 
%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 [ isInstanceConfigured ]
    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
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 [ isInstanceConfigured ]
    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"
# Only if the instance has been configured
    if [ isInstanceConfigured ]
    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
 
# -------------------------
# Returns true/0 if the instance has been configured.
isInstanceConfigured() {
    if [ -f "%{_prefix}"/config/buildinfo ] && [ "$(ls -A "%{_prefix}"/config/archived-configs)" ]
    then
        return 0
    else
        return 1
    fi
}
# =========================
# Files section
# =========================
%files -f "%{_sourcedir}"/files
%defattr(-,root,root)
# [[ docsList ]]
 
# =========================
# Changelog
# =========================
%changelog
* 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.