source: main/trunk/greenstone3/gs3-setup.sh@ 25448

Last change on this file since 25448 was 25448, checked in by ak19, 12 years ago

When running the GS3-server.sh, it was discovered (on Ubuntu) that the Greenstone server interface failed to launch the firefox browser. This had earlier been a problem in GS2 as well, which had to do with the LD_LIBRARY_PATH environment being set to gnomelib libraries needed for wvware.pl, which then interfered with the (graphical) libraries on Ubuntu so that regular applications could not be launched from terminals where gs3-setup.sh had been run. The solution in GS2 was to introduce the wvware.pl script which would set up the environment for wvware tasks, rather than setting the environment for wvware in gs3-setup.sh. The same is now the case with gs3-setup.sh. It doesn't setup the environment for wvware anymore either as this is already handled by wvware.pl (called from gsConvert.pl by GLI). The installer required one additional related change, which was to give executable permissions to the wvWare binary, and this was committed to SVN on the previous commit.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 9.0 KB
Line 
1# if this file is executed, /bin/sh is used, as we don't start with #!
2# this should work under ash, bash, zsh, ksh, sh style shells.
3
4#the purpose of this file is to check/set up the environment for greenstone3
5#sorts out:
6# - gsdl3home
7# - java
8
9# java_min_version gets passed to search4j as the minimum java version
10java_min_version=1.5.0_00
11
12
13function testSource(){
14
15 if test "$0" != "`echo $0 | sed s/gs3-setup\.sh//`" ; then
16 # if $0 contains "gs3-setup.sh" we've been run... $0 is shellname if sourced.
17 # One exception is zsh has an option to set it temporarily to the script name
18 if test -z "$ZSH_NAME" ; then
19 # we aren't using zsh
20 gsdl_not_sourced=true
21 fi
22 fi
23
24 if test -n "$gsdl_not_sourced" ; then
25 echo " Error: Make sure you source this script, not execute it. Eg:"
26 echo " $ source gs3-setup.sh"
27 echo " or"
28 echo " $ . gs3-setup.sh"
29 echo " not"
30 echo " $ ./gs3-setup.sh"
31 unset gsdl_not_sourced
32 exit 1
33 fi
34
35 if test ! -f gs3-setup.sh ; then
36 echo "You must source the script from within the Greenstone home directory"
37 return 1
38 fi
39 return 0
40}
41
42# if GSDL3SRCHOME is set, then we assume that we have already sourced the
43# script so don't do it again. UNLESS, GSDL3SRCHOME doesn't match the
44# current directory in which case it was a different gs3 installation, so lets
45# do it now.x
46function testAlreadySourced() {
47 if [ ! -z "$GSDL3SRCHOME" ]; then
48 localgs3sourcehome="`pwd`"
49 if [ "$GSDL3SRCHOME" == "$localgs3sourcehome" ]; then
50 echo "Your environment is already set up for Greenstone3"
51 return 1
52 fi
53 echo "Your environment was set up for Greenstone 3 in $GSDL3SRCHOME."
54 echo "Overwriting that set up for the current Greenstone 3 in $localgs3sourcehome"
55 fi
56 return 0
57}
58
59function setGS3ENV() {
60
61 echo "Setting up your environment for Greenstone3"
62 ## main greenstone environment variables ##
63 GSDL3SRCHOME="`pwd`"
64 GSDL3HOME="$GSDL3SRCHOME/web"
65 export GSDL3HOME
66 export GSDL3SRCHOME
67
68 GSDLOS=`uname -s | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
69 # check for running bash under cygwin
70 if test "`echo $GSDLOS | sed 's/cygwin//'`" != "$GSDLOS" ; then
71 GSDLOS=windows
72 fi
73 export GSDLOS
74 echo " - Exported GSDL3HOME, GSDL3SRCHOME and GSDLOS"
75
76 #change this if external tomcat
77 TOMCAT_HOME="$GSDL3SRCHOME/packages/tomcat"
78
79 ## adjustments to users (existing) environment ##
80
81 #PATH
82 addtopath PATH "$GSDL3SRCHOME/bin/script"
83 addtopath PATH "$GSDL3SRCHOME/bin"
84 echo " - Adjusted PATH"
85
86 #MANPATH
87 addtopath MANPATH "$GSDL3SRCHOME/doc/man"
88 echo " - Adjusted MANPATH"
89
90 #CLASSPATH
91 addtopath CLASSPATH "."
92 addtopath CLASSPATH "$GSDL3HOME/WEB-INF/classes"
93 addtopath CLASSPATH "$GSDL3SRCHOME/resources/java"
94 addtopath CLASSPATH "$GSDL3SRCHOME/cp.jar"
95
96 # Tomcat 5 jar files
97 for JARFILE in "$TOMCAT_HOME"/common/endorsed/*.jar; do
98 addtopath CLASSPATH "$JARFILE"
99 done
100 # Tomcat 6 jar files
101 for JARFILE in "$TOMCAT_HOME"/lib/*.jar; do
102 addtopath CLASSPATH "$JARFILE"
103 done
104
105 #shouldn't need these as they will have been copied to their correct locations elsewhere in the greenstone3 installation
106 #for JARFILE in "$GSDL3SRCHOME"/build/*.jar; do
107 # addtopath CLASSPATH "$JARFILE"
108 #done
109
110 echo " - Adjusted CLASSPATH"
111
112 #LD_LIBRARY_PATH
113 addtopath LD_LIBRARY_PATH "$GSDL3SRCHOME/lib/jni"
114 addtopath DYLD_LIBRARY_PATH "$GSDL3SRCHOME/lib/jni"
115 echo " - Adjusted LD_LIBRARY_PATH and DYLD_LIBRARY_PATH"
116
117 #ant
118 ANT_VERSION=1.7.1
119 if [ -x "$GSDL3SRCHOME/packages/ant/bin/ant" ]; then
120 ANT_HOME="$GSDL3SRCHOME/packages/ant"
121 export ANT_HOME
122 addtopath PATH "$ANT_HOME/bin"
123 echo " - Setup Greenstone ant ($GSDL3SRCHOME/packages/ant)"
124 else
125 which ant &> /dev/null
126 if [ "$?" == "0" ]; then
127 echo " - WARNING: Greenstone 'Ant' package missing - falling back to system Ant"
128 echo " Note that Greenstone requires Ant $ANT_VERSION or greater"
129 elif [ "ANT_HOME" != "" ]; then
130 addtopath PATH "$ANT_HOME/bin"
131 echo " - WARNING: Greenstone 'Ant' package missing - falling back to system Ant"
132 echo " Note that Greenstone requires Ant $ANT_VERSION or greater"
133 else
134 echo " - ERROR: Greenstone 'Ant' package missing - please install Ant yourself"
135 echo " Note that Greenstone requires Ant $ANT_VERSION or greater"
136 fi
137 fi
138
139 #ImageMagick
140 if test -d "$GSDL3SRCHOME/gs2build/bin/$GSDLOS/imagemagick" ; then
141 addtopath PATH "$GSDL3SRCHOME/gs2build/bin/$GSDLOS/imagemagick/bin"
142 MAGICK_HOME="$GSDL3SRCHOME/gs2build/bin/$GSDLOS/imagemagick"
143 export MAGICK_HOME
144 if test "$GSDLOS" = "linux"; then
145 addtopath LD_LIBRARY_PATH "$GSDL3SRCHOME/gs2build/bin/$GSDLOS/imagemagick/lib"
146 elif test "$GSDLOS" = "darwin"; then
147 addtopath DYLD_LIBRARY_PATH "$GSDL3SRCHOME/gs2build/bin/$GSDLOS/imagemagick/lib"
148 fi
149 echo " - Setup ImageMagick"
150 fi
151
152 #Ghostscript
153 if test -d "$GSDL3SRCHOME/gs2build/bin/$GSDLOS/ghostscript"; then
154 addtopath PATH "$GSDL3SRCHOME/gs2build/bin/$GSDLOS/ghostscript/bin"
155 GS_LIB="$GSDL3SRCHOME/gs2build/bin/$GSDLOS/ghostscript/share/ghostscript/8.63/lib"
156 export GS_LIB
157 GS_FONTPATH="$GSDL3SRCHOME/gs2build/bin/$GSDLOS/ghostscript/share/ghostscript/8.63/Resource/Font"
158 export GS_FONTPATH
159 echo " - Setup GhostScript"
160 fi
161
162 #wvWare
163 # wvWare's environment is now set up by bin/script/wvware.pl
164 # The wvware.pl script can be called from the cmdline to perform wvware tasks.
165 # GLI calls gsConvert.pl which calls wvware.pl to similarly perform wvware tasks.
166# if test -d "$GSDL3SRCHOME/gs2build/bin/$GSDLOS/wv"; then
167# if test "$GSDLOS" = "linux"; then
168# addtopath LD_LIBRARY_PATH "$GSDL3SRCHOME/gs2build/bin/$GSDLOS/wv/lib"
169# elif test "$GSDLOS" = "darwin"; then
170# addtopath DYLD_LIBRARY_PATH "$GSDL3SRCHOME/gs2build/bin/$GSDLOS/wv/lib"
171# fi
172# echo " - Setup wvWare"
173# fi
174
175}
176
177function checkJava() {
178
179 HINT="`pwd`/packages/jre"
180 if [ $GSDLOS = darwin ]; then
181 HINT=/System/Library/Frameworks/JavaVM.framework/Home
182 fi
183
184 #if search4j is present, use it
185 if [ -x bin/search4j ] ; then
186 FOUNDJAVAHOME="`bin/search4j -p \"$HINT\" -m $java_min_version`"
187 if [ "$?" == "0" ]; then
188 #found a suitible java
189 setupJavaAt "$FOUNDJAVAHOME"
190 else
191 #no suitable java exists
192 echo " - ERROR: Failed to locate java $java_min_version or greater"
193 echo " Please set JAVA_HOME or JRE_HOME to point to an appropriate java"
194 echo " And add JAVA_HOME/bin or JRE_HOME/bin to your PATH"
195 fi
196
197 #otherwise manually try the hint
198 elif [ -d "$HINT" ]; then
199 #found a suitible java
200 setupJavaAt "$HINT"
201
202 #lastly, check if java already setup
203 elif [ "$JAVA_HOME" != "" ] && [ "`which java`" == "$JAVA_HOME/bin/java" ]; then
204 echo " - Using java at $JAVA_HOME"
205 echo " - WARNING: Greenstone has not checked the version number of this java installation"
206 echo " The source distribution of Greenstone3 requires java 1.5 or greater"
207 echo " (SVN users may still use java 1.4)"
208 elif [ "$JRE_HOME" != "" ] && [ "`which java`" == "$JRE_HOME/bin/java" ]; then
209 echo " - Using java at $JRE_HOME"
210 echo " - WARNING: Greenstone has not checked the version number of this java installation"
211 echo " The source distribution of Greenstone3 requires java 1.5 or greater"
212 echo " (SVN users may still use java 1.4)"
213
214 #failing all that, print a warning
215 else
216 #no suitable java exists
217 echo " - ERROR: Failed to locate java"
218 echo " Please set JAVA_HOME or JRE_HOME to point to an appropriate java"
219 echo " And add JAVA_HOME/bin or JRE_HOME/bin to your PATH"
220 fi
221}
222
223function setupJavaAt() {
224 export JAVA_HOME="$1"
225 addtopath PATH "$JAVA_HOME/bin"
226 echo " - Exported JAVA_HOME to $JAVA_HOME"
227}
228
229function pauseAndExit(){
230 echo -n "Please press any key to continue... "
231 read
232}
233
234function isinpath() {
235 for file in `echo $1 | sed 's/:/ /g'`; do
236 if [ "$file" == "$2" ]; then
237 echo true
238 return
239 fi
240 done
241 echo false
242}
243
244function addtopath() {
245 eval "PV=\$$1"
246 #echo "$1 += $2"
247 if [ "$PV" == "" ]; then
248 cmd="$1=\"$2\""
249 else
250 cmd="$1=\"$2:\$$1\""
251 fi
252 eval $cmd
253 eval "export $1"
254}
255
256# Note: use return not exit from a sourced script otherwise it kills the shell
257echo
258testSource
259if [ "$?" == "1" ]; then
260return
261fi
262testAlreadySourced
263if [ "$?" == "1" ]; then
264return
265fi
266setGS3ENV
267
268if test -e gs2build/setup.bash ; then
269 echo ""
270 echo "Sourcing gs2build/setup.bash"
271 cd gs2build ; source setup.bash ; cd ..
272fi
273
274
275if test "x$gsopt_noexts" != "x1" ; then
276 if test -e ext ; then
277 for gsdl_ext in ext/* ; do
278 if [ -d $gsdl_ext ] ; then
279 cd $gsdl_ext > /dev/null
280 if test -e gs3-setup.sh ; then
281 source ./gs3-setup.sh
282 elif test -e setup.bash ; then
283 source ./setup.bash
284 fi
285 cd ../..
286 fi
287 done
288 fi
289fi
290
291if test -e local ; then
292 if test -e local/gs3-setup.sh ; then
293 echo ""
294 echo "Sourcing local/gs3-setup.sh"
295 cd local ; source gs3-setup.sh ; cd ..
296 fi
297fi
298
299
300checkJava
301echo ""
Note: See TracBrowser for help on using the repository browser.