summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--INSTALL.md21
-rw-r--r--Makefile.am2
-rw-r--r--Vagrantfile49
-rw-r--r--Vagrantfile.in30
-rw-r--r--configure.ac1
6 files changed, 67 insertions, 37 deletions
diff --git a/.gitignore b/.gitignore
index a3522d8e6..e37a6903c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -65,5 +65,4 @@ tags
_debian
odp-netlink.h
OvsDpInterface.h
-Vagrantfile
/.vagrant/
diff --git a/INSTALL.md b/INSTALL.md
index 8fae214a7..94c25f718 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -579,7 +579,7 @@ report, plus any other information needed to reproduce the problem.
Vagrant
-------
-Requires: Vagrant and a compatible hypervisor
+Requires: Vagrant (version 1.7.0 or later) and a compatible hypervisor
You must bootstrap and configure the sources (steps are in "Building
and Installing Open vSwitch for Linux, FreeBSD or NetBSD" above) before
@@ -592,12 +592,25 @@ tree as found locally in a virtual machine using the following commands:
vagrant ssh
This will bring up w Fedora 20 VM by default, alternatively the
-`Vagrantfile.in` can be modified to use a different distribution box as
-base. Also, the VM can be reprovisioned at any time to recompile and
-reinstall OVS:
+`Vagrantfile` can be modified to use a different distribution box as
+base. Also, the VM can be reprovisioned at any time:
vagrant provision
+OVS out-of-tree compilation environment can be set up with:
+
+ ./boot.sh
+ vagrant provision --provision-with configure_ovs,build_ovs
+
+This will set up an out-of-tree build environment in /home/vagrant/build.
+The source code can be found in /vagrant. Out-of-tree build is preferred
+to work around limitations of the sync file systems.
+
+To recompile and reinstall OVS using RPM:
+
+ ./boot.sh
+ vagrant provision --provision-with configure_ovs,install_rpm
+
Continuous Integration with Travis-CI
-------------------------------------
diff --git a/Makefile.am b/Makefile.am
index 6ad6fc2fe..b3ff4e31d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -105,7 +105,7 @@ EXTRA_DIST = \
build-aux/soexpand.pl \
$(MAN_FRAGMENTS) \
$(MAN_ROOTS) \
- Vagrantfile.in
+ Vagrantfile
bin_PROGRAMS =
sbin_PROGRAMS =
bin_SCRIPTS =
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644
index 000000000..982eb0113
--- /dev/null
+++ b/Vagrantfile
@@ -0,0 +1,49 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+$bootstrap_fedora = <<SCRIPT
+yum -y update
+yum -y install autoconf automake openssl-devel libtool \
+ python-twisted-core python-zope-interface PyQt4 \
+ desktop-file-utils groff graphviz rpmdevtools
+echo "search extra update built-in" >/etc/depmod.d/search_path.conf
+SCRIPT
+
+$configure_ovs = <<SCRIPT
+mkdir -p ~/build
+cd ~/build
+/vagrant/configure --with-linux=/lib/modules/`uname -r`/build
+SCRIPT
+
+$build_ovs = <<SCRIPT
+cd ~/build
+make
+SCRIPT
+
+$install_rpm = <<SCRIPT
+cd ~/build
+PACKAGE_VERSION=`autom4te -l Autoconf -t 'AC_INIT:$2' /vagrant/configure.ac`
+make && make dist
+rpmdev-setuptree
+cp openvswitch-$PACKAGE_VERSION.tar.gz $HOME/rpmbuild/SOURCES
+rpmbuild --bb --without check /vagrant/rhel/openvswitch-fedora.spec
+sudo rpm -e openvswitch
+sudo rpm -ivh $HOME/rpmbuild/RPMS/x86_64/openvswitch-$PACKAGE_VERSION-1.fc20.x86_64.rpm
+sudo systemctl enable openvswitch
+sudo systemctl start openvswitch
+sudo systemctl status openvswitch
+SCRIPT
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ config.vm.define "fedora-20" do |fedora|
+ fedora.vm.box = "chef/fedora-20"
+ fedora.vm.provision :shell, inline: $bootstrap_fedora
+ end
+
+ config.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs, privileged: false
+ config.vm.provision "build_ovs", type: "shell", inline: $build_ovs, privileged: false
+ config.vm.provision "install_rpm", type: "shell", inline: $install_rpm, privileged: false
+end
diff --git a/Vagrantfile.in b/Vagrantfile.in
deleted file mode 100644
index ba10ede82..000000000
--- a/Vagrantfile.in
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-
-# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
-VAGRANTFILE_API_VERSION = "2"
-
-$bootstrap_fedora = <<SCRIPT
-yum -y update
-yum -y install autoconf automake openssl-devel libtool \
- python-twisted-core python-zope-interface PyQt4 \
- desktop-file-utils groff graphviz rpmdevtools
-cd /vagrant
-./boot.sh && ./configure
-make clean && make dist
-rpmdev-setuptree
-cp openvswitch-@PACKAGE_VERSION@.tar.gz $HOME/rpmbuild/SOURCES
-rpmbuild --bb --without check rhel/openvswitch-fedora.spec
-rpm -e openvswitch
-rpm -ivh $HOME/rpmbuild/RPMS/x86_64/openvswitch-@PACKAGE_VERSION@-1.fc20.x86_64.rpm
-systemctl enable openvswitch
-systemctl start openvswitch
-systemctl status openvswitch
-SCRIPT
-
-Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
- config.vm.define "fedora-20" do |fedora|
- fedora.vm.box = "chef/fedora-20"
- fedora.vm.provision :shell, inline: $bootstrap_fedora
- end
-end
diff --git a/configure.ac b/configure.ac
index 03f93698c..ebb8b02c9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -177,7 +177,6 @@ AC_CONFIG_FILES(lib/libsflow.pc)
AC_CONFIG_FILES(ofproto/libofproto.pc)
AC_CONFIG_FILES(ovsdb/libovsdb.pc)
AC_CONFIG_FILES(include/openvswitch/version.h)
-AC_CONFIG_FILES(Vagrantfile)
dnl This makes sure that include/openflow gets created in the build directory.
AC_CONFIG_COMMANDS([include/openflow/openflow.h.stamp])