# -*- mode: ruby -*- # vi: set ft=ruby : require 'socket' # 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| vm_ram = ENV['VAGRANT_VM_RAM'] || 1024 vm_cpu = ENV['VAGRANT_VM_CPU'] || 2 config.vm.box = "precise64" config.vm.hostname = "gdal-vagrant" config.vm.box_url = "http://files.vagrantup.com/precise64.box" config.vm.host_name = "gdal-vagrant" config.vm.network :forwarded_port, guest: 80, host: 8080 config.vm.synced_folder "../autotest/", "/home/vagrant/autotest/" config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", vm_ram] vb.customize ["modifyvm", :id, "--cpus", vm_cpu] vb.customize ["modifyvm", :id, "--ioapic", "on"] vb.name = "gdal-vagrant" end ppaRepos = [ "ppa:ubuntugis/ubuntugis-unstable", "ppa:marlam/gta" ] packageList = [ "subversion", "python-numpy", "python-dev", "postgis", "postgresql-server-dev-9.1", "postgresql-9.1-postgis", "postgresql-9.1-postgis-scripts", "libmysqlclient-dev", #"mysql-server", "libpq-dev", "libpng12-dev", "libjpeg-dev", "libgif-dev", "liblzma-dev", "libgeos-dev", "libcurl4-gnutls-dev", "libproj-dev", "libxml2-dev", "libexpat-dev", "libxerces-c-dev", "libnetcdf-dev", "netcdf-bin", "libpoppler-dev", "libspatialite-dev", "gpsbabel", "swig", "libhdf4-alt-dev", "libhdf5-serial-dev", "libpodofo-dev", "poppler-utils", "libfreexl-dev", "unixodbc-dev", "libwebp-dev", "openjdk-7-jdk", "libepsilon-dev", "libgta-dev", "liblcms2-2", "libpcre3-dev", "libjasper-dev", "libarmadillo-dev", "make", "g++", "autoconf", # for libkml "cmake", # for openjpeg "bison", "flex", "doxygen", "vim", "ant", "mono-mcs" ]; unless File.exists?(".no_apt_cache") cache_dir = "apt-cache/#{config.vm.box}" FileUtils.mkdir_p(cache_dir) unless Dir.exists?(cache_dir) puts "Using local apt cache, #{cache_dir}" config.vm.synced_folder cache_dir, "/var/cache/apt/archives" end if Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty? pkg_cmd = "sed -i 's#deb http://us.archive.ubuntu.com/ubuntu/#deb mirror://mirrors.ubuntu.com/mirrors.txt#' /etc/apt/sources.list; " pkg_cmd << "apt-get update -qq; apt-get install -q -y python-software-properties; " if ppaRepos.length > 0 ppaRepos.each { |repo| pkg_cmd << "add-apt-repository -y " << repo << " ; " } pkg_cmd << "apt-get update -qq; " end # install packages we need we need pkg_cmd << "apt-get install -q -y " + packageList.join(" ") << " ; " config.vm.provision :shell, :inline => pkg_cmd scripts = [ "swig-1.3.40.sh", "libkml.sh", "openjpeg.sh", "gdal.sh", "postgis.sh" ]; scripts.each { |script| config.vm.provision :shell, :privileged => false, :path => "scripts/vagrant/" << script } end end