Update vagrant build 17/26817/3
authorMats Wichmann <mats@linux.com>
Wed, 22 Aug 2018 18:46:51 +0000 (12:46 -0600)
committerMats Wichmann <mats@linux.com>
Tue, 4 Sep 2018 19:27:23 +0000 (19:27 +0000)
Things a bit out of date, general update to add ubuntu 18.04
stanza, newer extlibs pkg, etc.

Change-Id: I2d8526f8ea32283bb05db872610c63494b5c597f
Signed-off-by: Mats Wichmann <mats@linux.com>
tools/vagrant/README.md
tools/vagrant/Vagrantfile
tools/vagrant/iotivity-setup.sh

index 427161e..e0c8bba 100644 (file)
@@ -2,19 +2,28 @@ IoTivity Build VM from Vagrant
 ==============================
 
 Vagrant can use the files in this directory to provision an Ubuntu
-16.04LTS development environment for IoTivity.  To create a new VM:
+development environment for IoTivity.  To create a new VM:
 
+```
     % vagrant up
+```
 
 in the current directory.  The default provider on your given host
 may not be supported by the box to be used, which will give an error.
 If so specify a provider to use. e.g. to use virtualbox:
 
+```
    % vagrant up --provider virtualbox
+```
+
+You will be asked one question, about which network to bridge
+through.
 
 You can then connect to the VM with:
 
+```
     % vagrant ssh
+```
 
 On the newly provisioned VM, the IoTivity git repo will be checked out
 in the `iotivity` directory in the vagrant user's home directory.
@@ -24,11 +33,14 @@ building. Android will now correctly provision on first scons run where
 those build options are selected. Arduino building is no longer supported
 on iotivity (use iotivity-constrained instead).
 
-Also optional, it should be able to configure for Ubuntu 17.04
-and 17.10, by changing which of the the stanzas in Vagrantfile is
-uncommented. Non-LTS Vagrant boxes vanish from the upstream as soon as
-they go out of support (nine months for Ubuntu), so these sections will
-go out of date quickly.
+Check Vagrantfile first to select the version; 16.04 LTS is the default.
+A stanza for 18.04 can be uncommented and 16.04 commented out.  To pick
+a non-LTS version, edit the section for 17.10 to an available version,
+Non-LTS Vagrant boxes vanish from the upstream as soon as they go out
+of support (nine months for Ubuntu), so these sections will go out of
+date quickly.
+
+If you need Java, uncomment the appropriate Java section further down.
 
 Using Vagrant to build a VM might be useful for:
 
@@ -39,40 +51,44 @@ Using Vagrant to build a VM might be useful for:
 
 * Configuring VMs for build automation
 
-The Vagrantfile has only virtualbox provider-specific options. To use
+This Vagrantfile has only virtualbox provider-specific options. To use
 other provides such as vmware, libvirt, just copy this stanza and
 update (feel free to submit a patch!).  Note the default 2gb RAM
 leaves a working system, but not much spare in doing builds. Don't
 do parallel builds on this without bumping the memory up. Look for:
 
-  config.vm.provider "virtualbox" do |vb|
+```ruby
+config.vm.provider "virtualbox" do |vb|
+```
 
 The Vagrantfile defaults to setting up bridged networking, so that the
 new image will be visible on the network for running iotivity tests
 against other iotivity machines. It will lead to a pausing question in
 the provisioning. If this is not wanted, comment this line out:
 
-  config.vm.network "public_network"
+```ruby
+config.vm.network "public_network"
+```
 
 This directory will be available inside the box as /vagrant, so if
 you need to add something visible inside the box, just dropping it
-here should be sufficient (e.g. the proxy_config file mentioned in 
-comments in iotivity-setup.sh).
+here should be sufficient (e.g. the `proxy_config` file mentioned in
+comments in `iotivity-setup.sh`).
 
 For more information about Vagrant, please see https://docs.vagrantup.com/v2/
 
 Assumptions
 ===========
 
-* The ${HOME}/.ssh/ directory contains files config, id_rsa, id_rsa.pub,
-  and known_hosts which when copied to the VM will allow connection to
+* The `${HOME}/.ssh/` directory contains files `config`, `id_rsa`, `id_rsa.pub`,
+  and `known_hosts` which when copied to the VM will allow connection to
   iotivity gerrit, which is where the master git repo lives. That implies
   access to gerrit has been set up already on this machine.  Sub-assumption:
   you don't mind these personal files being copied to the VM.
 
-* Your git username is obtainable by doing "ssh -G gerrit.iotivity.org".
-  It will fall back to the USER and then to USERNAME environment variables,
+* Your git username is obtainable by doing `ssh -G gerrit.iotivity.org`.
+  It will fall back to the `USER` and then to `USERNAME` environment variables,
   which may or may not be usable.  This information is part of the setup
-  (try "git remote -v" in the iotivity directory in the running box to see),
+  (try `git remote -v` in the iotivity directory in the running box to see),
   but can easily be changed if the guess is wrong.
 
index 24050e6..612ec13 100644 (file)
@@ -8,16 +8,18 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
   # We are not trying to provision multiple boxes at once, this
   # is just a trick to give a name other than "default" to the box.
   # Pick the stanza you want. Warning: non-LTS releases vanish fast!
+  # also check if config.vm.provision below needs updating,
+  # e.g. for JDK version.
+  #config.vm.define "iotivity1804" do |iotivity1804|
+  #  # Every Vagrant virtual environment requires a box to build off of.
+  #  iotivity1804.vm.box = "bento/ubuntu-18.04"
+  #  iotivity1804.vm.hostname = "iotivity1804"
+  #end
   config.vm.define "iotivity1604" do |iotivity1604|
     # Every Vagrant virtual environment requires a box to build off of.
     iotivity1604.vm.box = "bento/ubuntu-16.04"
     iotivity1604.vm.hostname = "iotivity1604"
   end
-  #config.vm.define "iotivity1704" do |iotivity1704|
-  #  # Every Vagrant virtual environment requires a box to build off of.
-  #  iotivity1704.vm.box = "bento/ubuntu-17.04"
-  #  iotivity1704.vm.hostname = "iotivity1704"
-  #end
   #config.vm.define "iotivity1710" do |iotivity1710|
   #  # Every Vagrant virtual environment requires a box to build off of.
   #  iotivity1710.vm.box = "bento/ubuntu-17.10"
@@ -64,21 +66,41 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
   config.vm.provision :file, source: "~/.ssh/config", destination: ".ssh/config"
 
   # Provision the needed distro packages
+  # These should be as version-free as possible. JDK is not.
   config.vm.provision :shell, inline: <<-SHELL
     apt-get update
-    apt-get -qy upgrade
+    DEBIAN_FRONTEND=noninteractive apt-get -yq upgrade
     # for C/C++ development:
-    apt-get -qy install \
+    DEBIAN_FRONTEND=noninteractive \
+    apt-get -yq --no-install-suggests --no-install-recommends install \
         build-essential git scons ssh unzip valgrind \
         doxygen libtool autoconf pkg-config gcovr \
         libboost-all-dev libsqlite3-dev \
         uuid-dev libglib2.0-dev libcurl4-gnutls-dev \
         libbz2-dev
-    # for Android/Java development:
-    apt-get -qy install openjdk-8-jdk icedtea-plugin
     apt-get clean
   SHELL
 
+  # for Android/Java development add these
+  # For 16.04
+  config.vm.provision :shell, inline: <<-SHELL
+    DEBIAN_FRONTEND=noninteractive \
+    apt-get -yq --no-install-suggests --no-install-recommends \
+        install openjdk-8-jdk icedtea-plugin
+  SHELL
+  # For 18.04, Java 1.8
+  #config.vm.provision :shell, inline: <<-SHELL
+  #  DEBIAN_FRONTEND=noninteractive \
+  #  apt-get -yq --no-install-suggests --no-install-recommends \
+  #      install openjdk-8-jdk
+  #SHELL
+  # For 18.04, Java 11
+  #config.vm.provision :shell, inline: <<-SHELL
+  #  DEBIAN_FRONTEND=noninteractive \
+  #  apt-get -yq --no-install-suggests --no-install-recommends \
+  #      install openjdk-11-jdk
+  #SHELL
+
   # run a script to provision iotivity project itself
   config.vm.provision :shell do |shell|
     shell.path = "iotivity-setup.sh"
@@ -86,3 +108,6 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
     shell.privileged = false
   end
 end
+
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
index 9459e09..6460e3a 100755 (executable)
@@ -38,7 +38,7 @@ then
     popd
 fi
 
-export cborRevision='v0.4.1'
+export cborRevision='v0.5.1'
 export TINYCBOR_DIR=iotivity/extlibs/tinycbor/tinycbor
 if [ ! -d ${TINYCBOR_DIR} ]
 then