[mapguide-commits] r8893 - in trunk/Tools/Vagrant: . centos/src_update centos/x64 centos/x86 scripts ubuntu/x64 ubuntu/x86
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon Mar 28 07:02:25 PDT 2016
Author: jng
Date: 2016-03-28 07:02:25 -0700 (Mon, 28 Mar 2016)
New Revision: 8893
Added:
trunk/Tools/Vagrant/scripts/provision_centos.sh
trunk/Tools/Vagrant/scripts/provision_ubuntu.sh
trunk/Tools/Vagrant/scripts/svn_update.sh
Modified:
trunk/Tools/Vagrant/build.bat
trunk/Tools/Vagrant/centos/src_update/Vagrantfile
trunk/Tools/Vagrant/centos/x64/Vagrantfile
trunk/Tools/Vagrant/centos/x86/Vagrantfile
trunk/Tools/Vagrant/scripts/build.sh
trunk/Tools/Vagrant/scripts/build_fdo.sh
trunk/Tools/Vagrant/scripts/dpkgfdoprovider.sh
trunk/Tools/Vagrant/scripts/dpkgmapguide.sh
trunk/Tools/Vagrant/ubuntu/x64/Vagrantfile
trunk/Tools/Vagrant/ubuntu/x86/Vagrantfile
Log:
This submission improves the vagrant-based build system by offloading most of the provisioning logic into separate provision_centos.sh and provision_ubuntu.sh shell scripts. Similarly, the src_update vagrantfile has offloaded its logic into a separate svn_update.sh
As a result, the base vagrantfiles for ubuntu and centos in both x86 and x64 now just call into the matching provisioning script with the desired MG/FDO platform and version number
Modified: trunk/Tools/Vagrant/build.bat
===================================================================
--- trunk/Tools/Vagrant/build.bat 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/build.bat 2016-03-28 14:02:25 UTC (rev 8893)
@@ -9,15 +9,15 @@
rem
rem Requires the tee utility, which is part of GNU on Windows (https://github.com/bmatzelle/gow)
-IF "%MG_SVN_UPDATE_SOURCES%"=="" SET MG_SVN_UPDATE_SOURCES=1
-IF "%BUILD_UBUNTU_32%"=="" SET BUILD_UBUNTU_32=1
+IF "%MG_SVN_UPDATE_SOURCES%"=="" SET MG_SVN_UPDATE_SOURCES=0
+IF "%BUILD_UBUNTU_32%"=="" SET BUILD_UBUNTU_32=0
IF "%BUILD_UBUNTU_64%"=="" SET BUILD_UBUNTU_64=1
-IF "%BUILD_CENTOS_32%"=="" SET BUILD_CENTOS_32=1
-IF "%BUILD_CENTOS_64%"=="" SET BUILD_CENTOS_64=1
-IF "%TEARDOWN_UBUNTU_32%"=="" SET TEARDOWN_UBUNTU_32=1
+IF "%BUILD_CENTOS_32%"=="" SET BUILD_CENTOS_32=0
+IF "%BUILD_CENTOS_64%"=="" SET BUILD_CENTOS_64=0
+IF "%TEARDOWN_UBUNTU_32%"=="" SET TEARDOWN_UBUNTU_32=0
IF "%TEARDOWN_UBUNTU_64%"=="" SET TEARDOWN_UBUNTU_64=1
-IF "%TEARDOWN_CENTOS_32%"=="" SET TEARDOWN_CENTOS_32=1
-IF "%TEARDOWN_CENTOS_64%"=="" SET TEARDOWN_CENTOS_64=1
+IF "%TEARDOWN_CENTOS_32%"=="" SET TEARDOWN_CENTOS_32=0
+IF "%TEARDOWN_CENTOS_64%"=="" SET TEARDOWN_CENTOS_64=0
SET ROOT=%CD%
SET COMPONENT=
echo **************** Build Summary *********************
@@ -29,6 +29,7 @@
echo ****************************************************
:prepare
echo [build]: Prepare scripts for provisioning
+copy /Y scripts\svn_update.sh %ROOT%\centos\src_update
if %BUILD_CENTOS_32% == 1 xcopy /S /Y /I scripts\* %ROOT%\centos\x86
if %BUILD_UBUNTU_32% == 1 xcopy /S /Y /I scripts\* %ROOT%\ubuntu\x86
if %BUILD_CENTOS_64% == 1 xcopy /S /Y /I scripts\* %ROOT%\centos\x64
Modified: trunk/Tools/Vagrant/centos/src_update/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/centos/src_update/Vagrantfile 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/centos/src_update/Vagrantfile 2016-03-28 14:02:25 UTC (rev 8893)
@@ -116,83 +116,8 @@
#
# chef.validation_client_name = "ORGNAME-validator"
- $script = <<SCRIPT
-BUILD_COMPONENT=
-check_build()
-{
- error=$?
- if [ $error -ne 0 ]; then
- echo "[error]: ${BUILD_COMPONENT} - Error build failed ($error)"
- exit $error
- fi
-}
-cd ~
-echo [provision]: Home directory is `pwd`
-echo [provision]: Checking directories
-HAVE_FDO=0
-HAVE_FDO_LIBS=0
-HAVE_MAPGUIDE=0
-MG_UNIT_TEST=1
-FDO_UNIT_TEST=1
-MAKE_FDO_SDK=0
-FDO_SRC_ROOT=~/fdo
-FDO_VER_MM=4.0
-FDO_VER_FULL=${FDO_VER_MM}.0
-MG_VER_MM=3.0
-MG_VER_FULL=${MG_VER_MM}.0
-FDO_SRC_DIR=trunk
-FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
-MG_SRC_ROOT=~/mapguide/trunk
-MG_SRC=$MG_SRC_ROOT/MgDev
-FDO_TARBALL=fdo-checkout.tar.gz
-MG_TARBALL=mapguide-checkout.tar.gz
-FDO_INST_PATH=/usr/local/fdo-${FDO_VER_FULL}
-MG_INST_PATH=/usr/local/mapguideopensource-${MG_VER_FULL}
-if [ -d $FDO_SRC ];
-then
- HAVE_FDO=1
-fi
-if [ -d $MG_SRC ];
-then
- HAVE_MAPGUIDE=1
-fi
-if [ $HAVE_FDO -eq 0 ];
-then
- echo [provision]: Extracting FDO working copy
- mkdir -p $FDO_SRC_ROOT
- tar -zxf /mapguide_sources/$FDO_TARBALL -C $FDO_SRC_ROOT
-fi
-if [ $HAVE_MAPGUIDE -eq 0 ];
-then
- echo [provision]: Extracting MapGuide working copy
- mkdir -p $MG_SRC_ROOT
- tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
-fi
-echo [provision]: svn update FDO
-BUILD_COMPONENT="svn update FDO"
-svn update $FDO_SRC
-check_build
-echo [provision]: svn update MapGuide
-BUILD_COMPONENT="svn update MapGuide"
-svn update $MG_SRC
-check_build
-if [ ! -d /mapguide_sources/updated ]; then
- sudo mkdir -p /mapguide_sources/updated
- cd $MG_SRC_ROOT
- echo [provision]: Updating mapguide source tarball
- tar -zcf $MG_TARBALL MgDev
- sudo mv $MG_TARBALL /mapguide_sources/updated
- cd $FDO_SRC_ROOT
- echo [provision]: Updating fdo source tarball
- tar -zcf $FDO_TARBALL $FDO_SRC_DIR
- sudo mv $FDO_TARBALL /mapguide_sources/updated
-else
- echo [provision]: Updated tarballs already exist. Doing nothing
-fi
-echo [provision]: Build complete
-SCRIPT
-
config.vm.provision "shell",
privileged: false,
- inline: $script
+ path: "svn_update.sh",
+ args: ["trunk", "trunk"]
end
Modified: trunk/Tools/Vagrant/centos/x64/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/centos/x64/Vagrantfile 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/centos/x64/Vagrantfile 2016-03-28 14:02:25 UTC (rev 8893)
@@ -116,230 +116,8 @@
#
# chef.validation_client_name = "ORGNAME-validator"
- $script = <<SCRIPT
-BUILD_COMPONENT=
-check_build()
-{
- error=$?
- if [ $error -ne 0 ]; then
- echo "[error]: ${BUILD_COMPONENT} - Error build failed ($error)"
- exit $error
- fi
-}
-check_test()
-{
- error=$?
- if [ $error -ne 0 ]; then
- echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)"
- echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)" >> ~/unit_test_status.log
- fi
-}
-if hash scons 2>/dev/null; then
- echo [provision]: We have scons
-else
- echo [provision]: We do not have scons. Installing it
- sudo rpm -Uvh /mapguide_sources/scons-2.3.0-1.noarch.rpm
- check_build
-fi
-cd ~
-echo [provision]: Home directory is `pwd`
-echo [provision]: Checking directories
-HAVE_FDO=0
-HAVE_FDO_LIBS=0
-HAVE_MAPGUIDE=0
-MG_UNIT_TEST=0
-FDO_UNIT_TEST=0
-MAKE_FDO_SDK=0
-SCRIPT_ROOT=~/scripts
-FDO_SRC_ROOT=~/fdo
-FDO_VER_MM=4.0
-FDO_VER_FULL=${FDO_VER_MM}.0
-MG_VER_MM=3.0
-MG_VER_FULL=${MG_VER_MM}.0
-FDO_SRC_DIR=trunk
-FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
-FDO_LIB_SRC=~/fdo_rdbms_thirdparty
-MG_SRC_ROOT=~/mapguide/trunk
-MG_SRC=$MG_SRC_ROOT/MgDev
-FDO_TARBALL=fdo-checkout.tar.gz
-MG_TARBALL=mapguide-checkout.tar.gz
-FDO_INST_PATH=/usr/local/fdo-${FDO_VER_FULL}
-MG_INST_PATH=/usr/local/mapguideopensource-${MG_VER_FULL}
-if [ -d $FDO_SRC ];
-then
- HAVE_FDO=1
-fi
-if [ -d $FDO_LIB_SRC ];
-then
- HAVE_FDO_LIBS=1
-fi
-if [ -d $MG_SRC ];
-then
- HAVE_MAPGUIDE=1
-fi
-if [ -f /usr/include/asm/atomic.h ];
-then
- echo [provision]: atomic.h exists. Doing nothing
-else
- echo [provision]: Copy atomic.h
- sudo mkdir -p /usr/include/asm
- sudo cp /mapguide_sources/atomic.h /usr/include/asm
-fi
-echo [provision]: Clean line endings
-sudo dos2unix /vagrant/*.sh
-sudo dos2unix /vagrant/*.pl
-sudo dos2unix /vagrant/*.txt
-echo [provision]: Copying shell scripts
-mkdir -p $SCRIPT_ROOT
-cp -f /vagrant/*.sh $SCRIPT_ROOT
-cp -f /vagrant/*.pl $SCRIPT_ROOT
-cp -f /vagrant/*.txt $SCRIPT_ROOT
-echo [provision]: Flip Ubuntu switch
-cd $SCRIPT_ROOT
-sed -i 's/UBUNTU=1/UBUNTU=0/g' build.sh
-sed -i 's/UBUNTU=1/UBUNTU=0/g' build_fdo.sh
-sed -i 's/FDO_PLATFORM=32/FDO_PLATFORM=64/g' build_fdo.sh
-sed -i 's/FDO_CPU=x86/FDO_CPU=x64/g' build_fdo.sh
-sed -i 's/FDO_BUILD_CPU=i386/FDO_BUILD_CPU=amd64/g' build_fdo.sh
-sed -i 's/LIB_DIRNAME=lib/LIB_DIRNAME=lib64/g' build_fdo.sh
-if [ $HAVE_FDO_LIBS -eq 0 ];
-then
- echo [provision]: Extracting FDO thirdparty libs
- tar -zxf /mapguide_sources/fdo_rdbms_thirdparty.tar.gz -C ~
-fi
-if [ $HAVE_FDO -eq 0 ];
-then
- echo [provision]: Extracting FDO working copy
- mkdir -p $FDO_SRC_ROOT
- tar -zxf /mapguide_sources/$FDO_TARBALL -C $FDO_SRC_ROOT
-fi
-if [ $HAVE_MAPGUIDE -eq 0 ];
-then
- echo [provision]: Extracting MapGuide working copy
- mkdir -p $MG_SRC_ROOT
- tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
-fi
-if [ -d /mapguide_sources/patches/fdo ];
-then
- echo [provision]: Applying FDO source patches
- cp -R /mapguide_sources/patches/fdo/* $FDO_SRC
-fi
-if [ -d /mapguide_sources/patches/mapguide ];
-then
- echo [provision]: Applying MapGuide source patches
- cp -R /mapguide_sources/patches/mapguide/* $MG_SRC
-fi
-echo [provision]: Making sure swig is executable
-chmod +x $MG_SRC/Oem/SWIGEx/Linux/swig
-cd ~/scripts
-BUILD_COMPONENT="FDO"
-sudo -E ./build_fdo.sh 2>&1 | tee ~/fdo_build.log
-check_build
-BUILD_COMPONENT="MapGuide"
-sudo -E ./build.sh 2>&1 | tee ~/mapguide_build.log
-check_build
-FDO_REV=`svn info $FDO_SRC | perl revnum.pl`
-MG_REV=`svn info $MG_SRC | perl revnum.pl`
-> ~/unit_test_status.log
-if [ $FDO_UNIT_TEST -eq 1 ];
-then
- echo [provision]: Unit test FDO
- BUILD_COMPONENT="Unit Test FDO Core"
- cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SHP Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SHP/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SDF Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SDF/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SQLite Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SQLite/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test GDAL Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/GDAL/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test OGR Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/OGR/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_ogr_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test WMS Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/WMS/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
- check_test
-fi
-if [ $MG_UNIT_TEST -eq 1 ];
-then
- echo [provision]: Unit test MapGuide
- BUILD_COMPONENT="Unit Test MapGuide Server"
- # HACK: Tile and Resource Service tests are known to freeze our VMs when driven by vagrant (why? who knows?
- # All we know is that those tests involve threads)
- # So test everything *but* the above services. If required, this can be tested under a manually controlled
- # VM
- #
- # build the individual targets that would comprise "make check" sans execution of unittest.sh
- cd $SCRIPT_ROOT/mgdev/Server/src/UnitTesting
- sudo make libMgUnitTesting.la
- cd $SCRIPT_ROOT/mgdev/Server/src/Core
- sudo make unittest.sh
- # Run the test suites individually except for TileService/ResourceService for reasons already stated
- for comp in CoordinateSystem FeatureService Geometry KmlService LogManager MappingService MdfModel Misc Performance RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
- do
- sudo -E ./mgserver test $comp UnitTestResults_${comp}.xml 2>&1 | tee ~/mapguide_${comp}_unit_test.log
- check_test
- if [ -f UnitTestResults_${comp}.xml ]; then
- sudo mv UnitTestResults_${comp}.xml ~/UnitTestResults_${comp}.xml
- fi
- done
- cd $SCRIPT_ROOT/mgdev
- sudo -E ./run_tests.sh --prefix ${MG_INST_PATH} --with-php --with-java --logpath ~
-fi
-cd $SCRIPT_ROOT
-echo [provision]: Make output dir
-sudo mkdir -p /vagrant/build
-echo [provision]: Copy log files to output dir
-sudo mv -f ~/*.log /vagrant/build
-echo [provision]: Copy tarballs to output dir
-sudo cp bin/*.tar.xz /vagrant/build
-sudo cp fdosdk-centos6-amd64-${FDO_VER_FULL}_${FDO_REV}.tar.xz /vagrant/build
-if [ $MAKE_FDO_SDK -eq 1 ]; then
- echo [provision]: Copy FDO SDK for Ubuntu builds
- # Copy SDK also to sources, so Ubuntu can pick it up
- sudo rm -f /mapguide_sources/fdosdk*.tar.xz
- sudo cp fdosdk-centos6-amd64-${FDO_VER_FULL}_${FDO_REV}.tar.xz /mapguide_sources
- # Record file name so Ubuntu knows what tarball to extract from
- sudo echo fdosdk-centos6-amd64-${FDO_VER_FULL}_${FDO_REV}.tar.xz > /mapguide_sources/fdosdk_filename
- sudo echo ${FDO_REV} > /mapguide_sources/fdosdk_rev
- # Export filelist to Ubuntu can deb package this SDK if needed
- sudo cp -R $SCRIPT_ROOT/fdo_build_area/install/filelist /mapguide_sources
-fi
-echo [provision]: Copy unit test logs to output dir
-sudo mv ~/unit_test_status.log /vagrant/build/unit_test_status.log
-sudo mv ~/fdo_*_unit_test.log /vagrant/build
-sudo mv ~/UnitTestResults_*.xml /vagrant/build
-echo [provision]: Copy install/uninstall scripts to output dir
-sudo cp /vagrant/mginstallcentos.sh /vagrant/build/mginstallcentos.sh
-sudo cp /vagrant/mguninstallcentos.sh /vagrant/build/mguninstallcentos.sh
-sudo sed -i 's/URL_PART="centos"/URL_PART="centos_x64"/g' /vagrant/build/mginstallcentos.sh
-sudo sed -i 's/FDOVER_REV=0/FDOVER_REV='"$FDO_REV"'/g' /vagrant/build/mginstallcentos.sh
-sudo sed -i 's/MGVER_REV=0/MGVER_REV='"$MG_REV"'/g' /vagrant/build/mginstallcentos.sh
-sudo sed -i 's/FDO_ARCH=i386/FDO_ARCH=amd64/g' /vagrant/build/mginstallcentos.sh
-sudo sed -i 's/MG_ARCH=i386/MG_ARCH=amd64/g' /vagrant/build/mginstallcentos.sh
-echo [provision]: Build complete
-SCRIPT
-
config.vm.provision "shell",
privileged: false,
- inline: $script
+ path: "provision_centos.sh",
+ args: [4, 1, 0, 3, 1, 0, "trunk", "trunk", "amd64"]
end
Modified: trunk/Tools/Vagrant/centos/x86/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/centos/x86/Vagrantfile 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/centos/x86/Vagrantfile 2016-03-28 14:02:25 UTC (rev 8893)
@@ -116,230 +116,8 @@
#
# chef.validation_client_name = "ORGNAME-validator"
- $script = <<SCRIPT
-BUILD_COMPONENT=
-check_build()
-{
- error=$?
- if [ $error -ne 0 ]; then
- echo "[error]: ${BUILD_COMPONENT} - Error build failed ($error)"
- exit $error
- fi
-}
-check_test()
-{
- error=$?
- if [ $error -ne 0 ]; then
- echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)"
- echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)" >> ~/unit_test_status.log
- fi
-}
-if hash scons 2>/dev/null; then
- echo [provision]: We have scons
-else
- echo [provision]: We do not have scons. Installing it
- sudo rpm -Uvh /mapguide_sources/scons-2.3.0-1.noarch.rpm
- check_build
-fi
-cd ~
-echo [provision]: Home directory is `pwd`
-echo [provision]: Checking directories
-HAVE_FDO=0
-HAVE_FDO_LIBS=0
-HAVE_MAPGUIDE=0
-MG_UNIT_TEST=0
-FDO_UNIT_TEST=0
-MAKE_FDO_SDK=0
-SCRIPT_ROOT=~/scripts
-FDO_SRC_ROOT=~/fdo
-FDO_VER_MM=4.0
-FDO_VER_FULL=${FDO_VER_MM}.0
-MG_VER_MM=3.0
-MG_VER_FULL=${MG_VER_MM}.0
-FDO_SRC_DIR=trunk
-FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
-FDO_LIB_SRC=~/fdo_rdbms_thirdparty
-MG_SRC_ROOT=~/mapguide/trunk
-MG_SRC=$MG_SRC_ROOT/MgDev
-FDO_TARBALL=fdo-checkout.tar.gz
-MG_TARBALL=mapguide-checkout.tar.gz
-FDO_INST_PATH=/usr/local/fdo-${FDO_VER_FULL}
-MG_INST_PATH=/usr/local/mapguideopensource-${MG_VER_FULL}
-if [ -d $FDO_SRC ];
-then
- HAVE_FDO=1
-fi
-if [ -d $FDO_LIB_SRC ];
-then
- HAVE_FDO_LIBS=1
-fi
-if [ -d $MG_SRC ];
-then
- HAVE_MAPGUIDE=1
-fi
-if [ -f /usr/include/asm/atomic.h ];
-then
- echo [provision]: atomic.h exists. Doing nothing
-else
- echo [provision]: Copy atomic.h
- sudo mkdir -p /usr/include/asm
- sudo cp /mapguide_sources/atomic.h /usr/include/asm
-fi
-#echo [provision]: Checking all tools and libs are in place
-#yum install -y gcc-* gd-* automake bison byacc flex doxygen expat expat-devel libtool libjpeg-devel libpng libpng-devel libxml2 libxml2-devel openssl curl curl-devel libxslt libxslt-devel subversion java-1.7.0-openjdk java-1.7.0-openjdk-devel ant dos2unix openssh-server openldap-devel alsa-lib-devel pcre-devel unixODBC-devel libcom_err-devel krb5-devel openssl-devel mysql-devel postgresql-devel unixODBC
-echo [provision]: Clean line endings
-sudo dos2unix /vagrant/*.sh
-sudo dos2unix /vagrant/*.pl
-sudo dos2unix /vagrant/*.txt
-echo [provision]: Copying shell scripts
-mkdir -p $SCRIPT_ROOT
-cp -f /vagrant/*.sh $SCRIPT_ROOT
-cp -f /vagrant/*.pl $SCRIPT_ROOT
-cp -f /vagrant/*.txt $SCRIPT_ROOT
-echo [provision]: Flip Ubuntu switch
-cd $SCRIPT_ROOT
-sed -i 's/UBUNTU=1/UBUNTU=0/g' build.sh
-sed -i 's/UBUNTU=1/UBUNTU=0/g' build_fdo.sh
-sed -i 's/FDO_PLATFORM=64/FDO_PLATFORM=32/g' build_fdo.sh
-sed -i 's/FDO_CPU=x64/FDO_CPU=x86/g' build_fdo.sh
-sed -i 's/FDO_BUILD_CPU=amd64/FDO_BUILD_CPU=i386/g' build_fdo.sh
-sed -i 's/LIB_DIRNAME=lib64/LIB_DIRNAME=lib/g' build_fdo.sh
-if [ $HAVE_FDO_LIBS -eq 0 ];
-then
- echo [provision]: Extracting FDO thirdparty libs
- tar -zxf /mapguide_sources/fdo_rdbms_thirdparty.tar.gz -C ~
-fi
-if [ $HAVE_FDO -eq 0 ];
-then
- echo [provision]: Extracting FDO working copy
- mkdir -p $FDO_SRC_ROOT
- tar -zxf /mapguide_sources/$FDO_TARBALL -C $FDO_SRC_ROOT
-fi
-if [ $HAVE_MAPGUIDE -eq 0 ];
-then
- echo [provision]: Extracting MapGuide working copy
- mkdir -p $MG_SRC_ROOT
- tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
-fi
-if [ -d /mapguide_sources/patches/fdo ];
-then
- echo [provision]: Applying FDO source patches
- cp -R /mapguide_sources/patches/fdo/* $FDO_SRC
-fi
-if [ -d /mapguide_sources/patches/mapguide ];
-then
- echo [provision]: Applying MapGuide source patches
- cp -R /mapguide_sources/patches/mapguide/* $MG_SRC
-fi
-echo [provision]: Making sure swig is executable
-chmod +x $MG_SRC/Oem/SWIGEx/Linux/swig
-cd ~/scripts
-BUILD_COMPONENT="FDO"
-sudo -E ./build_fdo.sh 2>&1 | tee ~/fdo_build.log
-check_build
-BUILD_COMPONENT="MapGuide"
-sudo -E ./build.sh 2>&1 | tee ~/mapguide_build.log
-check_build
-FDO_REV=`svn info $FDO_SRC | perl revnum.pl`
-MG_REV=`svn info $MG_SRC | perl revnum.pl`
-> ~/unit_test_status.log
-if [ $FDO_UNIT_TEST -eq 1 ];
-then
- echo [provision]: Unit test FDO
- BUILD_COMPONENT="Unit Test FDO Core"
- cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SHP Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SHP/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SDF Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SDF/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SQLite Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SQLite/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test GDAL Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/GDAL/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test OGR Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/OGR/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_ogr_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test WMS Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/WMS/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
- check_test
-fi
-if [ $MG_UNIT_TEST -eq 1 ];
-then
- echo [provision]: Unit test MapGuide
- BUILD_COMPONENT="Unit Test MapGuide Server"
- # HACK: Tile and Resource Service tests are known to freeze our VMs when driven by vagrant (why? who knows?
- # All we know is that those tests involve threads)
- # So test everything *but* the above services. If required, this can be tested under a manually controlled
- # VM
- #
- # build the individual targets that would comprise "make check" sans execution of unittest.sh
- cd $SCRIPT_ROOT/mgdev/Server/src/UnitTesting
- sudo make libMgUnitTesting.la
- cd $SCRIPT_ROOT/mgdev/Server/src/Core
- sudo make unittest.sh
- # Run the test suites individually except for TileService/ResourceService for reasons already stated
- for comp in CoordinateSystem FeatureService Geometry KmlService LogManager MappingService MdfModel Misc Performance RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
- do
- sudo -E ./mgserver test $comp UnitTestResults_${comp}.xml 2>&1 | tee ~/mapguide_${comp}_unit_test.log
- check_test
- if [ -f UnitTestResults_${comp}.xml ]; then
- sudo mv UnitTestResults_${comp}.xml ~/UnitTestResults_${comp}.xml
- fi
- done
- cd $SCRIPT_ROOT/mgdev
- sudo -E ./run_tests.sh --prefix ${MG_INST_PATH} --with-php --with-java --logpath ~
-fi
-cd $SCRIPT_ROOT
-echo [provision]: Make output dir
-sudo mkdir -p /vagrant/build
-echo [provision]: Copy log files to output dir
-sudo mv -f ~/*.log /vagrant/build
-echo [provision]: Copy tarballs to output dir
-sudo cp bin/*.tar.xz /vagrant/build
-sudo cp fdosdk-centos6-i386-${FDO_VER_FULL}_${FDO_REV}.tar.xz /vagrant/build
-if [ $MAKE_FDO_SDK -eq 1 ]; then
- echo [provision]: Copy FDO SDK for Ubuntu builds
- # Copy SDK also to sources, so Ubuntu can pick it up
- sudo rm -f /mapguide_sources/fdosdk*.tar.xz
- sudo cp fdosdk-centos6-i386-${FDO_VER_FULL}_${FDO_REV}.tar.zx /mapguide_sources
- # Record file name so Ubuntu knows what tarball to extract from
- sudo echo fdosdk-centos6-i386-${FDO_VER_FULL}_${FDO_REV}.tar.xz > /mapguide_sources/fdosdk_filename
- sudo echo ${FDO_REV} > /mapguide_sources/fdosdk_rev
- # Export filelist to Ubuntu can deb package this SDK if needed
- sudo cp -R $SCRIPT_ROOT/fdo_build_area/install/filelist /mapguide_sources
-fi
-echo [provision]: Copy unit test logs to output dir
-sudo mv ~/unit_test_status.log /vagrant/build/unit_test_status.log
-sudo mv ~/fdo_*_unit_test.log /vagrant/build
-sudo mv ~/UnitTestResults_*.xml /vagrant/build
-echo [provision]: Copy install/uninstall scripts to output dir
-sudo sed -i 's/URL_PART="centos"/URL_PART="centos_x86"/g' /vagrant/build/mginstallcentos.sh
-sudo cp /vagrant/mginstallcentos.sh /vagrant/build/mginstallcentos.sh
-sudo cp /vagrant/mguninstallcentos.sh /vagrant/build/mguninstallcentos.sh
-sudo sed -i 's/FDOVER_REV=0/FDOVER_REV='"$FDO_REV"'/g' /vagrant/build/mginstallcentos.sh
-sudo sed -i 's/MGVER_REV=0/MGVER_REV='"$MG_REV"'/g' /vagrant/build/mginstallcentos.sh
-echo [provision]: Build complete
-SCRIPT
-
config.vm.provision "shell",
privileged: false,
- inline: $script
+ path: "provision_centos.sh",
+ args: [4, 1, 0, 3, 1, 0, "trunk", "trunk", "i386"]
end
Modified: trunk/Tools/Vagrant/scripts/build.sh
===================================================================
--- trunk/Tools/Vagrant/scripts/build.sh 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/scripts/build.sh 2016-03-28 14:02:25 UTC (rev 8893)
@@ -1,13 +1,21 @@
#!/bin/bash
# Global vars for this script. Modify as necessary
-APIVERSION=3.0
-BUILDNUM=${APIVERSION}.0
+MG_VER_MAJOR=${MG_VER_MAJOR:-3}
+MG_VER_MINOR=${MG_VER_MINOR:-1}
+MG_VER_REV=${MG_VER_REV:-0}
+
+APIVERSION=${MG_VER_MAJOR}.${MG_VER_MINOR}
+BUILDNUM=${APIVERSION}.${MG_VER_REV}
BUILDROOT=`pwd`
-MGCPUPLATFORM=i386
+MGCPUPLATFORM=${MG_ARCH:-i386}
MGDEBUG=0
-INSTALLROOT=/usr/local/mapguideopensource-${BUILDNUM}
-#INSTALLROOT=/usr/local/mapguideopensource-trunk
+INSTALLROOT=
+if [ -z "${MG_INST_PATH}" ]; then
+ INSTALLROOT=/usr/local/mapguideopensource-${BUILDNUM}
+else
+ INSTALLROOT=${MG_INST_PATH}
+fi
LOCKFILEDIR=/var/lock/mgserver
MGSOURCE=${BUILDROOT}/mgdev
VERFILE=${MGSOURCE}/Common/ProductVersion.h
@@ -17,29 +25,33 @@
SVNROOT=/home/vagrant
#SVNROOT="svn://svn.bld.mgproto.net"
#SVNROOT="http://svn.osgeo.org"
-SVNRELPATH=/mapguide/trunk/MgDev
+SVNRELPATH=/mapguide/branches/${MG_VER_MAJOR}.${MG_VER_MINOR}/MgDev
+if [ "${MG_BRANCH}" = "trunk" ]; then
+ SVNRELPATH=/mapguide/trunk/MgDev
+fi
MY_MAKE_OPTS="-j 2"
-UBUNTU=0
+UBUNTU=${UBUNTU:-0}
PRESERVE_BUILD_ROOT=1
echo "******************************************************************"
+echo " MapGuide Version is: ${BUILDNUM}"
echo " MapGuide will be installed to: ${INSTALLROOT}"
-echo " SVN Source is: ${SVNROOT}${SVNRELPATH}"
-echo " Make Options: ${MY_MAKE_OPTS}"
-echo " Is Ubuntu?: ${UBUNTU}"
-echo " Debug Build?: ${MGDEBUG}"
-echo " Preserving the build dir?: ${PRESERVE_BUILD_ROOT}"
-echo " JAVA_HOME: ${JAVA_HOME}"
+echo " SVN Source is: ${SVNROOT}${SVNRELPATH}"
+echo " Make Options: ${MY_MAKE_OPTS}"
+echo " Is Ubuntu?: ${UBUNTU}"
+echo " Debug Build?: ${MGDEBUG}"
+echo " Preserving the build dir?: ${PRESERVE_BUILD_ROOT}"
+echo " JAVA_HOME: ${JAVA_HOME}"
echo "******************************************************************"
# Need JAVA_HOME for JavaApi
if [ ! -d ${JAVA_HOME} ];
then
-echo "ERROR: Environment variable JAVA_HOME not set. Please set this enviroment variable first"
-exit
+ echo "ERROR: Environment variable JAVA_HOME not set. Please set this enviroment variable first"
+ exit 1
fi
-check_build()
+mg_check_build()
{
error=$?
if [ $error -ne 0 ]; then
@@ -134,26 +146,29 @@
pushd ${MGSOURCE}/Oem/LinuxApt
BUILD_COMPONENT="LinuxApt"
./build_apt.sh --prefix ${INSTALLROOT} --with-tomcat
-check_build
+mg_check_build
popd
-echo "Building Oem"
BUILD_COMPONENT="Oem"
-if [ $(uname -m) = "x86_64" ]; then
+if [ "${MG_ARCH}" = "amd64" ] || [ $(uname -m) = "x86_64" ]; then
if [ ${MGDEBUG} -eq 1 ]; then
+ echo "Building Oem (64-bit, debug)"
./build_oem.sh --prefix ${INSTALLROOT} --build 64 --config debug
- check_build
+ mg_check_build
else
+ echo "Building Oem (64-bit, release)"
./build_oem.sh --prefix ${INSTALLROOT} --build 64
- check_build
+ mg_check_build
fi
else
if [ ${MGDEBUG} -eq 1 ]; then
+ echo "Building Oem (32-bit, debug)"
./build_oem.sh --prefix ${INSTALLROOT} --config debug
- check_build
+ mg_check_build
else
+ echo "Building Oem (32-bit, release)"
./build_oem.sh --prefix ${INSTALLROOT}
- check_build
+ mg_check_build
fi
fi
@@ -163,7 +178,7 @@
BUILD_COMPONENT="Fusion"
ant prepare
ant compress
-check_build
+mg_check_build
popd
echo "Building MapGuide"
@@ -172,7 +187,7 @@
libtoolize --force
automake --add-missing --copy
autoconf
-if [ $(uname -m) = "x86_64" ]; then
+if [ "${MG_ARCH}" = "amd64" ] || [ $(uname -m) = "x86_64" ]; then
MGCPUPLATFORM=amd64
if [ ${MGDEBUG} -eq 1 ]; then
./configure --disable-optimized --enable-silent-rules --enable-64bit --prefix=${INSTALLROOT}
@@ -188,14 +203,28 @@
fi
fi
make $MY_MAKE_OPTS
-check_build
+mg_check_build
BUILD_COMPONENT="MapGuide Install"
make install
-check_build
+mg_check_build
end_time=`date +%s`
echo "Preparing binaries for packaging"
+
+# Strip the heavy CS-Map dictionary data files. The geoid stuff is not used and the NSRS ones can be packaged separately
+echo "Removing unused CS-Map dictionary files"
+pushd ${INSTALLROOT}/share/gis/coordsys
+rm -rf WW15MGH.GRD
+popd
+pushd ${INSTALLROOT}/share/gis/coordsys/Usa
+rm -rf Geoid03
+rm -rf Geoid96
+rm -rf Geoid99
+rm -rf NSRS2007
+rm -rf NSRS2011
+popd
+
# Prepare binaries for packaging by removing unnecessary
# .la and .a files and stripping unneeded symbols from the binaries
pushd ${INSTALLROOT}
@@ -229,4 +258,4 @@
tar -Jcf bin/mapguideopensource-${BUILDNUM}.${REVISION}.${MGCPUPLATFORM}.tar.xz ${INSTALLROOT} ${LOCKFILEDIR}
fi
echo "Build complete!"
-echo Main build execution: `expr $end_time - $start_time` s
+echo MapGuide main build execution: `expr $end_time - $start_time` s
Modified: trunk/Tools/Vagrant/scripts/build_fdo.sh
===================================================================
--- trunk/Tools/Vagrant/scripts/build_fdo.sh 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/scripts/build_fdo.sh 2016-03-28 14:02:25 UTC (rev 8893)
@@ -12,29 +12,56 @@
FDO_BUILD_COMPONENT=
# FDO version. Make sure this matches your FDO build source
-FDO_VER_MAJOR=4
-FDO_VER_MINOR=0
-FDO_VER_REV=0
+FDO_VER_MAJOR=${FDO_VER_MAJOR:-4}
+FDO_VER_MINOR=${FDO_VER_MINOR:-1}
+FDO_VER_REV=${FDO_VER_REV:-0}
+# FDO install directory
+FDO_VER_FULL=${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}
+
+# Ubuntu distro switch
+UBUNTU=${UBUNTU:-0}
+
+if [ -z "${FDO_INST_PATH}" ]; then
+ FDO_INST=/usr/local/fdo-${FDO_VER_FULL}
+else
+ FDO_INST=${FDO_INST_PATH}
+fi
+
# Extra flags to pass to FDO build scripts
-FDO_BUILD_FLAGS=
+FDO_BUILD_CONF=
if [ $FDO_DEBUG -eq 1 ]; then
- FDO_BUILD_FLAGS="--config debug"
+ FDO_BUILD_CONF=debug
else
- FDO_BUILD_FLAGS="--config release"
+ FDO_BUILD_CONF=release
fi
-UBUNTU=0
-FDO_CPU=x86
-FDO_PLATFORM=32
-FDO_BUILD_CPU=i386
-LIB_DIRNAME=lib
+FDO_CPU=
+FDO_BUILD_CPU=
+FDO_LIB_DIRNAME=
+FDO_PLATFORM=
+if [ "${ARCH}" = "amd64" ] || [ $(uname -m) = "x86_64" ]; then
+ FDO_CPU=x64
+ FDO_BUILD_CPU=amd64
+ FDO_LIB_DIRNAME=lib64
+ FDO_PLATFORM=64
+else
+ FDO_CPU=x86
+ FDO_BUILD_CPU=i386
+ FDO_LIB_DIRNAME=lib
+ FDO_PLATFORM=32
+fi
-# FDO install directory
-FDO_VER_FULL=${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}
-FDO_INST=/usr/local/fdo-${FDO_VER_FULL}
+echo "******************************************************************"
+echo "FDO version: ${FDO_VER_FULL}"
+echo "FDO Platform: ${FDO_PLATFORM}"
+echo "CPU: ${FDO_CPU}"
+echo "Arch: ${FDO_BUILD_CPU}"
+echo "Lib Dir: ${FDO_LIB_DIRNAME}"
+echo "FDO will be installed to: ${FDO_INST}"
+echo "******************************************************************"
-check_build()
+check_fdo_build()
{
error=$?
if [ $error -ne 0 ]; then
@@ -104,7 +131,10 @@
CMAKE=0
MY_HOME_DIR=/home/vagrant
-FDO_SRC=${MY_HOME_DIR}/fdo/trunk
+FDO_SRC=${MY_HOME_DIR}/fdo/branches/${FDO_VER_MAJOR}.${FDO_VER_MINOR}
+if [ "${FDO_BRANCH}" = "trunk" ]; then
+ FDO_SRC=${MY_HOME_DIR}/fdo/trunk
+fi
#FDO_SRC=http://svn.osgeo.org/fdo/trunk
FDO_BUILD_AREA=${BUILDROOT}/fdo_build_area
FDO_FILELIST=${FDO_BUILD_AREA}/install/filelist
@@ -133,14 +163,14 @@
echo "[info]: PostgreSQL include path already symlinked"
fi
# PostgreSQL lib path
- if [ ! -d ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/pgsql/$FDO_CPU/$LIB_DIRNAME ];
+ if [ ! -d ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/pgsql/$FDO_CPU/$FDO_LIB_DIRNAME ];
then
if [ ${FDO_PLATFORM} -eq 32 ];
then
- ln -s /usr/lib ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/pgsql/$FDO_CPU/$LIB_DIRNAME
+ ln -s /usr/lib ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/pgsql/$FDO_CPU/$FDO_LIB_DIRNAME
echo "[info]: Symlinked PostgreSQL lib path (x86)"
else
- ln -s /usr/lib ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/pgsql/$FDO_CPU/$LIB_DIRNAME
+ ln -s /usr/lib ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/pgsql/$FDO_CPU/$FDO_LIB_DIRNAME
echo "[info]: Symlinked PostgreSQL lib path (x64)"
fi
else
@@ -156,14 +186,14 @@
echo "[info]: MySQL include path already symlinked"
fi
# MySQL lib path
- if [ ! -d ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/mysql/$FDO_CPU/$LIB_DIRNAME ];
+ if [ ! -d ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/mysql/$FDO_CPU/$FDO_LIB_DIRNAME ];
then
if [ ${FDO_PLATFORM} -eq 32 ];
then
- ln -s /usr/lib/i386-linux-gnu ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/mysql/$FDO_CPU/$LIB_DIRNAME
+ ln -s /usr/lib/i386-linux-gnu ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/mysql/$FDO_CPU/$FDO_LIB_DIRNAME
echo "[info]: Symlinked MySQL lib path (x86)"
else
- ln -s /usr/lib/x86_64-linux-gnu ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/mysql/$FDO_CPU/$LIB_DIRNAME
+ ln -s /usr/lib/x86_64-linux-gnu ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/mysql/$FDO_CPU/$FDO_LIB_DIRNAME
echo "[info]: Symlinked MySQL lib path (x64)"
fi
else
@@ -383,20 +413,20 @@
fi
echo "******* Environment variable summary *********"
- echo "FDO: $FDO"
- echo "FDOUTILITIES: $FDOUTILITIES"
- echo "FDOTHIRDPARTY: $FDOTHIRDPARTY"
- echo "SDEHOME: $SDEHOME"
- echo "FDOGDAL: $FDOGDAL"
- echo "FDOODBC: $FDOODBC"
- echo "PYTHON_LIB_PATH: $PYTHON_LIB_PATH"
+ echo "FDO: $FDO"
+ echo "FDOUTILITIES: $FDOUTILITIES"
+ echo "FDOTHIRDPARTY: $FDOTHIRDPARTY"
+ echo "SDEHOME: $SDEHOME"
+ echo "FDOGDAL: $FDOGDAL"
+ echo "FDOODBC: $FDOODBC"
+ echo "PYTHON_LIB_PATH: $PYTHON_LIB_PATH"
echo "PYTHON_INCLUDE_PATH: $PYTHON_INCLUDE_PATH"
- echo "XERCESCROOT: $XERCESCROOT"
- echo "XALANCROOT: $XALANCROOT"
- echo "NLSDIR: $NLSDIR"
- echo "FDOORACLE: $FDOORACLE"
- echo "FDOMYSQL: $FDOMYSQL"
- echo "FDOPOSTGRESQL: $FDOPOSTGRESQL"
+ echo "XERCESCROOT: $XERCESCROOT"
+ echo "XALANCROOT: $XALANCROOT"
+ echo "NLSDIR: $NLSDIR"
+ echo "FDOORACLE: $FDOORACLE"
+ echo "FDOMYSQL: $FDOMYSQL"
+ echo "FDOPOSTGRESQL: $FDOPOSTGRESQL"
echo "**********************************************"
echo ""
}
@@ -408,15 +438,16 @@
fi
echo "***********************************************************"
-echo " FDO Source: ${FDO_SRC}"
-echo " FDO Build Area: ${FDO_BUILD_AREA}"
-echo " FDO Install dir: ${FDO_INST}"
-echo " FDO CPU Target: ${FDO_BUILD_CPU}"
-echo " CMake build: ${CMAKE}"
-echo " Is Ubuntu?: ${UBUNTU}"
-echo " Debug build: ${FDO_DEBUG}"
+echo " FDO Source: ${FDO_SRC}"
+echo " FDO Build Area: ${FDO_BUILD_AREA}"
+echo " FDO Install dir: ${FDO_INST}"
+echo " FDO CPU Target: ${FDO_BUILD_CPU}"
+echo " FDO build config: ${FDO_BUILD_CONF}"
+echo " CMake build: ${CMAKE}"
+echo " Is Ubuntu?: ${UBUNTU}"
+echo " Debug build: ${FDO_DEBUG}"
echo " Export from local SVN checkout: ${LOCALSVN}"
-echo " Re-use previous build area: ${PRESERVE_BUILD_ROOT}"
+echo " Re-use previous build area: ${PRESERVE_BUILD_ROOT}"
echo "***********************************************************"
start_time=`date +%s`
REVISION=`svn info ${FDO_SRC} | perl revnum.pl`
@@ -473,8 +504,8 @@
cd ${FDO_BUILD_AREA}
FDO_BUILD_COMPONENT="FDO Thirdparty"
-./build_thirdparty.sh -b ${FDO_PLATFORM} ${FDO_BUILD_FLAGS}
-check_build
+./build_thirdparty.sh -b ${FDO_PLATFORM} --c ${FDO_BUILD_CONF}
+check_fdo_build
if [ ${CMAKE} -eq 1 ];
then
@@ -486,17 +517,17 @@
for comp in fdocore fdo utilities
do
FDO_BUILD_COMPONENT="$comp (automake)"
- ./build_linux.sh --w $comp --p ${FDO_INST} --b ${FDO_PLATFORM} ${FDO_BUILD_FLAGS}
+ ./build_linux.sh --w $comp --p ${FDO_INST} --b ${FDO_PLATFORM} --c ${FDO_BUILD_CONF}
update_fdocore_file_list
- check_build
+ check_fdo_build
done
for comp in shp sqlite gdal ogr wfs wms rdbms kingoracle sdf
do
save_current_file_list
FDO_BUILD_COMPONENT="$comp (automake)"
- ./build_linux.sh --w $comp --p ${FDO_INST} --b ${FDO_PLATFORM} ${FDO_BUILD_FLAGS}
+ ./build_linux.sh --w $comp --p ${FDO_INST} --b ${FDO_PLATFORM} --c ${FDO_BUILD_CONF}
update_provider_file_list $comp
- check_build
+ check_fdo_build
done
fi
check_fdo_lib libFDO
@@ -528,7 +559,7 @@
FDO_BUILD_COMPONENT="Remove .la files from ${FDO_INST}"
# Remove .la files from lib directory
rm -f ${FDO_INST}/lib/*.la
- check_build
+ check_fdo_build
FDO_BUILD_COMPONENT="Strip so symbols and remove execute flag"
# Remove unneeded symbols from files in the lib directory
@@ -538,13 +569,13 @@
strip --strip-unneeded ${file}
chmod a-x ${file}
done
- check_build
+ check_fdo_build
FDO_BUILD_COMPONENT="Make tarball"
# Create a binary tar ball for FDO
cd ${FDO_INST}
tar -Jcf ${BUILDROOT}/fdosdk-centos6-${FDO_BUILD_CPU}-${FDO_VER_FULL}_${REVISION}.tar.xz *
- check_build
+ check_fdo_build
if [ ${UBUNTU} -eq 1 ];
then
@@ -557,4 +588,4 @@
fi
echo "[info]: FDO build complete!"
-echo Main build execution time: `expr $end_time - $start_time` s
+echo FDO main build execution time: `expr $end_time - $start_time` s
Modified: trunk/Tools/Vagrant/scripts/dpkgfdoprovider.sh
===================================================================
--- trunk/Tools/Vagrant/scripts/dpkgfdoprovider.sh 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/scripts/dpkgfdoprovider.sh 2016-03-28 14:02:25 UTC (rev 8893)
@@ -12,13 +12,16 @@
# symbols - symbols file generated from dpkg-gensymbols
#
+FDO_VER_MAJOR=${FDO_VER_MAJOR:-4}
+FDO_VER_MINOR=${FDO_VER_MINOR:-1}
+FDO_VER_REV=${FDO_VER_REV:-0}
# Read and validate command line parameters
#
-ARCH="$1"
+FDO_ARCH="$1"
BUILDNUM="$2"
PROVIDER="$3"
-if test -z ${ARCH}; then
+if test -z ${FDO_ARCH}; then
echo Usage: dpkgfdoprovider.sh [i386/amd64] svnChangeNum provider
exit -1
fi
@@ -27,7 +30,7 @@
exit -1
fi
-case $ARCH in
+case $FDO_ARCH in
i386)
echo Setting architecture to i386.
;;
@@ -62,7 +65,7 @@
BUILDROOT=`pwd`
-FDOBUILD=3.9.0
+FDOBUILD=${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}
FDO=usr/local/fdo-${FDOBUILD}
ROOT=${BUILDROOT}/debian/fdo${PROVIDER}
CPROOT=${ROOT}/${FDO}
@@ -138,5 +141,5 @@
# And move resulting debian package and lintian results to build directory
dpkg-deb -Zlzma --build ${ROOT}
lintian -i debian/fdo${PROVIDER}.deb > tmp/fdo${PROVIDER}.lintian
-mv debian/fdo${PROVIDER}.deb bin/fdo-${PROVIDER}_${FDOBUILD}-${BUILDNUM}_${ARCH}.deb
+mv debian/fdo${PROVIDER}.deb bin/fdo-${PROVIDER}_${FDOBUILD}-${BUILDNUM}_${FDO_ARCH}.deb
popd
Modified: trunk/Tools/Vagrant/scripts/dpkgmapguide.sh
===================================================================
--- trunk/Tools/Vagrant/scripts/dpkgmapguide.sh 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/scripts/dpkgmapguide.sh 2016-03-28 14:02:25 UTC (rev 8893)
@@ -6,51 +6,59 @@
# changelog - generated changelog file
# substvars - subst params created by dpkg-shlibdeps
# mapguideplatformbase/ - packaging directory for common MapGuide components
-# usr/local/mapguideopensource-3.0.0/ - copied tree for common components
+# usr/local/mapguideopensource-x.y.z/ - copied tree for common components
# DEBIAN/
# control - control file generated from dpkg-gencontrol
# symbols - symbols file generated from dpkg-gensymbols
#
# mapguidecommon/ - packaging directory for common MapGuide components
-# usr/local/mapguideopensource-3.0.0/ - copied tree for common components
+# usr/local/mapguideopensource-x.y.z/ - copied tree for common components
# DEBIAN/
# control - control file generated from dpkg-gencontrol
# symbols - symbols file generated from dpkg-gensymbols
#
# mapguidecoordsys/ - packaging directory for CS-Map coordinate system dictionaries
-# usr/local/mapguideopensource-3.0.0/ - copied tree for common components
+# usr/local/mapguideopensource-x.y.z/ - copied tree for common components
# DEBIAN/
# control - control file generated from dpkg-gencontrol
# symbols - symbols file generated from dpkg-gensymbols
#
# mapguidecoordsyslite/ - packaging directory for CS-Map coordinate system dictionaries
-# usr/local/mapguideopensource-3.0.0/ - copied tree for common components
+# usr/local/mapguideopensource-x.y.z/ - copied tree for common components
# DEBIAN/
# control - control file generated from dpkg-gencontrol
# symbols - symbols file generated from dpkg-gensymbols
#
# mapguideserver/ - packaging directory for MapGuide Server
-# usr/local/mapguideopensource-3.0.0/ - copied tree for Server
+# usr/local/mapguideopensource-x.y.z/ - copied tree for Server
# DEBIAN/
# control - control file generated from dpkg-gencontrol
# symbols - symbols file generated from dpkg-gensymbols
#
# mapguidewebextensions/ - packaging directory for Web Extensions
-# usr/local/mapguideopensource-3.0.0/ - copied tree for Web Extensions
+# usr/local/mapguideopensource-x.y.z/ - copied tree for Web Extensions
# DEBIAN/
# control - control file generated from dpkg-gencontrol
# symbols - symbols file generated from dpkg-gensymbols
#
# mapguidehttpd/ - packaging directory for Apache Bundle
-# usr/local/mapguideopensource-3.0.0/ - copied tree for Apache bundle
+# usr/local/mapguideopensource-x.y.z/ - copied tree for Apache bundle
# DEBIAN/
# control - control file generated from dpkg-gencontrol
# symbols - symbols file generated from dpkg-gensymbols
#
+MG_VER_MAJOR=${MG_VER_MAJOR:-3}
+MG_VER_MINOR=${MG_VER_MINOR:-1}
+MG_VER_REV=${MG_VER_REV:-0}
+
+FDO_VER_MAJOR=${FDO_VER_MAJOR:-4}
+FDO_VER_MINOR=${FDO_VER_MINOR:-1}
+FDO_VER_REV=${FDO_VER_REV:-0}
+
BUILDROOT=`pwd`
-MGBUILD=3.0.0
-FDOBUILD=3.9.0
+MGBUILD=${MG_VER_MAJOR}.${MG_VER_MINOR}.${MG_VER_REV}
+FDOBUILD=${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}
MGINST=usr/local/mapguideopensource-${MGBUILD}
CPROOT=${ROOT}/${MGINST}
Added: trunk/Tools/Vagrant/scripts/provision_centos.sh
===================================================================
--- trunk/Tools/Vagrant/scripts/provision_centos.sh (rev 0)
+++ trunk/Tools/Vagrant/scripts/provision_centos.sh 2016-03-28 14:02:25 UTC (rev 8893)
@@ -0,0 +1,298 @@
+#!/bin/bash
+
+# provision_centos.sh
+#
+# Entry point provisioning shell script
+#
+# Expected environment (set up by vagrant)
+#
+# - Vagrant folder (path of the Vagrantfile) mounted as: /vagrant
+# - Source folder mounted as: /mapguide_sources
+# - Contains tarballs for MapGuide/FDO
+#
+# Required arguments (to be passed in by the Vagrantfile):
+#
+# $1 - FDO major version
+# $2 - FDO minor version
+# $3 - FDO patch version
+# $4 - MG major version
+# $5 - MG minor version
+# $6 - MG patch version
+# $7 - FDO branch name (trunk|major.minor)
+# $8 - MG branch name (trunk|major.minor)
+# $9 - architecture (i386|amd64)
+
+echo "*****************************************************"
+echo " Arg check"
+echo " 1 - ${1}"
+echo " 2 - ${2}"
+echo " 3 - ${3}"
+echo " 4 - ${4}"
+echo " 5 - ${5}"
+echo " 6 - ${6}"
+echo " 7 - ${7}"
+echo " 8 - ${8}"
+echo " 9 - ${9}"
+echo "*****************************************************"
+
+# FDO version
+FDO_VER_MAJOR=${1}
+FDO_VER_MINOR=${2}
+FDO_VER_REV=${3}
+
+# MG version
+MG_VER_MAJOR=${4}
+MG_VER_MINOR=${5}
+MG_VER_REV=${6}
+
+FDO_BRANCH=${7}
+MG_BRANCH=${8}
+
+MG_ARCH=${9}
+UBUNTU=0
+
+FDO_PLATFORM=
+if [ "${MG_ARCH}" = "amd64" ]; then
+ FDO_PLATFORM=64
+elif [ "${MG_ARCH}" = "i386" ]; then
+ FDO_PLATFORM=32
+else
+ echo "[error]: Unknown ARCH (${MG_ARCH})"
+ exit 1
+fi
+
+# Export vars for sub-shells
+export FDO_VER_MAJOR
+export FDO_VER_MINOR
+export FDO_VER_REV
+export MG_VER_MAJOR
+export MG_VER_MINOR
+export MG_VER_REV
+export FDO_BRANCH
+export MG_BRANCH
+export MG_ARCH
+export UBUNTU
+
+BUILD_COMPONENT=
+check_build()
+{
+ error=$?
+ if [ $error -ne 0 ]; then
+ echo "[error]: ${BUILD_COMPONENT} - Error build failed ($error)"
+ exit $error
+ fi
+}
+check_test()
+{
+ error=$?
+ if [ $error -ne 0 ]; then
+ echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)"
+ echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)" >> ~/unit_test_status.log
+ fi
+}
+if hash scons 2>/dev/null; then
+ echo [provision]: We have scons
+else
+ echo [provision]: We do not have scons. Installing it
+ sudo rpm -Uvh /mapguide_sources/scons-2.3.0-1.noarch.rpm
+ check_build
+fi
+cd ~
+HAVE_FDO=0
+HAVE_FDO_LIBS=0
+HAVE_MAPGUIDE=0
+MG_UNIT_TEST=0
+FDO_UNIT_TEST=0
+MAKE_FDO_SDK=0
+SCRIPT_ROOT=~/scripts
+FDO_SRC_ROOT=~/fdo
+FDO_SRC_DIR=${FDO_BRANCH}
+FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
+FDO_LIB_SRC=~/fdo_rdbms_thirdparty
+MG_SRC_ROOT=~/mapguide/branches/${MG_BRANCH}
+if [ "${MG_BRANCH}" = "trunk" ]; then
+ MG_SRC_ROOT=~/mapguide/trunk
+fi
+MG_SRC=$MG_SRC_ROOT/MgDev
+FDO_TARBALL=fdo-checkout-${FDO_BRANCH}.tar.gz
+MG_TARBALL=mapguide-checkout-${MG_BRANCH}.tar.gz
+FDO_INST_PATH=/usr/local/fdo-${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}
+MG_INST_PATH=/usr/local/mapguideopensource-${MG_VER_MAJOR}.${MG_VER_MINOR}.${MG_VER_REV}
+
+echo "********************************************************************************"
+echo Home directory is `pwd`
+echo "FDO version: ${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}"
+echo "FDO branch: ${FDO_BRANCH}"
+echo "MG version: ${MG_VER_MAJOR}.${MG_VER_MINOR}.${MG_VER_REV}"
+echo "MG branch: ${MG_BRANCH}"
+echo "Build target: centos - ${MG_ARCH}"
+echo "Checking directories"
+echo "********************************************************************************"
+
+if [ -d $FDO_SRC ];
+then
+ HAVE_FDO=1
+fi
+if [ -d $FDO_LIB_SRC ];
+then
+ HAVE_FDO_LIBS=1
+fi
+if [ -d $MG_SRC ];
+then
+ HAVE_MAPGUIDE=1
+fi
+if [ -f /usr/include/asm/atomic.h ];
+then
+ echo [provision]: atomic.h exists. Doing nothing
+else
+ echo [provision]: Copy atomic.h
+ sudo mkdir -p /usr/include/asm
+ sudo cp /mapguide_sources/atomic.h /usr/include/asm
+fi
+echo [provision]: Clean line endings
+sudo dos2unix /vagrant/*.sh
+sudo dos2unix /vagrant/*.pl
+sudo dos2unix /vagrant/*.txt
+echo [provision]: Copying shell scripts
+mkdir -p $SCRIPT_ROOT
+cp -f /vagrant/*.sh $SCRIPT_ROOT
+cp -f /vagrant/*.pl $SCRIPT_ROOT
+cp -f /vagrant/*.txt $SCRIPT_ROOT
+cd $SCRIPT_ROOT
+if [ $HAVE_FDO_LIBS -eq 0 ];
+then
+ echo [provision]: Extracting FDO thirdparty libs
+ tar -zxf /mapguide_sources/fdo_rdbms_thirdparty.tar.gz -C ~
+fi
+if [ $HAVE_FDO -eq 0 ];
+then
+ echo [provision]: Extracting FDO working copy
+ mkdir -p $FDO_SRC_ROOT
+ tar -zxf /mapguide_sources/$FDO_TARBALL -C $FDO_SRC_ROOT
+fi
+if [ $HAVE_MAPGUIDE -eq 0 ];
+then
+ echo [provision]: Extracting MapGuide working copy
+ mkdir -p $MG_SRC_ROOT
+ tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
+fi
+if [ -d /mapguide_sources/patches/fdo ];
+then
+ echo [provision]: Applying FDO source patches
+ cp -R /mapguide_sources/patches/fdo/* $FDO_SRC
+fi
+if [ -d /mapguide_sources/patches/mapguide ];
+then
+ echo [provision]: Applying MapGuide source patches
+ cp -R /mapguide_sources/patches/mapguide/* $MG_SRC
+fi
+echo [provision]: Making sure swig is executable
+chmod +x $MG_SRC/Oem/SWIGEx/Linux/swig
+cd ~/scripts
+BUILD_COMPONENT="FDO"
+sudo -E ./build_fdo.sh 2>&1 | tee ~/fdo_build.log
+check_build
+BUILD_COMPONENT="MapGuide"
+sudo -E ./build.sh 2>&1 | tee ~/mapguide_build.log
+check_build
+FDO_REV=`svn info $FDO_SRC | perl revnum.pl`
+MG_REV=`svn info $MG_SRC | perl revnum.pl`
+> ~/unit_test_status.log
+if [ $FDO_UNIT_TEST -eq 1 ];
+then
+ echo [provision]: Unit test FDO
+ BUILD_COMPONENT="Unit Test FDO Core"
+ cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test SHP Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/SHP/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test SDF Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/SDF/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test SQLite Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/SQLite/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test GDAL Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/GDAL/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test OGR Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/OGR/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_ogr_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test WMS Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/WMS/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
+ check_test
+fi
+if [ $MG_UNIT_TEST -eq 1 ];
+then
+ echo [provision]: Unit test MapGuide
+ BUILD_COMPONENT="Unit Test MapGuide Server"
+ # HACK: Tile and Resource Service tests are known to freeze our VMs when driven by vagrant (why? who knows?
+ # All we know is that those tests involve threads)
+ # So test everything *but* the above services. If required, this can be tested under a manually controlled
+ # VM
+ #
+ # build the individual targets that would comprise "make check" sans execution of unittest.sh
+ cd $SCRIPT_ROOT/mgdev/Server/src/UnitTesting
+ sudo make libMgUnitTesting.la
+ cd $SCRIPT_ROOT/mgdev/Server/src/Core
+ sudo make unittest.sh
+ # Run the test suites individually except for TileService/ResourceService for reasons already stated
+ for comp in CoordinateSystem FeatureService Geometry KmlService LogManager MappingService MdfModel Misc Performance RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
+ do
+ sudo -E ./mgserver test $comp UnitTestResults_${comp}.xml 2>&1 | tee ~/mapguide_${comp}_unit_test.log
+ check_test
+ if [ -f UnitTestResults_${comp}.xml ]; then
+ sudo mv UnitTestResults_${comp}.xml ~/UnitTestResults_${comp}.xml
+ fi
+ done
+ cd $SCRIPT_ROOT/mgdev
+ sudo -E ./run_tests.sh --prefix ${MG_INST_PATH} --with-php --with-java --logpath ~
+fi
+cd $SCRIPT_ROOT
+echo [provision]: Make output dir
+sudo mkdir -p /vagrant/build
+echo [provision]: Copy log files to output dir
+sudo mv -f ~/*.log /vagrant/build
+echo [provision]: Copy tarballs to output dir
+sudo cp bin/*.tar.xz /vagrant/build
+sudo cp fdosdk-centos6-${MG_ARCH}-${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}_${FDO_REV}.tar.xz /vagrant/build
+if [ $MAKE_FDO_SDK -eq 1 ]; then
+ echo [provision]: Copy FDO SDK for Ubuntu builds
+ # Copy SDK also to sources, so Ubuntu can pick it up
+ sudo rm -f /mapguide_sources/fdosdk*.tar.xz
+ sudo cp fdosdk-centos6-${MG_ARCH}-${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}_${FDO_REV}.tar.xz /mapguide_sources
+ # Record file name so Ubuntu knows what tarball to extract from
+ sudo echo fdosdk-centos6-${MG_ARCH}-${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}_${FDO_REV}.tar.xz > /mapguide_sources/fdosdk_filename
+ sudo echo ${FDO_REV} > /mapguide_sources/fdosdk_rev
+ # Export filelist to Ubuntu can deb package this SDK if needed
+ sudo cp -R $SCRIPT_ROOT/fdo_build_area/install/filelist /mapguide_sources
+fi
+echo [provision]: Copy unit test logs to output dir
+sudo mv ~/unit_test_status.log /vagrant/build/unit_test_status.log
+sudo mv ~/fdo_*_unit_test.log /vagrant/build
+sudo mv ~/UnitTestResults_*.xml /vagrant/build
+echo [provision]: Copy install/uninstall scripts to output dir
+DISTNAME=centos_x86
+if [ "${MG_ARCH}" -eq "amd64" ]; then
+ DISTNAME=centos_x64
+fi
+sudo sed -i 's/URL_PART="centos"/URL_PART='"$DISTNAME"'/g' /vagrant/build/mginstallcentos.sh
+sudo cp /vagrant/mginstallcentos.sh /vagrant/build/mginstallcentos.sh
+sudo cp /vagrant/mguninstallcentos.sh /vagrant/build/mguninstallcentos.sh
+sudo sed -i 's/FDOVER_REV=0/FDOVER_REV='"$FDO_REV"'/g' /vagrant/build/mginstallcentos.sh
+sudo sed -i 's/MGVER_REV=0/MGVER_REV='"$MG_REV"'/g' /vagrant/build/mginstallcentos.sh
+echo [provision]: Build complete
\ No newline at end of file
Added: trunk/Tools/Vagrant/scripts/provision_ubuntu.sh
===================================================================
--- trunk/Tools/Vagrant/scripts/provision_ubuntu.sh (rev 0)
+++ trunk/Tools/Vagrant/scripts/provision_ubuntu.sh 2016-03-28 14:02:25 UTC (rev 8893)
@@ -0,0 +1,305 @@
+#!/bin/bash
+
+# provision_centos.sh
+#
+# Entry point provisioning shell script
+#
+# Expected environment (set up by vagrant)
+#
+# - Vagrant folder (path of the Vagrantfile) mounted as: /vagrant
+# - Source folder mounted as: /mapguide_sources
+# - Contains tarballs for MapGuide/FDO
+#
+# Required arguments (to be passed in by the Vagrantfile):
+#
+# $1 - FDO major version
+# $2 - FDO minor version
+# $3 - FDO patch version
+# $4 - MG major version
+# $5 - MG minor version
+# $6 - MG patch version
+# $7 - FDO branch name (trunk|major.minor)
+# $8 - MG branch name (trunk|major.minor)
+# $9 - architecture (i386|amd64)
+
+echo "*****************************************************"
+echo " Arg check"
+echo " 1 - ${1}"
+echo " 2 - ${2}"
+echo " 3 - ${3}"
+echo " 4 - ${4}"
+echo " 5 - ${5}"
+echo " 6 - ${6}"
+echo " 7 - ${7}"
+echo " 8 - ${8}"
+echo " 9 - ${9}"
+echo "*****************************************************"
+
+# FDO version
+FDO_VER_MAJOR=${1}
+FDO_VER_MINOR=${2}
+FDO_VER_REV=${3}
+
+# MG version
+MG_VER_MAJOR=${4}
+MG_VER_MINOR=${5}
+MG_VER_REV=${6}
+
+FDO_BRANCH=${7}
+MG_BRANCH=${8}
+
+MG_ARCH=${9}
+UBUNTU=1
+
+FDO_PLATFORM=
+if [ "${MG_ARCH}" = "amd64" ]; then
+ FDO_PLATFORM=64
+elif [ "${MG_ARCH}" = "i386" ]; then
+ FDO_PLATFORM=32
+else
+ echo "[error]: Unknown ARCH (${MG_ARCH})"
+ exit 1
+fi
+
+# Export vars for sub-shells
+export FDO_VER_MAJOR
+export FDO_VER_MINOR
+export FDO_VER_REV
+export MG_VER_MAJOR
+export MG_VER_MINOR
+export MG_VER_REV
+export FDO_BRANCH
+export MG_BRANCH
+export MG_ARCH
+export UBUNTU
+
+BUILD_COMPONENT=
+check_build()
+{
+ error=$?
+ if [ $error -ne 0 ]; then
+ echo "[error]: ${BUILD_COMPONENT} - Error build failed ($error)"
+ exit $error
+ fi
+}
+check_test()
+{
+ error=$?
+ if [ $error -ne 0 ]; then
+ echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)"
+ echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)" >> ~/unit_test_status.log
+ fi
+}
+if hash scons 2>/dev/null; then
+ echo [provision]: We have scons
+else
+ echo [provision]: We do not have scons. Installing it
+ sudo rpm -Uvh /mapguide_sources/scons-2.3.0-1.noarch.rpm
+ check_build
+fi
+cd ~
+HAVE_FDO=0
+HAVE_FDO_LIBS=0
+HAVE_MAPGUIDE=0
+MG_UNIT_TEST=0
+FDO_UNIT_TEST=0
+MAKE_FDO_SDK=0
+SCRIPT_ROOT=~/scripts
+FDO_SRC_ROOT=~/fdo
+FDO_SRC_DIR=${FDO_BRANCH}
+FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
+FDO_LIB_SRC=~/fdo_rdbms_thirdparty
+MG_SRC_ROOT=~/mapguide/branches/${MG_BRANCH}
+if [ "${MG_BRANCH}" = "trunk" ]; then
+ MG_SRC_ROOT=~/mapguide/trunk
+fi
+MG_SRC=$MG_SRC_ROOT/MgDev
+FDO_TARBALL=fdo-checkout-${FDO_BRANCH}.tar.gz
+MG_TARBALL=mapguide-checkout-${MG_BRANCH}.tar.gz
+FDO_INST_PATH=/usr/local/fdo-${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}
+MG_INST_PATH=/usr/local/mapguideopensource-${MG_VER_MAJOR}.${MG_VER_MINOR}.${MG_VER_REV}
+
+echo "********************************************************************************"
+echo Home directory is `pwd`
+echo "FDO version: ${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}"
+echo "FDO branch: ${FDO_BRANCH}"
+echo "MG version: ${MG_VER_MAJOR}.${MG_VER_MINOR}.${MG_VER_REV}"
+echo "MG branch: ${MG_BRANCH}"
+echo "Build target: centos - ${MG_ARCH}"
+echo "Checking directories"
+echo "********************************************************************************"
+
+if [ -d $FDO_SRC ];
+then
+ HAVE_FDO=1
+fi
+if [ -d $FDO_LIB_SRC ];
+then
+ HAVE_FDO_LIBS=1
+fi
+if [ -d $MG_SRC ];
+then
+ HAVE_MAPGUIDE=1
+fi
+if [ -f /usr/include/asm/atomic.h ];
+then
+ echo [provision]: atomic.h exists. Doing nothing
+else
+ echo [provision]: Copy atomic.h
+ sudo mkdir -p /usr/include/asm
+ sudo cp /mapguide_sources/atomic.h /usr/include/asm
+fi
+echo [provision]: Clean line endings
+sudo dos2unix /vagrant/*.sh
+sudo dos2unix /vagrant/*.pl
+sudo dos2unix /vagrant/*.txt
+echo [provision]: Copying shell scripts
+mkdir -p $SCRIPT_ROOT
+cp -f /vagrant/*.sh $SCRIPT_ROOT
+cp -f /vagrant/*.pl $SCRIPT_ROOT
+cp -f /vagrant/*.txt $SCRIPT_ROOT
+cd $SCRIPT_ROOT
+if [ $HAVE_FDO_LIBS -eq 0 ];
+then
+ echo [provision]: Extracting FDO thirdparty libs
+ tar -zxf /mapguide_sources/fdo_rdbms_thirdparty.tar.gz -C ~
+fi
+if [ $HAVE_FDO -eq 0 ];
+then
+ echo [provision]: Extracting FDO working copy
+ mkdir -p $FDO_SRC_ROOT
+ tar -zxf /mapguide_sources/$FDO_TARBALL -C $FDO_SRC_ROOT
+fi
+if [ $HAVE_MAPGUIDE -eq 0 ];
+then
+ echo [provision]: Extracting MapGuide working copy
+ mkdir -p $MG_SRC_ROOT
+ tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
+fi
+if [ -d /mapguide_sources/patches/fdo ];
+then
+ echo [provision]: Applying FDO source patches
+ cp -R /mapguide_sources/patches/fdo/* $FDO_SRC
+fi
+if [ -d /mapguide_sources/patches/mapguide ];
+then
+ echo [provision]: Applying MapGuide source patches
+ cp -R /mapguide_sources/patches/mapguide/* $MG_SRC
+fi
+echo [provision]: Making sure swig is executable
+chmod +x $MG_SRC/Oem/SWIGEx/Linux/swig
+cd ~/scripts
+BUILD_COMPONENT="FDO"
+sudo -E ./build_fdo.sh 2>&1 | tee ~/fdo_build.log
+check_build
+BUILD_COMPONENT="MapGuide"
+sudo -E ./build.sh 2>&1 | tee ~/mapguide_build.log
+check_build
+FDO_REV=`svn info $FDO_SRC | perl revnum.pl`
+MG_REV=`svn info $MG_SRC | perl revnum.pl`
+BUILD_COMPONENT="MapGuide deb packages"
+./dpkgmapguide.sh $MG_ARCH $MG_REV 2>&1 | tee ~/dpkg_mapguide.log
+check_build
+> ~/unit_test_status.log
+if [ $FDO_UNIT_TEST -eq 1 ];
+then
+ echo [provision]: Unit test FDO
+ BUILD_COMPONENT="Unit Test FDO Core"
+ cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test SHP Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/SHP/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test SDF Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/SDF/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test SQLite Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/SQLite/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test GDAL Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/GDAL/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test OGR Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/OGR/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_ogr_unit_test.log
+ check_test
+ BUILD_COMPONENT="Unit Test WMS Provider"
+ cd $SCRIPT_ROOT/fdo_build_area/Providers/WMS/Src/UnitTest
+ sudo rm providers.xml
+ sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
+ check_test
+fi
+if [ $MG_UNIT_TEST -eq 1 ];
+then
+ echo [provision]: Unit test MapGuide
+ BUILD_COMPONENT="Unit Test MapGuide Server"
+ # HACK: Tile and Resource Service tests are known to freeze our VMs when driven by vagrant (why? who knows?
+ # All we know is that those tests involve threads)
+ # So test everything *but* the above services. If required, this can be tested under a manually controlled
+ # VM
+ #
+ # build the individual targets that would comprise "make check" sans execution of unittest.sh
+ cd $SCRIPT_ROOT/mgdev/Server/src/UnitTesting
+ sudo make libMgUnitTesting.la
+ cd $SCRIPT_ROOT/mgdev/Server/src/Core
+ sudo make unittest.sh
+ # Run the test suites individually except for TileService/ResourceService for reasons already stated
+ for comp in CoordinateSystem FeatureService Geometry KmlService LogManager MappingService MdfModel Misc Performance RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
+ do
+ sudo -E ./mgserver test $comp UnitTestResults_${comp}.xml 2>&1 | tee ~/mapguide_${comp}_unit_test.log
+ check_test
+ if [ -f UnitTestResults_${comp}.xml ]; then
+ sudo mv UnitTestResults_${comp}.xml ~/UnitTestResults_${comp}.xml
+ fi
+ done
+ cd $SCRIPT_ROOT/mgdev
+ sudo -E ./run_tests.sh --prefix ${MG_INST_PATH} --with-php --with-java --logpath ~
+fi
+cd $SCRIPT_ROOT
+echo [provision]: Make output dir
+sudo mkdir -p /vagrant/build
+echo [provision]: Copy log files to output dir
+sudo mv -f ~/*.log /vagrant/build
+echo [provision]: Copy tarballs to output dir
+sudo cp bin/*.tar.xz /vagrant/build
+sudo cp fdosdk-centos6-${MG_ARCH}-${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}_${FDO_REV}.tar.xz /vagrant/build
+if [ $MAKE_FDO_SDK -eq 1 ]; then
+ echo [provision]: Copy FDO SDK for Ubuntu builds
+ # Copy SDK also to sources, so Ubuntu can pick it up
+ sudo rm -f /mapguide_sources/fdosdk*.tar.xz
+ sudo cp fdosdk-centos6-${MG_ARCH}-${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}_${FDO_REV}.tar.xz /mapguide_sources
+ # Record file name so Ubuntu knows what tarball to extract from
+ sudo echo fdosdk-centos6-${MG_ARCH}-${FDO_VER_MAJOR}.${FDO_VER_MINOR}.${FDO_VER_REV}_${FDO_REV}.tar.xz > /mapguide_sources/fdosdk_filename
+ sudo echo ${FDO_REV} > /mapguide_sources/fdosdk_rev
+ # Export filelist to Ubuntu can deb package this SDK if needed
+ sudo cp -R $SCRIPT_ROOT/fdo_build_area/install/filelist /mapguide_sources
+fi
+echo [provision]: Copy FDO deb packages
+sudo cp fdo_build_area/install/bin/*.deb /vagrant/build
+echo [provision]: Copy MapGuide deb packages
+sudo cp bin/*.deb /vagrant/build
+echo [provision]: Copy unit test logs to output dir
+sudo mv ~/unit_test_status.log /vagrant/build/unit_test_status.log
+sudo mv ~/fdo_*_unit_test.log /vagrant/build
+sudo mv ~/UnitTestResults_*.xml /vagrant/build
+echo [provision]: Copy install/uninstall scripts to output dir
+DISTNAME=ubuntu12_x86
+if [ "${MG_ARCH}" = "amd64" ]; then
+ DISTNAME=ubuntu12_x64
+fi
+sudo sed -i 's/URL_PART="ubuntu12"/URL_PART='"$DISTNAME"'/g' /vagrant/build/mginstallubuntu.sh
+sudo cp /vagrant/mginstallubuntu.sh /vagrant/build/mginstallubuntu.sh
+sudo cp /vagrant/mguninstallubuntu.sh /vagrant/build/mguninstallubuntu.sh
+sudo sed -i 's/FDOVER_REV=0/FDOVER_REV='"$FDO_REV"'/g' /vagrant/build/mginstallubuntu.sh
+sudo sed -i 's/MGVER_REV=0/MGVER_REV='"$MG_REV"'/g' /vagrant/build/mginstallubuntu.sh
+echo [provision]: Build complete
\ No newline at end of file
Added: trunk/Tools/Vagrant/scripts/svn_update.sh
===================================================================
--- trunk/Tools/Vagrant/scripts/svn_update.sh (rev 0)
+++ trunk/Tools/Vagrant/scripts/svn_update.sh 2016-03-28 14:02:25 UTC (rev 8893)
@@ -0,0 +1,96 @@
+#!/bin/bash
+
+# svn_update.sh
+#
+# Entry point provisioning shell script
+#
+# Expected environment (set up by vagrant)
+#
+# - Vagrant folder (path of the Vagrantfile) mounted as: /vagrant
+# - Source folder mounted as: /mapguide_sources
+# - Contains tarballs for MapGuide/FDO
+#
+# Required arguments (to be passed in by the Vagrantfile):
+#
+# $1 - FDO branch name (trunk|major.minor)
+# $2 - MG branch name (trunk|major.minor)
+
+echo "*****************************************************"
+echo " Arg check"
+echo " 1 - ${1}"
+echo " 2 - ${2}"
+echo "*****************************************************"
+
+FDO_BRANCH=${1}
+MG_BRANCH=${2}
+
+BUILD_COMPONENT=
+check_build()
+{
+ error=$?
+ if [ $error -ne 0 ]; then
+ echo "[error]: ${BUILD_COMPONENT} - Error build failed ($error)"
+ exit $error
+ fi
+}
+cd ~
+echo [provision]: Home directory is `pwd`
+echo [provision]: Checking directories
+
+HAVE_FDO=0
+HAVE_MAPGUIDE=0
+SCRIPT_ROOT=~/scripts
+FDO_SRC_ROOT=~/fdo
+FDO_SRC_DIR=${FDO_BRANCH}
+FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
+FDO_LIB_SRC=~/fdo_rdbms_thirdparty
+MG_SRC_ROOT=~/mapguide/branches/${MG_BRANCH}
+if [ "${MG_BRANCH}" = "trunk" ]; then
+ MG_SRC_ROOT=~/mapguide/trunk
+fi
+MG_SRC=$MG_SRC_ROOT/MgDev
+FDO_TARBALL=fdo-checkout-${FDO_BRANCH}.tar.gz
+MG_TARBALL=mapguide-checkout-${MG_BRANCH}.tar.gz
+
+if [ -d $FDO_SRC ];
+then
+ HAVE_FDO=1
+fi
+if [ -d $MG_SRC ];
+then
+ HAVE_MAPGUIDE=1
+fi
+if [ $HAVE_FDO -eq 0 ];
+then
+ echo [provision]: Extracting FDO working copy
+ mkdir -p $FDO_SRC_ROOT
+ tar -zxf /mapguide_sources/$FDO_TARBALL -C $FDO_SRC_ROOT
+fi
+if [ $HAVE_MAPGUIDE -eq 0 ];
+then
+ echo [provision]: Extracting MapGuide working copy
+ mkdir -p $MG_SRC_ROOT
+ tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
+fi
+echo [provision]: svn update FDO
+BUILD_COMPONENT="svn update FDO"
+svn update $FDO_SRC
+check_build
+echo [provision]: svn update MapGuide
+BUILD_COMPONENT="svn update MapGuide"
+svn update $MG_SRC
+check_build
+if [ ! -d /mapguide_sources/updated ]; then
+ sudo mkdir -p /mapguide_sources/updated
+ cd $MG_SRC_ROOT
+ echo [provision]: Updating mapguide source tarball
+ tar -zcf $MG_TARBALL MgDev
+ sudo mv $MG_TARBALL /mapguide_sources/updated
+ cd $FDO_SRC_ROOT
+ echo [provision]: Updating fdo source tarball
+ tar -zcf $FDO_TARBALL $FDO_SRC_DIR
+ sudo mv $FDO_TARBALL /mapguide_sources/updated
+else
+ echo [provision]: Updated tarballs already exist. Doing nothing
+fi
+echo [provision]: Build complete
\ No newline at end of file
Modified: trunk/Tools/Vagrant/ubuntu/x64/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/ubuntu/x64/Vagrantfile 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/ubuntu/x64/Vagrantfile 2016-03-28 14:02:25 UTC (rev 8893)
@@ -116,262 +116,8 @@
#
# chef.validation_client_name = "ORGNAME-validator"
- $script = <<SCRIPT
-BUILD_COMPONENT=
-check_build()
-{
- error=$?
- if [ $error -ne 0 ]; then
- echo "[error]: ${BUILD_COMPONENT} - Error build failed ($error)"
- exit $error
- fi
-}
-check_test()
-{
- error=$?
- if [ $error -ne 0 ]; then
- echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)"
- echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)" >> ~/unit_test_status.log
- fi
-}
-cd ~
-echo [provision]: Home directory is `pwd`
-echo [provision]: Checking directories
-HAVE_FDO=0
-HAVE_FDO_LIBS=0
-HAVE_MAPGUIDE=0
-MG_UNIT_TEST=0
-FDO_UNIT_TEST=0
-SCRIPT_ROOT=~/scripts
-FDO_SRC_ROOT=~/fdo
-FDO_VER_MM=4.0
-FDO_VER_FULL=${FDO_VER_MM}.0
-MG_VER_MM=3.0
-MG_VER_FULL=${MG_VER_MM}.0
-FDO_SRC_DIR=trunk
-FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
-FDO_LIB_SRC=~/fdo_rdbms_thirdparty
-MG_SRC_ROOT=~/mapguide/trunk
-MG_SRC=$MG_SRC_ROOT/MgDev
-FDO_TARBALL=fdo-checkout.tar.gz
-MG_TARBALL=mapguide-checkout.tar.gz
-FDO_INST_PATH=/usr/local/fdo-${FDO_VER_FULL}
-MG_INST_PATH=/usr/local/mapguideopensource-${MG_VER_FULL}
-
-HAVE_FDO_SDK=0
-FDO_SDK_PKG_PATH=~/fdosdk
-FDO_SDK_TARBALL=
-FDO_INST=/usr/local/fdo-${FDO_VER_FULL}
-
-if [ -d $FDO_SRC ];
-then
- HAVE_FDO=1
-fi
-if [ -d $FDO_LIB_SRC ];
-then
- HAVE_FDO_LIBS=1
-fi
-if [ -d $MG_SRC ];
-then
- HAVE_MAPGUIDE=1
-fi
-if [ -f /mapguide_sources/fdosdk_filename ] && [ -f /mapguide_sources/fdosdk_rev ] && [ -d /mapguide_sources/filelist ];
-then
- FDO_SDK_TARBALL=`cat /mapguide_sources/fdosdk_filename`
- FDO_REV=`cat /mapguide_sources/fdosdk_rev`
- if [ -f /mapguide_sources/$FDO_SDK_TARBALL ];
- then
- sudo mkdir -p ${FDO_INST}
- sudo tar -zxf /mapguide_sources/$FDO_SDK_TARBALL -C ${FDO_INST}
- HAVE_FDO_SDK=1
- FDO_UNIT_TEST=0
- echo [provision]: Using FDO SDK. Not building from source. Not running FDO unit tests.
- fi
-else
- echo [provision]: FDO SDK not found. Building FDO from source.
-fi
-if [ -f /usr/include/asm/atomic.h ];
-then
- echo [provision]: atomic.h exists. Doing nothing
-else
- echo [provision]: Copy atomic.h
- sudo mkdir -p /usr/include/asm
- sudo cp /mapguide_sources/atomic.h /usr/include/asm
-fi
-echo [provision]: Clean line endings
-sudo dos2unix /vagrant/*.sh
-sudo dos2unix /vagrant/*.pl
-sudo dos2unix /vagrant/*.txt
-echo [provision]: Copying shell scripts
-mkdir -p $SCRIPT_ROOT
-if [ $HAVE_FDO_SDK -eq 1 ];
-then
- echo [provision]: Prepare package build area for FDO SDK
- mkdir -p $FDO_SDK_PKG_PATH
- cp -R /mapguide_sources/filelist $FDO_SDK_PKG_PATH
- cp -f /vagrant/dpkgfdo.sh $FDO_SDK_PKG_PATH
- cp -f /vagrant/dpkgfdocore.sh $FDO_SDK_PKG_PATH
- cp -f /vagrant/dpkgfdoprovider.sh $FDO_SDK_PKG_PATH
- cp -f /vagrant/revnum.pl $FDO_SDK_PKG_PATH
-fi
-cp -f /vagrant/*.sh $SCRIPT_ROOT
-cp -f /vagrant/*.pl $SCRIPT_ROOT
-cp -f /vagrant/*.txt $SCRIPT_ROOT
-echo [provision]: Flip Ubuntu switch
-cd $SCRIPT_ROOT
-sed -i 's/UBUNTU=0/UBUNTU=1/g' build.sh
-sed -i 's/UBUNTU=0/UBUNTU=1/g' build_fdo.sh
-sed -i 's/FDO_PLATFORM=32/FDO_PLATFORM=64/g' build_fdo.sh
-sed -i 's/FDO_CPU=x86/FDO_CPU=x64/g' build_fdo.sh
-sed -i 's/FDO_BUILD_CPU=i386/FDO_BUILD_CPU=amd64/g' build_fdo.sh
-sed -i 's/LIB_DIRNAME=lib/LIB_DIRNAME=lib64/g' build_fdo.sh
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
- if [ $HAVE_FDO_LIBS -eq 0 ];
- then
- echo [provision]: Extracting FDO thirdparty libs
- tar -zxf /mapguide_sources/fdo_rdbms_thirdparty.tar.gz -C ~
- fi
- if [ $HAVE_FDO -eq 0 ];
- then
- echo [provision]: Extracting FDO working copy
- mkdir -p $FDO_SRC_ROOT
- tar -zxf /mapguide_sources/$FDO_TARBALL -C $FDO_SRC_ROOT
- fi
-fi
-if [ $HAVE_MAPGUIDE -eq 0 ];
-then
- echo [provision]: Extracting MapGuide working copy
- mkdir -p $MG_SRC_ROOT
- tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
-fi
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
- if [ -d /mapguide_sources/patches/fdo ];
- then
- echo [provision]: Applying FDO source patches
- cp -R /mapguide_sources/patches/fdo/* $FDO_SRC
- fi
-else
- echo [provision]: Using FDO SDK. No source patches to apply
-fi
-if [ -d /mapguide_sources/patches/mapguide ];
-then
- echo [provision]: Applying MapGuide source patches
- cp -R /mapguide_sources/patches/mapguide/* $MG_SRC
-fi
-echo [provision]: Making sure swig is executable
-chmod +x $MG_SRC/Oem/SWIGEx/Linux/swig
-cd ~/scripts
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
- BUILD_COMPONENT="FDO"
- sudo -E ./build_fdo.sh 2>&1 | tee ~/fdo_build.log
- check_build
- FDO_REV=`svn info $FDO_SRC | perl revnum.pl`
-else
- echo [provision]: Using FDO SDK. Not building from source
- echo [provision]: Re-packaging FDO SDK r$FDO_REV as debs
- FDO_FILELIST=$FDO_SDK_PKG_PATH/filelist
- pushd $FDO_SDK_PKG_PATH
- ./dpkgfdo.sh amd64 $FDO_REV 2>&1 | tee ~/dpkg_fdo.log
- popd
-fi
-BUILD_COMPONENT="MapGuide"
-sudo -E ./build.sh 2>&1 | tee ~/mapguide_build.log
-check_build
-MG_REV=`svn info $MG_SRC | perl revnum.pl`
-BUILD_COMPONENT="MapGuide deb packages"
-./dpkgmapguide.sh amd64 $MG_REV 2>&1 | tee ~/dpkg_mapguide.log
-check_build
-> ~/unit_test_status.log
-if [ $FDO_UNIT_TEST -eq 1 ];
-then
- echo [provision]: Unit test FDO
- BUILD_COMPONENT="Unit Test FDO Core"
- cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SHP Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SHP/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SDF Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SDF/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SQLite Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SQLite/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test GDAL Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/GDAL/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test OGR Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/OGR/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_ogr_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test WMS Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/WMS/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
- check_test
-fi
-if [ $MG_UNIT_TEST -eq 1 ];
-then
- echo [provision]: Unit test MapGuide
- BUILD_COMPONENT="Unit Test MapGuide Server"
- # HACK: Tile and Resource Service tests are known to freeze our VMs when driven by vagrant (why? who knows?
- # All we know is that those tests involve threads)
- # So test everything *but* the above services. If required, this can be tested under a manually controlled
- # VM
- #
- # build the individual targets that would comprise "make check" sans execution of unittest.sh
- cd $SCRIPT_ROOT/mgdev/Server/src/UnitTesting
- sudo make libMgUnitTesting.la
- cd $SCRIPT_ROOT/mgdev/Server/src/Core
- sudo make unittest.sh
- # Run the test suites individually except for TileService for reasons already stated
- for comp in CoordinateSystem FeatureService Geometry KmlService LogManager MappingService MdfModel Misc Performance RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
- do
- sudo -E ./mgserver test $comp UnitTestResults_${comp}.xml 2>&1 | tee ~/mapguide_${comp}_unit_test.log
- check_test
- if [ -f UnitTestResults_${comp}.xml ]; then
- sudo mv UnitTestResults_${comp}.xml ~/UnitTestResults_${comp}.xml
- fi
- done
- cd $SCRIPT_ROOT/mgdev
- sudo -E ./run_tests.sh --prefix ${MG_INST_PATH} --with-php --with-java --logpath ~
-fi
-cd $SCRIPT_ROOT
-sudo mkdir -p /vagrant/build
-sudo mv -f ~/*.log /vagrant/build
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
- sudo cp fdo_build_area/install/bin/*.deb /vagrant/build
- sudo cp ~/fdo_*_unit_test.log /vagrant/build
-else
- sudo cp $FDO_SDK_PKG_PATH/bin/*.deb /vagrant/build
-fi
-sudo cp bin/*.deb /vagrant/build
-sudo cp ~/UnitTestResults_*.xml /vagrant/build
-sudo cp /vagrant/mginstallubuntu.sh /vagrant/build/mginstallubuntu.sh
-sudo cp /vagrant/mguninstallubuntu.sh /vagrant/build/mguninstallubuntu.sh
-sudo sed -i 's/URL_PART="ubuntu12"/URL_PART="ubuntu12_x64"/g' /vagrant/build/mginstallubuntu.sh
-sudo sed -i 's/FDOBUILD=0/FDOBUILD='"$FDO_REV"'/g' /vagrant/build/mginstallubuntu.sh
-sudo sed -i 's/MGBUILD=0/MGBUILD='"$MG_REV"'/g' /vagrant/build/mginstallubuntu.sh
-sudo sed -i 's/FDOARCH=i386/FDOARCH=amd64/g' /vagrant/build/mginstallubuntu.sh
-sudo sed -i 's/MGARCH=i386/MGARCH=amd64/g' /vagrant/build/mginstallubuntu.sh
-echo [provision]: Build complete
-SCRIPT
-
config.vm.provision "shell",
privileged: false,
- inline: $script
+ path: "provision_ubuntu.sh",
+ args: [4, 1, 0, 3, 1, 0, "trunk", "trunk", "amd64"]
end
Modified: trunk/Tools/Vagrant/ubuntu/x86/Vagrantfile
===================================================================
--- trunk/Tools/Vagrant/ubuntu/x86/Vagrantfile 2016-03-23 22:57:40 UTC (rev 8892)
+++ trunk/Tools/Vagrant/ubuntu/x86/Vagrantfile 2016-03-28 14:02:25 UTC (rev 8893)
@@ -116,259 +116,8 @@
#
# chef.validation_client_name = "ORGNAME-validator"
- $script = <<SCRIPT
-BUILD_COMPONENT=
-check_build()
-{
- error=$?
- if [ $error -ne 0 ]; then
- echo "[error]: ${BUILD_COMPONENT} - Error build failed ($error)"
- exit $error
- fi
-}
-check_test()
-{
- error=$?
- if [ $error -ne 0 ]; then
- echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)"
- echo "[warning]: ${BUILD_COMPONENT} - Unit Tests failed ($error)" >> ~/unit_test_status.log
- fi
-}
-cd ~
-echo [provision]: Home directory is `pwd`
-echo [provision]: Checking directories
-HAVE_FDO=0
-HAVE_FDO_LIBS=0
-HAVE_MAPGUIDE=0
-MG_UNIT_TEST=0
-FDO_UNIT_TEST=0
-SCRIPT_ROOT=~/scripts
-FDO_SRC_ROOT=~/fdo
-FDO_VER_MM=4.0
-FDO_VER_FULL=${FDO_VER_MM}.0
-MG_VER_MM=3.0
-MG_VER_FULL=${MG_VER_MM}.0
-FDO_SRC_DIR=trunk
-FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
-FDO_LIB_SRC=~/fdo_rdbms_thirdparty
-MG_SRC_ROOT=~/mapguide/trunk
-MG_SRC=$MG_SRC_ROOT/MgDev
-FDO_TARBALL=fdo-checkout.tar.gz
-MG_TARBALL=mapguide-checkout.tar.gz
-FDO_INST_PATH=/usr/local/fdo-${FDO_VER_FULL}
-MG_INST_PATH=/usr/local/mapguideopensource-${MG_VER_FULL}
-HAVE_FDO_SDK=0
-FDO_SDK_PKG_PATH=~/fdosdk
-FDO_SDK_TARBALL=
-FDO_INST=/usr/local/fdo-${FDO_VER_FULL}
-
-if [ -d $FDO_SRC ];
-then
- HAVE_FDO=1
-fi
-if [ -d $FDO_LIB_SRC ];
-then
- HAVE_FDO_LIBS=1
-fi
-if [ -d $MG_SRC ];
-then
- HAVE_MAPGUIDE=1
-fi
-if [ -f /mapguide_sources/fdosdk_filename ] && [ -f /mapguide_sources/fdosdk_rev ] && [ -d /mapguide_sources/filelist ];
-then
- FDO_SDK_TARBALL=`cat /mapguide_sources/fdosdk_filename`
- FDO_REV=`cat /mapguide_sources/fdosdk_rev`
- if [ -f /mapguide_sources/$FDO_SDK_TARBALL ];
- then
- sudo mkdir -p ${FDO_INST}
- sudo tar -zxf /mapguide_sources/$FDO_SDK_TARBALL -C ${FDO_INST}
- HAVE_FDO_SDK=1
- FDO_UNIT_TEST=0
- echo [provision]: Using FDO SDK. Not building from source. Not running FDO unit tests.
- fi
-else
- echo [provision]: FDO SDK not found. Building FDO from source.
-fi
-if [ -f /usr/include/asm/atomic.h ];
-then
- echo [provision]: atomic.h exists. Doing nothing
-else
- echo [provision]: Copy atomic.h
- sudo mkdir -p /usr/include/asm
- sudo cp /mapguide_sources/atomic.h /usr/include/asm
-fi
-echo [provision]: Clean line endings
-sudo dos2unix /vagrant/*.sh
-sudo dos2unix /vagrant/*.pl
-sudo dos2unix /vagrant/*.txt
-echo [provision]: Copying shell scripts
-mkdir -p $SCRIPT_ROOT
-if [ $HAVE_FDO_SDK -eq 1 ];
-then
- echo [provision]: Prepare package build area for FDO SDK
- mkdir -p $FDO_SDK_PKG_PATH
- cp -R /mapguide_sources/filelist $FDO_SDK_PKG_PATH
- cp -f /vagrant/dpkgfdo.sh $FDO_SDK_PKG_PATH
- cp -f /vagrant/dpkgfdocore.sh $FDO_SDK_PKG_PATH
- cp -f /vagrant/dpkgfdoprovider.sh $FDO_SDK_PKG_PATH
- cp -f /vagrant/revnum.pl $FDO_SDK_PKG_PATH
-fi
-cp -f /vagrant/*.sh $SCRIPT_ROOT
-cp -f /vagrant/*.pl $SCRIPT_ROOT
-cp -f /vagrant/*.txt $SCRIPT_ROOT
-echo [provision]: Flip Ubuntu switch
-cd $SCRIPT_ROOT
-sed -i 's/UBUNTU=0/UBUNTU=1/g' build.sh
-sed -i 's/UBUNTU=0/UBUNTU=1/g' build_fdo.sh
-sed -i 's/FDO_PLATFORM=64/FDO_PLATFORM=32/g' build_fdo.sh
-sed -i 's/FDO_CPU=x64/FDO_CPU=x86/g' build_fdo.sh
-sed -i 's/FDO_BUILD_CPU=amd64/FDO_BUILD_CPU=i386/g' build_fdo.sh
-sed -i 's/LIB_DIRNAME=lib64/LIB_DIRNAME=lib/g' build_fdo.sh
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
- if [ $HAVE_FDO_LIBS -eq 0 ];
- then
- echo [provision]: Extracting FDO thirdparty libs
- tar -zxf /mapguide_sources/fdo_rdbms_thirdparty.tar.gz -C ~
- fi
- if [ $HAVE_FDO -eq 0 ];
- then
- echo [provision]: Extracting FDO working copy
- mkdir -p $FDO_SRC_ROOT
- tar -zxf /mapguide_sources/$FDO_TARBALL -C $FDO_SRC_ROOT
- fi
-fi
-if [ $HAVE_MAPGUIDE -eq 0 ];
-then
- echo [provision]: Extracting MapGuide working copy
- mkdir -p $MG_SRC_ROOT
- tar -zxf /mapguide_sources/$MG_TARBALL -C $MG_SRC_ROOT
-fi
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
- if [ -d /mapguide_sources/patches/fdo ];
- then
- echo [provision]: Applying FDO source patches
- cp -R /mapguide_sources/patches/fdo/* $FDO_SRC
- fi
-else
- echo [provision]: Using FDO SDK. No source patches to apply
-fi
-if [ -d /mapguide_sources/patches/mapguide ];
-then
- echo [provision]: Applying MapGuide source patches
- cp -R /mapguide_sources/patches/mapguide/* $MG_SRC
-fi
-echo [provision]: Making sure swig is executable
-chmod +x $MG_SRC/Oem/SWIGEx/Linux/swig
-cd ~/scripts
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
- BUILD_COMPONENT="FDO"
- sudo -E ./build_fdo.sh 2>&1 | tee ~/fdo_build.log
- check_build
- FDO_REV=`svn info $FDO_SRC | perl revnum.pl`
-else
- echo [provision]: Using FDO SDK. Not building from source
- echo [provision]: Re-packaging FDO SDK r$FDO_REV as debs
- FDO_FILELIST=$FDO_SDK_PKG_PATH/filelist
- pushd $FDO_SDK_PKG_PATH
- ./dpkgfdo.sh i386 $FDO_REV 2>&1 | tee ~/dpkg_fdo.log
- popd
-fi
-BUILD_COMPONENT="MapGuide"
-sudo -E ./build.sh 2>&1 | tee ~/mapguide_build.log
-check_build
-MG_REV=`svn info $MG_SRC | perl revnum.pl`
-BUILD_COMPONENT="MapGuide deb packages"
-./dpkgmapguide.sh i386 $MG_REV 2>&1 | tee ~/dpkg_mapguide.log
-check_build
-> ~/unit_test_status.log
-if [ $FDO_UNIT_TEST -eq 1 ];
-then
- echo [provision]: Unit test FDO
- BUILD_COMPONENT="Unit Test FDO Core"
- cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SHP Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SHP/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SDF Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SDF/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test SQLite Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/SQLite/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test GDAL Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/GDAL/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test OGR Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/OGR/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_ogr_unit_test.log
- check_test
- BUILD_COMPONENT="Unit Test WMS Provider"
- cd $SCRIPT_ROOT/fdo_build_area/Providers/WMS/Src/UnitTest
- sudo rm providers.xml
- sudo -E NLSPATH=${FDO_INST_PATH}/nls/%N ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
- check_test
-fi
-if [ $MG_UNIT_TEST -eq 1 ];
-then
- echo [provision]: Unit test MapGuide
- BUILD_COMPONENT="Unit Test MapGuide Server"
- # HACK: Tile and Resource Service tests are known to freeze our VMs when driven by vagrant (why? who knows?
- # All we know is that those tests involve threads)
- # So test everything *but* the above services. If required, this can be tested under a manually controlled
- # VM
- #
- # build the individual targets that would comprise "make check" sans execution of unittest.sh
- cd $SCRIPT_ROOT/mgdev/Server/src/UnitTesting
- sudo make libMgUnitTesting.la
- cd $SCRIPT_ROOT/mgdev/Server/src/Core
- sudo make unittest.sh
- # Run the test suites individually except for TileService for reasons already stated
- for comp in CoordinateSystem FeatureService Geometry KmlService LogManager MappingService MdfModel Misc Performance RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
- do
- sudo -E ./mgserver test $comp UnitTestResults_${comp}.xml 2>&1 | tee ~/mapguide_${comp}_unit_test.log
- check_test
- if [ -f UnitTestResults_${comp}.xml ]; then
- sudo mv UnitTestResults_${comp}.xml ~/UnitTestResults_${comp}.xml
- fi
- done
- cd $SCRIPT_ROOT/mgdev
- sudo -E ./run_tests.sh --prefix ${MG_INST_PATH} --with-php --with-java --logpath ~
-fi
-cd $SCRIPT_ROOT
-sudo mkdir -p /vagrant/build
-sudo mv -f ~/*.log /vagrant/build
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
- sudo cp fdo_build_area/install/bin/*.deb /vagrant/build
- sudo cp ~/fdo_*_unit_test.log /vagrant/build
-else
- sudo cp $FDO_SDK_PKG_PATH/bin/*.deb /vagrant/build
-fi
-sudo cp bin/*.deb /vagrant/build
-sudo cp ~/UnitTestResults_*.xml /vagrant/build
-sudo sed -i 's/URL_PART="ubuntu12"/URL_PART="ubuntu12_x86"/g' /vagrant/build/mginstallubuntu.sh
-sudo cp /vagrant/mginstallubuntu.sh /vagrant/build/mginstallubuntu.sh
-sudo cp /vagrant/mguninstallubuntu.sh /vagrant/build/mguninstallubuntu.sh
-sudo sed -i 's/FDOBUILD=0/FDOBUILD='"$FDO_REV"'/g' /vagrant/build/mginstallubuntu.sh
-sudo sed -i 's/MGBUILD=0/MGBUILD='"$MG_REV"'/g' /vagrant/build/mginstallubuntu.sh
-echo [provision]: Build complete
-SCRIPT
-
config.vm.provision "shell",
privileged: false,
- inline: $script
+ path: "provision_ubuntu.sh",
+ args: [4, 1, 0, 3, 1, 0, "trunk", "trunk", "i386"]
end
More information about the mapguide-commits
mailing list