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

Last change on this file since 25450 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
RevLine 
[6433]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
[15131]4#the purpose of this file is to check/set up the environment for greenstone3
[16213]5#sorts out:
[17442]6# - gsdl3home
7# - java
[14726]8
[16213]9# java_min_version gets passed to search4j as the minimum java version
[20093]10java_min_version=1.5.0_00
[15131]11
12
[14726]13function testSource(){
[15131]14
[14726]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
[6433]22 fi
23
[14726]24 if test -n "$gsdl_not_sourced" ; then
[17442]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"
[14726]31 unset gsdl_not_sourced
32 exit 1
33 fi
[6433]34
[14726]35 if test ! -f gs3-setup.sh ; then
36 echo "You must source the script from within the Greenstone home directory"
[20189]37 return 1
[14726]38 fi
[20189]39 return 0
40}
[15131]41
[20189]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
[20305]50 echo "Your environment is already set up for Greenstone3"
51 return 1
[20189]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
[14726]57}
[6433]58
[15131]59function setGS3ENV() {
[6433]60
[17442]61 echo "Setting up your environment for Greenstone3"
62 ## main greenstone environment variables ##
[20187]63 GSDL3SRCHOME="`pwd`"
64 GSDL3HOME="$GSDL3SRCHOME/web"
[17442]65 export GSDL3HOME
66 export GSDL3SRCHOME
[10645]67
[17442]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"
[8060]75
[17442]76 #change this if external tomcat
[20187]77 TOMCAT_HOME="$GSDL3SRCHOME/packages/tomcat"
[10303]78
[17442]79 ## adjustments to users (existing) environment ##
[15134]80
[17442]81 #PATH
[20077]82 addtopath PATH "$GSDL3SRCHOME/bin/script"
83 addtopath PATH "$GSDL3SRCHOME/bin"
84 echo " - Adjusted PATH"
[6433]85
[20077]86 #MANPATH
87 addtopath MANPATH "$GSDL3SRCHOME/doc/man"
88 echo " - Adjusted MANPATH"
89
[17442]90 #CLASSPATH
[20233]91 addtopath CLASSPATH "."
[20077]92 addtopath CLASSPATH "$GSDL3HOME/WEB-INF/classes"
93 addtopath CLASSPATH "$GSDL3SRCHOME/resources/java"
[20211]94 addtopath CLASSPATH "$GSDL3SRCHOME/cp.jar"
95
[20088]96 # Tomcat 5 jar files
[20187]97 for JARFILE in "$TOMCAT_HOME"/common/endorsed/*.jar; do
[20077]98 addtopath CLASSPATH "$JARFILE"
99 done
[20088]100 # Tomcat 6 jar files
[20187]101 for JARFILE in "$TOMCAT_HOME"/lib/*.jar; do
[20088]102 addtopath CLASSPATH "$JARFILE"
103 done
104
[20211]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
[20219]109
[20077]110 echo " - Adjusted CLASSPATH"
[8060]111
[17442]112 #LD_LIBRARY_PATH
[20077]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"
[15134]116
[17442]117 #ant
[20252]118 ANT_VERSION=1.7.1
[20077]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"
[20093]123 echo " - Setup Greenstone ant ($GSDL3SRCHOME/packages/ant)"
[17442]124 else
[20305]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
[17442]137 fi
[15134]138
[20303]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"
[20305]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
[20303]159 echo " - Setup GhostScript"
160 fi
161
[25448]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
[20303]174
[14726]175}
[6433]176
[15131]177function checkJava() {
[15138]178
[20059]179 HINT="`pwd`/packages/jre"
[20216]180 if [ $GSDLOS = darwin ]; then
181 HINT=/System/Library/Frameworks/JavaVM.framework/Home
182 fi
[20217]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"
[20233]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)"
[20217]208 elif [ "$JRE_HOME" != "" ] && [ "`which java`" == "$JRE_HOME/bin/java" ]; then
209 echo " - Using java at $JRE_HOME"
[20233]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
[20217]214 #failing all that, print a warning
[20077]215 else
[20217]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"
[15131]220 fi
221}
[6433]222
[20217]223function setupJavaAt() {
224 export JAVA_HOME="$1"
225 addtopath PATH "$JAVA_HOME/bin"
226 echo " - Exported JAVA_HOME to $JAVA_HOME"
227}
228
[14726]229function pauseAndExit(){
230 echo -n "Please press any key to continue... "
231 read
232}
[6433]233
[15131]234function isinpath() {
[17442]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
[15131]242}
243
[20077]244function addtopath() {
[20078]245 eval "PV=\$$1"
[20083]246 #echo "$1 += $2"
247 if [ "$PV" == "" ]; then
248 cmd="$1=\"$2\""
249 else
250 cmd="$1=\"$2:\$$1\""
[20077]251 fi
[20083]252 eval $cmd
253 eval "export $1"
[20077]254}
[20078]255
[20189]256# Note: use return not exit from a sourced script otherwise it kills the shell
[15131]257echo
[14726]258testSource
[20189]259if [ "$?" == "1" ]; then
260return
261fi
262testAlreadySourced
263if [ "$?" == "1" ]; then
264return
265fi
[14726]266setGS3ENV
[20982]267
[21320]268if test -e gs2build/setup.bash ; then
269 echo ""
270 echo "Sourcing gs2build/setup.bash"
271 cd gs2build ; source setup.bash ; cd ..
272fi
273
[24335]274
[23894]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
[24335]280 if test -e gs3-setup.sh ; then
281 source ./gs3-setup.sh
282 elif test -e setup.bash ; then
[23894]283 source ./setup.bash
284 fi
285 cd ../..
286 fi
287 done
[20984]288 fi
289fi
290
[20982]291if test -e local ; then
292 if test -e local/gs3-setup.sh ; then
[20984]293 echo ""
[20982]294 echo "Sourcing local/gs3-setup.sh"
295 cd local ; source gs3-setup.sh ; cd ..
296 fi
297fi
298
[20984]299
300checkJava
301echo ""
Note: See TracBrowser for help on using the repository browser.