Vagrant shared folder, at least on the default virtual box, does not support the creation of the socket files. If one were to build OVS under /vagrant, 'make check' would not work.
Out of tree builds can be used to work around this issue. See Install.md for instructions. Since out of tree builds requires a clean source tree, Vagrantfile can not be a generated file. This commit removes Vagrantfile.in, commit Vagrantfile instead. Signed-off-by: Andy Zhou <az...@nicira.com> --- .gitignore | 1 - INSTALL.md | 21 +++++++++++++++++---- Makefile.am | 2 +- Vagrantfile | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ Vagrantfile.in | 30 ------------------------------ configure.ac | 1 - 6 files changed, 67 insertions(+), 37 deletions(-) create mode 100644 Vagrantfile delete mode 100644 Vagrantfile.in diff --git a/.gitignore b/.gitignore index a3522d8..e37a690 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 8fae214..94c25f7 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 6ad6fc2..b3ff4e3 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 0000000..982eb01 --- /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 ba10ede..0000000 --- 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_vers...@.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 03f9369..ebb8b02 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]) -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev