Skip to content

Commit 1c05a61

Browse files
committed
move OpenGrok data to /var/share
fixes #817
1 parent 1ccb2b6 commit 1c05a61

File tree

3 files changed

+152
-36
lines changed

3 files changed

+152
-36
lines changed

platform/solaris/ips/create.sh

Lines changed: 69 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ fi
6464
# 0.12-rc<i> ~ 0.12.0.0.<i>
6565
# ...
6666
#
67-
# Note that the release candidate must follow immediately after the basic version number (0.12)
67+
# Note that the release candidate must follow immediately after
68+
# the basic version number (0.12)
6869
#
6970
#
7071
# 0.12.1 ~ 0.12.1.0.0
@@ -149,8 +150,8 @@ fi
149150
cleanup()
150151
{
151152
rm -rf "$PKG_REPO_NAME"
152-
if [[ -n $manifest ]]; then
153-
rm -f "$manifest"
153+
if [[ -n $pkg_manifest ]]; then
154+
rm -f "$pkg_manifest"
154155
fi
155156
}
156157

@@ -193,33 +194,68 @@ do
193194
PKG pkgsend add dir mode=0755 owner=root group=bin path=${dir}
194195
done
195196

196-
for dir in /var/opengrok /var/opengrok/data /var/opengrok/etc \
197-
/var/opengrok/log /var/opengrok/src
197+
PKG pkgsend add dir mode=0755 owner=webservd group=webservd path=/var/opengrok
198+
199+
for dirname in data etc log src
198200
do
199-
PKG pkgsend add dir mode=0755 owner=webservd group=webservd path=${dir}
201+
#
202+
# In future Solaris 11.x releases the refresh of filesystem/minimal
203+
# will deal with data migration so the SMF service below will become
204+
# unnecessary.
205+
#
206+
PKG pkgsend add dir mode=0755 owner=webservd group=webservd \
207+
path=/var/.migrate/opengrok/${dirname} \
208+
refresh_fmri=svc:/system/filesystem/minimal:default \
209+
reboot-needed=true salvage-from=/var/opengrok/${dirname}
210+
PKG pkgsend add link path=/var/opengrok/${dirname} \
211+
target=../../var/share/opengrok/${dirname}
200212
done
201213

202-
PKG pkgsend add link path=/usr/opengrok/lib/lib target=../lib
203-
204-
PKG pkgsend add file platform/solaris/smf/opengrok.xml mode=0444 owner=root group=sys path=/var/svc/manifest/application/opengrok.xml restart_fmri=svc:/system/manifest-import:default
205-
PKG pkgsend add file platform/solaris/smf/svc-opengrok mode=0555 owner=root group=bin path=/lib/svc/method/svc-opengrok
206-
PKG pkgsend add file platform/solaris/smf/ogindexd mode=0555 owner=root group=bin path=/usr/opengrok/lib/ogindexd
207-
208-
PKG pkgsend add file OpenGrok mode=0555 owner=root group=bin path=/usr/opengrok/bin/OpenGrok
209-
PKG pkgsend add file tools/Groups mode=0555 owner=root group=bin path=/usr/opengrok/bin/Groups
210-
PKG pkgsend add file tools/ConfigMerge mode=0555 owner=root group=bin path=/usr/opengrok/bin/ConfigMerge
211-
PKG pkgsend add file tools/Messages mode=0555 owner=root group=bin path=/usr/opengrok/bin/Messages
214+
# Generate SMF service that will migrate /var/opengrok data to /var/share
215+
PKG pkgsend add file platform/solaris/smf/opengrok-migrate-shared.xml \
216+
mode=0444 owner=root group=sys \
217+
path=/var/svc/manifest/application/opengrok-migrate-shared.xml \
218+
restart_fmri=svc:/system/manifest-import:default
219+
PKG pkgsend add file platform/solaris/smf/opengrok-share-files.sh \
220+
mode=0555 owner=root group=bin path=/lib/svc/method/opengrok-share-files.sh
212221

213-
PKG pkgsend add file dist/opengrok.jar mode=0444 owner=root group=bin path=/usr/opengrok/lib/opengrok.jar
214-
215-
PKG pkgsend add file logging.properties mode=0444 owner=root group=sys path=/usr/opengrok/doc/logging.properties
216-
PKG pkgsend add file README.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/README.txt
217-
PKG pkgsend add file CHANGES.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/CHANGES.txt
218-
PKG pkgsend add file LICENSE.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/LICENSE.txt
219-
PKG pkgsend add file NOTICE.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/NOTICE.txt
220-
PKG pkgsend add file doc/EXAMPLE.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/EXAMPLE.txt
221-
PKG pkgsend add file doc/ctags.config mode=0444 owner=root group=sys path=/usr/opengrok/doc/ctags.config
222+
PKG pkgsend add link path=/usr/opengrok/lib/lib target=../lib
222223

224+
PKG pkgsend add file platform/solaris/smf/opengrok.xml \
225+
mode=0444 owner=root group=sys \
226+
path=/var/svc/manifest/application/opengrok.xml \
227+
restart_fmri=svc:/system/manifest-import:default
228+
PKG pkgsend add file platform/solaris/smf/svc-opengrok \
229+
mode=0555 owner=root group=bin path=/lib/svc/method/svc-opengrok
230+
PKG pkgsend add file platform/solaris/smf/ogindexd \
231+
mode=0555 owner=root group=bin path=/usr/opengrok/lib/ogindexd
232+
233+
PKG pkgsend add file OpenGrok \
234+
mode=0555 owner=root group=bin path=/usr/opengrok/bin/OpenGrok
235+
PKG pkgsend add file tools/Groups \
236+
mode=0555 owner=root group=bin path=/usr/opengrok/bin/Groups
237+
PKG pkgsend add file tools/ConfigMerge \
238+
mode=0555 owner=root group=bin path=/usr/opengrok/bin/ConfigMerge
239+
PKG pkgsend add file tools/Messages \
240+
mode=0555 owner=root group=bin path=/usr/opengrok/bin/Messages
241+
242+
PKG pkgsend add file dist/opengrok.jar \
243+
mode=0444 owner=root group=bin path=/usr/opengrok/lib/opengrok.jar
244+
245+
PKG pkgsend add file logging.properties \
246+
mode=0444 owner=root group=sys path=/usr/opengrok/doc/logging.properties
247+
PKG pkgsend add file README.txt \
248+
mode=0444 owner=root group=sys path=/usr/opengrok/doc/README.txt
249+
PKG pkgsend add file CHANGES.txt \
250+
mode=0444 owner=root group=sys path=/usr/opengrok/doc/CHANGES.txt
251+
PKG pkgsend add file LICENSE.txt \
252+
mode=0444 owner=root group=sys path=/usr/opengrok/doc/LICENSE.txt
253+
PKG pkgsend add file NOTICE.txt \
254+
mode=0444 owner=root group=sys path=/usr/opengrok/doc/NOTICE.txt
255+
PKG pkgsend add file doc/EXAMPLE.txt \
256+
mode=0444 owner=root group=sys path=/usr/opengrok/doc/EXAMPLE.txt
257+
PKG pkgsend add file doc/ctags.config \
258+
mode=0444 owner=root group=sys path=/usr/opengrok/doc/ctags.config
223259

224260

225261
# install libs
@@ -238,19 +274,16 @@ do
238274
path=/usr/opengrok/lib/${file}
239275
done
240276

241-
242277
# install man page
243-
PKG pkgsend add file dist/opengrok.1 mode=0444 owner=root group=bin path=/usr/opengrok/man/man1/opengrok.1
278+
PKG pkgsend add file dist/opengrok.1 mode=0444 owner=root group=bin \
279+
path=/usr/opengrok/man/man1/opengrok.1
244280

245281
# install default configuration
246282
PKG pkgsend add depend fmri=pkg:/runtime/java/jre-8 type=require
247283
PKG pkgsend add depend fmri=pkg:/web/java-servlet/tomcat-8 type=require
248284

249-
# Following line gets commented by that the developer/tool/exuberant-ctags has been removed from IPS
250-
# This has to stay commented until the next release of Solaris will contain the exuberant ctags package
251-
#PKG pkgsend add depend fmri=pkg:/developer/tool/exuberant-ctags type=require
252-
253-
PKG pkgsend add file dist/source.war mode=0444 owner=webservd group=webservd path=/usr/opengrok/lib/source.war
285+
PKG pkgsend add file dist/source.war \
286+
mode=0444 owner=webservd group=webservd path=/usr/opengrok/lib/source.war
254287

255288
PKG pkgsend add set name=pkg.description value="OpenGrok - complete install"
256289
PKG pkgsend add set name=pkg.summary value="OpenGrok - wicked fast source browser"
@@ -259,14 +292,14 @@ PKG pkgsend close
259292

260293
PKG pkgrepo -s "$PKG_REPO_NAME" verify
261294

262-
manifest=$( mktemp /tmp/manifest.XXXXXX )
263-
if [[ -z $manifest ]]; then
295+
pkg_manifest=$( mktemp /tmp/pkg_manifest.XXXXXX )
296+
if [[ -z $pkg_manifest ]]; then
264297
echo "cannot create temporary file for package manifest"
265298
cleanup
266299
exit 1
267300
fi
268-
PKG pkgrepo -s "$PKG_REPO_NAME" contents ${PKG_NAME} > $manifest
269-
PKG pkglint $manifest
301+
PKG pkgrepo -s "$PKG_REPO_NAME" contents ${PKG_NAME} > $pkg_manifest
302+
PKG pkglint $pkg_manifest
270303

271304
# checks whether the same file exists and updates it
272305
if [ -f "${PKG_NAME}-${human_readable_version}.p5p" ]
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?xml version="1.0" ?>
2+
<!DOCTYPE service_bundle
3+
SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
4+
<!--
5+
Manifest created by svcbundle (2017-Jun-27 16:42:23+0200)
6+
-->
7+
<service_bundle type="manifest" name="application/opengrok-migrate-shared">
8+
<service version="1" type="service"
9+
name="application/opengrok-migrate-shared">
10+
<!--
11+
The following dependency keeps us from starting until the
12+
multi-user milestone is reached.
13+
-->
14+
<dependency restart_on="none" type="service"
15+
name="multi_user_dependency" grouping="require_all">
16+
<service_fmri value="svc:/milestone/multi-user"/>
17+
</dependency>
18+
<!--
19+
The migration of data can take a long time so give it one hour
20+
to finish.
21+
-->
22+
<exec_method timeout_seconds="3600" type="method" name="start"
23+
exec="/lib/svc/method/opengrok-share-files.sh"/>
24+
<!--
25+
The exec attribute below can be changed to a command that SMF
26+
should execute to stop the service. See smf_method(5) for more
27+
details.
28+
-->
29+
<exec_method timeout_seconds="60" type="method" name="stop"
30+
exec=":true"/>
31+
<!--
32+
The exec attribute below can be changed to a command that SMF
33+
should execute when the service is refreshed. Services are
34+
typically refreshed when their properties are changed in the
35+
SMF repository. See smf_method(5) for more details. It is
36+
common to retain the value of :true which means that SMF will
37+
take no action when the service is refreshed. Alternatively,
38+
you may wish to provide a method to reread the SMF repository
39+
and act on any configuration changes.
40+
-->
41+
<exec_method timeout_seconds="60" type="method" name="refresh"
42+
exec=":true"/>
43+
<property_group type="framework" name="startd">
44+
<propval type="astring" name="duration" value="transient"/>
45+
</property_group>
46+
<instance enabled="true" name="default"/>
47+
<template>
48+
<common_name>
49+
<loctext xml:lang="C">
50+
<!--
51+
Replace this comment with a short name for the
52+
service.
53+
-->
54+
</loctext>
55+
</common_name>
56+
<description>
57+
<loctext xml:lang="C">
58+
<!--
59+
Replace this comment with a brief description of
60+
the service
61+
-->
62+
</loctext>
63+
</description>
64+
</template>
65+
</service>
66+
</service_bundle>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/sh
2+
3+
# Load SMF shell support definitions
4+
. /lib/svc/share/smf_include.sh
5+
6+
#
7+
# Move any content from /var/opengrok/.migrate/ to /var/share/opengrok/
8+
#
9+
# The migrate_shared_files.py is not a public interface and will be eventually
10+
# replaced by different script which will make this service to fail, hopefully
11+
# prompting its removal - see the package definition and the comment above
12+
# refresh_fmri=svc:/system/filesystem/minimal:default
13+
#
14+
/lib/svc/share/migrate_shared_files.py /var/.migrate /var/share opengrok
15+
16+
# After this script runs, the service does not need to remain online.
17+
smf_method_exit $SMF_EXIT_TEMP_DISABLE done "OpenGrok shared files moved"

0 commit comments

Comments
 (0)