[mapguide-commits] r6586 - trunk/Installer/scripts
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Sun Apr 22 09:29:05 EDT 2012
Author: jng
Date: 2012-04-22 06:29:05 -0700 (Sun, 22 Apr 2012)
New Revision: 6586
Modified:
trunk/Installer/scripts/mginstallubuntu.sh
trunk/Installer/scripts/mguninstallubuntu.sh
Log:
Spice up the ubuntu installer shell script with the dialog text UI library. The text-based interactive installer provides the user with choices of FDO providers to install
Modified: trunk/Installer/scripts/mginstallubuntu.sh
===================================================================
--- trunk/Installer/scripts/mginstallubuntu.sh 2012-04-22 12:47:10 UTC (rev 6585)
+++ trunk/Installer/scripts/mginstallubuntu.sh 2012-04-22 13:29:05 UTC (rev 6586)
@@ -1,74 +1,312 @@
#!/bin/bash
TEMPDIR=/tmp/build_mapguide
-URL="http://download.osgeo.org/mapguide/releases/2.2.0/RC1/ubuntu9"
-FDOVER=3.5.0-5667_i386
-MGVER=2.2.0-5197_i386
-#MAESTROVER=2.0.0-4650_i386
-# Create temporary download directory
-mkdir -p ${TEMPDIR}
-pushd ${TEMPDIR}
+#URL="http://download.osgeo.org/mapguide/releases/2.4.0/Test/ubuntu11"
+URL=http://192.168.0.2/downloads/ubuntu11
+FDOVER_MAJOR_MINOR=3.7
+FDOVER_MAJOR_MINOR_REV=${FDOVER_MAJOR_MINOR}.0
+FDOVER=${FDOVER_MAJOR_MINOR_REV}-4308_i386
+MGVER_MAJOR_MINOR=2.4
+MGVER_MAJOR_MINOR_REV=${MGVER_MAJOR_MINOR}.0
+MGVER=${MGVER_MAJOR_MINOR_REV}-6579_i386
+# Must have root
+if [[ $EUID -ne 0 ]]; then
+ echo "You must run this script with superuser privileges"
+ exit 1
+fi
+
# Install required packages
-apt-get -y install libexpat1 libssl0.9.8 odbcinst1debian1 unixodbc libcurl3 libxslt1.1
-apt-get -y install mono-runtime libmono-winforms2.0-cil
-apt-get -y install libmysqlclient15off
+apt-get -y install dialog libexpat1 libssl0.9.8 odbcinst unixodbc libcurl3 libxslt1.1
-# Resolve CentOS 5.4 / Ubuntu 9.10 shared lib differences with symlinks
-if [ ! -e /lib/libcrypto.so.6 ]; then
- ln -s /lib/libcrypto.so.0.9.8 /lib/libcrypto.so.6
-fi
+DIALOG=${DIALOG=dialog}
-if [ ! -e /lib/libssl.so.6 ]; then
- ln -s /lib/libssl.so.0.9.8 /lib/libssl.so.6
-fi
+fix_symlinks()
+{
+ echo "Fixing library symlinks for Ubuntu compatibility"
+ # Resolve CentOS 5.4 / Ubuntu 9.10 shared lib differences with symlinks
+ # Still applicable for Ubuntu 11.10
+ if [ ! -e /lib/libcrypto.so.6 ]; then
+ ln -s /lib/libcrypto.so.0.9.8 /lib/libcrypto.so.6
+ fi
-if [ ! -e /lib/libexpat.so.0 ]; then
- ln -s /lib/libexpat.so.1.5.2 /lib/libexpat.so.0
-fi
+ if [ ! -e /lib/libssl.so.6 ]; then
+ ln -s /lib/libssl.so.0.9.8 /lib/libssl.so.6
+ fi
-if [ ! -e /usr/lib/libldap-2.3.so.0 ]; then
- ln -s /usr/lib/libldap-2.4.so.2 /usr/lib/libldap-2.3.so.0
-fi
+ if [ ! -e /lib/libexpat.so.0 ]; then
+ ln -s /lib/libexpat.so.1.5.2 /lib/libexpat.so.0
+ fi
-if [ ! -e /usr/lib/liblber-2.3.so.0 ]; then
- ln -s /usr/lib/liblber-2.4.so.2 /usr/lib/liblber-2.3.so.0
-fi
+ if [ ! -e /usr/lib/libldap-2.3.so.0 ]; then
+ ln -s /usr/lib/libldap-2.4.so.2 /usr/lib/libldap-2.3.so.0
+ fi
+ if [ ! -e /usr/lib/liblber-2.3.so.0 ]; then
+ ln -s /usr/lib/liblber-2.4.so.2 /usr/lib/liblber-2.3.so.0
+ fi
+}
-# Download Ubuntu packages for FDO
-for file in core gdal kingoracle ogr postgis rdbms sdf shp sqlite wfs wms
-do
- wget -N ${URL}/fdo-${file}_${FDOVER}.deb
-done
+main()
+{
+ dialog_welcome
+ dialog_fdo_provider
+ start_install
+ install_mapguide_packages
+ post_install
+}
-# Download Ubuntu packages for MapGuide
-for file in common server webextensions httpd
-do
- wget -N ${URL}/mapguideopensource-${file}_${MGVER}.deb
-done
+dialog_welcome()
+{
+ $DIALOG --backtitle "MapGuide Open Source Ubuntu installer" \
+ --title "Welcome" --clear \
+ --yesno "Welcome to the MapGuide Open Source Ubuntu installer. Would you like to proceed?" 10 30
-# Download Ubuntu package for Maestro
-#wget -N ${URL}/mapguideopensource-maestro_${MAESTROVER}.deb
+ case $? in
+ 1)
+ echo "Cancelled"
+ exit 1;;
+ 255)
+ echo "Cancelled"
+ exit 255;;
+ esac
+}
-# Install Ubuntu packages for FDO
-for file in core gdal kingoracle ogr postgis rdbms sdf shp sqlite wfs wms
-do
- dpkg -E -G --install fdo-${file}_${FDOVER}.deb
-done
+dialog_fdo_provider()
+{
+ tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
+ trap "rm -f $tempfile" 0 1 2 5 15
-# Install Ubuntu packages for MapGuide
-for file in common server webextensions httpd
-do
- dpkg -E -G --install mapguideopensource-${file}_${MGVER}.deb
-done
+ # Disable RDBMS provider selection by default
+ $DIALOG --backtitle "MapGuide Open Source Ubuntu installer" \
+ --title "FDO Providers" --clear \
+ --checklist "Check the FDO Providers you want to install" 20 61 5 \
+ arcsde "OSGeo FDO Provider for ArcSDE" off \
+ sdf "OSGeo FDO Provider for SDF" ON \
+ shp "OSGeo FDO Provider for SHP" ON \
+ sqlite "OSGeo FDO Provider for SQLite" ON \
+ gdal "OSGeo FDO Provider for GDAL" ON \
+ odbc "OSGeo FDO Provider for ODBC" off \
+ ogr "OSGeo FDO Provider for OGR" ON \
+ kingoracle "OSGeo FDO Provider for Oracle" off \
+ postgis "OSGeo FDO Provider for PostgreSQL" off \
+ mysql "OSGeo FDO Provider for MySQL" off \
+ wfs "OSGeo FDO Provider for WFS" ON \
+ wms "OSGeo FDO Provider for WMS" ON 2> $tempfile
-# Create lock file directory for Server
-if [ ! -d /var/lock/mgserver ]; then
- mkdir /var/lock/mgserver
-fi
+ choice=`cat $tempfile | sed s/\"//g`
+ case $? in
+ 1)
+ echo "Cancelled"
+ exit 1;;
+ 255)
+ echo "Cancelled"
+ exit 255;;
+ esac
+}
-# Install Ubuntu Package for Maestro
-#dpkg -E -G --install mapguideopensource-maestro_${MAESTROVER}.deb
+start_install()
+{
+ fix_symlinks
+ # Include core and rdbms packages regardless of choice.
+ choice="core rdbms $choice"
+ # Download and install Ubuntu packages for FDO
+ for file in $choice
+ do
+ #echo "Downloading ${URL}/fdo-${file}_${FDOVER}.deb"
+ wget -N ${URL}/fdo-${file}_${FDOVER}.deb
+ #echo "Installing fdo-${file}_${FDOVER}.deb"
+ dpkg -E -G --install fdo-${file}_${FDOVER}.deb
+ done
+
+ # Nuke the old providers.xml, we're rebuiding it
+ providersxml=/usr/local/fdo-3.7.0/lib/providers.xml
+ echo -ne "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\" ?>" > ${providersxml}
+ echo -ne "\n<FeatureProviderRegistry>" >> ${providersxml}
+ for file in $choice
+ do
+ case $file in
+ arcsde)
+ echo "Registering ArcSDE Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.ArcSDE.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for ArcSDE</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>Read/write access to an ESRI ArcSDE-based data store, using Oracle and SQL Server</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libArcSDEProvider.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ gdal)
+ echo "Registering GDAL Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.Gdal.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for GDAL</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>FDO Provider for GDAL</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libGRFPProvider.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ kingoracle)
+ echo "Registering King Oracle Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.KingOracle.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for Oracle</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>Read/write access to spatial and attribute data in Oracle Spatial</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libKingOracleProvider.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ odbc)
+ echo "Registering ODBC Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.ODBC.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for ODBC</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>FDO Provider for ODBC</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libFdoODBC.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ ogr)
+ echo "Registering OGR Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.OGR.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for OGR</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>FDO Access to OGR Data Sources</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libOGRProvider.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ postgis)
+ echo "Registering PostgreSQL Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.PostgreSQL.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for PostgreSQL</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>Read/write access to PostgreSQL/PostGIS-based data store. Supports spatial data types and spatial query operations</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libFdoPostgreSQL.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ mysql)
+ echo "Registering MySQL Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.MySQL.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for MySQL</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>FDO Provider for MySQL</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libFdoMySQL.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ sdf)
+ echo "Registering SDF Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.SDF.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for SDF</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>Read/write access to Autodesk's spatial database format, a file-based geodatabase that supports multiple features/attributes, spatial indexing and file-locking</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libSDFProvider.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ shp)
+ echo "Registering SHP Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.SHP.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for SHP</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>Read/write access to spatial and attribute data in an ESRI SHP file</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libSHPProvider.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ sqlite)
+ echo "Registering SQLite Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.SQLite.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for SQLite</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>Read/write access to feature data in a SQLite file</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libSQLiteProvider.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ wfs)
+ echo "Registering WFS Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.WFS.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for WFS</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>Read access to OGC WFS-based data store</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libWFSProvider.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ wms)
+ echo "Registering WMS Provider"
+ echo -ne "\n <FeatureProvider>" >> ${providersxml}
+ echo -ne "\n <Name>OSGeo.WMS.${FDOVER_MAJOR_MINOR}</Name>" >> ${providersxml}
+ echo -ne "\n <DisplayName>OSGeo FDO Provider for WMS</DisplayName>" >> ${providersxml}
+ echo -ne "\n <Description>Read access to OGC WMS-based data store</Description>" >> ${providersxml}
+ echo -ne "\n <IsManaged>False</IsManaged>" >> ${providersxml}
+ echo -ne "\n <Version>${FDOVER_MAJOR_MINOR_REV}.0</Version>" >> ${providersxml}
+ echo -ne "\n <FeatureDataObjectsVersion>${FDOVER_MAJOR_MINOR_REV}.0</FeatureDataObjectsVersion>" >> ${providersxml}
+ echo -ne "\n <LibraryPath>libWMSProvider.so</LibraryPath>" >> ${providersxml}
+ echo -ne "\n </FeatureProvider>" >> ${providersxml}
+ ;;
+ esac
+ done
+ echo -ne "\n</FeatureProviderRegistry>" >> ${providersxml}
+}
+
+install_mapguide_packages()
+{
+ # Download Ubuntu packages for MapGuide
+ for file in common server webextensions httpd
+ do
+ echo "Downloading: ${URL}/mapguideopensource-${file}_${MGVER}.deb"
+ wget -N ${URL}/mapguideopensource-${file}_${MGVER}.deb
+ echo "Installing: mapguideopensource-${file}_${MGVER}.deb"
+ dpkg -E -G --install mapguideopensource-${file}_${MGVER}.deb
+ done
+}
+
+post_install()
+{
+ echo "Creating lock file directory for MapGuide Server"
+ # Create lock file directory for Server
+ if [ ! -d /var/lock/mgserver ]; then
+ mkdir /var/lock/mgserver
+ fi
+ echo "Starting httpd"
+ pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/apache2/bin
+ ./apachectl start
+ popd
+ echo "Starting mgserver"
+ pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/server/bin
+ ./mgserverd.sh
+ popd
+ echo "DONE!"
+}
+
+# Create temporary download directory
+mkdir -p ${TEMPDIR}
+pushd ${TEMPDIR}
+main
popd
-
Modified: trunk/Installer/scripts/mguninstallubuntu.sh
===================================================================
--- trunk/Installer/scripts/mguninstallubuntu.sh 2012-04-22 12:47:10 UTC (rev 6585)
+++ trunk/Installer/scripts/mguninstallubuntu.sh 2012-04-22 13:29:05 UTC (rev 6586)
@@ -1,5 +1,11 @@
#!/bin/bash
+# Must have root
+if [[ $EUID -ne 0 ]]; then
+ echo "You must run this script with superuser privileges"
+ exit 1
+fi
+
# Remove Ubuntu packages for MapGuide
for file in server webextensions httpd common
do
More information about the mapguide-commits
mailing list