Skip to content
This repository was archived by the owner on Dec 4, 2023. It is now read-only.

Commit 82671cb

Browse files
committed
Introduce a FreeBSD Vagrant box
This closes #187
1 parent a118bb3 commit 82671cb

2 files changed

Lines changed: 93 additions & 6 deletions

File tree

Rakefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,20 +92,20 @@ task :devkit do
9292
end
9393

9494
namespace :build do
95-
['x86_64-linux', 'x86-linux'].each do |arch|
95+
['x86_64-linux', 'x86-linux', 'x86_64-freebsd10'].each do |arch|
9696
desc "build binary gem for #{arch}"
9797
task arch do
9898
arch_dir = Pathname(__FILE__).dirname.join("release/#{arch}")
9999
Dir.chdir(arch_dir) do
100+
ENV['RUBYLIB'] = nil # https://github.com/mitchellh/vagrant/issues/6158
100101
sh "vagrant up"
101-
sh "vagrant ssh -c 'cd /vagrant && rm -rf libv8 && git clone /libv8/.git libv8'"
102-
sh "vagrant ssh -c 'cd /vagrant/libv8 && bundle install --path vendor/bundle'"
103-
sh "vagrant ssh -c 'cd /vagrant/libv8 && bundle exec rake checkout binary'"
104-
sh "vagrant ssh -c 'cp /vagrant/libv8/pkg/*.gem /vagrant'"
102+
sh "vagrant ssh -c 'git clone /libv8/.git ~/libv8'"
103+
sh "vagrant ssh -c 'cd ~/libv8 && bundle install --path vendor/bundle'"
104+
sh "vagrant ssh -c 'cd ~/libv8 && bundle exec rake checkout binary'"
105+
sh "vagrant ssh -c 'cp ~/libv8/pkg/*.gem /vagrant'"
105106
end
106107
end
107108
end
108-
109109
end
110110

111111
task :default => [:checkout, :compile, :spec]
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# -*- mode: ruby -*-
2+
# vi: set ft=ruby :
3+
4+
# All Vagrant configuration is done below. The "2" in Vagrant.configure
5+
# configures the configuration version (we support older styles for
6+
# backwards compatibility). Please don't change it unless you know what
7+
# you're doing.
8+
Vagrant.configure(2) do |config|
9+
# The most common configuration options are documented and commented below.
10+
# For a complete reference, please see the online documentation at
11+
# https://docs.vagrantup.com.
12+
13+
# Every Vagrant development environment requires a box. You can search for
14+
# boxes at https://atlas.hashicorp.com/search.
15+
config.vm.box = "freebsd/FreeBSD-10.3-RELEASE"
16+
17+
# Disable automatic box update checking. If you disable this, then
18+
# boxes will only be checked for updates when the user runs
19+
# `vagrant box outdated`. This is not recommended.
20+
# config.vm.box_check_update = false
21+
22+
# Create a forwarded port mapping which allows access to a specific port
23+
# within the machine from a port on the host machine. In the example below,
24+
# accessing "localhost:8080" will access port 80 on the guest machine.
25+
# config.vm.network "forwarded_port", guest: 80, host: 8080
26+
27+
# Create a private network, which allows host-only access to the machine
28+
# using a specific IP.
29+
# config.vm.network "private_network", ip: "192.168.33.10"
30+
config.vm.network "private_network", ip: "192.168.33.10"
31+
32+
# Create a public network, which generally matched to bridged network.
33+
# Bridged networks make the machine appear as another physical device on
34+
# your network.
35+
# config.vm.network "public_network"
36+
37+
# Share an additional folder to the guest VM. The first argument is
38+
# the path on the host to the actual folder. The second argument is
39+
# the path on the guest to mount the folder. And the optional third
40+
# argument is a set of non-required options.
41+
config.vm.synced_folder ".", "/vagrant", nfs: true
42+
config.vm.synced_folder "../..", "/libv8", nfs: true
43+
44+
45+
# Provider-specific configuration so you can fine-tune various
46+
# backing providers for Vagrant. These expose provider-specific options.
47+
# Example for VirtualBox:
48+
#
49+
# config.vm.provider "virtualbox" do |vb|
50+
# # Display the VirtualBox GUI when booting the machine
51+
# vb.gui = true
52+
#
53+
# # Customize the amount of memory on the VM:
54+
# vb.memory = "1024"
55+
# end
56+
#
57+
# View the documentation for the provider you are using for more
58+
# information on available options.
59+
60+
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
61+
# such as FTP and Heroku are also available. See the documentation at
62+
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
63+
# config.push.define "atlas" do |push|
64+
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
65+
# end
66+
67+
# Enable provisioning with a shell script. Additional provisioners such as
68+
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
69+
# documentation for more information about their specific syntax and use.
70+
# config.vm.provision "shell", inline: <<-SHELL
71+
# sudo apt-get update
72+
# sudo apt-get install -y apache2
73+
# SHELL
74+
config.vm.provision "shell", inline: <<-SHELL
75+
pkg install -y gmake ruby rubygem-bundler git-subversion python2
76+
SHELL
77+
78+
# Various settings as suggested by the FreeBSD community
79+
config.ssh.shell = "sh"
80+
config.vm.base_mac = "080027D14C66"
81+
config.vm.provider :virtualbox do |vb|
82+
vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
83+
vb.customize ["modifyvm", :id, "--audio", "none"]
84+
vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
85+
vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
86+
end
87+
end

0 commit comments

Comments
 (0)