aboutsummaryrefslogtreecommitdiff
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)
downloadgnunet-c4942479309a40c09c4659fa3e26280d3a121058.tar.gz
gnunet-c4942479309a40c09c4659fa3e26280d3a121058.zip
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 @@
1# -*- mode: ruby -*-
2# vi: set ft=ruby :
3#
4# Source https://github.com/alxn/vpp/blob/master/build-root/vagrant/Vagrantfile
5
6Vagrant.configure(2) do |config|
7
8 config.vm.box = "bento/ubuntu-16.04"
9 config.vm.box_version = "2.2.9"
10 config.vm.provision 'shell', path: 'bootstrap.ubuntu.sh'
11
12 # Add .gnupg dir in so folks can sign patches
13 # Note, as gnupg puts socket files in that dir, we have
14 # to be cautious and make sure we are dealing with a plain file
15 homedir = File.expand_path("~/")
16 Dir["#{homedir}/.gnupg/**/*"].each do |fname|
17 if File.file?(fname)
18 destname = fname.sub(Regexp.escape("#{homedir}/"),'')
19 config.vm.provision "file", source: fname, destination: destname
20 end
21 end
22
23 # Copy in the .gitconfig if it exists
24 if File.file?(File.expand_path("~/.gitconfig"))
25 config.vm.provision "file", source: "~/.gitconfig", destination: ".gitconfig"
26 end
27
28 # vagrant-cachier caches apt/yum etc to speed subsequent
29 # vagrant up
30 # to enable, run
31 # vagrant plugin install vagrant-cachier
32 #
33 if Vagrant.has_plugin?("vagrant-cachier")
34 config.cache.scope = :box
35 end
36
37 # use http proxy if avaiable
38 if ENV['http_proxy'] && Vagrant.has_plugin?("vagrant-proxyconf")
39 config.proxy.http = "$http_proxy"
40 config.proxy.https = "$https_proxy"
41 config.proxy.no_proxy = "localhost,127.0.0.1"
42 end
43
44 config.vm.synced_folder "../../", "/gnunet", disabled: false
45 config.vm.provider "virtualbox" do |vb|
46 vb.memory = "4096"
47 end
48 config.vm.provider "vmware_fusion" do |fusion,override|
49 fusion.vmx["memsize"] = "4096"
50 end
51 config.vm.provider "vmware_workstation" do |vws,override|
52 vws.vmx["memsize"] = "4096"
53 vws.vmx["numvcpus"] = "4"
54 end
55end
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 @@
1#/bin/bash
2# Source https://gnunet.org/dependencies and README
3
4apt-get update
5
6# Install required tools
7apt-get -y install git build-essential gnupg curl openssl gnutls-bin miniupnpc
8
9# Autotools required for compiling
10apt-get -y install autoconf automake libtool autopoint
11
12# Tools for debugging
13apt-get -y install gdb valgrind
14
15# Direct dependencies obtained from README
16apt-get -y install libmicrohttpd-dev
17apt-get -y install libextractor-dev
18apt-get -y install libunistring-dev
19apt-get -y install libidn11-dev
20apt-get -y install libgcrypt20-dev
21apt-get -y install libgnutls30-dev
22apt-get -y install libltdl-dev
23apt-get -y install libcurl3
24apt-get -y install sqlite3 libsqlite3-dev
25apt-get -y install zlib1g-dev
26# apt-get -y install texlive-full # Skipped > 1GB
27# optional for gnunet-conversation
28# apt-get -y install libpulse-dev libopus-dev libogg-dev gstreamer1.0
29# optional for gnunet-qr
30apt-get -y install python-zbar
31# optional for experimental code
32apt-get -y install libglpk-dev
33#
34apt-get -y install libbluetooth-dev libjansson-dev
35
36# Compilation process
37addgroup gnunetdns
38adduser --system --home "/var/lib/gnunet" --group gnunet --shell /bin/sh
39# cd /gnunet
40# . bootstrap
41# export GNUNET_PREFIX=/usr/local/lib # or other directory of your choice
42# ./configure --prefix=$GNUNET_PREFIX/.. --with-extractor=$LE_PREFIX
43# make
44# make install
45# make check
46# echo "/usr/local/lib/gnunet" > /etc/ld.so.conf.d/libgnunet.conf
47# ldconfig
48# sudo -u gnunet gnunet-arm -s