Index: gs2-extensions/diva/trunk/src/CASCADE-MAKE.sh
===================================================================
--- gs2-extensions/diva/trunk/src/CASCADE-MAKE.sh	(revision 30202)
+++ gs2-extensions/diva/trunk/src/CASCADE-MAKE.sh	(revision 30202)
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+source bin/script/test-setup.bash
+source lib/cascade-lib.bash
+
+if [ ! -d "$GEXTDIVA_INSTALLED" ] ; then
+  echo "Making directory \"$GEXTDIVA_INSTALLED\""
+  mkdir "$GEXTDIVA_INSTALLED"
+fi
+
+for d in packages ; do
+  echo "Running $d/CASCADE-MAKE.sh $*"
+
+  (cd $d ; ./CASCADE-MAKE.sh $*)
+
+  if [ $? != 0 ] ; then
+    echo "Error encountered running $d/CASCADE-COMPILE.sh"
+    exit 1
+  fi
+done
+
+
Index: gs2-extensions/diva/trunk/src/bin/script/test-setup.bash
===================================================================
--- gs2-extensions/diva/trunk/src/bin/script/test-setup.bash	(revision 30202)
+++ gs2-extensions/diva/trunk/src/bin/script/test-setup.bash	(revision 30202)
@@ -0,0 +1,13 @@
+
+#if [ -z $GEXTGNOME_DEVEL ] ; then
+#  echo "GNOME Support Library environment variable GEXTGNOME_DEVEL not set."
+#  echo "Ensure that this extension is installed and that you have sourced devel.bash"
+#  exit -1
+#fi
+
+if [ "x$GEXTDIVA" = "x" ] ; then
+  echo "Diva.js extension environment variable GEXTDIVA not set."
+  echo "Have you sourced the extension's setup file, e.g. setup.bash?"
+  exit -1
+fi
+
Index: gs2-extensions/diva/trunk/src/lib/cascade-lib.bash
===================================================================
--- gs2-extensions/diva/trunk/src/lib/cascade-lib.bash	(revision 30202)
+++ gs2-extensions/diva/trunk/src/lib/cascade-lib.bash	(revision 30202)
@@ -0,0 +1,223 @@
+
+run_untar()
+{
+  local package=$1
+  local version=$2
+  local ext=$3
+
+  tar_args="";
+
+  if [ $ext = ".tar.gz" ] ; then
+    tar_args="xvzf"
+  elif [ $ext = ".tgz" ] ; then
+    tar_args="xvzf"
+  elif [ $ext = ".tar.bz2" ] ; then
+    tar_args="xvjf"
+  elif [ $ext = ".tar.bz" ] ; then
+    tar_args="xvjf"
+  elif [ $ext = ".tar" ] ; then
+    tar_args="xvf"
+  else 
+    echo "Warning: Unrecognized extension: $ext"
+    echo "Assuming tarred, gzipped file"
+    tar_args="xvjf"
+  fi
+
+
+  echo tar $tar_args $package$version$ext 
+  tar $tar_args $package$version$ext
+
+  if [ $? != 0 ] ; then
+    echo "      Error encountered running *untar* stage of $progname"
+    exit 1
+  fi
+}
+
+opt_run_tarclean()
+{
+  local type=$1
+  local package=$2
+  local version=$3
+
+  if [ $type = "1" ] ; then
+
+    local dir=$package$version
+    if [ -d $dir ] ; then
+      echo /bin/rm -rf $dir
+      /bin/rm -rf $dir
+
+      if [ $? != 0 ] ; then
+        echo "      Error encountered running *tarclean* stage of $progname"
+        exit 1
+      fi
+    else 
+      echo "Unable to find directory $dir"
+    fi
+  fi
+}
+
+opt_run_untar()
+{
+  local force_untar=$1
+  local auto_untar=$2
+  local package=$3
+  local version=$4
+
+  local ext="";
+
+  if [ ! -z "$5" ] ; then
+    ext=$5
+  else 
+    ext=".tar.gz"
+  fi
+
+  if [ $force_untar = "1" ] ; then
+    run_untar $package $version $ext
+  elif [ $auto_config = "1" ] ; then
+    if [ -d $package$version ] ; then
+      echo "Found untarred version of $package$version$ext => no need to untar"
+    else
+      run_untar $package $version $ext
+    fi
+  fi
+}
+
+
+opt_run_configure()
+{
+  local force_config=$1
+  local auto_config=$2
+  local package=$3
+  local version=$4
+  local prefix=$5
+  local opt_args="";
+
+  if [ ! -z "$6" ] ; then
+    opt_args=$6
+  fi
+
+  if [ $force_config = "1" ] ; then
+    ( echo "[pushd $package$version]"
+      cd $package$version ; \
+      echo ./configure --prefix="$prefix" $opt_args ; \
+      ./configure --prefix="$prefix" $opt_args )
+      echo "[popd]"
+    if [ $? != 0 ] ; then
+        echo "      Error encountered running *configure* stage of $progname"
+        exit 1
+    fi
+  else
+    if [ $auto_config = "1" ] ; then
+      echo "Found top-level for ${progname%.*} => no need to run ./configure"
+    fi
+  fi
+}
+
+opt_run_setuppy()
+{
+  local type=$1
+  local package=$2
+  local version=$3
+  local opt_target=""
+
+  if [ ! -z "$4" ] ; then
+    opt_target=$4
+  fi
+
+  if [ $type = "1" ] ; then
+    ( cd $package$version ; \
+      python setup.py $opt_target)
+
+    if [ $? != 0 ] ; then
+        echo "      Error encountered running *setup.py $target* stage of $progname"
+        exit 1
+    fi
+  fi
+}
+
+opt_run_make()
+{
+  local type=$1
+  local package=$2
+  local version=$3
+  local opt_target=""
+
+  if [ ! -z "$4" ] ; then
+    opt_target=$4
+  fi
+
+  if [ $type = "1" ] ; then
+    ( cd $package$version ; \
+      make $opt_target)
+
+    if [ $? != 0 ] ; then
+        echo "      Error encountered running *make $target* stage of $progname"
+        exit 1
+    fi
+  fi
+}
+
+opt_run_cmake()
+{
+  local type=$1
+  local package=$2
+  local version=$3
+  local subdir=$4
+  local opt_target=""
+
+  if [ ! -z "$5" ] ; then
+    opt_target=$5
+  fi
+
+  if [ $type = "1" ] ; then
+    ( cd $package$version/$subdir ; \
+      make $opt_target)
+
+    if [ $? != 0 ] ; then
+        echo "      Error encountered running *make $target* stage of $progname"
+        exit 1
+    fi
+  fi
+}
+
+force_untar=0
+auto_untar=0
+
+force_config=0
+auto_config=0
+
+compile=0
+install=0
+clean=0
+distclean=0
+tarclean=0
+
+if [ $# -gt 0 ] ; then
+  for cmd in $* ; do
+    echo $cmd
+    if   [ $cmd = "untar" ] ;     then force_untar=1
+    elif [ $cmd = "configure" ] ; then force_config=1
+    elif [ $cmd = "compile" ]   ; then compile=1
+    elif [ $cmd = "install" ]   ; then install=1  
+    elif [ $cmd = "clean" ]     ; then clean=1  
+    elif [ $cmd = "distclean" ] ; then distclean=1
+    elif [ $cmd = "tarclean" ] ;  then tarclean=1
+    fi
+  done
+else
+  # defaults
+  auto_untar=1
+  auto_config=1
+  compile=1
+  install=1
+  clean=0
+  distclean=0
+  tarclean=0
+fi
+
+if [ $auto_config = "1" ] ; then
+  if [ ! -e $package$version/Makefile ] ; then
+    force_config=1
+  fi
+fi
+
Index: gs2-extensions/diva/trunk/src/packages/CASCADE-MAKE.sh
===================================================================
--- gs2-extensions/diva/trunk/src/packages/CASCADE-MAKE.sh	(revision 30202)
+++ gs2-extensions/diva/trunk/src/packages/CASCADE-MAKE.sh	(revision 30202)
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+
+for d in cmdline ; do
+  echo "  Running $d/CASCADE-MAKE.sh $*"
+
+  (cd $d ; ./CASCADE-MAKE.sh $*)
+
+  if [ $? != 0 ] ; then
+    echo "  Error encountered running $d/CASCADE-COMPILE.sh"
+    exit 1
+  fi
+done
Index: gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE.sh
===================================================================
--- gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE.sh	(revision 30202)
+++ gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE.sh	(revision 30202)
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+if [ ! -d "$GEXTDIVA_INSTALLED/cmdline" ] ; then
+  echo "    Making directory \"$GEXTDIVA_INSTALLED/cmdline\""
+  mkdir "$GEXTDIVA_INSTALLED/cmdline"
+fi
+
+
+##for d in LIBTIFF LEPTONICA LIBPNG LIBJPEG TESSERACT OCROPUS ; do
+for d in LIBTIFF IIPSRV WEBAPP ; do
+  echo "    Running CASCADE-MAKE/$d.sh $*"
+
+  ./CASCADE-MAKE/$d.sh $*
+
+  if [ $? != 0 ] ; then
+    echo "    Error encountered running CASCADE-COMPILE/$d.sh"
+    exit 1
+  fi
+done
Index: gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/IIPSRV.sh
===================================================================
--- gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/IIPSRV.sh	(revision 30202)
+++ gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/IIPSRV.sh	(revision 30202)
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+package=iipsrv
+version=-0.9.9
+
+progname=$0
+
+source ../../bin/script/test-setup.bash
+source ../../lib/cascade-lib.bash
+
+prefix=$GEXTDIVA_INSTALLED/cmdline
+
+export PKG_CONFIG_PATH=$prefix/lib/pkgconfig
+
+export CFLAGS="-I$prefix/include"
+export LDFLAGS="-L$prefix/lib"
+
+opt_run_untar $force_untar $auto_untar $package $version 
+opt_run_configure $force_config $auto_config $package $version "$prefix" "--with-tiff-includes=$prefix/include --with-tiff-libraries=$prefix/lib"
+
+opt_run_make $compile   $package $version
+opt_run_make $install   $package $version "install"
+
+if [ $install = "1" ] ; then
+  cp "$package$version/src/iipsrv.fcgi" "$prefix/fcgi";
+fi
+
+opt_run_make $clean     $package $version "clean"
+opt_run_make $distclean $package $version "distclean"
+
+if [ $clean = "1" ] || [ $distclean = "1" ] ; then
+  if [ -f "$prefix/fcgi/iipsrv.fcgi" ] ; then
+    /bin/rm -rf "$prefix/fcgi/iipsrv.fcgi";
+  fi
+fi
+
+opt_run_tarclean $tarclean $package $version
+
+
Index: gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/LIBTIFF.sh
===================================================================
--- gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/LIBTIFF.sh	(revision 30202)
+++ gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/LIBTIFF.sh	(revision 30202)
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+package=tiff
+version=-4.0.4
+
+progname=$0
+
+source ../../bin/script/test-setup.bash
+source ../../lib/cascade-lib.bash
+
+prefix=$GEXTDIVA_INSTALLED/cmdline
+
+#export PKG_CONFIG_PATH=$prefix/lib/pkgconfig:${PKG_CONFIG_PATH};
+
+opt_run_untar $force_untar $auto_untar $package $version 
+opt_run_configure $force_config $auto_config $package $version "$prefix"
+
+opt_run_make $compile   $package $version
+opt_run_make $install   $package $version "install"
+opt_run_make $clean     $package $version "clean"
+opt_run_make $distclean $package $version "distclean"
+
+opt_run_tarclean $tarclean $package $version
+
+
Index: gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/PYTHON.sh
===================================================================
--- gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/PYTHON.sh	(revision 30202)
+++ gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/PYTHON.sh	(revision 30202)
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+package=Python
+version=-2.7
+
+progname=$0
+
+source ../../bin/script/test-setup.bash
+source ../../lib/cascade-lib.bash
+
+prefix=$GEXTDIVA_INSTALLED/cmdline
+
+opt_run_untar $force_untar $auto_untar $package $version 
+opt_run_configure $force_config $auto_config $package $version "$prefix"
+
+opt_run_make $compile   $package $version
+opt_run_make $install   $package $version "install"
+opt_run_make $clean     $package $version "clean"
+opt_run_make $distclean $package $version "distclean"
+
+opt_run_tarclean $tarclean $package $version
+
+
Index: gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/WEBAPP.sh
===================================================================
--- gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/WEBAPP.sh	(revision 30202)
+++ gs2-extensions/diva/trunk/src/packages/cmdline/CASCADE-MAKE/WEBAPP.sh	(revision 30202)
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+package=iipsr
+version=v
+
+progname=$0
+
+source ../../bin/script/test-setup.bash
+source ../../lib/cascade-lib.bash
+
+prefix=$GEXTDIVA_INSTALLED/cmdline
+
+opt_run_untar $force_untar $auto_untar $package $version
+
+WEBAPPS="$prefix/../../../../../packages/tomcat/webapps"
+
+if [ $install = "1" ] ; then
+  /bin/cp -rf "$package" "$WEBAPPS"
+fi
+
+if [ $clean = "1" ] || [ $distclean = "1" ] ; then
+  if [ -d "$WEBAPPS/$package" ] ; then
+    /bin/rm -rf "$WEBAPPS/$package";
+  fi
+fi
+
+opt_run_tarclean $tarclean $package $version
Index: gs2-extensions/diva/trunk/src/setup.bash
===================================================================
--- gs2-extensions/diva/trunk/src/setup.bash	(revision 30202)
+++ gs2-extensions/diva/trunk/src/setup.bash	(revision 30202)
@@ -0,0 +1,36 @@
+
+extdesc="the Diva.js Extension"
+
+if [ "x$GEXTDIVA" = "x" ] ; then
+  export GEXTDIVA=`pwd`
+  export GEXTDIVA_INSTALLED=$GEXTDIVA/installed
+
+  export PATH=$GEXTDIVA_INSTALLED/cmdline/bin:$GEXTDIVA_INSTALLED/cmdline/sbin:$PATH
+
+
+  if [ "x$LD_LIBRARY_PATH" = "x" ] ; then
+    export LD_LIBRARY_PATH=$GEXTDIVA_INSTALLED/cmdline/lib
+  else
+    export LD_LIBRARY_PATH=$GEXTDIVA_INSTALLED/cmdline/lib:$LD_LIBRARY_PATH
+  fi
+
+  if [ "x$GSDLEXTS" = "x" ] ; then
+    export GSDLEXTS=diva
+  else 
+    export GSDLEXTS=$GSDLEXTS:diva
+  fi
+
+
+  echo "+Your environment is now setup for $extdesc to Greenstone"
+else
+  echo "+Your environment is already setup for $extdesc to Greenstone"
+fi
+
+if [ -d installed/cmdline/fcgi ] ; then
+  echo "++ To start the IIP image server please execute:"
+  echo "++ cd $GEXTDIVA && ./start.sh"
+fi
+
+if [ -e devel.bash ] ; then
+  source devel.bash
+fi
Index: gs2-extensions/diva/trunk/src/start.sh
===================================================================
--- gs2-extensions/diva/trunk/src/start.sh	(revision 30202)
+++ gs2-extensions/diva/trunk/src/start.sh	(revision 30202)
@@ -0,0 +1,6 @@
+if [ -f "./installed/cmdline/fcgi/iipsrv.fcgi" ] ; then
+  echo "** Starting IIPSrv at 127.0.01:6667"
+  ./installed/cmdline/fcgi/iipsrv.fcgi --bind 127.0.0.1:6667
+else
+  echo "** Please build the Diva.js extension for Greenstone before running start.sh"
+fi
