vagrant: Add FreeBSD 10.2 box support.
[cascardo/ovs.git] / Vagrantfile-FreeBSD
diff --git a/Vagrantfile-FreeBSD b/Vagrantfile-FreeBSD
new file mode 100644 (file)
index 0000000..8f00abe
--- /dev/null
@@ -0,0 +1,49 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# All Vagrant configuration is done below. The "2" in Vagrant.configure
+# configures the configuration version (we support older styles for
+# backwards compatibility). Please don't change it unless you know what
+# you're doing.
+
+VAGRANTFILE_API_VERSION = "2"
+Vagrant.require_version ">=1.7.0"
+
+$bootstrap_freebsd = <<SCRIPT
+sed  -e 's/\#DEFAULT_ALWAYS_YES = false/DEFAULT_ALWAYS_YES = true/g' -e 's/\#ASSUME_ALWAYS_YES = false/ASSUME_ALWAYS_YES = true/g' /usr/local/etc/pkg.conf > /tmp/pkg.conf
+mv -f /tmp/pkg.conf /usr/local/etc/pkg.conf
+pkg install automake libtool wget python py27-six gmake
+SCRIPT
+
+$configure_ovs = <<SCRIPT
+cd /vagrant
+./boot.sh
+mkdir -p ~/build
+cd ~/build
+sudo /vagrant/configure --disable-libcapng --enable-silent-rules
+SCRIPT
+
+$build_ovs = <<SCRIPT
+cd ~/build
+gmake
+SCRIPT
+
+$test_userspace = <<SCRIPT
+cd ~/build
+gmake check
+SCRIPT
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+  # Use NFS due to capability 'mount_virtualbox_shared_folder'
+  # does not work on FreeBSD.
+  config.vm.network :private_network, ip: "10.0.0.2"
+  config.vm.synced_folder ".", "/vagrant", :nfs => true
+
+  config.vm.define "freebsd-10.2" do |freebsd|
+    freebsd.vm.box = "bento/freebsd-10.2" 
+    freebsd.vm.provision "bootstrap", type: "shell", inline: $bootstrap_freebsd
+    freebsd.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
+    freebsd.vm.provision "build_ovs", type: "shell", inline: $build_ovs
+    freebsd.vm.provision "test_userspace", type: "shell", inline: $test_userspace
+  end
+end