Add a Vagrantfile
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Tue, 28 Jan 2014 18:00:55 +0000 (28 12:00 -0600)
committerJohannes Schindelin <johannes.schindelin@gmx.de>
Tue, 28 Jan 2014 18:00:55 +0000 (28 12:00 -0600)
Vagrant offers a painless way to install and use a defined Linux
development environment. We offer a Vagrantfile to that end for two
reasons:

1) To allow Windows users to gain the full power of Linux' Git

2) To offer users an easy path to verify that the issue they are about
   to report is really a Windows-specific issue; otherwise they would
   need to report it to git@vger.kernel.org instead.

Using it is easy: Download and install https://www.virtualbox.org/, then
download and install https://www.vagrantup.com/ (both are Open Source in
case you desire a more complicated installation), then direct your
command-line window to the Git source directory containing the Vagrantfile
and run the commands:

vagrant up
vagrant ssh

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Vagrantfile [new file with mode: 0644]

diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644 (file)
index 0000000..b4f7425
--- /dev/null
@@ -0,0 +1,59 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# This Vagrantfile defines the requirements of a Linux development environment
+# to develop/run Git. This environment can be set up conveniently by installing
+# Vagrant and VirtualBox and calling "vagrant up" in the Git directory.
+#
+# See https://github.com/msysgit/msysgit/wiki/Vagrant for details.
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+$provision = <<PROVISION
+apt-get update
+apt-get install -y make gcc libexpat-dev libcurl4-openssl-dev gettext tk8.5 libsvn-perl
+
+# clean .profile in case we're re-provisioning
+n="$(grep -n 'cd /vagrant' < /home/vagrant/.profile 2> /dev/null |
+       sed 's/:.*//')"
+test -z "$n" || {
+       head -n $(($n-1)) < /home/vagrant/.profile > /tmp/.profile
+       mv /tmp/.profile /home/vagrant/.profile
+}
+
+# add a nice greeting
+cat >> /home/vagrant/.profile << \EOF
+
+cd /vagrant/git
+export PATH=/home/vagrant/bin:$PATH
+cat << \TOOEOF
+
+Welcome to the Vagrant setup for Git!
+--------------------------------------
+
+To build & install Git, just execute
+
+       make -j NO_PERL_MAKEMAKER=t install
+
+For more information, see https://github.com/msysgit/msysgit/wiki/Vagrant and
+remember that this project is only as good as you make it.
+TOOEOF
+EOF
+
+cat << EOF
+
+Now that everything is set up, connect to the Vagrant machine with the command:
+
+       vagrant ssh
+
+EOF
+PROVISION
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+  # Start with a 64-bit Ubuntu 12.04 "Precise Penguin" box
+  config.vm.box = "ubuntu"
+  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
+
+  config.vm.provision :shell, :inline => $provision
+end