#!/bin/sh

# Run this script as root
apt-get install postfix imagemagick graphviz gcc patch make unzip zip cvs build-essential bin86


# Set the UMASK so permissions are more open
umask 022


# First clean your old AOLserver installation

# TCL Version to use
export TCL=tcl8.4.14

# Path for the AOLserver installation
export NS=/usr/local/aolserver45

# Path for Postgres. Change it if you did not install PG according to our instructions for PostgreSQL 8.2
export PG=/usr/local/pgsql

if test "x`which wget`" = "x"; then
echo "Cannot find wget on search path $(PATH)"
echo "Please install wget before continuing!"
exit -1
fi

rm -rf ${NS}
rm -rf /usr/local/src/aolserver45
mkdir /usr/local/src/aolserver45
cd /usr/local/src/aolserver45

# Get all the files
wget http://mesh.dl.sourceforge.net/sourceforge/tcl/${TCL}-src.tar.gz
cvs -z3 -d:pserver:anonymous@aolserver.cvs.sourceforge.net:/cvsroot/aolserver co -r aolserver_v45_bp aolserver
cvs -z3 -d:pserver:anonymous@aolserver.cvs.sourceforge.net:/cvsroot/aolserver co nscache
cvs -z3 -d:pserver:anonymous@aolserver.cvs.sourceforge.net:/cvsroot/aolserver co nspostgres
cvs -z3 -d:pserver:anonymous@aolserver.cvs.sourceforge.net:/cvsroot/aolserver co nssha1
cvs -z3 -d:pserver:anonymous@aolserver.cvs.sourceforge.net:/cvsroot/aolserver co -r v2_7 nsoracle
cvs -z3 -d:pserver:anonymous@cvs.tdom.org:/usr/local/pubcvs co tdom
cvs -z3 -d:pserver:anonymous@tcltrf.cvs.sourceforge.net:/cvsroot/tcltrf co -P trf
wget http://heanet.dl.sourceforge.net/sourceforge/tcllib/tcllib-1.9.tar.bz2
wget http://mesh.dl.sourceforge.net/sourceforge/tcl/thread2.6.4.tar.gz
wget http://media.wu-wien.ac.at/download/xotcl-1.5.3.tar.gz
wget 'http://downloads.sourceforge.net/tclwebtest/tclwebtest-1.0.tar.gz?modtime=1084492800&big_mirror=0'
wget 'http://media.wu-wien.ac.at/download/tclwebtest.tcl'
wget http://dqd.com/~mayoff/aolserver/dqd_utils-1.7.tar.gz


# Install TCL
tar xfz ${TCL}-src.tar.gz
cd ${TCL}
cvs -z3 -d:pserver:anonymous@naviserver.cvs.sourceforge.net:/cvsroot/naviserver co vtmalloc
rm -f generic/tclThreadAlloc.c
cp vtmalloc/tclThreadAlloc.c generic/
cd unix
./configure --enable-threads --prefix=${NS}
make install

# Install AOLserver and patch it for background delivery
cd /usr/local/src/aolserver45/aolserver
wget http://www.cognovis.de/aolserver45-nsd-conn.patch
patch -p0 <aolserver45-nsd-conn.patch
wget http://www.cognovis.de/aolserver45-driver.patch
patch -p0 <aolserver45-driver.patch
${NS}/bin/tclsh8.4 ./nsconfig.tcl
make -i install
cd nsproxy
make install


# Remove the symbolic link to aolserver.
# If this is not a symbolic link but the full path to your aolserver
# Make sure it becomes a symbolic link by issuing
# mv /usr/local/aolserver /usr/local/aolserver<yourversion>
rm -f /usr/local/aolserver
ln -s ${NS} /usr/local/aolserver

# Install nscache and nssha1
cd /usr/local/src/aolserver45/nscache
make install NSHOME=${NS}
cd ../nssha1
make install NSHOME=${NS}

# Install nspostgres
cd ../nspostgres
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PG}/lib
make install POSTGRES=${PG} ACS=1 NSHOME=${NS}

 
# Install tdom
# Note, if you use bash31 you need to apply a patch
# See http://openacs.org/forums/message-view?message_id=369867 for details
cd ../tdom/unix
../configure --enable-threads --disable-tdomalloc --prefix=${NS} --exec-prefix=${NS} --with-aolserver=${NS} --with-tcl=/usr/local/src/aolserver45/${TCL}/unix
make install


# Install TCLlib
cd /usr/local/src/aolserver45
tar xvfj tcllib-1.9.tar.bz2
cd tcllib-1.9
./configure --prefix=${NS}
make install
cd /usr/local/src/aolserver45

# Install libthread
tar xfz thread2.6.4.tar.gz
cd thread2.6.4/unix/
../configure --enable-threads --prefix=${NS} --exec-prefix=${NS} --with-aolserver=${NS} --with-tcl=/usr/local/src/aolserver45/${TCL}/unix
make
make install
cd /usr/local/src/aolserver45

# Install XOTcl
tar xvfz xotcl-1.5.3.tar.gz
cd xotcl-1.5.3/
export CC=gcc
./configure --enable-threads --enable-symbols --prefix=${NS} --exec-prefix=${NS} --with-tcl=/usr/local/src/aolserver45/${TCL}/unix
make
make install-aol
cd /usr/local/src/aolserver45

# Install TRF for faster base encoding. THIS IS OPTIONAL
cd trf/
./configure --enable-threads --enable-symbols --prefix=${NS} --exec-prefix=${NS} --with-tcl=/usr/local/src/aolserver45/${TCL}/unix
make
make install
cd /usr/local/src/aolserver45

 

# Make sure to call nsd-postgres instead of nsd if you use postgresql

echo "export PATH=\$PATH:${PG}/bin" >${NS}/bin/nsd-postgres
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${PG}/lib:${NS}/lib" >>${NS}/bin/nsd-postgres
echo "exec ${NS}/bin/nsd \$*" >>${NS}/bin/nsd-postgres
chmod 755 ${NS}/bin/nsd-postgres

 

# Install dqd Utils: This is optional
export INST=/usr/local/aolserver45
tar xzf dqd_utils-1.7.tar.gz
cd dqd_utils-1.7
make install
cd /usr/local/src/aolserver45






# 7. Now install daemontools
# This is optional as some distro's don't like it.
mkdir -p /package
chmod 1755 /package
cd /package
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
tar xvfz daemontools-0.76.tar.gz
cd admin/daemontools-0.76
patch -Np1 -i ../../daemontools-0.76.errno.patch
package/install
cvs -d :pserver:anonymous@cvs.openacs.org:/cvsroot co openacs-4/packages/acs-core-docs/www/files/svgroup.txt
mv openacs-4/packages/acs-core-docs/www/files/svgroup.txt /usr/sbin/svgroup
rm -r openacs-4
chmod 700 /usr/sbin/svgroup





# Finally, care about tclwebtest
cd /usr/local/src/aolserver45

# Unpack and install the full release
tar zxf tclwebtest-1.0.tar.gz
mkdir -p ${NS}/lib/tclwebtest
cp tclwebtest-1.0/lib/pkgIndex.tcl ${NS}/lib/tclwebtest/

# Patch it with the with the 70 times faster version from WU Wien
cp tclwebtest.tcl ${NS}/lib/tclwebtest/
