Subversion Repositories wimsdev

Rev

Rev 16686 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 reyssat 1
#! /bin/sh
2
 
12677 obado 3
# Color constants
4
RED='\033[0;31m'
5
GREEN='\033[0;32m'
6
ORANGE='\033[0;33m'
7
BLUE='\033[0;34m'
8
PURPLE='\033[0;35m'
9
NC='\033[0m' # No Color
10
# sample : I ${RED}love${NC} WIMS
11
 
825 bpr 12
if [ "$(id -ru)" = 0 ]; then
12677 obado 13
  cat <<@
3855 kbelabas 14
You are trying to compile WIMS as 'root'. You should not do that !
15
Please compile as 'wims'.
2 reyssat 16
@
12677 obado 17
  exit 1
2 reyssat 18
fi
19
 
4430 bpr 20
option=$1
21
 
3855 kbelabas 22
##########################################################################
2 reyssat 23
cat <<@
3855 kbelabas 24
Welcome to the compilation of WIMS (WWW Interactive Multipurpose Server)
2 reyssat 25
 
26
@
3856 bpr 27
cd `dirname $0`
7437 bpr 28
dir=`pwd`;
4371 bpr 29
 
13184 obado 30
mkdir -p lib sessions
31
mkdir -p tmp tmp/log tmp/sessions tmp/whoconnect
32
 
7437 bpr 33
if [ ! "$option" ] ; then option=no ; fi ;
13523 obado 34
## option: --mathjax --jmol --geogebra --shtooka --gcov --jme
7437 bpr 35
for a in $(seq $#) ; do opt=$1;
12677 obado 36
  if [ "$opt" = "--build-chroot" ] ; then
37
    if [ -d chroot ] ; then
38
      mkdir -p chroot/tmp
39
      mkdir -p chroot/tmp/sessions
40
      touch chroot/tmp/sessions/.chroot
41
    else
42
      cat <<@
43
You must first get and install the chroot directory. See the README
4430 bpr 44
 
45
@
12677 obado 46
      exit 1
47
    fi
7487 bpr 48
  fi
12677 obado 49
  if [ "$opt" = "--mathjax" ] ; then
50
    echo "${PURPLE}** MathJax installation **${NC}"
16628 obado 51
    #vmathjax=2.7.9
52
    vmathjax=3.2.0
12677 obado 53
 
7379 bpr 54
    cd tmp
12642 obado 55
    echo "downloading MathJax $vmathjax"
12677 obado 56
    wget https://github.com/mathjax/MathJax/archive/$vmathjax.zip
57
    if [ -f "$vmathjax.zip" ] ; then
58
      echo "unzipping MathJax $vmathjax"
59
      unzip -q $vmathjax.zip && echo "unzipped successfully"
60
      rm -f $vmathjax.zip
61
      cd $dir
62
      if [ -d "public_html/scripts/js/mathjax" ] ; then
63
        rm -rf public_html/scripts/js/mathjax
64
      fi
16628 obado 65
      mv -f tmp/MathJax-*/es5 public_html/scripts/js/mathjax
12677 obado 66
      echo "${GREEN}Success${NC} : Mathjax $vmathjax has been installed."
67
    else
68
      echo "${RED}Warning : Mathjax hasn't been downloaded.${NC}"
69
      sleep 5
70
      cd $dir
71
    fi
72
  fi
73
  if [ "$opt" = "--jmol" ] ; then
74
    echo "${PURPLE}** jMol installation **${NC}"
10024 noely 75
    vjmol0=14
12642 obado 76
    vjmol1=29
13379 obado 77
    vjmol2=26
10024 noely 78
    vjmol012=$vjmol0.$vjmol1.$vjmol2
10040 bpr 79
    vJmol=Jmol-$vjmol012
80
    vjmol=jmol-$vjmol012
7827 bpr 81
    cd tmp
12642 obado 82
    echo "downloading $vJmol-binary.zip"
12681 bpr 83
    wget --no-check-certificate https://downloads.sourceforge.net/project/jmol/Jmol/Version%20$vjmol0.$vjmol1/Jmol%20$vjmol012/$vJmol-binary.zip
12677 obado 84
    if [ -f "$vJmol-binary.zip" ] ; then
85
      echo "unzipping $vJmol-binary.zip"
86
      unzip -q $vJmol-binary.zip && echo "unzipped successfully"
87
      cd $vjmol;
88
      echo "unzipping jsmol.zip"
89
      unzip -q jsmol.zip && echo "unzipped successfully"
90
      cd $dir
91
      if [ -d "public_html/java/jmol/j2s" ] ; then
92
        mv public_html/java/jmol/j2s public_html/java/jmol/j2s_tmp
93
      fi
94
      if [ -d "public_html/java/jmol/idioma" ] ; then
95
        mv public_html/java/jmol/idioma public_html/java/jmol/idioma_tmp
96
      fi
13335 bpr 97
      mv -f tmp/$vjmol/jsmol/j2s public_html/java/jmol/j2s
12677 obado 98
      mv -f tmp/$vjmol/jsmol/idioma public_html/java/jmol/idioma
99
      cp -f tmp/$vjmol/jsmol/JSmol.min.js public_html/java/jmol/
100
      cp -f tmp/$vjmol/jsmol/JSmol.min.nojq.js public_html/java/jmol/
101
      cp -f tmp/$vjmol/jsmol/js/Jmol2.js public_html/java/jmol/
13335 bpr 102
      cp -f tmp/$vjmol/jsmol/js/JSmolJSV.js public_html/java/jmol/
13378 bpr 103
      cp -f tmp/$vjmol/jsmol/js/JSmolJME.js public_html/java/jmol/
12677 obado 104
      rm -rf tmp/$vjmol
105
      rm -rf tmp/$vJmol-binary.zip
106
      rm -rf public_html/java/jmol/j2s_tmp
107
      rm -rf public_html/java/jmol/idioma_tmp
13379 obado 108
 
12677 obado 109
      echo "${GREEN}Success${NC} : $vJmol has been installed."
110
    else
111
      echo "${RED}Warning : $vJmol hasn't been downloaded.${NC}"
112
      sleep 5
113
      cd $dir
7827 bpr 114
    fi
13379 obado 115
 
13417 bpr 116
    ##vJSME=2018-10-28
117
    ##cd tmp
118
    ##echo "downloading JSME v$vJSME"
119
    ##wget 'https://www.dropbox.com/s/aklw9uftv3ztmym?dl=1' -O JSME_$vJSME.zip
120
    ##if [ -f "JSME_$vJSME.zip" ] ; then
121
    ##  echo "unzipping JSME_$vJSME.zip"
122
    ##  unzip -q JSME_$vJSME.zip && echo "unzipped successfully"
123
    ##  rm -f JSME_$vJSME.zip
124
    ##  cd $dir
125
    ##  if [ -d "public_html/java/jmol/jsme" ] ; then
126
    ##    mv public_html/java/jmol/jsme public_html/java/jmol/jsme_tmp
127
    ##  fi
128
    ##  mkdir public_html/java/jmol/jsme
129
    ##  mv -f tmp/JSME_$vJSME/jsme public_html/java/jmol/jsme/
130
##
131
    ##  rm -rf tmp/JSME_$vJSME
132
    ##  rm -rf public_html/java/jmol/jsme_tmp
133
    ##  echo "${GREEN}Success${NC} : JSME has been installed."
134
    ##else
135
    ##  echo "${RED}Warning : JSME hasn't been downloaded.${NC}"
136
    ##  sleep 5
137
    ##  cd $dir
138
    ##fi
139
    jsmol=1;
140
  fi
13523 obado 141
  if [ "$jsmol" = 1 ] || [ "$opt" = "--jme" ]; then
13417 bpr 142
    echo "downloading JSME"
143
    cd tmp;
18402 bpr 144
    wget 'https://wims1.math.cnrs.fr/wims/jsme.tgz' -O jsme.tgz
13417 bpr 145
    if [ -f "jsme.tgz" ] ; then
146
      tar xzf jsme.tgz
147
      rm -f jsme.tgz
13379 obado 148
      cd $dir
149
      if [ -d "public_html/java/jmol/jsme" ] ; then
150
        mv public_html/java/jmol/jsme public_html/java/jmol/jsme_tmp
151
      fi
152
      mkdir public_html/java/jmol/jsme
13417 bpr 153
      mv -f tmp/jsme public_html/java/jmol/jsme/
154
      rm -rf tmp/jsme
13379 obado 155
      rm -rf public_html/java/jmol/jsme_tmp
156
      echo "${GREEN}Success${NC} : JSME has been installed."
157
    else
158
      echo "${RED}Warning : JSME hasn't been downloaded.${NC}"
159
      sleep 5
160
      cd $dir
161
    fi
12677 obado 162
  fi
163
  if [ "$opt" = "--geogebra" ] ; then
164
    echo "${PURPLE}** GeoGebraWeb installation **${NC}"
16686 obado 165
    # vGeogebra=GeoGebraWeb-WIMS-5.0.700.0
166
    vGeogebra=GeoGebraWeb-WIMS-5.0.452.0
11340 obado 167
    ggb_folder=public_html/scripts/js/geogebra
9824 bpr 168
    cd tmp
11759 obado 169
    echo "downloading $vGeogebra.zip"
15986 obado 170
    wget https://wims.univ-cotedazur.fr/download/others/$vGeogebra.zip && echo "downloaded successfully"
12677 obado 171
    if [ -f "$vGeogebra.zip" ] ; then
172
      echo "unzipping $vGeogebra.zip"
173
      unzip -q $vGeogebra.zip && echo "unzipped successfully"
174
      rm -f $vGeogebra.zip
175
      cd $dir
176
      if [ -d "$ggb_folder/geogebraweb" ] ; then
177
        mv $ggb_folder/geogebraweb $ggb_folder/geogebraweb_tmp
178
      fi
179
      mv -f tmp/$vGeogebra $ggb_folder/geogebraweb
180
      rm -rf tmp/$vGeogebra
181
      rm -rf $ggb_folder/geogebraweb_tmp
182
      echo "geogebra_exists=yes" | cat > $ggb_folder/test
183
      echo "${GREEN}Success${NC} : $vGeogebra has been installed."
184
    else
185
      echo "${RED}Warning : $vGeogebra hasn't been downloaded.${NC}"
186
      sleep 5
187
      cd $dir
9824 bpr 188
    fi
12677 obado 189
  fi
190
  if [ "$opt" = "--modules" ] ; then
7437 bpr 191
    echo "load modules"
7438 bpr 192
    src/wims_modules.pl
7437 bpr 193
    cd $dir
12677 obado 194
  fi
195
  if [ "$opt" = "--shtooka" ] ; then
7437 bpr 196
    echo "load audio shtooka"
197
    bin/swac
198
    cd $dir
12677 obado 199
  fi
200
  if [ "$opt" = "--gcov" ] ; then
8807 bpr 201
    export CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
12677 obado 202
  fi
203
  shift
7437 bpr 204
done
7379 bpr 205
 
15907 bpr 206
##delete files *.bin in log/classes
15912 bpr 207
##in housekeep.daily in directory log/classes
208
## find . -type f -name "*.bin" -exec rm -v "{}" ";" 1>/dev/null
15925 bpr 209
find log/classes -path "log/classes/*/score/*.bin" -exec rm -f "{}" ";"
3856 bpr 210
cd src
4390 bpr 211
 
16015 bpr 212
##if [ -f ../.wims_maintainer_mode ]; then
213
##  touch configure.ac ;
214
##  if (autoconf); then :; else
215
##    echo "[maintainer mode] Please install autoconf first."
216
##    exit 1
217
##  fi
218
##  autoheader
219
##fi
10040 bpr 220
./configure || exit
16139 bpr 221
### if some files are not found during compilation, you can try something like that
10790 bpr 222
#./configure CFLAGS="-g -O2 -I/usr/local/include" LDFLAGS=-L/usr/local/lib || exit
16141 bpr 223
#./configure CFLAGS="-g -O2 -I/opt/homebrew/include" CXXFLAGS="-g -O2 -I/opt/homebrew/include" LDFLAGS=-L/opt/homebrew/lib || exit
2 reyssat 224
make clean || exit
225
make all || exit
4290 bpr 226
 
227
if [ -f ../.wims_maintainer_mode ]; then
4355 bpr 228
### use convert, identify
4290 bpr 229
  make maintainer || exit
4355 bpr 230
### all the maintainers should have Apache ant - java compilation
14708 bpr 231
  ##if (ant -version); then :; else
232
  ##  echo "[maintainer mode] Please install Apache ant first."
233
  ##  exit 1
234
  ##fi
4663 bpr 235
  if (convert -version) || (identify -version); then :; else
4355 bpr 236
    echo "[maintainer mode] Please install convert and identify first."
237
    exit 1
238
  fi
4371 bpr 239
  cd Misc ; make maintainer || exit
4297 bpr 240
  cd ..
4290 bpr 241
fi
13940 bpr 242
if [ -f ../.wims_maintainer_mode ]; then
243
  echo "** Make canvadraw documentation... "
244
  cd Misc/canvasdraw
13941 bpr 245
  sh canvasinfo.sh 1>/dev/null
13940 bpr 246
  cd ../..
247
fi
15973 bpr 248
 
2 reyssat 249
cd ..
15973 bpr 250
cp public_html/gifs/svg/iconeserver_orig.svg public_html/gifs/svg/iconeserver.svg
251
if [ -f log/wims.conf ]; then
252
  color=`cat log/wims.conf | grep "ref_bgcolor" | sed "s/ref_bgcolor=//"`;
253
  if [ "$color" ]; then
254
    cat public_html/gifs/svg/iconeserver_orig.svg | sed "s/fill:#777777/fill:$color/" > public_html/gifs/svg/iconeserver.svg
255
  fi
256
else
7487 bpr 257
  cat <<@
4494 bpr 258
 
259
You can configure some parameters which allow the manager site
260
to make more configuration from the web interface.
261
 
4997 obado 262
Please write the IP address of the wims webmaster ? [127.0.0.1]
4494 bpr 263
@
4390 bpr 264
  read ans1
265
  if [ -z $ans1 ]; then :; else
4460 bpr 266
    echo "manager_site=$ans1" >> log/wims.conf
4371 bpr 267
    chmod 600 log/wims.conf
268
  fi
7487 bpr 269
  cat <<@
4494 bpr 270
 
271
Please write the email address of the wims webmaster: ? []
272
@
4390 bpr 273
  read ans2
4494 bpr 274
  if [ -z $ans2 ]; then
275
     if [ -z $ans1 ]; then :; else echo "site_manager=" >> log/wims.conf; fi
4997 obado 276
  else
277
     if [ -z $ans1 ]; then echo "manager_site=127.0.0.1" >> log/wims.conf ; fi
278
     echo "site_manager=$ans2" >> log/wims.conf
279
     chmod 600 log/wims.conf
4371 bpr 280
  fi
281
fi
282
if [ -f log/.wimspass ]; then :; else
7487 bpr 283
  cat <<@
284
 
4494 bpr 285
Please give the password for the wims webmaster
286
You can change it in the file log/.wimspass
287
Webmaster password: ? []
288
@
4390 bpr 289
  read ans3
290
  if [ -z $ans3 ]; then :; else
291
    echo "$ans3" > log/.wimspass
4371 bpr 292
    chmod 600 log/.wimspass
293
  fi
294
fi
4460 bpr 295
if [ $option = "--build-chroot" ] ; then
4430 bpr 296
  script=wrapuid ;
297
else
13394 bpr 298
  script=setwrapexec ;
4430 bpr 299
fi
7181 bpr 300
 
2 reyssat 301
cat <<@
302
 
7487 bpr 303
Please run './bin/$script' (and './bin/apache-config' for the first installation) as root
4474 bpr 304
(e.g. using sudo) to finish WIMS setup.
4460 bpr 305
 
2916 reyssat 306
See README about installation of help and teaching modules.
2 reyssat 307
 
308
@
4371 bpr 309
 
7176 bpr 310
exit