AP_TECS: Remove duplicate setting of flare pitch upper limit
[ardupilot.git] / Vagrantfile
blob2f8b097b8e140de78d5772167bdd5e65004a30cd
1 # -*- mode: ruby -*-
2 # vi: set ft=ruby :
4 # Testing an ArduPilot VM:
5 # rm -rf /vagrant/build
6 # dpkg -l | grep modemmanager
7 # sim_vehicle.py --map --console # in the starting directory should start a Copter simulation
8 # sim_vehicle.py --debug --gdb
9 # sim_vehicle.py --debug --valgrind
10 # time (cd /vagrant && ./waf configure --board=fmuv2 && ./waf build --target=bin/ardusub) # ~9 minutes
11 # time (cd /vagrant && ./waf configure --board=fmuv3 && ./waf build --target=bin/ardusub) # ~ minutes (after building fmuv2)
12 # time (cd /vagrant && ./waf configure --board=navio2 && ./waf build --target=bin/arduplane)
13 # time (cd /vagrant && ./Tools/autotest/sim_vehicle.py --map --console -v ArduPlane -f jsbsim) # should test JSBSim
14 # time (cd /vagrant && ./Tools/autotest/autotest.py build.Rover test.Rover)
16 # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
17 VAGRANTFILE_API_VERSION = "2"
19 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
20   config.ssh.forward_x11 = true
22   # Provider-specific configuration so you can fine-tune various
23   # backing providers for Vagrant. These expose provider-specific options.
24   # Example for VirtualBox:
25   #
26   config.vm.provider "virtualbox" do |vb|
27       # Don't boot with headless mode
28       #   vb.gui = true
29       #
30       #   # Use VBoxManage to customize the VM. For example to change memory:
31       vb.customize ["modifyvm", :id, "--memory", "3192"]
32       vb.customize ["modifyvm", :id, "--ioapic", "on"]
33       vb.customize ["modifyvm", :id, "--cpus", "2"]
34       # Make some effort to avoid clock skew
35       vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", "5000"]
36       vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-start"]
37       vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore", "1"]
38   end
40   # If you are on windows then you must use a version of git >= 1.8.x
41   # to update the submodules in order to build. Older versions of git
42   # use absolute paths for submodules which confuses things.
44   # removing this line causes "A box must be specified." error
45   # and this is the default box that will be booted if no name is specified
46   config.vm.box = "ubuntu/bionic64"
47   config.vm.boot_timeout = 1500
49   # LTS, EOL April, 2019:
50   config.vm.define "trusty32", autostart: false do |trusty32|
51     trusty32.vm.box = "ubuntu/trusty32"
52     trusty32.vm.provision "trusty32", type: "shell", path: "Tools/vagrant/initvagrant.sh"
53     trusty32.vm.provider "virtualbox" do |vb|
54       vb.name = "ArduPilot (trusty32)"
55     end
56   end
58   # 14.04.5 LTS, EOL April, 2019:
59   config.vm.define "trusty64", autostart: false do |trusty64|
60     trusty64.vm.box = "ubuntu/trusty64"
61     trusty64.vm.provision "trusty64", type: "shell", path: "Tools/vagrant/initvagrant.sh"
62     trusty64.vm.provider "virtualbox" do |vb|
63       vb.name = "ArduPilot (trusty64)"
64     end
65   end
67   # LTS, EOL April 2021
68   # this VM is useful for running valgrind on!
69   config.vm.define "xenial32", autostart: false do |xenial32|
70     xenial32.vm.box = "ubuntu/xenial32"
71     xenial32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
72     xenial32.vm.provider "virtualbox" do |vb|
73       vb.name = "ArduPilot (xenial32)"
74     end
75   end
77   config.vm.define "xenial64", autostart: false do |xenial64|
78     xenial64.vm.box = "ubuntu/xenial64"
79     xenial64.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
80     xenial64.vm.provider "virtualbox" do |vb|
81       vb.name = "ArduPilot (xenial64)"
82     end
83   end
85   # NO LONGER AVAILABLE FOR DOWNLOAD, EOL January 2018
86   # EOL January 2018
87   # Only kept around for those few dev's who have already got this image and continue to use it.
88   config.vm.define "zesty32", autostart: false do |zesty32|
89     zesty32.vm.box = "ubuntu/zesty32"
90     zesty32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
91     zesty32.vm.provider "virtualbox" do |vb|
92       vb.name = "ArduPilot (zesty32)"
93     end
94   end
96   # 17.10, EOL July 2018
97   # Only kept around for those few dev's who have already got this image and continue to use it; not available for download
98   config.vm.define "artful32", autostart: false do |artful32|
99     artful32.vm.box = "ubuntu/artful32"
100     artful32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
101     artful32.vm.provider "virtualbox" do |vb|
102       vb.name = "ArduPilot (artful32)"
103     end
104   end
106   # 18.04 LTS EOL April 2023
107   # Only kept around for those few dev's who have already got this image and continue to use it; not available for download
108   config.vm.define "bionic32", autostart: false do |bionic32|
109     bionic32.vm.box = "ubuntu/bionic32"
110     bionic32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
111     bionic32.vm.provider "virtualbox" do |vb|
112       vb.name = "ArduPilot (bionic32)"
113     end
114   end
116   # 18.04 LTS EOL April 2023
117   config.vm.define "bionic64", primary: true do |bionic64|
118     bionic64.vm.box = "ubuntu/bionic64"
119     bionic64.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
120     bionic64.vm.provider "virtualbox" do |vb|
121       vb.name = "ArduPilot (bionic64)"
122     end
123   end
125   # 18.04 LTS EOL April 2023
126   config.vm.define "bionic64-desktop", autostart: false do |bionic64|
127     bionic64.vm.box = "ubuntu/bionic64"
128     bionic64.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
129     bionic64.vm.provider "virtualbox" do |vb|
130       vb.name = "ArduPilot (bionic64-desktop)"
131       vb.gui = true
132     end
133   end
135   # 18.10
136   config.vm.define "cosmic32", autostart: false do |cosmic32|
137     cosmic32.vm.box = "ubuntu/cosmic32"
138     cosmic32.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
139     cosmic32.vm.provider "virtualbox" do |vb|
140       vb.name = "ArduPilot (cosmic32)"
141     end
142   end
144   # 18.10
145   config.vm.define "cosmic64", autostart: false do |cosmic64|
146     cosmic64.vm.box = "ubuntu/cosmic64"
147     cosmic64.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
148     cosmic64.vm.provider "virtualbox" do |vb|
149       vb.name = "ArduPilot (cosmic64)"
150     end
151   end
153   # 19.04
154   config.vm.define "disco64", autostart: false do |disco64|
155     disco64.vm.box = "ubuntu/disco64"
156     disco64.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
157     disco64.vm.provider "virtualbox" do |vb|
158       vb.name = "ArduPilot (disco64)"
159     end
160   end
162   # 19.10 - broken; fails to use NamedTemporaryFile to create file for gdb
163 #  config.vm.define "eoan", autostart: false do |eoan|
164 #    eoan.vm.box = "ubuntu/eoan64"
165 #    eoan.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
166 #    eoan.vm.provider "virtualbox" do |vb|
167 #      vb.name = "ArduPilot (eoan)"
168 #    end
169 #    eoan.vm.boot_timeout = 1200
170 #  end
172   # 20.04 LTS  EOL April 2025
173   config.vm.define "focal", autostart: false do |focal|
174     focal.vm.box = "ubuntu/focal64"
175     focal.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
176     focal.vm.provider "virtualbox" do |vb|
177       vb.name = "ArduPilot (focal)"
178     end
179     focal.vm.boot_timeout = 1200
180   end
181   config.vm.define "focal-desktop", autostart: false do |focal|
182     focal.vm.box = "ubuntu/focal64"
183     focal.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
184     focal.vm.provider "virtualbox" do |vb|
185       vb.name = "ArduPilot (focal-desktop)"
186       vb.gui = true
187     end
188     focal.vm.boot_timeout = 1500
189   end
191   # 20.10  EOL July 2021
192 #   config.vm.define "groovy", autostart: false do |groovy|
193 #     groovy.vm.box = "ubuntu/groovy64"
194 #     groovy.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
195 #     groovy.vm.provider "virtualbox" do |vb|
196 #       vb.name = "ArduPilot (groovy)"
197 #     end
198 #     groovy.vm.boot_timeout = 1200
199 #   end
201   # 21.04 EOL January 2022 apt repo down
202 #   config.vm.define "hirsute", autostart: false do |hirsute|
203 #     hirsute.vm.box = "ubuntu/hirsute64"
204 #     hirsute.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
205 #     hirsute.vm.provider "virtualbox" do |vb|
206 #       vb.name = "ArduPilot (hirsute)"
207 #     end
208 #     hirsute.vm.boot_timeout = 1200
209 #   end
210 #   config.vm.define "hirsute-desktop", autostart: false do |hirsute|
211 #     hirsute.vm.box = "ubuntu/hirsute64"
212 #     hirsute.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
213 #     hirsute.vm.provider "virtualbox" do |vb|
214 #       vb.name = "ArduPilot (hirsute-desktop)"
215 #       vb.gui = true
216 #     end
217 #     hirsute.vm.boot_timeout = 1200
218 #   end
220   # 21.10 EOL July 2022
221 #   config.vm.define "impish", autostart: false do |impish|
222 #     impish.vm.box = "ubuntu/impish64"
223 #     impish.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
224 #     impish.vm.provider "virtualbox" do |vb|
225 #       vb.name = "ArduPilot (impish)"
226 #     end
227 #     impish.vm.boot_timeout = 1200
228 #   end
230   # 22.04 LTS EOL Apr 2032
231   config.vm.define "jammy", autostart: false do |jammy|
232     jammy.vm.box = "ubuntu/jammy64"
233     jammy.vm.provision :shell, path: "Tools/vagrant/initvagrant.sh"
234     jammy.vm.provider "virtualbox" do |vb|
235       vb.name = "ArduPilot (jammy)"
236     end
237     jammy.vm.boot_timeout = 1200
238   end
239   config.vm.define "jammy-desktop", autostart: false do |jammy|
240     jammy.vm.box = "ubuntu/jammy64"
241     jammy.vm.provision :shell, path: "Tools/vagrant/initvagrant-desktop.sh"
242     jammy.vm.provider "virtualbox" do |vb|
243       vb.name = "ArduPilot (jammy-desktop)"
244       vb.gui = true
245     end
246     jammy.vm.boot_timeout = 1200
247   end