[mapguide-commits] r8719 - in branches/2.6/vagrant: . centos centos/src_update centos/test_x64 centos/test_x86 centos/x64 centos/x86 packer packer/http packer/http/centos-6.5 packer/http/ubuntu packer/http/ubuntu-12.04.5 packer/http/ubuntu-14.04 packer/scripts packer/scripts/centos packer/scripts/centos-6.5 packer/scripts/common packer/scripts/mapguide packer/scripts/ubuntu scripts sources ubuntu ubuntu/test_x64 ubuntu/test_x86 ubuntu/x64 ubuntu/x86
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon Jul 27 05:26:06 PDT 2015
Author: jng
Date: 2015-07-27 05:26:06 -0700 (Mon, 27 Jul 2015)
New Revision: 8719
Added:
branches/2.6/vagrant/README.txt
branches/2.6/vagrant/centos/src_update/
branches/2.6/vagrant/centos/src_update/Vagrantfile
branches/2.6/vagrant/centos/test_x64/
branches/2.6/vagrant/centos/test_x64/Vagrantfile
branches/2.6/vagrant/centos/test_x64/provision.sh
branches/2.6/vagrant/centos/test_x86/
branches/2.6/vagrant/centos/test_x86/Vagrantfile
branches/2.6/vagrant/centos/test_x86/provision.sh
branches/2.6/vagrant/make_boxes.bat
branches/2.6/vagrant/md5sums.bat
branches/2.6/vagrant/packer/
branches/2.6/vagrant/packer/centos6-amd64.json
branches/2.6/vagrant/packer/centos6-i386.json
branches/2.6/vagrant/packer/http/
branches/2.6/vagrant/packer/http/centos-6.5/
branches/2.6/vagrant/packer/http/centos-6.5/anaconda-ks.cfg
branches/2.6/vagrant/packer/http/ubuntu-12.04.5/
branches/2.6/vagrant/packer/http/ubuntu-12.04.5/preseed.cfg
branches/2.6/vagrant/packer/http/ubuntu-14.04/
branches/2.6/vagrant/packer/http/ubuntu-14.04/preseed.cfg
branches/2.6/vagrant/packer/http/ubuntu/
branches/2.6/vagrant/packer/http/ubuntu/preseed.cfg
branches/2.6/vagrant/packer/scripts/
branches/2.6/vagrant/packer/scripts/centos-6.5/
branches/2.6/vagrant/packer/scripts/centos-6.5/base.sh
branches/2.6/vagrant/packer/scripts/centos-6.5/cleanup.sh
branches/2.6/vagrant/packer/scripts/centos/
branches/2.6/vagrant/packer/scripts/centos/virtualbox.sh
branches/2.6/vagrant/packer/scripts/common/
branches/2.6/vagrant/packer/scripts/common/minimize.sh
branches/2.6/vagrant/packer/scripts/common/sshd.sh
branches/2.6/vagrant/packer/scripts/common/vagrant.sh
branches/2.6/vagrant/packer/scripts/mapguide/
branches/2.6/vagrant/packer/scripts/mapguide/centos32.sh
branches/2.6/vagrant/packer/scripts/mapguide/centos64.sh
branches/2.6/vagrant/packer/scripts/mapguide/ubuntu32.sh
branches/2.6/vagrant/packer/scripts/mapguide/ubuntu64.sh
branches/2.6/vagrant/packer/scripts/ubuntu/
branches/2.6/vagrant/packer/scripts/ubuntu/base.sh
branches/2.6/vagrant/packer/scripts/ubuntu/cleanup.sh
branches/2.6/vagrant/packer/scripts/ubuntu/virtualbox.sh
branches/2.6/vagrant/packer/ubuntu12-amd64.json
branches/2.6/vagrant/packer/ubuntu12-i386.json
branches/2.6/vagrant/scripts/build.ps1
branches/2.6/vagrant/scripts/build_fdo.ps1
branches/2.6/vagrant/scripts/mguninstallcentos.sh
branches/2.6/vagrant/scripts/smoke_test.sh
branches/2.6/vagrant/ubuntu/test_x64/
branches/2.6/vagrant/ubuntu/test_x64/Vagrantfile
branches/2.6/vagrant/ubuntu/test_x64/provision.sh
branches/2.6/vagrant/ubuntu/test_x86/
branches/2.6/vagrant/ubuntu/test_x86/Vagrantfile
branches/2.6/vagrant/ubuntu/test_x86/provision.sh
branches/2.6/vagrant/verify.bat
Modified:
branches/2.6/vagrant/build.bat
branches/2.6/vagrant/centos/x64/Vagrantfile
branches/2.6/vagrant/centos/x86/Vagrantfile
branches/2.6/vagrant/clean.bat
branches/2.6/vagrant/scripts/build.sh
branches/2.6/vagrant/scripts/build_fdo.sh
branches/2.6/vagrant/scripts/dpkgmapguide.sh
branches/2.6/vagrant/scripts/mapguidecommon_excludes.txt
branches/2.6/vagrant/scripts/mginstallcentos.sh
branches/2.6/vagrant/scripts/mginstallubuntu.sh
branches/2.6/vagrant/scripts/mguninstallubuntu.sh
branches/2.6/vagrant/scripts/platformbase_excludes.txt
branches/2.6/vagrant/sources/README.txt
branches/2.6/vagrant/ubuntu/x64/Vagrantfile
branches/2.6/vagrant/ubuntu/x86/Vagrantfile
Log:
Overlay 3.0 vagrant environment with version numbers adjusted back to MapGuide 2.6.1 and FDO 3.9
Added: branches/2.6/vagrant/README.txt
===================================================================
--- branches/2.6/vagrant/README.txt (rev 0)
+++ branches/2.6/vagrant/README.txt 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,68 @@
+Vagrant Build Environment README
+================================
+
+This directory contains configurations and scripts to do the following:
+
+ 1. Create/register the necessary vagrant base boxes
+ 2. Build MapGuide and FDO through vagrant-provisioned VMs
+
+Requirements
+============
+
+ * Vagrant (http://www.vagrantup.com/)
+ * packer (http://www.packer.io/)
+ * Build host assumed to be Windows
+ * Read sources/README.txt for additional requirements
+
+Building base boxes
+===================
+
+Run make_boxes.bat. This will run packer and create the following vagrant base boxes
+
+ * CentOS 6.5 32-bit
+ * CentOS 6.5 64-bit
+ * Ubuntu 12.04 32-bit
+ * Ubuntu 12.04 64-bit
+
+These boxes will also be registered in vagrant as:
+
+ * centos6-i386
+ * centos6-amd64
+ * ubuntu12-i386
+ * ubuntu12-amd64
+
+Building MapGuide and FDO
+=========================
+
+Run build.bat, this will build MapGuide and FDO for:
+
+ * CentOS 6.5 32-bit
+ * CentOS 6.5 64-bit
+ * Ubuntu 12.04 32-bit
+ * Ubuntu 12.04 64-bit
+
+If MG_SVN_UPDATE_SOURCES is set to 1 before running build.bat, a special CentOS VM will be spun up to svn update the MapGuide and FDO source
+tarballs to the latest revisions. Otherwise, the existing source tarballs will be built at their last updated svn revision.
+
+When each build completes, the build artifacts and assorted log files and unit test result XML files will be copied to these directories:
+
+ * builds/centos_x86
+ * builds/centos_x86/logs
+ * builds/centos_x64
+ * builds/centos_x64/logs
+ * builds/ubuntu_x86
+ * builds/ubuntu_x86/logs
+ * builds/ubuntu_x64
+ * builds/ubuntu_x64/logs
+
+For CentOS, the build will produce tarballs of FDO and MapGuide along with the necessary install scripts
+For Ubuntu, the build will produce debian package files of FDO and MapGuide along with the necessary install scripts
+
+At the end of the run, updated MapGuide and FDO source tarballs will be in sources/updated. You can move these tarballs up one level and
+overwrite the existing copies to ensure you have the most updated checkouts for the next build run.
+
+Troubleshooting
+===============
+
+If a given build does not produce the expected build artifacts, always check the build logs for any errors.
+
Modified: branches/2.6/vagrant/build.bat
===================================================================
--- branches/2.6/vagrant/build.bat 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/build.bat 2015-07-27 12:26:06 UTC (rev 8719)
@@ -6,18 +6,22 @@
rem
rem NOTE: CentOS builds must *always* precede the Ubuntu builds as Ubuntu builds may depend
rem on the package FDO SDK tarball produced by the CentOS build
+rem
+rem Requires the tee utility, which is part of GNU on Windows (https://github.com/bmatzelle/gow)
-SET BUILD_UBUNTU_32=1
-SET BUILD_UBUNTU_64=0
-SET BUILD_CENTOS_32=1
-SET BUILD_CENTOS_64=0
-SET TEARDOWN_UBUNTU_32=1
-SET TEARDOWN_UBUNTU_64=0
-SET TEARDOWN_CENTOS_32=1
-SET TEARDOWN_CENTOS_64=0
+IF "%MG_SVN_UPDATE_SOURCES%"=="" SET MG_SVN_UPDATE_SOURCES=1
+IF "%BUILD_UBUNTU_32%"=="" SET BUILD_UBUNTU_32=1
+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 "%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
SET ROOT=%CD%
SET COMPONENT=
echo **************** Build Summary *********************
+echo Update Sources: %MG_SVN_UPDATE_SOURCES%
echo Building Ubuntu (32-bit): %BUILD_UBUNTU_32% (teardown=%TEARDOWN_UBUNTU_32%)
echo Building Ubuntu (64-bit): %BUILD_UBUNTU_64% (teardown=%TEARDOWN_UBUNTU_64%)
echo Building CentOS (32-bit): %BUILD_CENTOS_32% (teardown=%TEARDOWN_CENTOS_32%)
@@ -29,6 +33,34 @@
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
if %BUILD_UBUNTU_64% == 1 xcopy /S /Y /I scripts\* %ROOT%\ubuntu\x64
+echo [build]: Prepare build artifact location
+if not exist builds mkdir builds
+if not exist builds\centos_x86 mkdir builds\centos_x86
+if not exist builds\centos_x64 mkdir builds\centos_x64
+if not exist builds\ubuntu_x86 mkdir builds\ubuntu_x86
+if not exist builds\ubuntu_x64 mkdir builds\ubuntu_x64
+if not exist builds\centos_x86\logs mkdir builds\centos_x86\logs
+if not exist builds\centos_x64\logs mkdir builds\centos_x64\logs
+if not exist builds\ubuntu_x86\logs mkdir builds\ubuntu_x86\logs
+if not exist builds\ubuntu_x64\logs mkdir builds\ubuntu_x64\logs
+echo [build]: Checking if we're updating sources
+if %MG_SVN_UPDATE_SOURCES% == 1 goto update_sources
+goto check_centos_32
+:update_sources
+SET COMPONENT=Update MapGuide and FDO tarballs
+pushd sources
+if exist updated rd /S /Q updated
+popd
+pushd centos\src_update
+call vagrant up 2>&1 | tee up.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+call vagrant destroy -f
+popd
+pushd sources\updated
+move /Y *.tar.gz ..
+echo [build]: Sources updated
+popd
:check_centos_32
echo [build]: Checking if we're building for CentOS 32-bit
if %BUILD_CENTOS_32% == 1 goto build_centos_32
@@ -38,9 +70,21 @@
SET COMPONENT=CentOS Build 32-bit
echo [build]: MapGuide CentOS build 32-bit
if exist build rd /S /Q build
-call vagrant up
+call vagrant up 2>&1 | tee up.log
echo [build]: vagrant returned %errorlevel%
if "%errorlevel%"=="1" goto error
+if not exist build\*.tar.xz goto error
+echo [build]: Move artifacts to build output
+move /Y build\*.sh %ROOT%\builds\centos_x86
+move /Y build\*.tar.xz %ROOT%\builds\centos_x86
+move /Y build\*.log %ROOT%\builds\centos_x86\logs
+move /Y build\*.xml %ROOT%\builds\centos_x86\logs
+echo [build]: Generate MD5 hashes
+pushd %ROOT%\builds\centos_x86
+if exist md5sums.txt del md5sums.txt
+md5sum *.sh > md5sums.txt
+md5sum *.tar.xz >> md5sums.txt
+popd
if %TEARDOWN_CENTOS_32% == 1 (
echo [build]: Tearing down CentOS 32 VM
goto destroy_centos_32
@@ -61,9 +105,21 @@
SET COMPONENT=Ubuntu Build 32-bit
echo [build]: MapGuide Ubuntu build 32-bit
if exist build rd /S /Q build
-call vagrant up
+call vagrant up 2>&1 | tee up.log
echo [build]: vagrant returned %errorlevel%
if "%errorlevel%"=="1" goto error
+if not exist build\*.deb goto error
+echo [build]: Move artifacts to build output
+move /Y build\*.sh %ROOT%\builds\ubuntu_x86
+move /Y build\*.deb %ROOT%\builds\ubuntu_x86
+move /Y build\*.log %ROOT%\builds\ubuntu_x86\logs
+move /Y build\*.xml %ROOT%\builds\ubuntu_x86\logs
+echo [build]: Generate MD5 hashes
+pushd %ROOT%\builds\ubuntu_x86
+if exist md5sums.txt del md5sums.txt
+md5sum *.sh > md5sums.txt
+md5sum *.deb >> md5sums.txt
+popd
if %TEARDOWN_UBUNTU_32% == 1 (
echo [build]: Tearing down Ubuntu 32 VM
goto destroy_ubuntu_32
@@ -84,9 +140,21 @@
SET COMPONENT=CentOS Build 64-bit
echo [build]: MapGuide CentOS build 64-bit
if exist build rd /S /Q build
-call vagrant up
+call vagrant up 2>&1 | tee up.log
echo [build]: vagrant returned %errorlevel%
if "%errorlevel%"=="1" goto error
+if not exist build\*.tar.xz goto error
+echo [build]: Move artifacts to build output
+move /Y build\*.sh %ROOT%\builds\centos_x64
+move /Y build\*.tar.xz %ROOT%\builds\centos_x64
+move /Y build\*.log %ROOT%\builds\centos_x64\logs
+move /Y build\*.xml %ROOT%\builds\centos_x64\logs
+echo [build]: Generate MD5 hashes
+pushd %ROOT%\builds\centos_x64
+if exist md5sums.txt del md5sums.txt
+md5sum *.sh > md5sums.txt
+md5sum *.tar.xz >> md5sums.txt
+popd
if %TEARDOWN_CENTOS_64% == 1 (
echo [build]: Tearing down CentOS 64 VM
goto destroy_centos_64
@@ -107,9 +175,21 @@
SET COMPONENT=Ubuntu Build 64-bit
echo [build]: MapGuide Ubuntu build 64-bit
if exist build rd /S /Q build
-call vagrant up
+call vagrant up 2>&1 | tee up.log
echo [build]: vagrant returned %errorlevel%
if "%errorlevel%"=="1" goto error
+if not exist build\*.deb goto error
+echo [build]: Move artifacts to build output
+move /Y build\*.sh %ROOT%\builds\ubuntu_x64
+move /Y build\*.deb %ROOT%\builds\ubuntu_x64
+move /Y build\*.log %ROOT%\builds\ubuntu_x64\logs
+move /Y build\*.xml %ROOT%\builds\ubuntu_x64\logs
+echo [build]: Generate MD5 hashes
+pushd %ROOT%\builds\ubuntu_x64
+if exist md5sums.txt del md5sums.txt
+md5sum *.sh > md5sums.txt
+md5sum *.deb >> md5sums.txt
+popd
if %TEARDOWN_UBUNTU_64% == 1 (
echo [build]: Tearing down Ubuntu 64 VM
goto destroy_ubuntu_64
Added: branches/2.6/vagrant/centos/src_update/Vagrantfile
===================================================================
--- branches/2.6/vagrant/centos/src_update/Vagrantfile (rev 0)
+++ branches/2.6/vagrant/centos/src_update/Vagrantfile 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,202 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ # All Vagrant configuration is done here. The most common configuration
+ # options are documented and commented below. For a complete reference,
+ # please see the online documentation at vagrantup.com.
+
+ # Every Vagrant virtual environment requires a box to build off of.
+ config.vm.box = "centos6-i386"
+
+ # The url from where the 'config.vm.box' box will be fetched if it
+ # doesn't already exist on the user's system.
+ # config.vm.box_url = "http://domain.com/path/to/above.box"
+
+ # Create a forwarded port mapping which allows access to a specific port
+ # within the machine from a port on the host machine. In the example below,
+ # accessing "localhost:8080" will access port 80 on the guest machine.
+ # config.vm.network :forwarded_port, guest: 80, host: 8080
+
+ # Create a private network, which allows host-only access to the machine
+ # using a specific IP.
+ # config.vm.network :private_network, ip: "192.168.33.10"
+
+ # Create a public network, which generally matched to bridged network.
+ # Bridged networks make the machine appear as another physical device on
+ # your network.
+ # config.vm.network :public_network
+
+ # If true, then any SSH connections made will enable agent forwarding.
+ # Default value: false
+ # config.ssh.forward_agent = true
+
+ # Share an additional folder to the guest VM. The first argument is
+ # the path on the host to the actual folder. The second argument is
+ # the path on the guest to mount the folder. And the optional third
+ # argument is a set of non-required options.
+ config.vm.synced_folder "../../sources", "/mapguide_sources"
+
+ # Provider-specific configuration so you can fine-tune various
+ # backing providers for Vagrant. These expose provider-specific options.
+ # Example for VirtualBox:
+ #
+ # config.vm.provider :virtualbox do |vb|
+ # # Don't boot with headless mode
+ # vb.gui = true
+ #
+ # # Use VBoxManage to customize the VM. For example to change memory:
+ # vb.customize ["modifyvm", :id, "--memory", "1024"]
+ # end
+ #
+ # View the documentation for the provider you're using for more
+ # information on available options.
+
+ # Enable provisioning with Puppet stand alone. Puppet manifests
+ # are contained in a directory path relative to this Vagrantfile.
+ # You will need to create the manifests directory and a manifest in
+ # the file centos6.4-x86-mapguide.pp in the manifests_path directory.
+ #
+ # An example Puppet manifest to provision the message of the day:
+ #
+ # # group { "puppet":
+ # # ensure => "present",
+ # # }
+ # #
+ # # File { owner => 0, group => 0, mode => 0644 }
+ # #
+ # # file { '/etc/motd':
+ # # content => "Welcome to your Vagrant-built virtual machine!
+ # # Managed by Puppet.\n"
+ # # }
+ #
+ # config.vm.provision :puppet do |puppet|
+ # puppet.manifests_path = "manifests"
+ # puppet.manifest_file = "site.pp"
+ # end
+
+ # Enable provisioning with chef solo, specifying a cookbooks path, roles
+ # path, and data_bags path (all relative to this Vagrantfile), and adding
+ # some recipes and/or roles.
+ #
+ # config.vm.provision :chef_solo do |chef|
+ # chef.cookbooks_path = "../my-recipes/cookbooks"
+ # chef.roles_path = "../my-recipes/roles"
+ # chef.data_bags_path = "../my-recipes/data_bags"
+ # chef.add_recipe "mysql"
+ # chef.add_role "web"
+ #
+ # # You may also specify custom JSON attributes:
+ # chef.json = { :mysql_password => "foo" }
+ # end
+
+ # Enable provisioning with chef server, specifying the chef server URL,
+ # and the path to the validation key (relative to this Vagrantfile).
+ #
+ # The Opscode Platform uses HTTPS. Substitute your organization for
+ # ORGNAME in the URL and validation key.
+ #
+ # If you have your own Chef Server, use the appropriate URL, which may be
+ # HTTP instead of HTTPS depending on your configuration. Also change the
+ # validation key to validation.pem.
+ #
+ # config.vm.provision :chef_client do |chef|
+ # chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
+ # chef.validation_key_path = "ORGNAME-validator.pem"
+ # end
+ #
+ # If you're using the Opscode platform, your validator client is
+ # ORGNAME-validator, replacing ORGNAME with your organization name.
+ #
+ # If you have your own Chef Server, the default validation client name is
+ # chef-validator, unless you changed the configuration.
+ #
+ # 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/branches
+FDO_VER_MM=3.9
+FDO_VER_FULL=${FDO_VER_MM}.0
+MG_VER_MM=2.6
+MG_VER_FULL=${MG_VER_MM}.1
+FDO_SRC_DIR=3.9
+FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
+MG_SRC_ROOT=~/mapguide/branches/2.6
+MG_SRC=$MG_SRC_ROOT/MgDev
+FDO_TARBALL=fdo-checkout-3.9.tar.gz
+MG_TARBALL=mapguide-checkout-2.6.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
+echo [info]: MapGuide working copy
+svn info $MG_SRC
+echo [info]: FDO working copy
+svn info $FDO_SRC
+SCRIPT
+
+ config.vm.provision "shell",
+ privileged: false,
+ inline: $script
+end
Added: branches/2.6/vagrant/centos/test_x64/Vagrantfile
===================================================================
--- branches/2.6/vagrant/centos/test_x64/Vagrantfile (rev 0)
+++ branches/2.6/vagrant/centos/test_x64/Vagrantfile 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,123 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ # All Vagrant configuration is done here. The most common configuration
+ # options are documented and commented below. For a complete reference,
+ # please see the online documentation at vagrantup.com.
+
+ # Every Vagrant virtual environment requires a box to build off of.
+ config.vm.box = "centos6-amd64"
+
+ # The url from where the 'config.vm.box' box will be fetched if it
+ # doesn't already exist on the user's system.
+ # config.vm.box_url = "http://domain.com/path/to/above.box"
+
+ # Create a forwarded port mapping which allows access to a specific port
+ # within the machine from a port on the host machine. In the example below,
+ # accessing "localhost:8080" will access port 80 on the guest machine.
+ # config.vm.network :forwarded_port, guest: 80, host: 8080
+
+ # Create a private network, which allows host-only access to the machine
+ # using a specific IP.
+ # config.vm.network :private_network, ip: "192.168.33.10"
+
+ # Create a public network, which generally matched to bridged network.
+ # Bridged networks make the machine appear as another physical device on
+ # your network.
+ # config.vm.network :public_network
+
+ # If true, then any SSH connections made will enable agent forwarding.
+ # Default value: false
+ # config.ssh.forward_agent = true
+
+ # Share an additional folder to the guest VM. The first argument is
+ # the path on the host to the actual folder. The second argument is
+ # the path on the guest to mount the folder. And the optional third
+ # argument is a set of non-required options.
+ config.vm.synced_folder "../../sources", "/mapguide_sources"
+
+ # Provider-specific configuration so you can fine-tune various
+ # backing providers for Vagrant. These expose provider-specific options.
+ # Example for VirtualBox:
+ #
+ # config.vm.provider :virtualbox do |vb|
+ # # Don't boot with headless mode
+ # vb.gui = true
+ #
+ # # Use VBoxManage to customize the VM. For example to change memory:
+ # vb.customize ["modifyvm", :id, "--memory", "1024"]
+ # end
+ #
+ # View the documentation for the provider you're using for more
+ # information on available options.
+
+ # Enable provisioning with Puppet stand alone. Puppet manifests
+ # are contained in a directory path relative to this Vagrantfile.
+ # You will need to create the manifests directory and a manifest in
+ # the file centos6.4-x86-mapguide.pp in the manifests_path directory.
+ #
+ # An example Puppet manifest to provision the message of the day:
+ #
+ # # group { "puppet":
+ # # ensure => "present",
+ # # }
+ # #
+ # # File { owner => 0, group => 0, mode => 0644 }
+ # #
+ # # file { '/etc/motd':
+ # # content => "Welcome to your Vagrant-built virtual machine!
+ # # Managed by Puppet.\n"
+ # # }
+ #
+ # config.vm.provision :puppet do |puppet|
+ # puppet.manifests_path = "manifests"
+ # puppet.manifest_file = "site.pp"
+ # end
+
+ # Enable provisioning with chef solo, specifying a cookbooks path, roles
+ # path, and data_bags path (all relative to this Vagrantfile), and adding
+ # some recipes and/or roles.
+ #
+ # config.vm.provision :chef_solo do |chef|
+ # chef.cookbooks_path = "../my-recipes/cookbooks"
+ # chef.roles_path = "../my-recipes/roles"
+ # chef.data_bags_path = "../my-recipes/data_bags"
+ # chef.add_recipe "mysql"
+ # chef.add_role "web"
+ #
+ # # You may also specify custom JSON attributes:
+ # chef.json = { :mysql_password => "foo" }
+ # end
+
+ # Enable provisioning with chef server, specifying the chef server URL,
+ # and the path to the validation key (relative to this Vagrantfile).
+ #
+ # The Opscode Platform uses HTTPS. Substitute your organization for
+ # ORGNAME in the URL and validation key.
+ #
+ # If you have your own Chef Server, use the appropriate URL, which may be
+ # HTTP instead of HTTPS depending on your configuration. Also change the
+ # validation key to validation.pem.
+ #
+ # config.vm.provision :chef_client do |chef|
+ # chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
+ # chef.validation_key_path = "ORGNAME-validator.pem"
+ # end
+ #
+ # If you're using the Opscode platform, your validator client is
+ # ORGNAME-validator, replacing ORGNAME with your organization name.
+ #
+ # If you have your own Chef Server, the default validation client name is
+ # chef-validator, unless you changed the configuration.
+ #
+ # chef.validation_client_name = "ORGNAME-validator"
+
+ config.vm.provision "shell",
+ privileged: false,
+ path: "provision.sh",
+ args: ["#{ENV['DOWNLOAD_HOST']}", "#{ENV['MG_DIST_DIR']}"]
+end
Added: branches/2.6/vagrant/centos/test_x64/provision.sh
===================================================================
--- branches/2.6/vagrant/centos/test_x64/provision.sh (rev 0)
+++ branches/2.6/vagrant/centos/test_x64/provision.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,17 @@
+#!/bin/bash
+DOWNLOAD_HOST=$1
+URI_PART=$2
+DIST_DIR="centos_x64"
+sudo yum install -y wget
+echo Download host is: $DOWNLOAD_HOST
+wget "http://$DOWNLOAD_HOST/$URI_PART/Sheboygan.mgp"
+wget "http://$DOWNLOAD_HOST/$URI_PART/smoke_test.sh"
+sudo mv Sheboygan.mgp /tmp/
+wget "http://$DOWNLOAD_HOST/$URI_PART/$DIST_DIR/mginstallcentos.sh"
+sed -i 's/URL="$URL_ROOT\/$URL_PART"/URL="http:\/\/'"$DOWNLOAD_HOST"'\/'"$URI_PART"'\/'"$DIST_DIR"'"/g' mginstallcentos.sh
+chmod +x smoke_test.sh
+chmod +x mginstallcentos.sh
+sudo -E ./mginstallcentos.sh
+echo Wait 10s before running smoke test
+sleep 10s
+sudo -E ./smoke_test.sh
\ No newline at end of file
Added: branches/2.6/vagrant/centos/test_x86/Vagrantfile
===================================================================
--- branches/2.6/vagrant/centos/test_x86/Vagrantfile (rev 0)
+++ branches/2.6/vagrant/centos/test_x86/Vagrantfile 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,123 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ # All Vagrant configuration is done here. The most common configuration
+ # options are documented and commented below. For a complete reference,
+ # please see the online documentation at vagrantup.com.
+
+ # Every Vagrant virtual environment requires a box to build off of.
+ config.vm.box = "centos6-i386"
+
+ # The url from where the 'config.vm.box' box will be fetched if it
+ # doesn't already exist on the user's system.
+ # config.vm.box_url = "http://domain.com/path/to/above.box"
+
+ # Create a forwarded port mapping which allows access to a specific port
+ # within the machine from a port on the host machine. In the example below,
+ # accessing "localhost:8080" will access port 80 on the guest machine.
+ # config.vm.network :forwarded_port, guest: 80, host: 8080
+
+ # Create a private network, which allows host-only access to the machine
+ # using a specific IP.
+ # config.vm.network :private_network, ip: "192.168.33.10"
+
+ # Create a public network, which generally matched to bridged network.
+ # Bridged networks make the machine appear as another physical device on
+ # your network.
+ # config.vm.network :public_network
+
+ # If true, then any SSH connections made will enable agent forwarding.
+ # Default value: false
+ # config.ssh.forward_agent = true
+
+ # Share an additional folder to the guest VM. The first argument is
+ # the path on the host to the actual folder. The second argument is
+ # the path on the guest to mount the folder. And the optional third
+ # argument is a set of non-required options.
+ config.vm.synced_folder "../../sources", "/mapguide_sources"
+
+ # Provider-specific configuration so you can fine-tune various
+ # backing providers for Vagrant. These expose provider-specific options.
+ # Example for VirtualBox:
+ #
+ # config.vm.provider :virtualbox do |vb|
+ # # Don't boot with headless mode
+ # vb.gui = true
+ #
+ # # Use VBoxManage to customize the VM. For example to change memory:
+ # vb.customize ["modifyvm", :id, "--memory", "1024"]
+ # end
+ #
+ # View the documentation for the provider you're using for more
+ # information on available options.
+
+ # Enable provisioning with Puppet stand alone. Puppet manifests
+ # are contained in a directory path relative to this Vagrantfile.
+ # You will need to create the manifests directory and a manifest in
+ # the file centos6.4-x86-mapguide.pp in the manifests_path directory.
+ #
+ # An example Puppet manifest to provision the message of the day:
+ #
+ # # group { "puppet":
+ # # ensure => "present",
+ # # }
+ # #
+ # # File { owner => 0, group => 0, mode => 0644 }
+ # #
+ # # file { '/etc/motd':
+ # # content => "Welcome to your Vagrant-built virtual machine!
+ # # Managed by Puppet.\n"
+ # # }
+ #
+ # config.vm.provision :puppet do |puppet|
+ # puppet.manifests_path = "manifests"
+ # puppet.manifest_file = "site.pp"
+ # end
+
+ # Enable provisioning with chef solo, specifying a cookbooks path, roles
+ # path, and data_bags path (all relative to this Vagrantfile), and adding
+ # some recipes and/or roles.
+ #
+ # config.vm.provision :chef_solo do |chef|
+ # chef.cookbooks_path = "../my-recipes/cookbooks"
+ # chef.roles_path = "../my-recipes/roles"
+ # chef.data_bags_path = "../my-recipes/data_bags"
+ # chef.add_recipe "mysql"
+ # chef.add_role "web"
+ #
+ # # You may also specify custom JSON attributes:
+ # chef.json = { :mysql_password => "foo" }
+ # end
+
+ # Enable provisioning with chef server, specifying the chef server URL,
+ # and the path to the validation key (relative to this Vagrantfile).
+ #
+ # The Opscode Platform uses HTTPS. Substitute your organization for
+ # ORGNAME in the URL and validation key.
+ #
+ # If you have your own Chef Server, use the appropriate URL, which may be
+ # HTTP instead of HTTPS depending on your configuration. Also change the
+ # validation key to validation.pem.
+ #
+ # config.vm.provision :chef_client do |chef|
+ # chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
+ # chef.validation_key_path = "ORGNAME-validator.pem"
+ # end
+ #
+ # If you're using the Opscode platform, your validator client is
+ # ORGNAME-validator, replacing ORGNAME with your organization name.
+ #
+ # If you have your own Chef Server, the default validation client name is
+ # chef-validator, unless you changed the configuration.
+ #
+ # chef.validation_client_name = "ORGNAME-validator"
+
+ config.vm.provision "shell",
+ privileged: false,
+ path: "provision.sh",
+ args: ["#{ENV['DOWNLOAD_HOST']}", "#{ENV['MG_DIST_DIR']}"]
+end
Added: branches/2.6/vagrant/centos/test_x86/provision.sh
===================================================================
--- branches/2.6/vagrant/centos/test_x86/provision.sh (rev 0)
+++ branches/2.6/vagrant/centos/test_x86/provision.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,17 @@
+#!/bin/bash
+DOWNLOAD_HOST=$1
+URI_PART=$2
+DIST_DIR="centos_x86"
+sudo yum install -y wget
+echo Download host is: $DOWNLOAD_HOST
+wget "http://$DOWNLOAD_HOST/$URI_PART/Sheboygan.mgp"
+wget "http://$DOWNLOAD_HOST/$URI_PART/smoke_test.sh"
+sudo mv Sheboygan.mgp /tmp/
+wget "http://$DOWNLOAD_HOST/$URI_PART/$DIST_DIR/mginstallcentos.sh"
+sed -i 's/URL="$URL_ROOT\/$URL_PART"/URL="http:\/\/'"$DOWNLOAD_HOST"'\/'"$URI_PART"'\/'"$DIST_DIR"'"/g' mginstallcentos.sh
+chmod +x smoke_test.sh
+chmod +x mginstallcentos.sh
+sudo -E ./mginstallcentos.sh
+echo Wait 10s before running smoke test
+sleep 10s
+sudo -E ./smoke_test.sh
\ No newline at end of file
Modified: branches/2.6/vagrant/centos/x64/Vagrantfile
===================================================================
--- branches/2.6/vagrant/centos/x64/Vagrantfile 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/centos/x64/Vagrantfile 2015-07-27 12:26:06 UTC (rev 8719)
@@ -10,7 +10,7 @@
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
- config.vm.box = "vagrant-centos64-x64"
+ config.vm.box = "centos6-amd64"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
@@ -147,15 +147,15 @@
HAVE_FDO=0
HAVE_FDO_LIBS=0
HAVE_MAPGUIDE=0
-MG_UNIT_TEST=1
-FDO_UNIT_TEST=1
+MG_UNIT_TEST=0
+FDO_UNIT_TEST=0
MAKE_FDO_SDK=0
SCRIPT_ROOT=~/scripts
FDO_SRC_ROOT=~/fdo/branches
FDO_VER_MM=3.9
FDO_VER_FULL=${FDO_VER_MM}.0
MG_VER_MM=2.6
-MG_VER_FULL=${MG_VER_MM}.0
+MG_VER_FULL=${MG_VER_MM}.1
FDO_SRC_DIR=3.9
FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
FDO_LIB_SRC=~/fdo_rdbms_thirdparty
@@ -163,7 +163,9 @@
MG_SRC=$MG_SRC_ROOT/MgDev
FDO_TARBALL=fdo-checkout-3.9.tar.gz
MG_TARBALL=mapguide-checkout-2.6.tar.gz
-if [ -d $FDO_SRC ];
+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
@@ -183,8 +185,6 @@
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
@@ -219,14 +219,6 @@
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/patches/fdo ];
then
echo [provision]: Applying FDO source patches
@@ -251,31 +243,40 @@
> ~/unit_test_status.log
if [ $FDO_UNIT_TEST -eq 1 ];
then
- export NLSPATH=/usr/local/fdo-${FDO_VER_FULL}/nls/%N
echo [provision]: Unit test FDO
BUILD_COMPONENT="Unit Test FDO Core"
cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
- sudo -E ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
+ 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 ];
@@ -293,7 +294,7 @@
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 MdfModel Misc RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
+ 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
@@ -301,6 +302,8 @@
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
@@ -308,15 +311,15 @@
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.gz /vagrant/build
-sudo cp fdosdk-centos6-i386-${FDO_VER_FULL}_${FDO_REV}.tar.gz /vagrant/build
+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.gz
- sudo cp fdosdk-centos6-amd64-${FDO_VER_FULL}_${FDO_REV}.tar.gz /mapguide_sources
+ 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.gz > /mapguide_sources/fdosdk_filename
+ 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
@@ -327,21 +330,12 @@
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
-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
+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
Modified: branches/2.6/vagrant/centos/x86/Vagrantfile
===================================================================
--- branches/2.6/vagrant/centos/x86/Vagrantfile 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/centos/x86/Vagrantfile 2015-07-27 12:26:06 UTC (rev 8719)
@@ -10,7 +10,7 @@
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
- config.vm.box = "vagrant-centos64-x86"
+ config.vm.box = "centos6-i386"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
@@ -147,15 +147,15 @@
HAVE_FDO=0
HAVE_FDO_LIBS=0
HAVE_MAPGUIDE=0
-MG_UNIT_TEST=1
-FDO_UNIT_TEST=1
+MG_UNIT_TEST=0
+FDO_UNIT_TEST=0
MAKE_FDO_SDK=0
SCRIPT_ROOT=~/scripts
FDO_SRC_ROOT=~/fdo/branches
FDO_VER_MM=3.9
FDO_VER_FULL=${FDO_VER_MM}.0
MG_VER_MM=2.6
-MG_VER_FULL=${MG_VER_MM}.0
+MG_VER_FULL=${MG_VER_MM}.1
FDO_SRC_DIR=3.9
FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
FDO_LIB_SRC=~/fdo_rdbms_thirdparty
@@ -163,7 +163,9 @@
MG_SRC=$MG_SRC_ROOT/MgDev
FDO_TARBALL=fdo-checkout-3.9.tar.gz
MG_TARBALL=mapguide-checkout-2.6.tar.gz
-if [ -d $FDO_SRC ];
+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
@@ -219,14 +221,6 @@
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/patches/fdo ];
then
echo [provision]: Applying FDO source patches
@@ -251,31 +245,40 @@
> ~/unit_test_status.log
if [ $FDO_UNIT_TEST -eq 1 ];
then
- export NLSPATH=/usr/local/fdo-${FDO_VER_FULL}/nls/%N
echo [provision]: Unit test FDO
BUILD_COMPONENT="Unit Test FDO Core"
cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
- sudo -E ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
+ 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 ];
@@ -293,7 +296,7 @@
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 MdfModel Misc RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
+ 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
@@ -301,6 +304,8 @@
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
@@ -308,15 +313,15 @@
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.gz /vagrant/build
-sudo cp fdosdk-centos6-i386-${FDO_VER_FULL}_${FDO_REV}.tar.gz /vagrant/build
+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.gz
- sudo cp fdosdk-centos6-i386-${FDO_VER_FULL}_${FDO_REV}.tar.gz /mapguide_sources
+ 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.gz > /mapguide_sources/fdosdk_filename
+ 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
@@ -326,22 +331,11 @@
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
-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
Modified: branches/2.6/vagrant/clean.bat
===================================================================
--- branches/2.6/vagrant/clean.bat 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/clean.bat 2015-07-27 12:26:06 UTC (rev 8719)
@@ -8,6 +8,9 @@
if exist fdosdk_rev del /F fdosdk_rev
del /F fdosdk*.tar.gz
popd
+pushd centos\src_update
+call vagrant destroy -f
+popd
pushd ubuntu\x86
SET COMPONENT=Ubuntu Build 32-bit
echo [clean]: MapGuide Ubuntu build 32-bit
Added: branches/2.6/vagrant/make_boxes.bat
===================================================================
--- branches/2.6/vagrant/make_boxes.bat (rev 0)
+++ branches/2.6/vagrant/make_boxes.bat 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,35 @@
+ at echo off
+SET BUILD_UBUNTU_32=1
+SET BUILD_UBUNTU_64=1
+SET BUILD_CENTOS_32=1
+SET BUILD_CENTOS_64=1
+pushd packer
+if "%BUILD_CENTOS_64%" == "1" (
+echo [packer]: Build CentOS 64-bit base box
+packer build -force centos6-amd64.json | tee packer_centos64.log
+echo [vagrant]: Export centos6-amd64 base box
+rem call vagrant package --base "centos6-amd64" --output centos6-amd64.box
+call vagrant box add "centos6-amd64" centos6-amd64.box --force
+)
+if "%BUILD_CENTOS_32%" == "1" (
+echo [packer]: Build CentOS 32-bit base box
+packer build -force centos6-i386.json | tee packer_centos32.log
+echo [vagrant]: Export centos6-i386 base box
+rem call vagrant package --base "centos6-i386" --output centos6-i386.box
+call vagrant box add "centos6-i386" centos6-i386.box --force
+)
+if "%BUILD_UBUNTU_64%" == "1" (
+echo [packer]: Build Ubuntu 64-bit base box
+packer build -force ubuntu12-amd64.json | tee packer_ubuntu64.log
+echo [vagrant]: Export ubuntu12-amd64 base box
+rem call vagrant package --base "ubuntu12-amd64" --output ubuntu12-amd64.box
+call vagrant box add "ubuntu12-amd64" ubuntu12-amd64.box --force
+)
+if "%BUILD_UBUNTU_32%" == "1" (
+echo [packer]: Build Ubuntu 32-bit base box
+packer build -force ubuntu12-i386.json | tee packer_ubuntu32.log
+echo [vagrant]: Export ubuntu12-i386 base box
+rem call vagrant package --base "ubuntu12-i386" --output ubuntu12-i386.box
+call vagrant box add "ubuntu12-i386" ubuntu12-i386.box --force
+)
+popd
\ No newline at end of file
Added: branches/2.6/vagrant/md5sums.bat
===================================================================
--- branches/2.6/vagrant/md5sums.bat (rev 0)
+++ branches/2.6/vagrant/md5sums.bat 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,68 @@
+ at echo off
+
+rem md5sums.bat
+rem
+rem (Re)generates MD5 hashes for the various MapGuide build artifacts
+
+SET ROOT=%CD%
+
+:check_ubuntu32
+if exist %ROOT%\builds\ubuntu_x86 goto md5_ubuntu32
+goto check_ubuntu64
+:md5_ubuntu32
+echo [md5]: Ubuntu 32-bit
+pushd %ROOT%\builds\ubuntu_x86
+if exist md5sums.txt del md5sums.txt
+dir > filelist.txt
+md5sum *.sh > md5sums.txt
+md5sum *.deb >> md5sums.txt
+popd
+
+:check_ubuntu64
+if exist %ROOT%\builds\ubuntu_x64 goto md5_ubuntu64
+goto check_centos32
+:md5_ubuntu64
+echo [md5]: Ubuntu 64-bit
+pushd %ROOT%\builds\ubuntu_x64
+if exist md5sums.txt del md5sums.txt
+dir > filelist.txt
+md5sum *.sh > md5sums.txt
+md5sum *.deb >> md5sums.txt
+popd
+
+:check_centos32
+if exist %ROOT%\builds\centos_x86 goto md5_centos32
+goto check_centos64
+:md5_centos32
+echo [md5]: CentOS 32-bit
+pushd %ROOT%\builds\centos_x86
+dir > filelist.txt
+if exist md5sums.txt del md5sums.txt
+md5sum *.sh > md5sums.txt
+md5sum *.tar.xz >> md5sums.txt
+popd
+
+:check_centos64
+if exist %ROOT%\builds\centos_x64 goto md5_centos64
+goto check_windows
+:md5_centos64
+echo [md5]: CentOS 64-bit
+pushd %ROOT%\builds\centos_x64
+if exist md5sums.txt del md5sums.txt
+dir > filelist.txt
+md5sum *.sh > md5sums.txt
+md5sum *.tar.xz >> md5sums.txt
+popd
+
+:check_windows
+if exist %ROOT%\builds\windows goto md5_windows
+goto done
+:md5_windows
+echo [md5]: Windows
+pushd %ROOT%\builds\windows
+if exist md5sums.txt del md5sums.txt
+dir > filelist.txt
+md5sum *.exe > md5sums.txt
+popd
+
+:done
\ No newline at end of file
Added: branches/2.6/vagrant/packer/centos6-amd64.json
===================================================================
--- branches/2.6/vagrant/packer/centos6-amd64.json (rev 0)
+++ branches/2.6/vagrant/packer/centos6-amd64.json 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,54 @@
+{
+ "builders": [{
+ "type": "virtualbox-iso",
+ "guest_os_type": "RedHat_64",
+ "iso_url": "{{user `mirror`}}/6.5/isos/x86_64/CentOS-6.5-x86_64-minimal.iso",
+ "iso_checksum": "0d9dc37b5dd4befa1c440d2174e88a87",
+ "iso_checksum_type": "md5",
+ "output_directory": "output-centos-6.5-x86_64",
+ "vm_name": "packer-centos-6.5-x86_64",
+ "disk_size": "{{user `disk_size`}}",
+ "headless": "{{user `headless`}}",
+ "http_directory": "http",
+ "boot_wait": "5s",
+ "boot_command": [
+ "<esc>",
+ "<wait>",
+ "linux ks=http://{{.HTTPIP}}:{{.HTTPPort}}/centos-6.5/anaconda-ks.cfg",
+ "<enter>"
+ ],
+ "ssh_wait_timeout": "60m",
+ "ssh_username": "vagrant",
+ "ssh_password": "vagrant",
+ "shutdown_command": "sudo poweroff",
+ "vboxmanage": [
+ ["modifyvm", "{{.Name}}", "--memory", "{{user `memory`}}"],
+ ["modifyvm", "{{.Name}}", "--cpus", "{{user `cpus`}}"]
+ ]
+ }],
+ "provisioners": [{
+ "type": "shell",
+ "scripts": [
+ "scripts/centos-6.5/base.sh",
+ "scripts/centos/virtualbox.sh",
+ "scripts/common/vagrant.sh",
+ "scripts/common/sshd.sh",
+ "scripts/mapguide/centos64.sh",
+ "scripts/centos-6.5/cleanup.sh",
+ "scripts/common/minimize.sh"
+ ]
+ }],
+ "post-processors": [{
+ "type": "vagrant",
+ "compression_level": "{{user `compression_level`}}",
+ "output": "centos6-amd64.box"
+ }],
+ "variables": {
+ "compression_level": 1,
+ "cpus": "2",
+ "disk_size": 25000,
+ "headless": false,
+ "memory": "1024",
+ "mirror": "http://mirror.internode.on.net/pub/centos"
+ }
+}
Added: branches/2.6/vagrant/packer/centos6-i386.json
===================================================================
--- branches/2.6/vagrant/packer/centos6-i386.json (rev 0)
+++ branches/2.6/vagrant/packer/centos6-i386.json 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,54 @@
+{
+ "builders": [{
+ "type": "virtualbox-iso",
+ "guest_os_type": "RedHat",
+ "iso_url": "{{user `mirror`}}/6.5/isos/i386/CentOS-6.5-i386-minimal.iso",
+ "iso_checksum": "a4f27ab51d0d2c9d36b68c56b39f752b",
+ "iso_checksum_type": "md5",
+ "output_directory": "output-centos-6.5-i386",
+ "vm_name": "packer-centos-6.5-i386",
+ "disk_size": "{{user `disk_size`}}",
+ "headless": "{{user `headless`}}",
+ "http_directory": "http",
+ "boot_wait": "5s",
+ "boot_command": [
+ "<esc>",
+ "<wait>",
+ "linux ks=http://{{.HTTPIP}}:{{.HTTPPort}}/centos-6.5/anaconda-ks.cfg",
+ "<enter>"
+ ],
+ "ssh_wait_timeout": "60m",
+ "ssh_username": "vagrant",
+ "ssh_password": "vagrant",
+ "shutdown_command": "sudo poweroff",
+ "vboxmanage": [
+ ["modifyvm", "{{.Name}}", "--memory", "{{user `memory`}}"],
+ ["modifyvm", "{{.Name}}", "--cpus", "{{user `cpus`}}"]
+ ]
+ }],
+ "provisioners": [{
+ "type": "shell",
+ "scripts": [
+ "scripts/centos-6.5/base.sh",
+ "scripts/centos/virtualbox.sh",
+ "scripts/common/vagrant.sh",
+ "scripts/common/sshd.sh",
+ "scripts/mapguide/centos32.sh",
+ "scripts/centos-6.5/cleanup.sh",
+ "scripts/common/minimize.sh"
+ ]
+ }],
+ "post-processors": [{
+ "type": "vagrant",
+ "compression_level": "{{user `compression_level`}}",
+ "output": "centos6-i386.box"
+ }],
+ "variables": {
+ "compression_level": 1,
+ "cpus": "2",
+ "disk_size": 25000,
+ "headless": false,
+ "memory": "1024",
+ "mirror": "http://mirror.internode.on.net/pub/centos"
+ }
+}
Added: branches/2.6/vagrant/packer/http/centos-6.5/anaconda-ks.cfg
===================================================================
--- branches/2.6/vagrant/packer/http/centos-6.5/anaconda-ks.cfg (rev 0)
+++ branches/2.6/vagrant/packer/http/centos-6.5/anaconda-ks.cfg 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,45 @@
+install
+text
+reboot
+cdrom
+lang en_US.UTF-8
+keyboard us
+timezone --utc Etc/UTC
+rootpw --plaintext vagrant
+zerombr
+clearpart --all
+part /boot --size=200
+part swap --recommended
+part / --size=1 --grow
+bootloader
+
+%packages --nobase
+ at core
+-b43-openfwwf
+-device-mapper-multipath
+-efibootmgr
+-iscsi-initiator-utils
+-lvm2
+-mdadm
+%end
+
+%post --erroronfail
+yum -y update
+
+useradd -m -U vagrant
+echo 'vagrant' | passwd --stdin vagrant
+cat <<EOF > /etc/sudoers.d/vagrant
+Defaults:vagrant !requiretty
+vagrant ALL=(ALL) NOPASSWD: ALL
+EOF
+chmod 440 /etc/sudoers.d/vagrant
+
+rm /etc/udev/rules.d/70-persistent-net.rules
+ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
+cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
+DEVICE="eth0"
+BOOTPROTO="dhcp"
+ONBOOT="yes"
+TYPE="Ethernet"
+EOF
+%end
Added: branches/2.6/vagrant/packer/http/ubuntu/preseed.cfg
===================================================================
--- branches/2.6/vagrant/packer/http/ubuntu/preseed.cfg (rev 0)
+++ branches/2.6/vagrant/packer/http/ubuntu/preseed.cfg 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,51 @@
+d-i debian-installer/locale string en_US
+d-i time/zone string UTC
+
+d-i keyboard-configuration/xkb-keymap select us
+
+d-i partman-auto/method string regular
+d-i partman-auto/expert_recipe string \
+ scheme :: \
+ 200 0 200 ext4 \
+ $primary{ } \
+ $bootable{ } \
+ method{ format } \
+ format{ } \
+ use_filesystem{ } \
+ filesystem{ ext4 } \
+ mountpoint{ /boot } . \
+ 200% 0 200% linux-swap \
+ $primary{ } \
+ method{ swap } \
+ format{ } . \
+ 1 0 -1 ext4 \
+ $primary{ } \
+ method{ format } \
+ format{ } \
+ use_filesystem{ } \
+ filesystem{ ext4 } \
+ mountpoint{ / } .
+d-i partman-partitioning/confirm_write_new_label boolean true
+d-i partman/choose_partition select finish
+d-i partman/confirm boolean true
+d-i partman/confirm_nooverwrite boolean true
+
+d-i base-installer/excludes string laptop-detect
+
+d-i passwd/root-password-again password vagrant
+d-i passwd/root-password password vagrant
+d-i passwd/user-fullname string vagrant
+d-i passwd/username string vagrant
+d-i passwd/user-password password vagrant
+d-i passwd/user-password-again password vagrant
+d-i user-setup/allow-password-weak boolean true
+
+d-i pkgsel/include string aptitude curl openssh-server sudo
+d-i pkgsel/language-packs multiselect
+
+d-i finish-install/reboot_in_progress note
+
+d-i preseed/early_command string \
+ mkdir -p /usr/lib/post-base-installer.d && \
+ echo "sed -i -e 's/^in-target.*tasksel.*/#\\0/' /var/lib/dpkg/info/pkgsel.postinst" > /usr/lib/post-base-installer.d/90skip-tasksel && \
+ chmod +x /usr/lib/post-base-installer.d/90skip-tasksel
Added: branches/2.6/vagrant/packer/http/ubuntu-12.04.5/preseed.cfg
===================================================================
--- branches/2.6/vagrant/packer/http/ubuntu-12.04.5/preseed.cfg (rev 0)
+++ branches/2.6/vagrant/packer/http/ubuntu-12.04.5/preseed.cfg 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,6 @@
+d-i preseed/include string ../ubuntu/preseed.cfg
+
+d-i preseed/late_command string \
+ echo 'Defaults:vagrant !requiretty' > /target/etc/sudoers.d/vagrant; \
+ echo 'vagrant ALL=(ALL) NOPASSWD: ALL' >> /target/etc/sudoers.d/vagrant; \
+ chmod 440 /target/etc/sudoers.d/vagrant
Added: branches/2.6/vagrant/packer/http/ubuntu-14.04/preseed.cfg
===================================================================
--- branches/2.6/vagrant/packer/http/ubuntu-14.04/preseed.cfg (rev 0)
+++ branches/2.6/vagrant/packer/http/ubuntu-14.04/preseed.cfg 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,6 @@
+d-i preseed/include string ../ubuntu/preseed.cfg
+
+d-i preseed/late_command string \
+ echo 'Defaults:vagrant !requiretty' > /target/etc/sudoers.d/vagrant; \
+ echo 'vagrant ALL=(ALL) NOPASSWD: ALL' >> /target/etc/sudoers.d/vagrant; \
+ chmod 440 /target/etc/sudoers.d/vagrant
Added: branches/2.6/vagrant/packer/scripts/centos/virtualbox.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/centos/virtualbox.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/centos/virtualbox.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+set -e
+set -x
+
+sudo yum -y --enablerepo=epel install dkms
+sudo yum -y install make
+sudo yum -y install perl
+
+# Uncomment this if you want to install Guest Additions with support for X
+#sudo yum -y install xorg-x11-server-Xorg
+
+sudo mount -o loop ~/VBoxGuestAdditions.iso /mnt/
+sudo /mnt/VBoxLinuxAdditions.run || :
+sudo umount /mnt/
+rm -f ~/VBoxGuestAdditions.iso
Added: branches/2.6/vagrant/packer/scripts/centos-6.5/base.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/centos-6.5/base.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/centos-6.5/base.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+set -e
+set -x
+
+sudo yum -y install https://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
+sudo sed -i -e 's/^enabled=1/enabled=0/' /etc/yum.repos.d/epel.repo
+
+sudo sed -i -e 's,^ACTIVE_CONSOLES=.*$,ACTIVE_CONSOLES=/dev/tty1,' /etc/sysconfig/init
Added: branches/2.6/vagrant/packer/scripts/centos-6.5/cleanup.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/centos-6.5/cleanup.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/centos-6.5/cleanup.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+set -e
+set -x
+
+sudo yum clean all
+sudo yum history new
+sudo truncate -c -s 0 /var/log/yum.log
Added: branches/2.6/vagrant/packer/scripts/common/minimize.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/common/minimize.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/common/minimize.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+set -e
+set -x
+
+dd if=/dev/zero of=EMPTY bs=1M || :
+rm EMPTY
Added: branches/2.6/vagrant/packer/scripts/common/sshd.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/common/sshd.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/common/sshd.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+set -e
+set -x
+
+sudo tee -a /etc/ssh/sshd_config <<EOF
+
+UseDNS no
+EOF
Added: branches/2.6/vagrant/packer/scripts/common/vagrant.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/common/vagrant.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/common/vagrant.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+set -x
+
+date | sudo tee /etc/vagrant_box_build_time
+
+mkdir -p ~/.ssh
+curl -fsSLo ~/.ssh/authorized_keys https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
+chmod 700 ~/.ssh/
+chmod 600 ~/.ssh/authorized_keys
+
+if [ -f /etc/sudoers ] ; then
+ sudo sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers
+ sudo sed -i "s/^\(.*env_keep = \"\)/\1PATH /" /etc/sudoers
+ sudo sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers
+ sudo sed -i -e 's/%sudo.*ALL=.*ALL/%sudo ALL=NOPASSWD:ALL/g' /etc/sudoers
+fi
\ No newline at end of file
Added: branches/2.6/vagrant/packer/scripts/mapguide/centos32.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/mapguide/centos32.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/mapguide/centos32.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,7 @@
+#!/bin/bash
+sudo yum install -y gcc make gcc-c++ 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
+# For producing .tar.xz archives
+sudo yum install -y xz-lzma-compat
+# To support Java test suite
+sudo yum install -y ant-contrib
+echo "JAVA_HOME=/usr/lib/jvm/java-openjdk" | sudo tee --append /etc/environment
\ No newline at end of file
Added: branches/2.6/vagrant/packer/scripts/mapguide/centos64.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/mapguide/centos64.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/mapguide/centos64.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,9 @@
+#!/bin/bash
+sudo yum install -y gcc make gcc-c++ 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
+# For producing .tar.xz archives
+sudo yum install -y xz-lzma-compat
+# For 32-bit swig binary in MapGuide source
+sudo yum install -y libstdc++.i686 glibc.i686
+# To support Java test suite
+sudo yum install -y ant-contrib
+echo "JAVA_HOME=/usr/lib/jvm/java-openjdk" | sudo tee --append /etc/environment
\ No newline at end of file
Added: branches/2.6/vagrant/packer/scripts/mapguide/ubuntu32.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/mapguide/ubuntu32.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/mapguide/ubuntu32.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,15 @@
+#!/bin/bash
+# Set bash as the default shell
+echo "dash dash/sh boolean false" | sudo debconf-set-selections
+sudo dpkg-reconfigure --frontend=noninteractive dash
+# Guard against (http://askubuntu.com/questions/41605/trouble-downloading-updates-due-to-a-hash-sum-mismatch-error)
+sudo rm -rf /var/lib/apt/lists/*
+sudo apt-get update
+sudo apt-get install -y build-essential bison automake libtool libpng-dev libjpeg62-dev libxslt-dev libfreetype6-dev libpcre3-dev openjdk-7-jdk subversion lintian ant scons dos2unix liboss4-salsa-dev libldap-dev libssl-dev libcurl4-openssl-dev libexpat-dev libmysqlclient-dev unixODBC-dev python-dev libpq-dev libcppunit-dev
+# For producing .tar.xz archives
+sudo apt-get install -y xz-utils
+# For deb packaging
+sudo apt-get install -y rsync
+# To support Java test suite
+sudo apt-get install -y ant-contrib
+echo "JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-i386" | sudo tee --append /etc/environment
\ No newline at end of file
Added: branches/2.6/vagrant/packer/scripts/mapguide/ubuntu64.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/mapguide/ubuntu64.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/mapguide/ubuntu64.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,17 @@
+#!/bin/bash
+# Set bash as the default shell
+echo "dash dash/sh boolean false" | sudo debconf-set-selections
+sudo dpkg-reconfigure --frontend=noninteractive dash
+# Guard against (http://askubuntu.com/questions/41605/trouble-downloading-updates-due-to-a-hash-sum-mismatch-error)
+sudo rm -rf /var/lib/apt/lists/*
+sudo apt-get update
+sudo apt-get install -y build-essential bison automake libtool libpng-dev libjpeg62-dev libxslt-dev libfreetype6-dev libpcre3-dev openjdk-7-jdk subversion lintian ant scons dos2unix liboss4-salsa-dev libldap-dev libssl-dev libcurl4-openssl-dev libexpat-dev libmysqlclient-dev unixODBC-dev python-dev libpq-dev libcppunit-dev
+# For producing .tar.xz archives
+sudo apt-get install -y xz-utils
+# For deb packaging
+sudo apt-get install -y rsync
+# For 32-bit swig binary in MapGuide source
+sudo apt-get install -y g++-multilib
+# To support Java test suite
+sudo apt-get install -y ant-contrib
+echo "JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64" | sudo tee --append /etc/environment
\ No newline at end of file
Added: branches/2.6/vagrant/packer/scripts/ubuntu/base.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/ubuntu/base.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/ubuntu/base.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+set -e
+set -x
+
+sudo sed -i -e 's,^\(ACTIVE_CONSOLES="/dev/tty\).*,\11",' /etc/default/console-setup
+for f in /etc/init/tty[^1]*.conf; do
+ sudo mv "$f"{,.bak}
+done
Added: branches/2.6/vagrant/packer/scripts/ubuntu/cleanup.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/ubuntu/cleanup.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/ubuntu/cleanup.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+set -e
+set -x
+
+sudo aptitude -y clean
Added: branches/2.6/vagrant/packer/scripts/ubuntu/virtualbox.sh
===================================================================
--- branches/2.6/vagrant/packer/scripts/ubuntu/virtualbox.sh (rev 0)
+++ branches/2.6/vagrant/packer/scripts/ubuntu/virtualbox.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+set -e
+set -x
+
+sudo aptitude -y install dkms
+sudo aptitude -y install make
+
+# Uncomment this if you want to install Guest Additions with support for X
+#sudo aptitude -y install xserver-xorg
+
+sudo mount -o loop ~/VBoxGuestAdditions.iso /mnt/
+sudo /mnt/VBoxLinuxAdditions.run || :
+sudo umount /mnt/
+rm -f ~/VBoxGuestAdditions.iso
+
+VBOX_VERSION=$(cat ~/.vbox_version)
+if [ "$VBOX_VERSION" == '4.3.10' ]; then
+ # https://www.virtualbox.org/ticket/12879
+ sudo ln -s "/opt/VBoxGuestAdditions-$VBOX_VERSION/lib/VBoxGuestAdditions" /usr/lib/VBoxGuestAdditions
+fi
Added: branches/2.6/vagrant/packer/ubuntu12-amd64.json
===================================================================
--- branches/2.6/vagrant/packer/ubuntu12-amd64.json (rev 0)
+++ branches/2.6/vagrant/packer/ubuntu12-amd64.json 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,57 @@
+{
+ "builders": [{
+ "type": "virtualbox-iso",
+ "guest_os_type": "Ubuntu_64",
+ "iso_url": "http://mirror.internode.on.net.au/pub/ubuntu/releases/12.04/ubuntu-12.04.5-server-amd64.iso",
+ "iso_checksum": "769474248a3897f4865817446f9a4a53",
+ "iso_checksum_type": "md5",
+ "output_directory": "output-ubuntu-12.04.5-amd64",
+ "vm_name": "packer-ubuntu-12.04.5-amd64",
+ "disk_size": "{{user `disk_size`}}",
+ "headless": "{{user `headless`}}",
+ "http_directory": "http",
+ "boot_wait": "5s",
+ "boot_command": [
+ "<esc><wait>",
+ "<esc><wait>",
+ "<enter><wait>",
+ "install ",
+ "auto-install/enable=true ",
+ "debconf/priority=critical ",
+ "preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/ubuntu-12.04.5/preseed.cfg ",
+ "<enter>"
+ ],
+ "ssh_wait_timeout": "60m",
+ "ssh_username": "vagrant",
+ "ssh_password": "vagrant",
+ "shutdown_command": "sudo poweroff",
+ "vboxmanage": [
+ ["modifyvm", "{{.Name}}", "--memory", "{{user `memory`}}"],
+ ["modifyvm", "{{.Name}}", "--cpus", "{{user `cpus`}}"]
+ ]
+ }],
+ "provisioners": [{
+ "type": "shell",
+ "scripts": [
+ "scripts/ubuntu/base.sh",
+ "scripts/ubuntu/virtualbox.sh",
+ "scripts/common/vagrant.sh",
+ "scripts/common/sshd.sh",
+ "scripts/mapguide/ubuntu64.sh",
+ "scripts/ubuntu/cleanup.sh",
+ "scripts/common/minimize.sh"
+ ]
+ }],
+ "post-processors": [{
+ "type": "vagrant",
+ "compression_level": "{{user `compression_level`}}",
+ "output": "ubuntu12-amd64.box"
+ }],
+ "variables": {
+ "compression_level": 1,
+ "cpus": "2",
+ "disk_size": 25000,
+ "headless": false,
+ "memory": "1024"
+ }
+}
Added: branches/2.6/vagrant/packer/ubuntu12-i386.json
===================================================================
--- branches/2.6/vagrant/packer/ubuntu12-i386.json (rev 0)
+++ branches/2.6/vagrant/packer/ubuntu12-i386.json 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,57 @@
+{
+ "builders": [{
+ "type": "virtualbox-iso",
+ "guest_os_type": "Ubuntu",
+ "iso_url": "http://mirror.internode.on.net.au/pub/ubuntu/releases/12.04/ubuntu-12.04.5-server-i386.iso",
+ "iso_checksum": "1214cd22448338b60bb24f583dd8741a",
+ "iso_checksum_type": "md5",
+ "output_directory": "output-ubuntu-12.04.5-i386",
+ "vm_name": "packer-ubuntu-12.04.5-i386",
+ "disk_size": "{{user `disk_size`}}",
+ "headless": "{{user `headless`}}",
+ "http_directory": "http",
+ "boot_wait": "5s",
+ "boot_command": [
+ "<esc><wait>",
+ "<esc><wait>",
+ "<enter><wait>",
+ "install ",
+ "auto-install/enable=true ",
+ "debconf/priority=critical ",
+ "preseed/url=http://{{.HTTPIP}}:{{.HTTPPort}}/ubuntu-12.04.5/preseed.cfg ",
+ "<enter>"
+ ],
+ "ssh_wait_timeout": "60m",
+ "ssh_username": "vagrant",
+ "ssh_password": "vagrant",
+ "shutdown_command": "sudo poweroff",
+ "vboxmanage": [
+ ["modifyvm", "{{.Name}}", "--memory", "{{user `memory`}}"],
+ ["modifyvm", "{{.Name}}", "--cpus", "{{user `cpus`}}"]
+ ]
+ }],
+ "provisioners": [{
+ "type": "shell",
+ "scripts": [
+ "scripts/ubuntu/base.sh",
+ "scripts/ubuntu/virtualbox.sh",
+ "scripts/common/vagrant.sh",
+ "scripts/common/sshd.sh",
+ "scripts/mapguide/ubuntu32.sh",
+ "scripts/ubuntu/cleanup.sh",
+ "scripts/common/minimize.sh"
+ ]
+ }],
+ "post-processors": [{
+ "type": "vagrant",
+ "compression_level": "{{user `compression_level`}}",
+ "output": "ubuntu12-i386.box"
+ }],
+ "variables": {
+ "compression_level": 1,
+ "cpus": "2",
+ "disk_size": 25000,
+ "headless": false,
+ "memory": "1024"
+ }
+}
Added: branches/2.6/vagrant/scripts/build.ps1
===================================================================
--- branches/2.6/vagrant/scripts/build.ps1 (rev 0)
+++ branches/2.6/vagrant/scripts/build.ps1 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,1151 @@
+<#
+.SYNOPSIS
+ Builds the MapGuide Open Source codebase
+.DESCRIPTION
+ This PowerShell script will build the entire MapGuide Open Source codebase, which consists of
+ - Oem components
+ - Server tier
+ - Web tier
+ - Documentation
+ - Windows Installer
+ - mg-desktop
+ This script requires PowerShell Community Extensions installed
+.EXAMPLE
+ C:\PS> .\build.ps1 -platform x64 -build_root 'D:\mg-trunk\MgDev' -java_home 'C:\Program Files\Java\jdk1.7.0_71' -output '.\Release64'
+ Build the full source (located at D:\mg-trunk\MgDev) for 64-bit using the JDK at (C:\Program Files\Java\jdk1.7.0_71). The build output will be at (.\Release64)
+.EXAMPLE
+ C:\PS> .\build.ps1 -platform x86 -build_root 'D:\mg-trunk\MgDev' -java_home 'C:\Program Files (x86)\Java\jdk1.7.0_71' -output '.\Release'
+ Build the full source (located at D:\mg-trunk\MgDev) for 32-bit using the JDK at (C:\Program Files (x86)\Java\jdk1.7.0_71). The build output will be at (.\Release64)
+.LINK
+ Project Home: http://mapguide.osgeo.org
+ PowerShell Community Extensions: https://pscx.codeplex.com/
+.NOTES
+ Author: Jackie Ng
+#>
+param (
+ [Parameter(HelpMessage = "The CPU platform to build for")]
+ [ValidateSet("x86", "x64")]
+ [Alias("p")]
+ [string]
+ $platform = "x86",
+ [Parameter(HelpMessage = "The build configuration to build for")]
+ [ValidateSet("Debug", "Release")]
+ [Alias("c")]
+ [string]
+ $config = "Release",
+ [Parameter(HelpMessage = "The action to perform")]
+ [ValidateSet("build", "install", "buildinstall", "clean", "installprepare")]
+ [Alias("a")]
+ [string]
+ $action = "buildinstall",
+ [Parameter(HelpMessage = "The components to build")]
+ [ValidateSet("all", "oem", "server", "web", "installer", "instantsetup", "desktop", "doc")]
+ [Alias("w")]
+ [string]
+ $component = "all",
+ [Parameter(HelpMessage = "The directory where compiled binaries will be copied to. If relative, the path will be relative to the build root")]
+ [Alias("o")]
+ [string]
+ $output = ".\Release",
+ [Parameter(HelpMessage = "The directory where the MapGuide source resides in")]
+ [string]
+ $build_root = ".\",
+ [Parameter(HelpMessage = "The directory where the MapGuide Installer source resides in")]
+ [string]
+ $install_root = "..\Installer",
+ [Parameter(HelpMessage = "The path to the Java SDK required for building the Java API bindings. If not specified, the value of the JAVA_HOME environment variable will be used")]
+ [Alias("j")]
+ [string]
+ $java_home = "",
+ [string]
+ $doxygen_path = "C:\Program Files\doxygen\bin",
+ [string]
+ $ant_path = "C:\apache-ant\bin",
+ [string]
+ $graphviz_path = "C:\Program Files (x86)\Graphviz2.38\bin",
+ [string]
+ $artifact_path = ".\artifacts",
+ [int]
+ $major = 3,
+ [int]
+ $minor = 0,
+ [int]
+ $build = 0,
+ [int]
+ $svnrev = 0,
+ [string]
+ $label = "Release"
+)
+
+Function EnvSetup([string]$plat, [string]$phpVer, [string]$apacheVer)
+{
+ Try
+ {
+ pushd .\Oem\LinuxApt
+ # If any of these files don't exist, we unpack the httpd source
+ $apacheParts = @(
+ "",
+ "include",
+ "include\httpd.h",
+ "include\http_config.h",
+ "include\ap_config.h",
+ "include\http_log.h",
+ "include\http_protocol.h",
+ "include\http_main.h",
+ "include\util_script.h",
+ "include\http_core.h",
+ "include\apr_strings.h",
+ "include\apr_tables.h"
+ )
+ # If any of these files don't exist, we unpack the php source
+ $phpParts = @(
+ "",
+ "ext",
+ "ext\standard",
+ "ext\standard\info.h",
+ "main",
+ "main\php.h",
+ "main\php_ini.h",
+ "main\config.w32.h",
+ "main\win95nt.h",
+ "TSRM",
+ "TSRM\readdir.h",
+ "Zend",
+ "Zend\zend.h",
+ "Zend\zend_exceptions.h",
+ "Zend\zend_API.h"
+ )
+ Write-Host "Checking if we need to unpack httpd source"
+ foreach ($part in $apacheParts) {
+ $path = [System.IO.Path]::Combine(".\httpd-$apacheVer", $part)
+ if (-Not(Test-Path $path)) {
+ if (-Not(Test-Path "httpd-$apacheVer.tar")) {
+ & sz x "httpd-$apacheVer.tar.bz2"
+ }
+ & sz x -y "httpd-$apacheVer.tar"
+ break
+ }
+ }
+ Write-Host "Checking if we need to unpack php source"
+ foreach ($part in $phpParts) {
+ $path = [System.IO.Path]::Combine(".\php-$phpVer", $part)
+ if (-Not(Test-Path $path)) {
+ if (-Not(Test-Path "php-$phpVer.tar")) {
+ & sz x "php-$phpVer.tar.bz2"
+ }
+ & sz x -y "php-$phpVer.tar"
+ break
+ }
+ }
+ Write-Host "Patching PHP headers for Windows"
+ Copy-Item -Force -Path "..\php\main\*.h" "php-$phpVer\main"
+ Copy-Item -Force -Path "..\php\TSRM\*.h" "php-$phpVer\TSRM"
+ Write-Host "Patching HTTPD headers for Windows"
+ Copy-Item -Force -Path "..\httpd\include\*.h" "httpd-$apacheVer\include"
+ }
+ Finally
+ {
+ popd
+ }
+}
+
+Function CheckStatus([string]$action, [boolean]$status)
+{
+ #ZeroFileTrap $action, ""
+ Write-Host "Status for action ($action) is: $status"
+ if (-Not $status) {
+ #ZeroFileTrap $action, ""
+ $msg = "Action ($action) failed"
+ throw $msg
+ }
+}
+
+Function MsBuildAction([string]$comp, [string]$conf, [string]$plat, [string]$action)
+{
+ $uplat = $plat
+ # x86 has to be coerced to Win32
+ if ($plat.Equals("x86")) {
+ $uplat = "Win32"
+ }
+
+ $solutions = @{
+ "oem" = ".\Oem\oem.sln";
+ "csmap" = ".\Oem\CsMap\VC110\OpenSource.sln";
+ "server" = ".\Server\Server.sln";
+ "web" = ".\Web\src\WebTier.sln";
+ "desktop" = ".\Desktop\MgDesktopApi.sln";
+ "desktop_viewer" = ".\Desktop\MgDesktopDotNet.sln";
+ };
+ #$msbParams = "/m /p:Configuration=$conf;Platform=$plat /t:$action"
+
+ Write-Host "Action ($action) on $comp ($conf|$plat)"
+ switch ($comp) {
+ "oem" {
+ #ZeroFileTrap "start_build" "oem"
+ msbuild /m /p:Configuration=$conf /p:Platform=$uplat /t:$action $solutions["oem"]
+ #ZeroFileTrap "build_completed" "oem"
+ CheckStatus "$action $comp" $? #$LASTEXITCODE
+ msbuild /m /p:Configuration=$conf /p:Platform=$uplat /t:$action $solutions["csmap"]
+ CheckStatus "$action $comp" $? #$LASTEXITCODE
+ }
+ "server" {
+ msbuild /m /p:Configuration=$conf /p:Platform=$uplat /t:$action $solutions["server"]
+ CheckStatus "$action $comp" $? #$LASTEXITCODE
+ }
+ "web" {
+ msbuild /m /p:Configuration=$conf /p:Platform=$uplat /t:$action $solutions["web"]
+ CheckStatus "$action $comp" $? #$LASTEXITCODE
+ }
+ "desktop" {
+ msbuild /m /p:Configuration=$conf /p:Platform=$uplat /t:$action $solutions["desktop"]
+ CheckStatus "$action $comp" $? #$LASTEXITCODE
+ msbuild /m /p:Configuration=$conf /p:Platform=$plat /t:$action $solutions["desktop_viewer"]
+ CheckStatus "$action $comp" $? #$LASTEXITCODE
+ }
+ "instantsetup" {
+ Try {
+ pushd $output
+ Write-Host "Entering directory: $output"
+ Write-Host "Making instant setup bundle"
+ & sz a "$artifact_path\MapGuideOpenSource-$major.$minor.$build.$svnrev-InstantSetup-$plat.exe" -mmt -mx5 -sfx 7z.sfx CS-Map Server Web Setup | Out-Null
+ } Finally {
+ popd
+ }
+ }
+ "installer" {
+ $installerName="MapGuideOpenSource-$major.$minor.$build.$svnrev-$label-$plat";
+ $installerCulture="en-US";
+ $installerTitle="MapGuide Open Source $major.$minor.$build ($label - $plat)";
+ $installerVersion="$major.$minor.$build";
+ $installerRegKey="Software\OSGeo\MapGuide\$major.$minor.$build.$svnrev";
+ $installerArcSde="no";
+ if (Test-Path ("$output\Server\FDO\ArcSdeProvider.dll")) {
+ $installerArcSde="yes";
+ }
+
+ Write-Host "============ Installer Summary ================="
+ Write-Host "Name: $installerName"
+ Write-Host "Culture: $installerCulture"
+ Write-Host "Title: $installerTitle"
+ Write-Host "Version: $installerVersion"
+ Write-Host "Reg Key: $installerRegKey"
+ Write-Host "ArcSDE?: $installerArcSde"
+ Write-Host "================================================"
+
+ Try {
+ pushd $installerSrcRoot
+ Write-Host "Entering $installerSrcRoot"
+ $wix_server="$installerSrcRoot\Libraries\MapGuide Server\FileIncludes"
+ $wix_web="$installerSrcRoot\Libraries\MapGuide Web Extensions\FileIncludes"
+ $wix_csmap="$installerSrcRoot\Libraries\CS Map\FileIncludes"
+
+ # These paraffin mappings are to be process flat (-norecurse)
+ $flatMappings = @(
+ @{
+ "desc" = "Server - binaries";
+ "dirPart" = "Server\bin";
+ "custom" = "SRVBINFILES";
+ "dirref" = "SERVERROOTLOCATION";
+ "output" = "$wix_server\incBinFiles.wxs";
+ },
+ @{
+ "desc" = "Server - RepositoryAdmin";
+ "dirPart" = "Server\RepositoryAdmin";
+ "custom" = "SRVREPADMINFILES";
+ "dirref" = "SERVERROOTLOCATION";
+ "output" = "$wix_server\incRepositoryAdminFiles.wxs";
+ },
+ @{
+ "desc" = "Server - resources";
+ "dirPart" = "Server\Resources";
+ "custom" = "SRVRESOURCESFILES";
+ "dirref" = "SERVERROOTLOCATION";
+ "output" = "$wix_server\incResourcesFiles.wxs";
+ },
+ @{
+ "desc" = "Server - Schema";
+ "dirPart" = "Server\Schema";
+ "custom" = "SRVSCHEMAFILES";
+ "dirref" = "SERVERROOTLOCATION";
+ "output" = "$wix_server\incSchemaFiles.wxs";
+ },
+ @{
+ "desc" = "Server - wms";
+ "dirPart" = "Server\wms";
+ "custom" = "SRVWMSFILES";
+ "dirref" = "SERVERROOTLOCATION";
+ "output" = "$wix_server\incWmsFiles.wxs";
+ },
+ @{
+ "desc" = "Server - wfs";
+ "dirPart" = "Server\wfs";
+ "custom" = "SRVWFSFILES";
+ "dirref" = "SERVERROOTLOCATION";
+ "output" = "$wix_server\incWfsFiles.wxs";
+ },
+ @{
+ "desc" = "Web - wwwroot";
+ "dirPart" = "Web\www";
+ "custom" = "WEBROOTFILES";
+ "dirref" = "WEBEXTENSIONSLOCATION";
+ "output" = "$wix_web\incWebRootFiles.wxs";
+ }
+ )
+ # These paraffin mappings are to be processed recursively
+ $recurseMappings = @(
+ @{
+ "desc" = "CS-Map - dictionaries";
+ "dirPart" = "CS-Map\Dictionaries";
+ "custom" = "CSMAPDICTFILES";
+ "dirref" = "CSMAPLOCATION";
+ "output" = "$wix_csmap\incCSMapDictionaryFiles.wxs";
+ },
+ @{
+ "desc" = "Web - Apache";
+ "dirPart" = "Web\Apache24";
+ "custom" = "APACHEFILES";
+ "dirref" = "WEBEXTENSIONSLOCATION";
+ "output" = "$wix_web\incApacheFiles.wxs";
+ },
+ @{
+ "desc" = "Web - Php TS";
+ "dirPart" = "Web\Php";
+ "custom" = "PHPFILES";
+ "dirref" = "WEBEXTENSIONSLOCATION";
+ "output" = "$wix_web\incPhpFiles.wxs";
+ },
+ @{
+ "desc" = "Web - Tomcat";
+ "dirPart" = "Web\Tomcat";
+ "custom" = "TOMCATFILES";
+ "dirref" = "WEBEXTENSIONSLOCATION";
+ "output" = "$wix_web\incTomcatFiles.wxs";
+ },
+ @{
+ "desc" = "Web - Help";
+ "dirPart" = "Web\www\help";
+ "custom" = "HELPFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incHelpFiles.wxs";
+ },
+ @{
+ "desc" = "Web - DevGuide Samples (PHP)";
+ "dirPart" = "Web\www\phpsamples";
+ "custom" = "PHPDEVGUIDEFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incPhpDevGuideFiles.wxs";
+ },
+ @{
+ "desc" = "Web - DevGuide Samples (Java)";
+ "dirPart" = "Web\www\javasamples";
+ "custom" = "JAVADEVGUIDEFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incJavaDevGuideFiles.wxs";
+ },
+ @{
+ "desc" = "Web - DevGuide Samples (.net)";
+ "dirPart" = "Web\www\dotnetsamples";
+ "custom" = "DOTNETDEVGUIDEFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incDotNetDevGuideFiles.wxs";
+ },
+ @{
+ "desc" = "Web - Viewer Samples (PHP)";
+ "dirPart" = "Web\www\phpviewersample";
+ "custom" = "PHPVIEWERSAMPLEFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incPhpViewerSampleFiles.wxs";
+ },
+ @{
+ "desc" = "Web - Viewer Samples (Java)";
+ "dirPart" = "Web\www\javaviewersample";
+ "custom" = "JAVAVIEWERSAMPLEFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incJavaViewerSampleFiles.wxs";
+ },
+ @{
+ "desc" = "Web - Viewer Samples (.net)";
+ "dirPart" = "Web\www\dotnetviewersample";
+ "custom" = "DOTNETVIEWERSAMPLEFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incDotNetViewerSampleFiles.wxs";
+ },
+ @{
+ "desc" = "Web - OpenLayers Samples";
+ "dirPart" = "Web\www\ol2samples";
+ "custom" = "OPENLAYERSSAMPLEFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incOpenLayersSampleFiles.wxs";
+ },
+ @{
+ "desc" = "Web - mapagent";
+ "dirPart" = "Web\www\mapagent";
+ "custom" = "MAPAGENTFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incMapAgentFiles.wxs";
+ },
+ @{
+ "desc" = "Web - mapviewernet";
+ "dirPart" = "Web\www\mapviewernet";
+ "custom" = "MAPVIEWERASPXFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incMapViewerAspxFiles.wxs";
+ },
+ @{
+ "desc" = "Web - mapviewerphp";
+ "dirPart" = "Web\www\mapviewerphp";
+ "custom" = "MAPVIEWERPHPFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incMapViewerPhpFiles.wxs";
+ },
+ @{
+ "desc" = "Web - mapviewerjava";
+ "dirPart" = "Web\www\mapviewerjava";
+ "custom" = "MAPVIEWERJSPFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incMapViewerJspFiles.wxs";
+ },
+ @{
+ "desc" = "Web - fusion";
+ "dirPart" = "Web\www\fusion";
+ "custom" = "FUSIONFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incFusionFiles.wxs";
+ },
+ @{
+ "desc" = "Web - viewerfiles";
+ "dirPart" = "Web\www\viewerfiles";
+ "custom" = "MAPVIEWERFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incMapViewerFiles.wxs";
+ },
+ @{
+ "desc" = "Web - stdicons";
+ "dirPart" = "Web\www\stdicons";
+ "custom" = "MAPVIEWERSTDICONFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incMapViewerStdiconFiles.wxs";
+ },
+ @{
+ "desc" = "Web - schemareport";
+ "dirPart" = "Web\www\schemareport";
+ "custom" = "MAPVIEWERSCHEMAREPORTFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incMapViewerSchemareportFiles.wxs";
+ },
+ @{
+ "desc" = "Web - mapadmin";
+ "dirPart" = "Web\www\mapadmin";
+ "custom" = "MAPVIEWERMAPADMINFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incMapViewerMapAdminFiles.wxs";
+ },
+ @{
+ "desc" = "Web - localized";
+ "dirPart" = "Web\www\localized";
+ "custom" = "MAPVIEWERLOCALIZEDFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incMapViewerLocalizedFiles.wxs";
+ },
+ @{
+ "desc" = "Web - WEB-INF";
+ "dirPart" = "Web\www\WEB-INF";
+ "custom" = "WEBINFFILES";
+ "dirref" = "WEBROOTLOCATION";
+ "output" = "$wix_web\incWebInfFiles.wxs";
+ }
+ )
+
+ if ($plat.Equals("x64")) {
+ foreach ($map in $flatMappings) {
+ Write-Host ("Generating: " + $map["desc"])
+ if (-Not (Test-Path ("$output\" + $map["dirPart"]))) {
+ throw ("No such directory " + ("$output\" + $map["dirPart"]))
+ }
+ .\Paraffin.exe -Win64 -guids -dir ("$output\" + $map["dirPart"]) -alias ('$(var.MgSource)\' + $map["dirPart"]) -custom $map["custom"] -dirref $map["dirref"] -norecurse ($map["output"])
+ }
+ foreach ($map in $recurseMappings) {
+ Write-Host ("Generating: " + $map["desc"])
+ if (-Not (Test-Path ("$output\" + $map["dirPart"]))) {
+ throw ("No such directory " + ("$output\" + $map["dirPart"]))
+ }
+ .\Paraffin.exe -Win64 -guids -dir ("$output\" + $map["dirPart"]) -alias ('$(var.MgSource)\' + $map["dirPart"]) -custom $map["custom"] -dirref $map["dirref"] ($map["output"])
+ }
+ } else {
+ foreach ($map in $flatMappings) {
+ Write-Host ("Generating: " + $map["desc"])
+ if (-Not (Test-Path ("$output\" + $map["dirPart"]))) {
+ throw ("No such directory " + ("$output\" + $map["dirPart"]))
+ }
+ .\Paraffin.exe -guids -dir ("$output\" + $map["dirPart"]) -alias ('$(var.MgSource)\' + $map["dirPart"]) -custom $map["custom"] -dirref $map["dirref"] -norecurse ($map["output"])
+ }
+ foreach ($map in $recurseMappings) {
+ Write-Host ("Generating: " + $map["desc"])
+ if (-Not (Test-Path ("$output\" + $map["dirPart"]))) {
+ throw ("No such directory " + ("$output\" + $map["dirPart"]))
+ }
+ .\Paraffin.exe -guids -dir ("$output\" + $map["dirPart"]) -alias ('$(var.MgSource)\' + $map["dirPart"]) -custom $map["custom"] -dirref $map["dirref"] ($map["output"])
+ }
+ }
+ msbuild /m /p:Configuration=$conf /p:Platform=$plat /t:$action "/p:OutputName=$installerName;MgSource=$output;MgCulture=$installerCulture;MgTitle=$installerTitle;MgVersion=$installerVersion;MgRegKey=$installerRegKey;MgPlatform=$plat;Have_ArcSde=$installerArcSde" InstallerWix.sln
+ CheckStatus "$action $comp" $? #$LASTEXITCODE
+ Copy-Item "Bootstrapper\vcredist_2012_$plat.exe" -Destination "Output\$installerCulture\vcredist_2012_$plat.exe" -Force
+ } Finally {
+ popd
+ }
+
+ Try {
+ pushd $installerSrcRoot\Bootstrapper
+ Write-Host "Entering $installerSrcRoot\Bootstrapper"
+ makensis /DMAXCOMPRESSION /DCPU=$plat /DINSTALLER_ROOT=$installerSrcRoot "/DNSISDIR=$installerSrcRoot\Support\NSIS" /DOUTNAME=$installerName /DCULTURE=$installerCulture "/DMG_VERSION=$major.$minor.$build.$svnrev" Setup.nsi
+ } Finally {
+ popd
+ }
+
+ Try {
+ pushd $installerSrcRoot\Output\en-US
+ Move-Item -path "$installerName.exe" -destination "$artifact_path" -Force
+ } Finally {
+ popd
+ }
+ }
+ "doc" {
+ Try {
+ pushd "Doc"
+ MakeDirIfNotExists "MgOpensource_WebAPIReference"
+ Copy-Item -Path "css\doxygen.css" -Destination "MgOpensource_WebAPIReference" -Force
+ MakeDirIfNotExists "MgOpensource_WebAPIReference\xml_schemas"
+ Copy-Item -Path "xml_schemas\*" -Destination "MgOpensource_WebAPIReference\xml_schemas" -Force -Recurse
+ doxygen MgOpenSource_Doxyfile | Tee-Object MGOpenSource_run_log.txt
+ perl -w PostProcessor/post_process.MgOpenSource.pl
+ } Finally {
+ popd
+ }
+
+ Try {
+ pushd "Doc\devguide"
+ Invoke-BatchFile make.bat html
+ } Finally {
+ popd
+ }
+
+ Try {
+ pushd "UnitTest\TestData\Samples\Sheboygan"
+ if (Test-Path "Sheboygan.mgp") {
+ Remove-Item -Force "Sheboygan.mgp"
+ }
+ Copy-Item -Path "..\..\FeatureService\SDF\Sheboygan_BuildingOutlines.sdf" -Destination "Library\Samples\Sheboygan\Data\BuildingOutlines.FeatureSource_DATA_BuildingOutlines.sdf" -Force
+ Copy-Item -Path "..\..\FeatureService\SDF\Sheboygan_CityLimits.sdf" -Destination "Library\Samples\Sheboygan\Data\CityLimits.FeatureSource_DATA_CityLimits.sdf" -Force
+ Copy-Item -Path "..\..\FeatureService\SDF\Sheboygan_Parcels.sdf" -Destination "Library\Samples\Sheboygan\Data\Parcels.FeatureSource_DATA_CityLimits.sdf" -Force
+ Copy-Item -Path "..\..\FeatureService\SDF\Sheboygan_VotingDistricts.sdf" -Destination "Library\Samples\Sheboygan\Data\VotingDistricts.FeatureSource_DATA_CityLimits.sdf" -Force
+ Copy-Item -Path "..\..\MappingService\UT_HydrographicPolygons.sdf" -Destination "Library\Samples\Sheboygan\Data\HydrographicPolygons.FeatureSource_DATA_CityLimits.sdf" -Force
+ Copy-Item -Path "..\..\MappingService\UT_Rail.sdf" -Destination "Library\Samples\Sheboygan\Data\Rail.FeatureSource_DATA_CityLimits.sdf" -Force
+ Copy-Item -Path "..\..\TileService\UT_RoadCenterLines.sdf" -Destination "Library\Samples\Sheboygan\Data\RoadCenterLines.FeatureSource_DATA_CityLimits.sdf" -Force
+ & sz a -tzip "$artifact_path\Sheboygan.mgp" Library/ MgResourcePackageManifest.xml
+ } Finally {
+ popd
+ }
+ }
+ "all" {
+ foreach ($sln in $solutions.GetEnumerator())
+ {
+ if ($sln.Key -eq "desktop_viewer") {
+ msbuild /m /p:Configuration=$conf /p:Platform=$plat /t:$action $sln.Value
+ } else {
+ msbuild /m /p:Configuration=$conf /p:Platform=$uplat /t:$action $sln.Value
+ }
+ CheckStatus ("$action " + $sln.Key) $? #$LASTEXITCODE
+ #$status = Invoke-MsBuild -Path $sln.Value -ShowBuildWindow -MsBuildParameters $msbParams
+ #CheckStatus ("Building " + $sln.Key) $status
+ }
+ }
+ }
+}
+
+Function BuildAction([string]$comp, [string]$conf, [string]$plat)
+{
+ MsBuildAction $comp $conf $plat "Build"
+}
+
+Function CleanAction([string]$comp, [string]$conf, [string]$plat)
+{
+ MsBuildAction $comp $conf $plat "Clean"
+}
+
+Function MakeDirIfNotExists([string]$dir) {
+ if (-Not(Test-Path $dir)) {
+ New-Item -ItemType directory -Path $dir
+ }
+}
+
+Function InstallAction([string]$comp, [string]$conf, [string]$plat, [string]$outDir)
+{
+ Write-Host "Installing $comp ($conf|$plat) to $outDir"
+ MakeDirIfNotExists $outDir
+
+ $typebuild = $conf
+ if ($plat.Equals("x64")) {
+ $typebuild += "64"
+ }
+
+ $exclude = @(".svn\*", "_svn\*", "Logs", "Packages", "Repositories", "Temp", "*.c", "OSTN02.txt", "OSTN97.txt", "cs-map.*", "*.par", "*.mrt", "*.asc", "Compiler.mak", "Compiler.nmk", "UnitTestResults.xml")
+ if ($conf.ToLower().Equals("release")) {
+ Write-Host "Excluding extra file patterns for release"
+ $exclude += "*.pdb"
+ $exclude += "*.exp"
+ $exclude += "*.lib"
+ }
+ switch ($comp) {
+ "server" {
+ $mappings = @{
+ "Server\bin\$typebuild\*" = "Server";
+ "Server\RepositoryAdmin\*" = "Server\RepositoryAdmin";
+ "Oem\CsMap\Dictionaries\*" = "CS-Map\Dictionaries";
+ };
+ if ($plat.Equals("x64")) {
+ $mappings.Add("Oem\dbxml\bin64\$conf\*.exe", "Server\bin");
+ } else {
+ $mappings.Add("Oem\dbxml\bin\$conf\*.exe", "Server\bin");
+ }
+ foreach ($map in $mappings.GetEnumerator()) {
+ $key = $map.Key
+ $value = $map.Value
+ if (-Not ($map.Value -is [array])) {
+ $value = @($map.Value)
+ }
+ foreach ($val in $value) {
+ $outPath = [System.IO.Path]::Combine($outDir, $val)
+ MakeDirIfNotExists $outPath
+ Copy-Item ($key) -Destination "$outPath" -Recurse -Force -Exclude $exclude
+ }
+ }
+
+ $outPath = [System.IO.Path]::Combine($outDir, "Server\bin")
+ $srcPath = [System.IO.Path]::Combine($outDir, "Server", "*.*")
+ Move-Item -Path "$srcPath" -Destination "$outPath" -Force
+ # Remove old archive if it exists
+ $zipPath = "$artifact_path\MapGuideOpenSource-$major.$minor.$build.$svnrev-TestSuite-$plat.zip"
+ If (Test-Path $zipPath) {
+ Remove-Item $zipPath -Force
+ }
+ Try {
+ pushd $outDir
+ & sz a -tzip -mx9 $zipPath Test
+ } Finally {
+ popd
+ }
+ }
+ "web" {
+ $mappings = @{
+ "Web\src\webconfig.ini" = "Web\www";
+ "Common\MapGuideCommon\Resources\*" = "Web\www\mapagent\Resources";
+ "Web\src\localized\*" = "Web\www\localized";
+ "Web\src\mapadmin\*" = "Web\www\mapadmin";
+ "Web\src\stdicons\*" = "Web\www\stdicons";
+ "Web\src\viewerfiles\*" = "Web\www\viewerfiles";
+ "Web\src\schemareport\*" = "Web\www\schemareport";
+ "Web\src\mapviewerphp\*" = "Web\www\mapviewerphp";
+ "Web\src\mapviewernet\*" = "Web\www\mapviewernet";
+ "Web\src\mapagent\*" = "Web\www\mapagent";
+ "Web\bin\$typebuild\OSGeo.MapGuide.*" = @(
+ "Web\www\mapviewernet\bin",
+ "Web\www\dotnetsamples\bin",
+ "Web\www\dotnetviewersample\bin"
+ );
+ "Web\bin\$typebuild\Mg*.dll" = @(
+ "Web\www\mapviewernet\bin",
+ "Web\www\mapagent",
+ "Web\Php",
+ "Web\Php\ext",
+ "Web\Tomcat\bin",
+ "Web\www\dotnetsamples\bin",
+ "Web\www\dotnetviewersample\bin"
+ );
+ "Web\bin\$typebuild\ACE.dll" = @(
+ "Web\www\mapviewernet\bin",
+ "Web\www\mapagent",
+ "Web\Php",
+ "Web\Tomcat\bin",
+ "Web\www\dotnetsamples\bin",
+ "Web\www\dotnetviewersample\bin"
+ );
+ "Web\bin\$typebuild\GEOS.dll" = @(
+ "Web\www\mapviewernet\bin",
+ "Web\www\mapagent",
+ "Web\Php",
+ "Web\Php\ext",
+ "Web\Tomcat\bin",
+ "Web\www\dotnetsamples\bin",
+ "Web\www\dotnetviewersample\bin"
+ );
+ "Web\bin\$typebuild\lib_json.dll" = @(
+ "Web\www\mapviewernet\bin",
+ "Web\www\mapagent",
+ "Web\Php",
+ "Web\Php\ext",
+ "Web\Tomcat\bin",
+ "Web\www\dotnetsamples\bin",
+ "Web\www\dotnetviewersample\bin"
+ );
+ "Web\bin\$typebuild\MapGuideJavaApi*" = "Web\Tomcat\bin";
+ "Web\bin\$typebuild\*UnmanagedApi.dll" = "Web\www\mapviewernet\bin";
+ "Web\bin\$typebuild\xerces*.dll" = @(
+ "Web\www\mapviewernet\bin",
+ "Web\www\mapagent",
+ "Web\Php",
+ "Web\Php\ext",
+ "Web\www\dotnetsamples\bin",
+ "Web\www\dotnetviewersample\bin"
+ );
+ "Oem\SQLite\bin\$typebuild\php_*.dll" = "Web\Php\ext";
+ "Web\bin\$typebuild\php_*.dll" = "Web\Php\ext";
+ "Web\src\mapviewerjava\*" = "Web\www\mapviewerjava";
+ "Web\src\WEB-INF\*" = "Web\www\WEB-INF";
+ "UnitTest\*" = "Test\UnitTest";
+ };
+ if ($plat.Equals("x64")) {
+ $mappings.Add("Web\src\mapagent64\isapi_MapAgent*", "Web\www\mapagent");
+ $mappings.Add("Web\src\mapagent64\mapagent*", "Web\www\mapagent");
+ $mappings.Add("Web\src\mapagent64\mod_mgmapagent*", "Web\Apache24\modules");
+ } else {
+ $mappings.Add("Web\src\mapagent\isapi_MapAgent*", "Web\www\mapagent");
+ $mappings.Add("Web\src\mapagent\mapagent*", "Web\www\mapagent");
+ $mappings.Add("Web\src\mapagent\mod_mgmapagent*", "Web\Apache24\modules");
+ }
+ foreach ($map in $mappings.GetEnumerator()) {
+ $key = $map.Key
+ $value = $map.Value
+ if (-Not ($map.Value -is [array])) {
+ $value = @($map.Value)
+ }
+ foreach ($val in $value) {
+ $outPath = [System.IO.Path]::Combine($outDir, $val)
+ MakeDirIfNotExists $outPath
+ Copy-Item ($key) -Destination "$outPath" -Recurse -Force -Exclude $exclude
+ }
+ }
+ # Fusion
+ MakeDirIfNotExists "$outDir\Web\www\fusion"
+ Try {
+ pushd "Oem\fusion"
+ ant clean -f build.xml
+ ant docs -f build.xml
+ ant deploy -f build.xml "-Ddeploy.home=$outDir\Web\www\fusion"
+ ant selfbuild -f build.xml "-Dselfbuild.home=$outDir\fusion-selfbuild"
+ } Finally {
+ popd
+ }
+ # Fusion templates
+ Copy-Item "Oem\fusionMG\*" -Destination "$outDir\Web\www\fusion" -Recurse -Force -Exclude $exclude
+
+ # Copy remaining unit test files
+ $testFiles = @{
+ "test_readme.txt" = "Test";
+ "run_tests.bat" = "Test";
+ "run_tests.sh" = "Test";
+ };
+
+ foreach ($testMap in $testFiles.GetEnumerator()) {
+ $key = $testMap.Key
+ $value = $testMap.Value
+ $outPath = [System.IO.Path]::Combine($outDir, $value)
+ Copy-Item ($key) -Destination "$outPath" -Force
+ }
+
+ # Remove old archive if it exists
+ $zipPath = "$artifact_path\MapGuideOpenSource-$major.$minor.$build.$svnrev-TestSuite-$plat.zip"
+ If (Test-Path $zipPath) {
+ Remove-Item $zipPath -Force
+ }
+ Try {
+ pushd $outDir
+ & sz a -tzip -mx9 $zipPath Test
+ } Finally {
+ popd
+ }
+ }
+ "doc" {
+ $mappings = @{
+ "Doc\MgOpensource_WebAPIReference\*" = "Web\www\help\webapi";
+ "Doc\devguide\build\html\*" = "Web\www\help\devguide";
+ "Doc\samples\*" = "Web\www";
+ "Doc\viewerapi\*" = "Web\www\help\viewerapi";
+ "UnitTest\TestData\Samples\Sheboygan\Sheboygan.mgp" = "";
+ };
+ foreach ($map in $mappings.GetEnumerator()) {
+ $key = $map.Key
+ $value = $map.Value
+ if (-Not ($map.Value -is [array])) {
+ $value = @($map.Value)
+ }
+ foreach ($val in $value) {
+ $outPath = [System.IO.Path]::Combine($outDir, $val)
+ MakeDirIfNotExists $outPath
+ Copy-Item ($key) -Destination "$outPath" -Recurse -Force -Exclude $exclude
+ }
+ }
+ }
+ "desktop" {
+ $exclude += "Backup"
+ $exclude += "MgMapGuideCommon*"
+ $exclude += "OSGeo.MapGuide.Commmon*"
+ $mappings = @{
+ "Desktop\bin\$typebuild\*" = "mg-desktop\Desktop";
+ "Desktop\Samples\*" = "mg-desktop\DesktopSamples";
+ };
+ foreach ($map in $mappings.GetEnumerator()) {
+ $key = $map.Key
+ $value = $map.Value
+ if (-Not ($map.Value -is [array])) {
+ $value = @($map.Value)
+ }
+ foreach ($val in $value) {
+ $outPath = [System.IO.Path]::Combine($outDir, $val)
+ MakeDirIfNotExists $outPath
+ Copy-Item ($key) -Destination "$outPath" -Recurse -Force -Exclude $exclude
+ }
+ }
+ Try {
+ $mgdRoot = [System.IO.Path]::Combine($outDir, "mg-desktop")
+ pushd $mgdRoot
+ Write-Host "Make mg-desktop zip distribution"
+ # Remove old archive if it exists
+ $zipPath = "$artifact_path\mg-desktop-$major.$minor.$build.$svnrev-net40-vc11-$plat.zip"
+ If (Test-Path $zipPath) {
+ Remove-Item $zipPath -Force
+ }
+ & sz a -tzip -mx9 $zipPath Desktop DesktopSamples
+ } Finally {
+ popd
+ }
+ }
+ }
+}
+
+Function PrepareInstallerStagingArea([string]$output, [string]$conf, [string]$plat, [string]$installerSupport, [string]$buildRoot, [string]$phpDist, [string]$apacheDist, [string]$tomcatDist)
+{
+ $uplat = $plat
+ # x86 has to be coerced to Win32
+ if ($plat.Equals("x86")) {
+ $uplat = "Win32"
+ }
+ $typebuild = $conf
+ if ($plat.Equals("x64")) {
+ $typebuild += "64"
+ }
+
+ Write-Host "Preparing staging area at: $output"
+
+ # Put our Apache/Tomcat/PHP binaries into the output
+ MakeDirIfNotExists $output
+ MakeDirIfNotExists "$output\Web\Php"
+ MakeDirIfNotExists "$output\Web\Tomcat"
+ MakeDirIfNotExists "$output\Web\Apache24"
+ & sz x $apacheDist -y "-o$output\Web"
+ & sz x $phpDist -y "-o$output\Web\Php"
+ Copy-Item "$installerSupport\mod_jk.so" -Destination "$output\Web\Apache24\modules" -Force
+ Try {
+ & sz x "$tomcatDist" -y "-o$output\Web"
+ pushd $output\Web
+ $tomcatName = [System.IO.Path]::GetFileNameWithoutExtension($tomcatDist);
+ if (Test-Path $tomcatName) {
+ & sz x $tomcatName -y
+ Remove-Item $tomcatName -Force
+ $dirToRename = Get-ChildItem 'apache-tomcat-*' | ForEach-Object {$_.FullName} | Select-Object -First 1
+ $dirToRename = [System.IO.Path]::GetFullPath($dirToRename)
+ Copy-Item -Path "$dirToRename\*" -Destination "Tomcat" -Force -Recurse
+ Remove-Item $dirToRename -Force -Recurse
+ } else {
+ throw "Expected $tomcatName to exist"
+ }
+ } Finally {
+ popd
+ }
+ Copy-Item "$installerSupport\configs\Tomcat\*" -Destination "$output\Web\Tomcat" -Recurse -Force
+ Copy-Item "$installerSupport\configs\Php\*" -Destination "$output\Web\Php" -Recurse -Force
+ Copy-Item "$installerSupport\configs\Apache2\*" -Destination "$output\Web\Apache24" -Recurse -Force
+ Copy-Item "$installerSupport\configs\FDO\providers.xml" -Destination "$output\Server\FDO" -Force
+ Copy-Item "$output\Web\Php\libpq.dll" -Destination "$output\Server\FDO" -Force
+ Copy-Item "$output\Web\Php\libeay32.dll" -Destination "$output\Server\FDO" -Force
+ Copy-Item "$output\Web\Php\ssleay32.dll" -Destination "$output\Server\FDO" -Force
+ msbuild /m /p:Configuration=$conf /p:Platform=$uplat "$installerSrcRoot\InstallerPreReq.sln"
+ Copy-Item "$installerSrcRoot\FdoRegUtil\$typebuild\FdoRegUtil.exe" -Destination "$output\Server\FDO" -Force
+}
+
+Function StampVersion([string]$buildRoot)
+{
+ Write-Host "Stamping version $major.$minor.$build.$svnrev to applicable files"
+ set-alias st "$buildRoot\BuildTools\WebTools\SetAssemblyVersion\SetAssemblyVersion\bin\Release\SetAssemblyVersion.exe"
+ if (-Not (Get-Command doxygen -errorAction SilentlyContinue)) {
+ throw "SetAssemblyVersion.exe not found"
+ }
+
+ Try {
+ pushd $buildRoot
+ cscript updateversion.vbs "/major:$major" "/minor:$minor" "/point:$build" "/build:$svnrev"
+ } Finally {
+ popd
+ }
+
+ $paths = @(
+ "$buildRoot\Web\src\DotNetApi",
+ "$buildRoot\Web\src\DotNetApi\Foundation",
+ "$buildRoot\Web\src\DotNetApi\Geometry",
+ "$buildRoot\Web\src\DotNetApi\MapGuideCommon",
+ "$buildRoot\Web\src\DotNetApi\PlatformBase",
+ "$buildRoot\Web\src\DotNetApi\Web",
+ "$buildRoot\Desktop\DesktopUnmanagedApi\DotNet\Partials",
+ "$buildRoot\Desktop\MgAppLayout\Properties",
+ "$buildRoot\Desktop\MapViewer\Properties",
+ "$buildRoot\Desktop\MapViewer.Desktop\Properties"
+ )
+ foreach ($path in $paths) {
+ Try {
+ pushd $path
+ st "-set:$major.$minor.$build.$svnrev" AssemblyInfo.cs
+ } Finally {
+ popd
+ }
+ }
+}
+
+<#
+Function ZeroFileTrap([string]$action, [string]$comp, [string]$buildDir = "D:\mg-trunk\MgDev") {
+ $filePath = [System.IO.Path]::GetFullPath((Join-Path $buildDir "\0"));
+ if (Test-Path $filePath) {
+ Write-Host "Action ($action) for ($comp) caused a 0 file to be created"
+ $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
+ }
+}
+#>
+
+Try
+{
+ Import-Module Pscx
+ #Import-Module -Name ".\Invoke-MsBuild.psm1"
+
+ $haveMsBuild = (Get-Command msbuild -errorAction SilentlyContinue)
+ $haveNmake = (Get-Command nmake -errorAction SilentlyContinue)
+
+ If (-Not $haveMsBuild -or -Not $haveNmake) {
+ Write-Host "Could not find msbuild or nmake. Running VS command prompt"
+ $vscmd = "$env:VS110COMNTOOLS" + "VsDevCmd.bat"
+ Write-Host "Running: $vscmd"
+ Invoke-BatchFile $vscmd
+ if (-Not $?) {
+ throw "Failure invoking VsDevCmd.bat"
+ }
+ } Else {
+ Write-Host "msbuild and nmake exist. Proceeding with build"
+ }
+ $cwd = (Get-Item -Path ".\" -Verbose).FullName
+
+ MakeDirIfNotExists $artifact_path
+ $artifact_path = (Get-Item -Path $artifact_path -Verbose).FullName
+ $log_path = [System.IO.Path]::GetFullPath((Join-Path $artifact_path "\logs"));
+ MakeDirIfNotExists $log_path
+
+ StampVersion $build_root
+ #ZeroFileTrap "stamp_version", $component
+
+ $cwd = (Get-Item -Path "$build_root" -Verbose).FullName
+ pushd $cwd
+ $phpVersion = "5.5.17"
+ $apacheVersion = "2.4.10"
+ $tomcatVersion = "7.0.56"
+ if (-Not [System.IO.Path]::IsPathRooted($install_root)) {
+ $installerSrcRoot = [System.IO.Path]::GetFullPath((Join-Path $cwd $install_root));
+ } else {
+ $installerSrcRoot = $install_root
+ }
+ $installerSupport = [System.IO.Path]::Combine($installerSrcRoot, "Support\Web\$platform")
+ $phpDist = [System.IO.Path]::Combine($installerSupport, "php-$phpVersion-$platform-VC11.zip")
+ $apacheDist = [System.IO.Path]::Combine($installerSupport, "httpd-$apacheVersion-$platform-VC11.zip")
+ $tomcatDist = [System.IO.Path]::Combine($cwd, "Oem\LinuxApt", "apache-tomcat-$tomcatVersion.tar.gz")
+
+ # Alias 7-zip for easy invocation
+ if (!$env:PATH.Contains("$cwd\BuildTools\WebTools\7-Zip")) {
+ $env:PATH += ";$cwd\BuildTools\WebTools\7-Zip"
+ Write-Host "Appended 7zip to PATH"
+ } else {
+ Write-Host "7zip already in PATH"
+ }
+
+ set-alias sz "7z.exe"
+ if (-Not (Get-Command sz -errorAction SilentlyContinue)) {
+ throw "7-Zip command not found"
+ }
+
+ # Check doxygen
+ Write-Host "Checking for doxygen"
+ if (-Not (Get-Command doxygen -errorAction SilentlyContinue)) {
+ # Retry
+ set-alias doxygen "$doxygen_path\doxygen.exe"
+ if (-Not (Get-Command doxygen -errorAction SilentlyContinue)) {
+ throw "Doxygen not found"
+ }
+ }
+
+ # Check graphviz
+ Write-Host "Checking for graphviz"
+ if (-Not (Get-Command dot -errorAction SilentlyContinue)) {
+ throw "dot not found. Ensure graphviz bin directory is in your PATH environment variable"
+ }
+
+ # Check perl
+ Write-Host "Checking for perl"
+ if (-Not (Get-Command perl -errorAction SilentlyContinue)) {
+ throw "perl not found. Ensure perl bin directory is in your PATH environment variable"
+ }
+
+ # Check sphinx-build
+ Write-Host "Checking for sphinx-build"
+ if (-Not (Get-Command sphinx-build -errorAction SilentlyContinue)) {
+ throw "sphinx-build not found. Ensure Python is installed and you have this sphinx package installed (http://sphinx.pocoo.org)"
+ }
+
+ # Check and unpack the PHP and HTTPD sources
+ EnvSetup $platform $phpVersion $apacheVersion
+ #ZeroFileTrap "env_setup" $component
+ $env:PHP_SRC = "$cwd\Oem\LinuxApt\php-$phpVersion"
+ $env:HTTPD_SRC = "$cwd\Oem\LinuxApt\httpd-$apacheVersion"
+ if ($platform.Equals("x64")) {
+ if ($java_home.Length > 0) {
+ $env:JAVA_HOME = $java_home
+ #ZeroFileTrap "set_java_home_param", $component
+ } else {
+ $env:JAVA_HOME = "C:\Program Files\Java\jdk1.7.0_71"
+ #ZeroFileTrap "set_java_home_default", $component
+ }
+ #ZeroFileTrap "set_java_home", $component
+ $env:PHP_LIB = "$cwd\Oem\php\x64\Release_TS"
+ #ZeroFileTrap "set_php_lib", $component
+ $env:HTTPD_LIB = "$cwd\Oem\httpd\lib64"
+ #ZeroFileTrap "set_httpd_lib", $component
+ } else {
+ if ($java_home.Length > 0) {
+ $env:JAVA_HOME = $java_home
+ } else {
+ $env:JAVA_HOME = "C:\Program Files (x86)\Java\jdk1.7.0_71"
+ }
+ $env:PHP_LIB = "$cwd\Oem\php\Release_TS"
+ $env:HTTPD_LIB = "$cwd\Oem\httpd\lib"
+ }
+ #ZeroFileTrap "set_env_vars", $component
+ # JAVA_HOME must check out
+ Write-Host "Checking for JAVA_HOME"
+ if (-Not (Test-Path $env:JAVA_HOME)) {
+ throw "JAVA_HOME ($env:JAVA_HOME) path does not exist"
+ }
+ #ZeroFileTrap "check_java", $component
+ # Check ant
+ Write-Host "Checking for ant"
+ if (-Not (Get-Command ant -errorAction SilentlyContinue)) {
+ # Retry
+ set-alias ant "$ant_path\ant.bat"
+ if (-Not (Get-Command ant -errorAction SilentlyContinue)) {
+ throw "ant not found. Please check that ant is in your PATH environment variable or that you passed in a valid path for -ant_path"
+ }
+ }
+ #ZeroFileTrap "check_ant", $component
+ # Check makensis
+ Write-Host "Checking for makensis"
+ if (-Not (Get-Command makensis -errorAction SilentlyContinue)) {
+ # Retry
+ set-alias makensis "$installerSrcRoot\Support\NSIS\makensis.exe"
+ if (-Not (Get-Command ant -errorAction SilentlyContinue)) {
+ throw "makensis not found. Please check that you provided a valid path for -install_root"
+ }
+ }
+ #ZeroFileTrap "check_nsis", $component
+ # Normalize the output path
+ if (-Not [System.IO.Path]::IsPathRooted($output)) {
+ $output = [System.IO.Path]::GetFullPath((Join-Path $cwd $output));
+ }
+
+ #ZeroFileTrap "before_build", $component
+
+ Write-Host "========= Action Summary ============"
+ Write-Host "Platform: $platform"
+ Write-Host "Configuration: $config"
+ Write-Host "Action: $action"
+ Write-Host "Component: $component"
+ Write-Host "Output Dir: $output"
+ Write-Host "Build Root: $build_root"
+ Write-Host "Artifact Root: $artifact_path"
+ Write-Host "Version (major): $major"
+ Write-Host "Version (minor): $minor"
+ Write-Host "Version (build): $build"
+ Write-Host "=== Environment Variable Summary ===="
+ Write-Host "PHP_SRC: $env:PHP_SRC"
+ Write-Host "PHP_LIB: $env:PHP_LIB"
+ Write-Host "HTTPD_SRC: $env:HTTPD_SRC"
+ Write-Host "HTTPD_LIB: $env:HTTPD_LIB"
+ Write-Host "JAVA_HOME: $env:JAVA_HOME"
+ Write-Host "====================================="
+
+ switch($action) {
+ "clean" {
+ CleanAction $component $config $platform
+ }
+ "build" {
+ BuildAction $component $config $platform
+ }
+ "buildinstall" {
+ if ($component.Equals("all")) {
+ BuildAction "oem" $config $platform
+ #ZeroFileTrap "build" "oem"
+ InstallAction "oem" $config $platform $output
+ #ZeroFileTrap "install" "oem"
+
+ BuildAction "server" $config $platform
+ #ZeroFileTrap "build" "server"
+ InstallAction "server" $config $platform $output
+ #ZeroFileTrap "install" "server"
+
+ BuildAction "web" $config $platform
+ #ZeroFileTrap "build" "web"
+ InstallAction "web" $config $platform $output
+ #ZeroFileTrap "install" "web"
+
+ BuildAction "doc" $config $platform
+ #ZeroFileTrap "build" "doc"
+ InstallAction "doc" $config $platform $output
+ #ZeroFileTrap "install" "doc"
+
+ PrepareInstallerStagingArea $output $config $platform $installerSupport $cwd $phpDist $apacheDist $tomcatDist
+ #ZeroFileTrap "prepare" "installer"
+ BuildAction "instantsetup" $config $platform
+ #ZeroFileTrap "build" "instantsetup"
+ BuildAction "installer" $config $platform
+ #ZeroFileTrap "build" "installer"
+
+ BuildAction "desktop" $config $platform
+ #ZeroFileTrap "build" "desktop"
+ InstallAction "desktop" $config $platform $output
+ #ZeroFileTrap "installer" "desktop"
+ } else {
+ BuildAction $component $config $platform
+ InstallAction $component $config $platform $output
+ }
+ }
+ "install" {
+ if ($component.Equals("all")) {
+ InstallAction "server" $config $platform $output
+ InstallAction "web" $config $platform $output
+ InstallAction "doc" $config $platform $output
+ PrepareInstallerStagingArea $output $config $platform $installerSupport $cwd $phpDist $apacheDist $tomcatDist
+ InstallAction "desktop" $config $platform $output
+ } else {
+ InstallAction $component $config $platform $output
+ }
+ }
+ "installprepare" {
+ PrepareInstallerStagingArea $output $config $platform $installerSupport $cwd $phpDist $apacheDist $tomcatDist
+ }
+ }
+}
+Finally
+{
+ popd
+}
\ No newline at end of file
Modified: branches/2.6/vagrant/scripts/build.sh
===================================================================
--- branches/2.6/vagrant/scripts/build.sh 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/scripts/build.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -2,7 +2,7 @@
# Global vars for this script. Modify as necessary
APIVERSION=2.6
-BUILDNUM=${APIVERSION}.0
+BUILDNUM=${APIVERSION}.1
BUILDROOT=`pwd`
MGCPUPLATFORM=i386
MGDEBUG=0
@@ -17,7 +17,7 @@
SVNROOT=/home/vagrant
#SVNROOT="svn://svn.bld.mgproto.net"
#SVNROOT="http://svn.osgeo.org"
-SVNRELPATH=/mapguide/branches/2.6/MgDev
+SVNRELPATH=/mapguide/branches/3.0/MgDev
MY_MAKE_OPTS="-j 2"
UBUNTU=0
PRESERVE_BUILD_ROOT=1
@@ -196,6 +196,18 @@
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
+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}
@@ -226,7 +238,7 @@
mkdir -p bin
fi
- tar -zcf bin/mapguideopensource-${BUILDNUM}.${REVISION}.${MGCPUPLATFORM}.tar.gz ${INSTALLROOT} ${LOCKFILEDIR}
+ 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
Added: branches/2.6/vagrant/scripts/build_fdo.ps1
===================================================================
--- branches/2.6/vagrant/scripts/build_fdo.ps1 (rev 0)
+++ branches/2.6/vagrant/scripts/build_fdo.ps1 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,132 @@
+<#
+.SYNOPSIS
+ Builds the FDO codebase
+.DESCRIPTION
+ This PowerShell script will build the entire FDO codebase, which consists of
+ - Oem components
+ - Server tier
+ - Web tier
+ - Documentation
+ - Windows Installer
+ - mg-desktop
+ This script requires PowerShell Community Extensions installed
+.EXAMPLE
+ C:\PS> .\build.ps1 -platform x64 -build_root 'D:\fdo-trunk' -output '.\Release64'
+ Build the full source (located at D:\fdo-trunk) for 64-bit. The build output will be at (.\Release64)
+.EXAMPLE
+ C:\PS> .\build.ps1 -platform x86 -build_root 'D:\fdo-trunk' -output '.\Release'
+ Build the full source (located at D:\fdo-trunk) for 32-bit. The build output will be at (.\Release64)
+.LINK
+ Project Home: http://mapguide.osgeo.org
+ PowerShell Community Extensions: https://pscx.codeplex.com/
+.NOTES
+ Author: Jackie Ng
+#>
+param(
+ [Parameter(HelpMessage = "The CPU platform to build for")]
+ [ValidateSet("Win32", "x64")]
+ [Alias("p")]
+ $platform = "Win32",
+ [Parameter(HelpMessage = "The build configuration to build for")]
+ [ValidateSet("debug", "release")]
+ [Alias("c")]
+ [string]
+ $config = "release",
+ [Parameter(HelpMessage = "The action to perform")]
+ [ValidateSet("build", "install", "buildinstall", "clean")]
+ [Alias("a")]
+ [string]
+ $action = "buildinstall",
+ [Parameter(HelpMessage = "The components to build")]
+ [ValidateSet("thirdparty", "fdo", "all")]
+ [Alias("w")]
+ [string]
+ $component = "all",
+ [Parameter(HelpMessage = "The directory where compiled binaries will be copied to. If relative, the path will be relative to the build root")]
+ [Alias("o")]
+ [string]
+ $output = ".\Release",
+ [Parameter(HelpMessage = "The directory where the FDO source resides in")]
+ [string]
+ $build_root = ".\",
+ [Parameter(HelpMessage = "The directory where the MySQL SDK resides in")]
+ [string]
+ $fdo_mysql = "",
+ [Parameter(HelpMessage = "The directory where the PostgreSQL SDK resides in")]
+ [string]
+ $fdo_postgresql = "",
+ [Parameter(HelpMessage = "The directory where the Oracle Instant Client SDK resides in")]
+ [string]
+ $fdo_oracle = ""
+)
+
+Function MakeDirIfNotExists([string]$dir) {
+ if (-Not(Test-Path $dir)) {
+ New-Item -ItemType directory -Path $dir
+ }
+}
+
+Try
+{
+ Import-Module Pscx
+
+ $env:FDOMYSQL = $fdo_mysql
+ $env:FDOORACLE = $fdo_oracle
+ $env:FDOPOSTGRESQL = $fdo_postgresql
+
+ $cwd = (Get-Item -Path "$build_root" -Verbose).FullName
+ pushd $cwd
+ Write-Host "Entering $cwd"
+
+ If ($platform.Equals("x64")) {
+ Write-Host "Setting FDO build environment for x64"
+ Invoke-BatchFile setenvironment.bat x86_amd64
+ } Else {
+ Write-Host "Setting FDO build environment for x86"
+ Invoke-BatchFile setenvironment.bat x86
+ }
+ if (-Not $?) {
+ throw "Failure invoking setenvironment.bat"
+ }
+
+ # Check perl
+ Write-Host "Checking for perl"
+ if (-Not (Get-Command perl -errorAction SilentlyContinue)) {
+ throw "perl not found. Ensure perl bin directory is in your PATH environment variable"
+ }
+
+ # Normalize the output path
+ if (-Not [System.IO.Path]::IsPathRooted($output)) {
+ $output = [System.IO.Path]::GetFullPath((Join-Path $cwd $output));
+ }
+
+ Write-Host "========= Action Summary ============"
+ Write-Host "Platform: $platform"
+ Write-Host "Configuration: $config"
+ Write-Host "Action: $action"
+ Write-Host "Component: $component"
+ Write-Host "Output Dir: $output"
+ Write-Host "Build Root: $build_root"
+ Write-Host "======== Env var summary ============"
+ Write-Host "FDOMYSQL: $env:FDOMYSQL"
+ Write-Host "FDOPOSTGRESQL: $env:FDOPOSTGRESQL"
+ Write-Host "FDOORACLE: $env:FDOORACLE"
+ Write-Host "====================================="
+
+ switch ($component) {
+ "thirdparty" {
+ & .\build_thirdparty.bat "-a=$action" "-o=$output" "-p=$platform" "-c=$config"
+ }
+ "fdo" {
+ & .\build.bat "-a=$action" "-o=$output" "-p=$platform" "-c=$config"
+ }
+ "all" {
+ & .\build_thirdparty.bat "-a=$action" "-o=$output" "-p=$platform" "-c=$config"
+ & .\build.bat "-a=$action" "-o=$output" "-p=$platform" "-c=$config"
+ }
+ }
+}
+Finally
+{
+ popd
+}
\ No newline at end of file
Modified: branches/2.6/vagrant/scripts/build_fdo.sh
===================================================================
--- branches/2.6/vagrant/scripts/build_fdo.sh 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/scripts/build_fdo.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -12,8 +12,8 @@
FDO_BUILD_COMPONENT=
# FDO version. Make sure this matches your FDO build source
-FDO_VER_MAJOR=3
-FDO_VER_MINOR=9
+FDO_VER_MAJOR=4
+FDO_VER_MINOR=0
FDO_VER_REV=0
# Extra flags to pass to FDO build scripts
@@ -104,7 +104,7 @@
CMAKE=0
MY_HOME_DIR=/home/vagrant
-FDO_SRC=${MY_HOME_DIR}/fdo/branches/3.9
+FDO_SRC=${MY_HOME_DIR}/fdo/branches/4.0
#FDO_SRC=http://svn.osgeo.org/fdo/trunk
FDO_BUILD_AREA=${BUILDROOT}/fdo_build_area
FDO_FILELIST=${FDO_BUILD_AREA}/install/filelist
@@ -140,7 +140,7 @@
ln -s /usr/lib ${MY_HOME_DIR}/fdo_rdbms_thirdparty_system/pgsql/$FDO_CPU/$LIB_DIRNAME
echo "[info]: Symlinked PostgreSQL lib path (x86)"
else
- ln -s /usr/lib64 ${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/$LIB_DIRNAME
echo "[info]: Symlinked PostgreSQL lib path (x64)"
fi
else
@@ -204,7 +204,12 @@
mkdir -p $FDO_BUILD_AREA/Thirdparty/libcurl/lib
if [ ! -e $FDO_BUILD_AREA/Thirdparty/libcurl/lib/linux ];
then
- ln -s /usr/lib/i386-linux-gnu $FDO_BUILD_AREA/Thirdparty/libcurl/lib/linux
+ if [ ${FDO_PLATFORM} -eq 32 ];
+ then
+ ln -s /usr/lib/i386-linux-gnu $FDO_BUILD_AREA/Thirdparty/libcurl/lib/linux
+ else
+ ln -s /usr/lib/x86_64-linux-gnu $FDO_BUILD_AREA/Thirdparty/libcurl/lib/linux
+ fi
fi
# symlink openssl to system installed copy
@@ -219,7 +224,12 @@
mkdir -p $FDO_BUILD_AREA/Thirdparty/openssl/lib
if [ ! -e $FDO_BUILD_AREA/Thirdparty/openssl/lib/linux ];
then
- ln -s /usr/lib/i386-linux-gnu $FDO_BUILD_AREA/Thirdparty/openssl/lib/linux
+ if [ ${FDO_PLATFORM} -eq 32 ];
+ then
+ ln -s /usr/lib/i386-linux-gnu $FDO_BUILD_AREA/Thirdparty/openssl/lib/linux
+ else
+ ln -s /usr/lib/x86_64-linux-gnu $FDO_BUILD_AREA/Thirdparty/openssl/lib/linux
+ fi
fi
echo "[info]: Replace internal openssl/libcurl with symlinks to Ubuntu-installed copies"
fi
@@ -533,7 +543,7 @@
FDO_BUILD_COMPONENT="Make tarball"
# Create a binary tar ball for FDO
cd ${FDO_INST}
- tar -zcf ${BUILDROOT}/fdosdk-centos6-${FDO_BUILD_CPU}-${FDO_VER_FULL}_${REVISION}.tar.gz *
+ tar -Jcf ${BUILDROOT}/fdosdk-centos6-${FDO_BUILD_CPU}-${FDO_VER_FULL}_${REVISION}.tar.xz *
check_build
if [ ${UBUNTU} -eq 1 ];
@@ -547,4 +557,4 @@
fi
echo "[info]: FDO build complete!"
-echo Main build execution time: `expr $end_time - $start_time` s
\ No newline at end of file
+echo Main build execution time: `expr $end_time - $start_time` s
Modified: branches/2.6/vagrant/scripts/dpkgmapguide.sh
===================================================================
--- branches/2.6/vagrant/scripts/dpkgmapguide.sh 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/scripts/dpkgmapguide.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -6,50 +6,50 @@
# changelog - generated changelog file
# substvars - subst params created by dpkg-shlibdeps
# mapguideplatformbase/ - packaging directory for common MapGuide components
-# usr/local/mapguideopensource-2.6.0/ - copied tree for common components
+# usr/local/mapguideopensource-3.0.0/ - 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-2.6.0/ - copied tree for common components
+# usr/local/mapguideopensource-3.0.0/ - 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-2.6.0/ - copied tree for common components
+# usr/local/mapguideopensource-3.0.0/ - 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-2.6.0/ - copied tree for common components
+# usr/local/mapguideopensource-3.0.0/ - 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-2.6.0/ - copied tree for Server
+# usr/local/mapguideopensource-3.0.0/ - 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-2.6.0/ - copied tree for Web Extensions
+# usr/local/mapguideopensource-3.0.0/ - 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-2.6.0/ - copied tree for Apache bundle
+# usr/local/mapguideopensource-3.0.0/ - copied tree for Apache bundle
# DEBIAN/
# control - control file generated from dpkg-gencontrol
# symbols - symbols file generated from dpkg-gensymbols
#
BUILDROOT=`pwd`
-MGBUILD=2.6.0
+MGBUILD=2.6.1
FDOBUILD=3.9.0
MGINST=usr/local/mapguideopensource-${MGBUILD}
CPROOT=${ROOT}/${MGINST}
Modified: branches/2.6/vagrant/scripts/mapguidecommon_excludes.txt
===================================================================
--- branches/2.6/vagrant/scripts/mapguidecommon_excludes.txt 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/scripts/mapguidecommon_excludes.txt 2015-07-27 12:26:06 UTC (rev 8719)
@@ -1,27 +1,26 @@
libACE.so
-libACE.so.5.8.0
-libdwfcore-1.1.1.so
-libdwfemap-1.0.0.so
-libdwftk-7.1.1.so
-libMgFoundation-2.6.0.so
+libACE.so.6.2.6
+libdwfcore-1.7.0.so
+libdwftk-7.7.0.so
+libMgFoundation-2.6.1.so
libMgFoundation.so
-libMgGeometry-2.6.0.so
+libMgGeometry-2.6.1.so
libMgGeometry.so
-libMgGwsCommon-2.6.0.so
+libMgGwsCommon-2.6.1.so
libMgGwsCommon.so
-libMgGwsQueryEngine-2.6.0.so
+libMgGwsQueryEngine-2.6.1.so
libMgGwsQueryEngine.so
-libMgGwsResource-2.6.0.so
+libMgGwsResource-2.6.1.so
libMgGwsResource.so
-libMgMdfModel-2.6.0.so
+libMgMdfModel-2.6.1.so
libMgMdfModel.so
-libMgMdfParser-2.6.0.so
+libMgMdfParser-2.6.1.so
libMgMdfParser.so
-libMgPlatformBase-2.6.0.so
+libMgPlatformBase-2.6.1.so
libMgPlatformBase.so
-libMgRenderers-2.6.0.so
+libMgRenderers-2.6.1.so
libMgRenderers.so
-libMgStylization-2.6.0.so
+libMgStylization-2.6.1.so
libMgStylization.so
libxerces-c-3.1.so
libxerces-c.so
Modified: branches/2.6/vagrant/scripts/mginstallcentos.sh
===================================================================
--- branches/2.6/vagrant/scripts/mginstallcentos.sh 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/scripts/mginstallcentos.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -1,5 +1,7 @@
#!/bin/bash
-URL="http://download.osgeo.org/mapguide/releases/2.6.0/Release"
+URL_ROOT="http://download.osgeo.org/mapguide/releases/2.6.1/Final"
+URL_PART="centos"
+URL="$URL_ROOT/$URL_PART"
#URL="http://192.168.0.4/downloads"
FDOVER_MAJOR_MINOR=3.9
FDOVER_POINT=0
@@ -8,86 +10,97 @@
FDOVER_MAJOR_MINOR_REV=${FDOVER_MAJOR_MINOR}.${FDOVER_POINT}
FDOVER=${FDOVER_MAJOR_MINOR_REV}_${FDOVER_REV}
MGVER_MAJOR_MINOR=2.6
-MGVER_POINT=0
+MGVER_POINT=1
MGVER_REV=0
MG_ARCH=i386
MGVER_MAJOR_MINOR_REV=${MGVER_MAJOR_MINOR}.${MGVER_POINT}
MGVER=${MGVER_MAJOR_MINOR_REV}.${MGVER_REV}
-FDO_TARBALL=fdosdk-centos6-${FDO_ARCH}-${FDOVER}.tar.gz
-MG_TARBALL=mapguideopensource-${MGVER}.${MG_ARCH}.tar.gz
+FDO_TARBALL=fdosdk-centos6-${FDO_ARCH}-${FDOVER}.tar.xz
+MG_TARBALL=mapguideopensource-${MGVER}.${MG_ARCH}.tar.xz
MG_URL=${URL}/${MG_TARBALL}
FDO_URL=${URL}/${FDO_TARBALL}
+# Must make sure we have .tar.xz support and any other deps if this is a minimal install
+yum install -y xz-lzma-compat wget libxslt libpng redhat-lsb-core
+
# Must have root
if [[ $EUID -ne 0 ]]; then
echo "You must run this script with superuser privileges"
exit 1
fi
-if [ ! -f ${FDO_TARBALL} ]; then
-wget -N ${FDO_URL}
-fi
+wget -N -c ${FDO_URL}
-#tar -C / -zxvf ${FDO_TARBALL}
mkdir -p /usr/local/fdo-${FDOVER_MAJOR_MINOR_REV}
echo "[install]: Extracting FDO"
-tar -C /usr/local/fdo-${FDOVER_MAJOR_MINOR_REV}/ -zxf ${FDO_TARBALL}
+tar -C /usr/local/fdo-${FDOVER_MAJOR_MINOR_REV}/ -Jxf ${FDO_TARBALL}
-if [ ! -f ${MG_TARBALL} ]; then
-wget -N ${MG_URL}
-fi
+wget -N -c ${MG_URL}
echo "[install]: Extracting MapGuide"
-tar -C / -zxf ${MG_TARBALL}
+tar -C / -Jxf ${MG_TARBALL}
# All of this is to make SELinux happy
-pushd /usr/local/fdo-${FDOVER_MAJOR_MINOR_REV}/lib
+pushd /usr/local/fdo-${FDOVER_MAJOR_MINOR_REV}/lib > /dev/null
echo "[config]: Making binaries SELinux compatible"
chcon -t textrel_shlib_t *.so
-popd
+popd > /dev/null
-pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/server/bin
+pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/server/bin > /dev/null
echo "[config]: Making binaries SELinux compatible"
chcon -t textrel_shlib_t *.so
chcon -t textrel_shlib_t mgserver
-popd
+popd > /dev/null
-pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/server/lib
+pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/server/lib > /dev/null
echo "[config]: Making binaries SELinux compatible"
chcon -t textrel_shlib_t *.so
-popd
+popd > /dev/null
-pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/lib
+pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/lib > /dev/null
echo "[config]: Making binaries SELinux compatible"
chcon -t textrel_shlib_t *.so
-popd
+popd > /dev/null
-pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/lib
+pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/lib > /dev/null
echo "[config]: Making binaries SELinux compatible"
chcon -t textrel_shlib_t *.so
-popd
+popd > /dev/null
-pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/apache2/lib
+pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/apache2/lib > /dev/null
echo "[config]: Making binaries SELinux compatible"
chcon -t textrel_shlib_t *.so
-popd
+popd > /dev/null
-pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/apache2/modules
+pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/apache2/modules > /dev/null
echo "[config]: Making binaries SELinux compatible"
chcon -t textrel_shlib_t *.so
-popd
+popd > /dev/null
echo "[config]: Fixing permissions for certain folders"
chmod 777 /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/www/TempDir
-pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/apache2/bin
+echo "[install]: Registering services"
+# The service control scripts as-is won't register as services as they lack chkconfig information
+# We'll inject this information by prepending this information and appending the existing script bodies
+# afterwards to the destination. We are not making symlinks.
+echo "#!/bin/sh" > /etc/init.d/mapguide
+echo "# chkconfig: 345 35 65" >> /etc/init.d/mapguide
+echo "# description: MapGuide Server Daemon" >> /etc/init.d/mapguide
+sed "s/\#\!\/bin\/sh//g" /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/server/bin/mapguidectl >> /etc/init.d/mapguide
+chmod +x /etc/init.d/mapguide
+chkconfig --add mapguide
+echo "#!/bin/sh" > /etc/init.d/apache-mapguide
+echo "# chkconfig: 345 35 65" >> /etc/init.d/apache-mapguide
+echo "# description: MapGuide Server Daemon" >> /etc/init.d/apache-mapguide
+sed "s/\#\!\/bin\/sh//g" /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/apache2/bin/apachectl >> /etc/init.d/apache-mapguide
+chmod +x /etc/init.d/apache-mapguide
+chkconfig --add apache-mapguide
+
echo "[install]: Starting httpd"
-./apachectl start
-popd
+/etc/init.d/mapguide start
-pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/server/bin
echo "[install]: Starting mgserver"
-./mgserverd.sh
-popd
+/etc/init.d/apache-mapguide start
echo DONE
Modified: branches/2.6/vagrant/scripts/mginstallubuntu.sh
===================================================================
--- branches/2.6/vagrant/scripts/mginstallubuntu.sh 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/scripts/mginstallubuntu.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -1,6 +1,8 @@
#!/bin/bash
TEMPDIR=/tmp/build_mapguide
-URL="http://download.osgeo.org/mapguide/releases/2.6.0/Release/ubuntu12"
+URL_ROOT="http://download.osgeo.org/mapguide/releases/2.6.1/Final"
+URL_PART="ubuntu12"
+URL="$URL_ROOT/$URL_PART"
#URL="http://192.168.0.5/downloads/ubuntu12"
FDOVER_MAJOR_MINOR=3.9
FDOVER_MAJOR_MINOR_REV=${FDOVER_MAJOR_MINOR}.0
@@ -8,7 +10,7 @@
FDOARCH=i386
FDOVER=${FDOVER_MAJOR_MINOR_REV}-${FDOBUILD}_${FDOARCH}
MGVER_MAJOR_MINOR=2.6
-MGVER_MAJOR_MINOR_REV=${MGVER_MAJOR_MINOR}.0
+MGVER_MAJOR_MINOR_REV=${MGVER_MAJOR_MINOR}.1
MGBUILD=0
MGARCH=i386
MGVER=${MGVER_MAJOR_MINOR_REV}-${MGBUILD}_${MGARCH}
@@ -35,25 +37,124 @@
httpd_port=8008
tomcat_port=8009
+fdo_provider_choice=""
+
# Must have root
if [[ $EUID -ne 0 ]]; then
echo "You must run this script with superuser privileges"
exit 1
fi
+while [ $# -gt 0 ]; do # Until you run out of parameters...
+ case "$1" in
+ -headless|--headless)
+ HEADLESS=1
+ #shift
+ ;;
+ -with-sdf|--with-sdf)
+ fdo_provider_choice="$fdo_provider_choice sdf"
+ #shift
+ ;;
+ -with-shp|--with-shp)
+ fdo_provider_choice="$fdo_provider_choice shp"
+ #shift
+ ;;
+ -with-sqlite|--with-sqlite)
+ fdo_provider_choice="$fdo_provider_choice sqlite"
+ #shift
+ ;;
+ -with-gdal|--with-gdal)
+ fdo_provider_choice="$fdo_provider_choice gdal"
+ #shift
+ ;;
+ -with-ogr|--with-ogr)
+ fdo_provider_choice="$fdo_provider_choice ogr"
+ #shift
+ ;;
+ -with-kingoracle|--with-kingoracle)
+ fdo_provider_choice="$fdo_provider_choice kingoracle"
+ #shift
+ ;;
+ -with-wfs|--with-wfs)
+ fdo_provider_choice="$fdo_provider_choice wfs"
+ #shift
+ ;;
+ -with-wms|--with-wms)
+ fdo_provider_choice="$fdo_provider_choice wms"
+ #shift
+ ;;
+ -server-ip|--server-ip)
+ server_ip="$2"
+ webtier_server_ip="$2"
+ shift
+ ;;
+ -admin-port|--admin-port)
+ admin_port=$2
+ shift
+ ;;
+ -client-port|--client-port)
+ client_port=$2
+ shift
+ ;;
+ -site-port|--site-port)
+ site_port=$2
+ shift
+ ;;
+ -httpd-port|--httpd-port)
+ httpd_port=$2
+ shift
+ ;;
+ -tomcat-port|--tomcat-port)
+ tomcat_port=$2
+ shift
+ ;;
+ -help|--help)
+ echo "Usage: $0 (options)"
+ echo "Options:"
+ echo " --headless [Install headlessly (skip UI)]"
+ echo " --with-sdf [Include SDF Provider]"
+ echo " --with-shp [Include SHP Provider]"
+ echo " --with-sqlite [Include SQLite Provider]"
+ echo " --with-gdal [Include GDAL Provider]"
+ echo " --with-ogr [Include OGR Provider]"
+ echo " --with-kingoracle [Include King Oracle Provider]"
+ echo " --with-wfs [Include WFS Provider]"
+ echo " --with-wms [Include WMS Provider]"
+ echo " --server-ip [Server IP, default: 127.0.0.1]"
+ echo " --admin-port [Admin Server Port, default: 2810]"
+ echo " --client-port [Client Server Port, default: 2811]"
+ echo " --site-port [Site Server Port, default: 2812]"
+ echo " --httpd-port [HTTPD port, default: 8008]"
+ echo " --tomcat-port [Tomcat Port, default: 8009]"
+ exit
+ ;;
+ esac
+ shift # Check next set of parameters.
+done
+
+if [ "$HEADLESS" != "1" ]
+then
# Install required packages
apt-get -y install dialog libexpat1 libssl1.0.0 odbcinst unixodbc libcurl3 libxslt1.1
+else
+# Install required packages
+apt-get -y install libexpat1 libssl1.0.0 odbcinst unixodbc libcurl3 libxslt1.1
+fi
DIALOG=${DIALOG=dialog}
main()
{
- dialog_welcome
- dialog_fdo_provider
- dialog_server
- dialog_webtier
- #dialog_coordsys
- #dump_configuration
+ if [ "$HEADLESS" != "1" ]
+ then
+ dialog_welcome
+ dialog_fdo_provider
+ dialog_server
+ dialog_webtier
+ #dialog_coordsys
+ else
+ dump_configuration
+ fi
install_fdo
install_mapguide_packages
post_install
@@ -472,23 +573,20 @@
echo "[config]: Fixing permissions for certain folders"
chmod 777 /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/www/TempDir
- 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 tomcat"
+ echo "[config]: Registering Services"
+ ln -s /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/server/bin/mapguidectl /etc/init.d/mapguide
+ ln -s /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/apache2/bin/apachectl /etc/init.d/apache-mapguide
+ update-rc.d mapguide defaults 35 65
+ update-rc.d apache-mapguide defaults 30 70
+
+ echo "[install]: Starting httpd"
+ /etc/init.d/apache-mapguide start
+ echo "[install]: Starting tomcat"
pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/webserverextensions/tomcat/bin
sh ./startup.sh
popd
- echo "Starting mgserver"
- pushd /usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}/server/bin
- ./mgserverd.sh
- popd
+ echo "[install]: Starting mgserver"
+ /etc/init.d/mapguide start
echo "DONE!"
}
Added: branches/2.6/vagrant/scripts/mguninstallcentos.sh
===================================================================
--- branches/2.6/vagrant/scripts/mguninstallcentos.sh (rev 0)
+++ branches/2.6/vagrant/scripts/mguninstallcentos.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,54 @@
+#!/bin/bash
+FDOVER_MAJOR_MINOR=3.9
+FDOVER_POINT=0
+FDOVER_MAJOR_MINOR_REV=${FDOVER_MAJOR_MINOR}.${FDOVER_POINT}
+MGVER_MAJOR_MINOR=2.6
+MGVER_POINT=1
+MGVER_MAJOR_MINOR_REV=${MGVER_MAJOR_MINOR}.${MGVER_POINT}
+
+FDOINST=/usr/local/fdo-${FDOVER_MAJOR_MINOR_REV}
+MGINST=/usr/local/mapguideopensource-${MGVER_MAJOR_MINOR_REV}
+
+# Must have root
+if [[ $EUID -ne 0 ]]; then
+ echo "You must run this script with superuser privileges"
+ exit 1
+fi
+
+do_uninstall()
+{
+ if [ -f /etc/init.d/mapguide ]; then
+ echo "[uninstall]: Remove mapguide service"
+ /etc/init.d/mapguide stop
+ chkconfig --del mapguide
+ rm -f /etc/init.d/mapguide
+ fi
+
+ if [ -f /etc/init.d/apache-mapguide ]; then
+ echo "[uninstall]: Remove apache-mapguide service"
+ /etc/init.d/apache-mapguide stop
+ chkconfig --del apache-mapguide
+ rm -f /etc/init.d/apache-mapguide
+ fi
+
+ if [ -d $MGINST ]; then
+ echo "[uninstall]: Uninstalling MapGuide"
+ rm -rf $MGINST
+ fi
+
+ if [ -d $FDOINST ]; then
+ echo "[uninstall]: Uninstalling FDO"
+ rm -rf $FDOINST
+ fi
+
+ echo "Uninstall completed"
+}
+
+while true; do
+ read -p 'This script will remove everything under the MapGuide and FDO installation directories and un-register any installed services. Do you wish to uninstall MapGuide? [y/n]' yn
+ case $yn in
+ [Yy]* ) do_uninstall; break;;
+ [Nn]* ) exit;;
+ * ) echo "Please answer yes or no.";;
+ esac
+done
Modified: branches/2.6/vagrant/scripts/mguninstallubuntu.sh
===================================================================
--- branches/2.6/vagrant/scripts/mguninstallubuntu.sh 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/scripts/mguninstallubuntu.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -2,20 +2,48 @@
# Must have root
if [[ $EUID -ne 0 ]]; then
- echo "You must run this script with superuser privileges"
- exit 1
+ echo "You must run this script with superuser privileges"
+ exit 1
fi
-# Remove Ubuntu packages for MapGuide
-for file in server webextensions httpd coordsys coordsys-lite common platformbase
-do
- dpkg --remove mapguideopensource-${file}
-done
+do_uninstall()
+{
+ # Stop and un-register mapguide service
+ echo "[uninstall]: Removing mapguide service"
+ if [ -f /etc/init.d/mapguide ]; then
+ /etc/init.d/mapguide stop
+ update-rc.d -f mapguide remove
+ rm -f /etc/init.d/mapguide
+ fi
+ echo "[uninstall]: Removing apache-mapguide service"
+ if [ -f /etc/init.d/apache-mapguide ]; then
+ /etc/init.d/apache-mapguide stop
+ update-rc.d -f apache-mapguide remove
+ rm -f /etc/init.d/apache-mapguide
+ fi
-# Remove Ubuntu packages for FDO
-for file in gdal kingoracle ogr rdbms sdf shp sqlite wfs wms arcsde core
-do
- dpkg --remove fdo-${file}
-done
+ # Remove Ubuntu packages for MapGuide
+ echo "[uninstall]: MapGuide packages"
+ for file in server webextensions httpd coordsys coordsys-lite common platformbase
+ do
+ dpkg --remove mapguideopensource-${file}
+ done
+ # Remove Ubuntu packages for FDO
+ echo "[uninstall]: FDO packages"
+ for file in gdal kingoracle ogr rdbms sdf shp sqlite wfs wms arcsde core
+ do
+ dpkg --remove fdo-${file}
+ done
+
+ echo "Uninstall completed"
+}
+while true; do
+ read -p 'This script will uninstall the MapGuide and FDO packages and un-register any installed services. Do you wish to uninstall MapGuide? [y/n]' yn
+ case $yn in
+ [Yy]* ) do_uninstall; break;;
+ [Nn]* ) exit;;
+ * ) echo "Please answer yes or no.";;
+ esac
+done
\ No newline at end of file
Modified: branches/2.6/vagrant/scripts/platformbase_excludes.txt
===================================================================
--- branches/2.6/vagrant/scripts/platformbase_excludes.txt 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/scripts/platformbase_excludes.txt 2015-07-27 12:26:06 UTC (rev 8719)
@@ -6,7 +6,7 @@
libdbxml-2.5.so
libdbxml.so
liblib_json.so
-libMgMapGuideCommon-2.6.0.so
+libMgMapGuideCommon-2.6.1.so
libMgMapGuideCommon.so
libxqilla.so
libxqilla.so.5
Added: branches/2.6/vagrant/scripts/smoke_test.sh
===================================================================
--- branches/2.6/vagrant/scripts/smoke_test.sh (rev 0)
+++ branches/2.6/vagrant/scripts/smoke_test.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,199 @@
+#!/bin/bash
+
+# smoke_test.sh
+#
+# Performs basic smoke testing of a Linux installation of MapGuide
+#
+# 1. Checks that the mgserver process is running
+# 2. Checks that the httpd process is running
+# 3. Checks that the mapagent is reachable and records the result of a GETSITEINFO request made with curl
+# 4. Checks that the a fair number of FDO providers are functional with a GETFEATUREPROVIDERS request made with curl
+# 5. Checks that the Sheboygan dataset can be loaded via the mapagent with the APPLYRESOURCEPACKAGE request made with curl
+# 6. Checks that the Sheboygan data is indeed loaded by fetching for various resource contents with curl
+# 7. Checks that we can walk schemas by issuing a series of DESCRIBESCHEMA calls
+# 8. Checks that the AJAX viewer URL returns HTTP 200
+# 9. Checks that the Fusion viewer URL with the 5 templates all return HTTP 200
+
+pass=0
+fail=0
+http_port=8008
+url_root="http://localhost:$http_port/mapguide"
+mapagent_url="$url_root/mapagent/mapagent.fcgi"
+ajaxviewer_url="$url_root/mapviewerajax/"
+fusion_root="$url_root/fusion/templates/mapguide"
+package_path=/tmp/Sheboygan.mgp
+
+fsids=("Data/BuildingOutlines.FeatureSource" "Data/CityLimits.FeatureSource" "Data/HydrographicLines.FeatureSource" "Data/HydrographicPolygons.FeatureSource" "Data/Islands.FeatureSource" "Data/LandUse.FeatureSource" "Data/Parcels.FeatureSource" "Data/Rail.FeatureSource" "Data/RoadCenterLines.FeatureSource" "Data/Soils.FeatureSource" "Data/Trees.FeatureSource" "Data/VotingDistricts.FeatureSource")
+basic_layout="Library://Samples/Sheboygan/Layouts/SheboyganPhp.WebLayout"
+flex_layout="Library://Samples/Sheboygan/Layouts/Slate.ApplicationDefinition"
+
+check_mgserver()
+{
+ echo "[check]: mgserver is running"
+ if [ "$(pidof mgserver)" ]
+ then
+ pass=$((pass + 1))
+ echo " [check - PASS]: mgserver found"
+ else
+ fail=$((fail + 1))
+ echo " [check - FAIL]: mgserver not found"
+ fi
+}
+
+check_httpd()
+{
+ echo "[check]: httpd is running"
+ if [ "$(pidof httpd)" ]
+ then
+ pass=$((pass + 1))
+ echo " [check - PASS]: httpd found"
+ else
+ fail=$((fail + 1))
+ echo " [check - FAIL]: httpd not found"
+ fi
+}
+
+assert_request()
+{
+ request_method=$1
+ request_url=$2
+ test_name=$3
+ output_file=$4
+ expected_status=$5
+ username=$6
+ password=$7
+ if [ -z "$username" ]
+ then
+ #echo "[curl] request without credentials"
+ curl -s -i -X $request_method "$request_url" -o $output_file
+ else
+ #echo "[curl] request with credentials"
+ curl -u $username:$password -s -i -X $request_method "$request_url" -o $output_file
+ fi
+ status=`cat $output_file | grep HTTP/1.1 | awk {'print $2'}`
+ if [ "$status" != "$expected_status" ]
+ then
+ fail=$((fail + 1))
+ echo " [check - FAIL]: Expected HTTP status of $expected_status. Check $output_file for more information"
+ else
+ pass=$((pass + 1))
+ echo " [check - PASS]: $test_name"
+ fi
+}
+
+assert_package_load()
+{
+ request_method="POST"
+ request_url="$mapagent_url"
+ expected_status=$1
+ test_name=$2
+ output_file=$3
+ username=$4
+ password=$5
+ if [ -z "$username" ]
+ then
+ #echo "[curl] request without credentials"
+ curl -s -i -X $request_method -d 'MAX_FILE_SIZE=100000000' -d 'OPERATION=APPLYRESOURCEPACKAGE' -d 'VERSION=1.0.0' -d 'LOCALE=en' -d PACKAGE=$package_path "$request_url" -o $output_file
+ else
+ #echo "[curl] request with credentials"
+ curl -u $username:$password -s -i -X $request_method -d 'MAX_FILE_SIZE=100000000' -d 'OPERATION=APPLYRESOURCEPACKAGE' -d 'VERSION=1.0.0' -d 'LOCALE=en' -d PACKAGE=$package_path "$request_url" -o $output_file
+ fi
+ status=`cat $output_file | grep HTTP/1.1 | awk {'print $2'}`
+ if [ "$status" != "$expected_status" ]
+ then
+ fail=$((fail + 1))
+ echo " [check - FAIL]: Expected HTTP status of $expected_status. Check $output_file for more information"
+ else
+ pass=$((pass + 1))
+ echo " [check - PASS]: $test_name"
+ fi
+}
+
+check_createsession()
+{
+ echo "[check]: Create Session"
+ assert_request "POST" "$mapagent_url?OPERATION=CREATESESSION&VERSION=1.0.0&LOCALE=en" "CREATESESSION un-authenticated" "unauthenticated.txt" "401"
+ assert_request "POST" "$mapagent_url?OPERATION=CREATESESSION&VERSION=1.0.0&LOCALE=en" "CREATESESSION admin" "CREATESESSION_admin.txt" "200" "Administrator" "admin"
+ assert_request "POST" "$mapagent_url?OPERATION=CREATESESSION&VERSION=1.0.0&LOCALE=en" "CREATESESSION anon" "CREATESESSION_anon.txt" "200" "Anonymous"
+}
+
+check_siteversion()
+{
+ echo "[check]: Get MapGuide version from mapagent"
+ assert_request "GET" "$mapagent_url?OPERATION=GETSITEINFO&VERSION=1.0.0&LOCALE=en" "GETSITEINFO admin" "GETSITEINFO_admin.txt" "200" "Administrator" "admin"
+ assert_request "GET" "$mapagent_url?OPERATION=GETSITEINFO&VERSION=1.0.0&LOCALE=en" "GETSITEINFO anon" "GETSITEINFO_anon.txt" "200" "Anonymous"
+ assert_request "GET" "$mapagent_url?OPERATION=GETSITEINFO&VERSION=1.0.0&LOCALE=en" "GETSITEINFO un-authenticated" "unauthenticated.txt" "401"
+ assert_request "GET" "$mapagent_url?OPERATION=GETSITEINFO&VERSION=1.0.0&LOCALE=en" "GETSITEINFO bad credentials" "unauthenticated.txt" "401" "foo" "bar"
+}
+
+check_featureproviders()
+{
+ echo "[check]: Get FDO Feature Provider List"
+ assert_request "GET" "$mapagent_url?OPERATION=GETFEATUREPROVIDERS&VERSION=1.0.0&LOCALE=en" "GETFEATUREPROVIDERS admin" "GETFEATUREPROVIDERS_admin.txt" "200" "Administrator" "admin"
+ assert_request "GET" "$mapagent_url?OPERATION=GETFEATUREPROVIDERS&VERSION=1.0.0&LOCALE=en" "GETFEATUREPROVIDERS anon" "GETFEATUREPROVIDERS_anon.txt" "200" "Anonymous"
+ assert_request "GET" "$mapagent_url?OPERATION=GETFEATUREPROVIDERS&VERSION=1.0.0&LOCALE=en" "GETFEATUREPROVIDERS un-authenticated" "unauthenticated.txt" "401"
+ assert_request "GET" "$mapagent_url?OPERATION=GETFEATUREPROVIDERS&VERSION=1.0.0&LOCALE=en" "GETFEATUREPROVIDERS bad credentials" "unauthenticated.txt" "401" "foo" "bar"
+}
+
+check_loadpackage()
+{
+ echo "[check]: Load Package"
+ assert_package_load "401" "APPLYRESOURCEPACKAGE un-authenticated" "unauthenticated.txt"
+ assert_package_load "401" "APPLYRESOURCEPACKAGE anon un-authenticated" "APPLYRESOURCEPACKAGE_anon.txt" "Anonymous"
+ assert_package_load "200" "APPLYRESOURCEPACKAGE admin" "APPLYRESOURCEPACKAGE_admin.txt" "Administrator" "admin"
+}
+
+check_postpackageload()
+{
+ assert_request "GET" "$mapagent_url?OPERATION=ENUMERATERESOURCES&VERSION=1.0.0&LOCALE=en&RESOURCEID=Library://&DEPTH=-1" "ENUMERATERESOURCES un-authenticated" "unauthenticated.txt" "401"
+ assert_request "GET" "$mapagent_url?OPERATION=ENUMERATERESOURCES&VERSION=1.0.0&LOCALE=en&RESOURCEID=Library://&DEPTH=-1" "ENUMERATERESOURCES admin" "ENUMERATERESOURCES_admin.txt" "200" "Administrator" "admin"
+ assert_request "GET" "$mapagent_url?OPERATION=ENUMERATERESOURCES&VERSION=1.0.0&LOCALE=en&RESOURCEID=Library://&DEPTH=-1" "ENUMERATERESOURCES anon" "ENUMERATERESOURCES_anon.txt" "200" "Anonymous"
+
+ echo "[check]: Verify some resources exist after loading package"
+ for r in "${fsids[@]}"
+ do
+ resid="Library://Samples/Sheboygan/$r"
+ assert_request "GET" "$mapagent_url?OPERATION=GETRESOURCECONTENT&VERSION=1.0.0&LOCALE=en&RESOURCEID=$resid" "GETRESOURCECONTENT admin $resid" "GETRESOURCE_admin.txt" "200" "Administrator" "admin"
+ assert_request "GET" "$mapagent_url?OPERATION=GETRESOURCECONTENT&VERSION=1.0.0&LOCALE=en&RESOURCEID=$resid" "GETRESOURCECONTENT anon $resid" "GETRESOURCE_anon.txt" "200" "Anonymous"
+ done
+}
+
+check_schemawalk()
+{
+ echo "[check]: Check we can walk some feature sources"
+ for r in "${fsids[@]}"
+ do
+ resid="Library://Samples/Sheboygan/$r"
+ assert_request "GET" "$mapagent_url?OPERATION=DESCRIBEFEATURESCHEMA&VERSION=1.0.0&LOCALE=en&RESOURCEID=$resid" "DESCRIBEFEATURESCHEMA admin $resid" "DESCRIBEFEATURESCHEMA_admin.txt" "200" "Administrator" "admin"
+ assert_request "GET" "$mapagent_url?OPERATION=DESCRIBEFEATURESCHEMA&VERSION=1.0.0&LOCALE=en&RESOURCEID=$resid" "DESCRIBEFEATURESCHEMA anon $resid" "DESCRIBEFEATURESCHEMA_anon.txt" "200" "Anonymous"
+ done
+}
+
+check_ajaxviewer()
+{
+ echo "[check]: AJAX viewer"
+ assert_request "GET" "$ajaxviewer_url?WEBLAYOUT=$basic_layout&USERNAME=Anonymous" "Load AJAX Viewer" "AJAXVIEWER_anon.txt" "200"
+}
+
+check_fusion()
+{
+ templates=("slate" "limegold" "aqua" "turquoiseyellow" "maroon")
+ for template in "${templates[@]}"
+ do
+ echo "[check]: Fusion viewer $template"
+ assert_request "GET" "$fusion_root/$template/index.html?ApplicationDefinition=$flex_layout" "Load Fusion template $template" "Fusion_$template.txt" "200"
+ done
+}
+
+check_mgserver
+check_httpd
+check_createsession
+check_siteversion
+check_featureproviders
+check_loadpackage
+check_postpackageload
+check_schemawalk
+check_ajaxviewer
+check_fusion
+
+echo "Pass: $pass, Fail: $fail"
Modified: branches/2.6/vagrant/sources/README.txt
===================================================================
--- branches/2.6/vagrant/sources/README.txt 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/sources/README.txt 2015-07-27 12:26:06 UTC (rev 8719)
@@ -2,4 +2,37 @@
fdo_rdbms_thirdparty.tar.gz
fdo-checkout.tar.gz
-mapguide-checkout.tar.gz
\ No newline at end of file
+mapguide-checkout.tar.gz
+
+For branch-based builds, append the respective MapGuide and FDO versions to the tarball name.
+
+For example if building for MapGuide Open Source 2.6 (with FDO 3.9), your tarballs should be named:
+ * fdo-checkout-3.9.tar.gz
+ * mapguide-checkout-2.6.tar.gz
+
+fdo_rdbms_thirdparty.tar.gz is a tarball containing the following directory structure:
+
+ fdo_rdbms_thirdparty
+ mysql
+ x86 [Put 32-bit MySQL ConnectorC SDK here]
+ x64 [Put 64-bit MySQL ConnectorC SDK here]
+ oracle
+ x86 [Put 32-bit Oracle Instant Client SDK here]
+ x64 [Put 64-bit Oracle Instant Client SDK here]
+ pgsql [Put libpq SDK here]
+
+fdo-checkout.tar.gz is a tarball containing the following directory structure:
+
+ trunk [svn checkout of http://svn.osgeo.org/fdo/trunk]
+
+If this is a branch tarball, the folder should be the FDO version number, for example FDO 3.9 tarball should be:
+
+ 3.9 [svn checkout of http://svn.osgeo.org/fdo/branches/3.9]
+
+mapguide-checkout.tar.gz is tarball containing the following directory structure:
+
+ MgDev [svn checkout of http://svn.osgeo.org/mapguide/trunk/MgDev]
+
+If this is a branch tarball, the folder should be the same, but it should be the svn checkout of the respective branch url, for example MGOS 2.6 tarball should be:
+
+ MgDev [svn checkout of http://svn.osgeo.org/mapguide/branches/2.6/MgDev]
\ No newline at end of file
Added: branches/2.6/vagrant/ubuntu/test_x64/Vagrantfile
===================================================================
--- branches/2.6/vagrant/ubuntu/test_x64/Vagrantfile (rev 0)
+++ branches/2.6/vagrant/ubuntu/test_x64/Vagrantfile 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,123 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ # All Vagrant configuration is done here. The most common configuration
+ # options are documented and commented below. For a complete reference,
+ # please see the online documentation at vagrantup.com.
+
+ # Every Vagrant virtual environment requires a box to build off of.
+ config.vm.box = "ubuntu12-amd64"
+
+ # The url from where the 'config.vm.box' box will be fetched if it
+ # doesn't already exist on the user's system.
+ # config.vm.box_url = "http://domain.com/path/to/above.box"
+
+ # Create a forwarded port mapping which allows access to a specific port
+ # within the machine from a port on the host machine. In the example below,
+ # accessing "localhost:8080" will access port 80 on the guest machine.
+ # config.vm.network :forwarded_port, guest: 80, host: 8080
+
+ # Create a private network, which allows host-only access to the machine
+ # using a specific IP.
+ # config.vm.network :private_network, ip: "192.168.33.10"
+
+ # Create a public network, which generally matched to bridged network.
+ # Bridged networks make the machine appear as another physical device on
+ # your network.
+ # config.vm.network :public_network
+
+ # If true, then any SSH connections made will enable agent forwarding.
+ # Default value: false
+ # config.ssh.forward_agent = true
+
+ # Share an additional folder to the guest VM. The first argument is
+ # the path on the host to the actual folder. The second argument is
+ # the path on the guest to mount the folder. And the optional third
+ # argument is a set of non-required options.
+ config.vm.synced_folder "../../sources", "/mapguide_sources"
+
+ # Provider-specific configuration so you can fine-tune various
+ # backing providers for Vagrant. These expose provider-specific options.
+ # Example for VirtualBox:
+ #
+ # config.vm.provider :virtualbox do |vb|
+ # # Don't boot with headless mode
+ # vb.gui = true
+ #
+ # # Use VBoxManage to customize the VM. For example to change memory:
+ # vb.customize ["modifyvm", :id, "--memory", "1024"]
+ # end
+ #
+ # View the documentation for the provider you're using for more
+ # information on available options.
+
+ # Enable provisioning with Puppet stand alone. Puppet manifests
+ # are contained in a directory path relative to this Vagrantfile.
+ # You will need to create the manifests directory and a manifest in
+ # the file vagrant-mapguide-ubuntu-precise32.pp in the manifests_path directory.
+ #
+ # An example Puppet manifest to provision the message of the day:
+ #
+ # # group { "puppet":
+ # # ensure => "present",
+ # # }
+ # #
+ # # File { owner => 0, group => 0, mode => 0644 }
+ # #
+ # # file { '/etc/motd':
+ # # content => "Welcome to your Vagrant-built virtual machine!
+ # # Managed by Puppet.\n"
+ # # }
+ #
+ # config.vm.provision :puppet do |puppet|
+ # puppet.manifests_path = "manifests"
+ # puppet.manifest_file = "site.pp"
+ # end
+
+ # Enable provisioning with chef solo, specifying a cookbooks path, roles
+ # path, and data_bags path (all relative to this Vagrantfile), and adding
+ # some recipes and/or roles.
+ #
+ # config.vm.provision :chef_solo do |chef|
+ # chef.cookbooks_path = "../my-recipes/cookbooks"
+ # chef.roles_path = "../my-recipes/roles"
+ # chef.data_bags_path = "../my-recipes/data_bags"
+ # chef.add_recipe "mysql"
+ # chef.add_role "web"
+ #
+ # # You may also specify custom JSON attributes:
+ # chef.json = { :mysql_password => "foo" }
+ # end
+
+ # Enable provisioning with chef server, specifying the chef server URL,
+ # and the path to the validation key (relative to this Vagrantfile).
+ #
+ # The Opscode Platform uses HTTPS. Substitute your organization for
+ # ORGNAME in the URL and validation key.
+ #
+ # If you have your own Chef Server, use the appropriate URL, which may be
+ # HTTP instead of HTTPS depending on your configuration. Also change the
+ # validation key to validation.pem.
+ #
+ # config.vm.provision :chef_client do |chef|
+ # chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
+ # chef.validation_key_path = "ORGNAME-validator.pem"
+ # end
+ #
+ # If you're using the Opscode platform, your validator client is
+ # ORGNAME-validator, replacing ORGNAME with your organization name.
+ #
+ # If you have your own Chef Server, the default validation client name is
+ # chef-validator, unless you changed the configuration.
+ #
+ # chef.validation_client_name = "ORGNAME-validator"
+
+ config.vm.provision "shell",
+ privileged: false,
+ path: "provision.sh",
+ args: ["#{ENV['DOWNLOAD_HOST']}", "#{ENV['MG_DIST_DIR']}"]
+end
Added: branches/2.6/vagrant/ubuntu/test_x64/provision.sh
===================================================================
--- branches/2.6/vagrant/ubuntu/test_x64/provision.sh (rev 0)
+++ branches/2.6/vagrant/ubuntu/test_x64/provision.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,16 @@
+#!/bin/bash
+DOWNLOAD_HOST=$1
+URI_PART=$2
+DIST_DIR="ubuntu_x64"
+echo Download host is: $DOWNLOAD_HOST
+wget "http://$DOWNLOAD_HOST/$URI_PART/Sheboygan.mgp"
+wget "http://$DOWNLOAD_HOST/$URI_PART/smoke_test.sh"
+sudo mv Sheboygan.mgp /tmp/
+wget "http://$DOWNLOAD_HOST/$URI_PART/$DIST_DIR/mginstallubuntu.sh"
+sed -i 's/URL="$URL_ROOT\/$URL_PART"/URL="http:\/\/'"$DOWNLOAD_HOST"'\/'"$URI_PART"'\/'"$DIST_DIR"'"/g' mginstallubuntu.sh
+chmod +x smoke_test.sh
+chmod +x mginstallubuntu.sh
+sudo ./mginstallubuntu.sh --headless --with-sdf --with-shp --with-ogr --with-gdal --with-sqlite
+echo Wait 10s before running smoke test
+sleep 10s
+sudo ./smoke_test.sh
\ No newline at end of file
Added: branches/2.6/vagrant/ubuntu/test_x86/Vagrantfile
===================================================================
--- branches/2.6/vagrant/ubuntu/test_x86/Vagrantfile (rev 0)
+++ branches/2.6/vagrant/ubuntu/test_x86/Vagrantfile 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,123 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ # All Vagrant configuration is done here. The most common configuration
+ # options are documented and commented below. For a complete reference,
+ # please see the online documentation at vagrantup.com.
+
+ # Every Vagrant virtual environment requires a box to build off of.
+ config.vm.box = "ubuntu12-i386"
+
+ # The url from where the 'config.vm.box' box will be fetched if it
+ # doesn't already exist on the user's system.
+ # config.vm.box_url = "http://domain.com/path/to/above.box"
+
+ # Create a forwarded port mapping which allows access to a specific port
+ # within the machine from a port on the host machine. In the example below,
+ # accessing "localhost:8080" will access port 80 on the guest machine.
+ # config.vm.network :forwarded_port, guest: 80, host: 8080
+
+ # Create a private network, which allows host-only access to the machine
+ # using a specific IP.
+ # config.vm.network :private_network, ip: "192.168.33.10"
+
+ # Create a public network, which generally matched to bridged network.
+ # Bridged networks make the machine appear as another physical device on
+ # your network.
+ # config.vm.network :public_network
+
+ # If true, then any SSH connections made will enable agent forwarding.
+ # Default value: false
+ # config.ssh.forward_agent = true
+
+ # Share an additional folder to the guest VM. The first argument is
+ # the path on the host to the actual folder. The second argument is
+ # the path on the guest to mount the folder. And the optional third
+ # argument is a set of non-required options.
+ config.vm.synced_folder "../../sources", "/mapguide_sources"
+
+ # Provider-specific configuration so you can fine-tune various
+ # backing providers for Vagrant. These expose provider-specific options.
+ # Example for VirtualBox:
+ #
+ # config.vm.provider :virtualbox do |vb|
+ # # Don't boot with headless mode
+ # vb.gui = true
+ #
+ # # Use VBoxManage to customize the VM. For example to change memory:
+ # vb.customize ["modifyvm", :id, "--memory", "1024"]
+ # end
+ #
+ # View the documentation for the provider you're using for more
+ # information on available options.
+
+ # Enable provisioning with Puppet stand alone. Puppet manifests
+ # are contained in a directory path relative to this Vagrantfile.
+ # You will need to create the manifests directory and a manifest in
+ # the file vagrant-mapguide-ubuntu-precise32.pp in the manifests_path directory.
+ #
+ # An example Puppet manifest to provision the message of the day:
+ #
+ # # group { "puppet":
+ # # ensure => "present",
+ # # }
+ # #
+ # # File { owner => 0, group => 0, mode => 0644 }
+ # #
+ # # file { '/etc/motd':
+ # # content => "Welcome to your Vagrant-built virtual machine!
+ # # Managed by Puppet.\n"
+ # # }
+ #
+ # config.vm.provision :puppet do |puppet|
+ # puppet.manifests_path = "manifests"
+ # puppet.manifest_file = "site.pp"
+ # end
+
+ # Enable provisioning with chef solo, specifying a cookbooks path, roles
+ # path, and data_bags path (all relative to this Vagrantfile), and adding
+ # some recipes and/or roles.
+ #
+ # config.vm.provision :chef_solo do |chef|
+ # chef.cookbooks_path = "../my-recipes/cookbooks"
+ # chef.roles_path = "../my-recipes/roles"
+ # chef.data_bags_path = "../my-recipes/data_bags"
+ # chef.add_recipe "mysql"
+ # chef.add_role "web"
+ #
+ # # You may also specify custom JSON attributes:
+ # chef.json = { :mysql_password => "foo" }
+ # end
+
+ # Enable provisioning with chef server, specifying the chef server URL,
+ # and the path to the validation key (relative to this Vagrantfile).
+ #
+ # The Opscode Platform uses HTTPS. Substitute your organization for
+ # ORGNAME in the URL and validation key.
+ #
+ # If you have your own Chef Server, use the appropriate URL, which may be
+ # HTTP instead of HTTPS depending on your configuration. Also change the
+ # validation key to validation.pem.
+ #
+ # config.vm.provision :chef_client do |chef|
+ # chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
+ # chef.validation_key_path = "ORGNAME-validator.pem"
+ # end
+ #
+ # If you're using the Opscode platform, your validator client is
+ # ORGNAME-validator, replacing ORGNAME with your organization name.
+ #
+ # If you have your own Chef Server, the default validation client name is
+ # chef-validator, unless you changed the configuration.
+ #
+ # chef.validation_client_name = "ORGNAME-validator"
+
+ config.vm.provision "shell",
+ privileged: false,
+ path: "provision.sh",
+ args: ["#{ENV['DOWNLOAD_HOST']}", "#{ENV['MG_DIST_DIR']}"]
+end
Added: branches/2.6/vagrant/ubuntu/test_x86/provision.sh
===================================================================
--- branches/2.6/vagrant/ubuntu/test_x86/provision.sh (rev 0)
+++ branches/2.6/vagrant/ubuntu/test_x86/provision.sh 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,16 @@
+#!/bin/bash
+DOWNLOAD_HOST=$1
+URI_PART=$2
+DIST_DIR="ubuntu_x86"
+echo Download host is: $DOWNLOAD_HOST
+wget "http://$DOWNLOAD_HOST/$URI_PART/Sheboygan.mgp"
+wget "http://$DOWNLOAD_HOST/$URI_PART/smoke_test.sh"
+sudo mv Sheboygan.mgp /tmp/
+wget "http://$DOWNLOAD_HOST/$URI_PART/$DIST_DIR/mginstallubuntu.sh"
+sed -i 's/URL="$URL_ROOT\/$URL_PART"/URL="http:\/\/'"$DOWNLOAD_HOST"'\/'"$URI_PART"'\/'"$DIST_DIR"'"/g' mginstallubuntu.sh
+chmod +x smoke_test.sh
+chmod +x mginstallubuntu.sh
+sudo ./mginstallubuntu.sh --headless --with-sdf --with-shp --with-ogr --with-gdal --with-sqlite
+echo Wait 10s before running smoke test
+sleep 10s
+sudo ./smoke_test.sh
\ No newline at end of file
Modified: branches/2.6/vagrant/ubuntu/x64/Vagrantfile
===================================================================
--- branches/2.6/vagrant/ubuntu/x64/Vagrantfile 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/ubuntu/x64/Vagrantfile 2015-07-27 12:26:06 UTC (rev 8719)
@@ -10,7 +10,7 @@
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
- config.vm.box = "vagrant-precise64"
+ config.vm.box = "ubuntu12-amd64"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
@@ -140,14 +140,14 @@
HAVE_FDO=0
HAVE_FDO_LIBS=0
HAVE_MAPGUIDE=0
-MG_UNIT_TEST=1
-FDO_UNIT_TEST=1
+MG_UNIT_TEST=0
+FDO_UNIT_TEST=0
SCRIPT_ROOT=~/scripts
FDO_SRC_ROOT=~/fdo/branches
FDO_VER_MM=3.9
FDO_VER_FULL=${FDO_VER_MM}.0
MG_VER_MM=2.6
-MG_VER_FULL=${MG_VER_MM}.0
+MG_VER_FULL=${MG_VER_MM}.1
FDO_SRC_DIR=3.9
FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
FDO_LIB_SRC=~/fdo_rdbms_thirdparty
@@ -155,6 +155,8 @@
MG_SRC=$MG_SRC_ROOT/MgDev
FDO_TARBALL=fdo-checkout-3.9.tar.gz
MG_TARBALL=mapguide-checkout-2.6.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
@@ -196,8 +198,6 @@
sudo mkdir -p /usr/include/asm
sudo cp /mapguide_sources/atomic.h /usr/include/asm
fi
-#echo [provision]: Checking libraries
-#sudo apt-get install -y libpq-dev libmysqlclient-dev
echo [provision]: Clean line endings
sudo dos2unix /vagrant/*.sh
sudo dos2unix /vagrant/*.pl
@@ -247,23 +247,6 @@
fi
if [ $HAVE_FDO_SDK -eq 0 ];
then
- echo [provision]: svn update FDO
- BUILD_COMPONENT="svn update FDO"
- # Only for Ubuntu 14.04 VM, svn is 1.8 so we have to upgrade the WC first before it can be updated
- #svn upgrade $FDO_SRC
- svn update $FDO_SRC
- check_build
-else
- echo [provision]: Using FDO SDK. No svn update of source required.
-fi
-echo [provision]: svn update MapGuide
-BUILD_COMPONENT="svn update MapGuide"
-# Only for Ubuntu 14.04 VM, svn is 1.8 so we have to upgrade the WC first before it can be updated
-#svn upgrade $MG_SRC
-svn update $MG_SRC
-check_build
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
if [ -d /mapguide_sources/patches/fdo ];
then
echo [provision]: Applying FDO source patches
@@ -304,31 +287,40 @@
> ~/unit_test_status.log
if [ $FDO_UNIT_TEST -eq 1 ];
then
- export NLSPATH=/usr/local/fdo-${FDO_VER_FULL}/nls/%N
echo [provision]: Unit test FDO
BUILD_COMPONENT="Unit Test FDO Core"
cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
- sudo -E ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
+ 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 ];
@@ -346,7 +338,7 @@
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 MdfModel Misc RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
+ 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
@@ -354,6 +346,8 @@
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
@@ -368,26 +362,12 @@
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="ubuntu_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
-# Do not update the working copy tarballs. Ubuntu 14.04 uses svn 1.8 which will break
-# the working copy if copied over to a CentOS VM (which is still on 1.6)
-#
-# If anyone is doing to do the working copy update, it will be the CentOS VM
-#
-#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
+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
Modified: branches/2.6/vagrant/ubuntu/x86/Vagrantfile
===================================================================
--- branches/2.6/vagrant/ubuntu/x86/Vagrantfile 2015-07-27 12:14:02 UTC (rev 8718)
+++ branches/2.6/vagrant/ubuntu/x86/Vagrantfile 2015-07-27 12:26:06 UTC (rev 8719)
@@ -10,7 +10,7 @@
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
- config.vm.box = "vagrant-precise32"
+ config.vm.box = "ubuntu12-i386"
# The url from where the 'config.vm.box' box will be fetched if it
# doesn't already exist on the user's system.
@@ -140,14 +140,14 @@
HAVE_FDO=0
HAVE_FDO_LIBS=0
HAVE_MAPGUIDE=0
-MG_UNIT_TEST=1
-FDO_UNIT_TEST=1
+MG_UNIT_TEST=0
+FDO_UNIT_TEST=0
SCRIPT_ROOT=~/scripts
FDO_SRC_ROOT=~/fdo/branches
FDO_VER_MM=3.9
FDO_VER_FULL=${FDO_VER_MM}.0
MG_VER_MM=2.6
-MG_VER_FULL=${MG_VER_MM}.0
+MG_VER_FULL=${MG_VER_MM}.1
FDO_SRC_DIR=3.9
FDO_SRC=$FDO_SRC_ROOT/$FDO_SRC_DIR
FDO_LIB_SRC=~/fdo_rdbms_thirdparty
@@ -155,7 +155,8 @@
MG_SRC=$MG_SRC_ROOT/MgDev
FDO_TARBALL=fdo-checkout-3.9.tar.gz
MG_TARBALL=mapguide-checkout-2.6.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=
@@ -196,8 +197,6 @@
sudo mkdir -p /usr/include/asm
sudo cp /mapguide_sources/atomic.h /usr/include/asm
fi
-#echo [provision]: Checking libraries
-#sudo apt-get install -y libpq-dev libmysqlclient-dev
echo [provision]: Clean line endings
sudo dos2unix /vagrant/*.sh
sudo dos2unix /vagrant/*.pl
@@ -247,23 +246,6 @@
fi
if [ $HAVE_FDO_SDK -eq 0 ];
then
- echo [provision]: svn update FDO
- BUILD_COMPONENT="svn update FDO"
- # Only for Ubuntu 14.04 VM, svn is 1.8 so we have to upgrade the WC first before it can be updated
- #svn upgrade $FDO_SRC
- svn update $FDO_SRC
- check_build
-else
- echo [provision]: Using FDO SDK. No svn update of source required.
-fi
-echo [provision]: svn update MapGuide
-BUILD_COMPONENT="svn update MapGuide"
-# Only for Ubuntu 14.04 VM, svn is 1.8 so we have to upgrade the WC first before it can be updated
-#svn upgrade $MG_SRC
-svn update $MG_SRC
-check_build
-if [ $HAVE_FDO_SDK -eq 0 ];
-then
if [ -d /mapguide_sources/patches/fdo ];
then
echo [provision]: Applying FDO source patches
@@ -304,31 +286,40 @@
> ~/unit_test_status.log
if [ $FDO_UNIT_TEST -eq 1 ];
then
- export NLSPATH=/usr/local/fdo-${FDO_VER_FULL}/nls/%N
echo [provision]: Unit test FDO
BUILD_COMPONENT="Unit Test FDO Core"
cd $SCRIPT_ROOT/fdo_build_area/Fdo/UnitTest
- sudo -E ./UnitTest 2>&1 | tee ~/fdo_core_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_shp_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_sdf_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_sqlite_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_gdal_unit_test.log
+ 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 -E ./UnitTest 2>&1 | tee ~/fdo_wms_unit_test.log
+ 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 ];
@@ -346,7 +337,7 @@
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 MdfModel Misc RenderingService ServerAdminService ServerManager ServiceManager SiteManager SiteService ProfilingService TransformMesh
+ 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
@@ -354,6 +345,8 @@
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
@@ -367,27 +360,11 @@
fi
sudo cp bin/*.deb /vagrant/build
sudo cp ~/UnitTestResults_*.xml /vagrant/build
+sudo sed -i 's/URL_PART="ubuntu12"/URL_PART="ubuntu_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
-# Do not update the working copy tarballs. Ubuntu 14.04 uses svn 1.8 which will break
-# the working copy if copied over to a CentOS VM (which is still on 1.6)
-#
-# If anyone is doing to do the working copy update, it will be the CentOS VM
-#
-#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
Added: branches/2.6/vagrant/verify.bat
===================================================================
--- branches/2.6/vagrant/verify.bat (rev 0)
+++ branches/2.6/vagrant/verify.bat 2015-07-27 12:26:06 UTC (rev 8719)
@@ -0,0 +1,95 @@
+ at echo off
+
+rem build.bat
+rem
+rem Performs basic smoke tests of CentOS and Ubuntu builds.
+rem
+rem A basic web server is set up to serve files from the build artifact output directory
+rem
+rem With that set up, the following smoke tests are performed
+rem
+rem 1. CentOS/Ubuntu install scripts with sed'd URLs will properly download and install the required packages
+rem 2. The httpd and MapGuide Servers are verified to be running and operational by the basic smoke test shell script
+rem
+rem Requires the sed utility, which is part of GNU on Windows (https://github.com/bmatzelle/gow)
+
+IF "%DOWNLOAD_HOST%"=="" SET DOWNLOAD_HOST=192.168.0.6
+IF "%MG_DIST_DIR%"=="" SET MG_DIST_DIR=builds30
+IF "%VERIFY_UBUNTU_32%"=="" SET VERIFY_UBUNTU_32=1
+IF "%VERIFY_UBUNTU_64%"=="" SET VERIFY_UBUNTU_64=1
+IF "%VERIFY_CENTOS_32%"=="" SET VERIFY_CENTOS_32=1
+IF "%VERIFY_CENTOS_64%"=="" SET VERIFY_CENTOS_64=1
+
+echo **************** Verify Summary *********************
+echo Download Host is: %DOWNLOAD_HOST%
+echo Dist directory name: %MG_DIST_DIR%
+echo Verifying Ubuntu (32-bit): %VERIFY_UBUNTU_32%
+echo Verifying Ubuntu (64-bit): %VERIFY_UBUNTU_64%
+echo Verifying CentOS (32-bit): %VERIFY_CENTOS_32%
+echo Verifying CentOS (64-bit): %VERIFY_CENTOS_64%
+echo ****************************************************
+:check_centos_32
+echo [build]: Checking if we're verifying CentOS 32-bit
+if %VERIFY_CENTOS_32% == 1 goto test_centos_32
+goto check_ubuntu_32
+:test_centos_32
+pushd centos\test_x86
+SET COMPONENT=CentOS Build 32-bit
+echo [build]: MapGuide CentOS build 32-bit
+call vagrant up 2>&1 | tee smoke_test.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+:destroy_centos_32
+call vagrant destroy -f
+:centos_32_done
+popd
+:check_ubuntu_32
+echo [build]: Checking if we're verifying Ubuntu 32-bit
+if %VERIFY_UBUNTU_32% == 1 goto test_ubuntu_32
+goto check_centos_64
+:test_ubuntu_32
+pushd ubuntu\test_x86
+SET COMPONENT=Ubuntu Build 32-bit
+echo [build]: MapGuide Ubuntu build 32-bit
+call vagrant up 2>&1 | tee smoke_test.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+:destroy_ubuntu_32
+call vagrant destroy -f
+:ubuntu_32_done
+popd
+:check_centos_64
+echo [build]: Checking if we're verifying CentOS 64-bit
+if %VERIFY_CENTOS_64% == 1 goto test_centos_64
+goto check_ubuntu_64
+:test_centos_64
+pushd centos\test_x64
+SET COMPONENT=CentOS Build 64-bit
+echo [build]: MapGuide CentOS build 64-bit
+call vagrant up 2>&1 | tee smoke_test.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+:destroy_centos_64
+call vagrant destroy -f
+:centos_64_done
+popd
+:check_ubuntu_64
+echo [build]: Checking if we're verifying Ubuntu 64-bit
+if %VERIFY_UBUNTU_64% == 1 goto test_ubuntu_64
+goto quit
+:test_ubuntu_64
+pushd ubuntu\test_x64
+SET COMPONENT=Ubuntu Build 64-bit
+echo [build]: MapGuide Ubuntu build 64-bit
+call vagrant up 2>&1 | tee smoke_test.log
+echo [build]: vagrant returned %errorlevel%
+if "%errorlevel%"=="1" goto error
+:destroy_ubuntu_64
+call vagrant destroy -f
+:ubuntu_64_done
+popd
+goto quit
+:error
+echo [ERROR]: There was an error building the component %COMPONENT%
+exit /B 1
+:quit
\ No newline at end of file
More information about the mapguide-commits
mailing list