summaryrefslogtreecommitdiff
path: root/contrib/vagrant
diff options
context:
space:
mode:
authorAntonio Ojea <aojea@midokura.com>2017-02-24 14:22:28 +0100
committerChristian Grothoff <christian@grothoff.org>2017-02-25 01:53:16 +0100
commitc4942479309a40c09c4659fa3e26280d3a121058 (patch)
tree91a38332aa89dd2f6b7047171cd286e88f6d6341 /contrib/vagrant
parentb92a2992b013a8a27f2ca3b5d5e183c0f1df54a1 (diff)
Add Vagrant file for development
This patch adds a vagranfile that installs the required dependencies to compile gnunet. To be able to use it you need to cd to the contrib/vagrant directory, run "vagrant up" and wait until the VM is provisioned. Once it finish the provisioning you can login in the VM with "vagrant ssh" The VM mounts the source code of gnunet in the folder /gnunet, thus you can edit your code in the host and compile it in the VM. Signed-off-by: Antonio Ojea <aojea@midokura.com>
Diffstat (limited to 'contrib/vagrant')
-rw-r--r--contrib/vagrant/Vagrantfile55
-rw-r--r--contrib/vagrant/bootstrap.ubuntu.sh48
2 files changed, 103 insertions, 0 deletions
diff --git a/contrib/vagrant/Vagrantfile b/contrib/vagrant/Vagrantfile
new file mode 100644
index 000000000..d6b671b24
--- /dev/null
+++ b/contrib/vagrant/Vagrantfile
@@ -0,0 +1,55 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+#
+# Source https://github.com/alxn/vpp/blob/master/build-root/vagrant/Vagrantfile
+
+Vagrant.configure(2) do |config|
+
+ config.vm.box = "bento/ubuntu-16.04"
+ config.vm.box_version = "2.2.9"
+ config.vm.provision 'shell', path: 'bootstrap.ubuntu.sh'
+
+ # Add .gnupg dir in so folks can sign patches
+ # Note, as gnupg puts socket files in that dir, we have
+ # to be cautious and make sure we are dealing with a plain file
+ homedir = File.expand_path("~/")
+ Dir["#{homedir}/.gnupg/**/*"].each do |fname|
+ if File.file?(fname)
+ destname = fname.sub(Regexp.escape("#{homedir}/"),'')
+ config.vm.provision "file", source: fname, destination: destname
+ end
+ end
+
+ # Copy in the .gitconfig if it exists
+ if File.file?(File.expand_path("~/.gitconfig"))
+ config.vm.provision "file", source: "~/.gitconfig", destination: ".gitconfig"
+ end
+
+ # vagrant-cachier caches apt/yum etc to speed subsequent
+ # vagrant up
+ # to enable, run
+ # vagrant plugin install vagrant-cachier
+ #
+ if Vagrant.has_plugin?("vagrant-cachier")
+ config.cache.scope = :box
+ end
+
+ # use http proxy if avaiable
+ if ENV['http_proxy'] && Vagrant.has_plugin?("vagrant-proxyconf")
+ config.proxy.http = "$http_proxy"
+ config.proxy.https = "$https_proxy"
+ config.proxy.no_proxy = "localhost,127.0.0.1"
+ end
+
+ config.vm.synced_folder "../../", "/gnunet", disabled: false
+ config.vm.provider "virtualbox" do |vb|
+ vb.memory = "4096"
+ end
+ config.vm.provider "vmware_fusion" do |fusion,override|
+ fusion.vmx["memsize"] = "4096"
+ end
+ config.vm.provider "vmware_workstation" do |vws,override|
+ vws.vmx["memsize"] = "4096"
+ vws.vmx["numvcpus"] = "4"
+ end
+end
diff --git a/contrib/vagrant/bootstrap.ubuntu.sh b/contrib/vagrant/bootstrap.ubuntu.sh
new file mode 100644
index 000000000..4bf032e3e
--- /dev/null
+++ b/contrib/vagrant/bootstrap.ubuntu.sh
@@ -0,0 +1,48 @@
+#/bin/bash
+# Source https://gnunet.org/dependencies and README
+
+apt-get update
+
+# Install required tools
+apt-get -y install git build-essential gnupg curl openssl gnutls-bin miniupnpc
+
+# Autotools required for compiling
+apt-get -y install autoconf automake libtool autopoint
+
+# Tools for debugging
+apt-get -y install gdb valgrind
+
+# Direct dependencies obtained from README
+apt-get -y install libmicrohttpd-dev
+apt-get -y install libextractor-dev
+apt-get -y install libunistring-dev
+apt-get -y install libidn11-dev
+apt-get -y install libgcrypt20-dev
+apt-get -y install libgnutls30-dev
+apt-get -y install libltdl-dev
+apt-get -y install libcurl3
+apt-get -y install sqlite3 libsqlite3-dev
+apt-get -y install zlib1g-dev
+# apt-get -y install texlive-full # Skipped > 1GB
+# optional for gnunet-conversation
+# apt-get -y install libpulse-dev libopus-dev libogg-dev gstreamer1.0
+# optional for gnunet-qr
+apt-get -y install python-zbar
+# optional for experimental code
+apt-get -y install libglpk-dev
+#
+apt-get -y install libbluetooth-dev libjansson-dev
+
+# Compilation process
+addgroup gnunetdns
+adduser --system --home "/var/lib/gnunet" --group gnunet --shell /bin/sh
+# cd /gnunet
+# . bootstrap
+# export GNUNET_PREFIX=/usr/local/lib # or other directory of your choice
+# ./configure --prefix=$GNUNET_PREFIX/.. --with-extractor=$LE_PREFIX
+# make
+# make install
+# make check
+# echo "/usr/local/lib/gnunet" > /etc/ld.so.conf.d/libgnunet.conf
+# ldconfig
+# sudo -u gnunet gnunet-arm -s