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

Commit 6437880

Browse files
committed
Update binary creation toolset
1 parent d186e35 commit 6437880

File tree

6 files changed

+218
-18
lines changed

6 files changed

+218
-18
lines changed

Rakefile

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,18 @@ require 'rspec/core/rake_task'
44
Bundler::GemHelper.install_tasks
55
RSpec::Core::RakeTask.new :spec
66

7+
DISTRIBUTIONS = [
8+
'x86_64-linux',
9+
'x86-linux',
10+
'x86_64-linux-musl',
11+
'x86_64-freebsd-10',
12+
'x86_64-freebsd-11',
13+
'amd64-freebsd-10',
14+
'amd64-freebsd-11',
15+
'arm-linux',
16+
'aarch64-linux'
17+
]
18+
719
module Helpers
820
module_function
921
def binary_gemspec(platform = Gem::Platform.local)
@@ -51,16 +63,7 @@ task :binary => :compile do
5163
end
5264

5365
namespace :build do
54-
[
55-
'x86_64-linux',
56-
'x86-linux',
57-
'armhf-linux',
58-
'arm-linux',
59-
'aarch64-linux',
60-
'x86_64-freebsd-10',
61-
'x86_64-freebsd-11',
62-
'x86_64-linux-musl'
63-
].each do |arch|
66+
DISTRIBUTIONS.each do |arch|
6467
desc "build binary gem for #{arch}"
6568
task arch do
6669
arch_dir = Pathname(__FILE__).dirname.join("release/#{arch}")
@@ -84,6 +87,9 @@ namespace :build do
8487
end
8588
end
8689

90+
desc "Build binary gems for all supported distributions"
91+
task :binary_release => DISTRIBUTIONS.map {|distribution| "build:#{distribution}"}
92+
8793
task :clean_submodules do
8894
sh "git submodule --quiet foreach git reset --hard"
8995
sh "git submodule --quiet foreach git clean -dxf"
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
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", type: "dhcp"
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+
# Various settings as suggested by the FreeBSD community
60+
config.ssh.shell = "sh"
61+
config.vm.base_mac = "080027D14C66"
62+
config.vm.provider :virtualbox do |vb|
63+
vb.memory = "2048"
64+
vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
65+
vb.customize ["modifyvm", :id, "--audio", "none"]
66+
vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
67+
vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
68+
end
69+
70+
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
71+
# such as FTP and Heroku are also available. See the documentation at
72+
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
73+
# config.push.define "atlas" do |push|
74+
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
75+
# end
76+
77+
# Enable provisioning with a shell script. Additional provisioners such as
78+
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
79+
# documentation for more information about their specific syntax and use.
80+
# config.vm.provision "shell", inline: <<-SHELL
81+
# sudo apt-get update
82+
# sudo apt-get install -y apache2
83+
# SHELL
84+
config.vm.provision "shell", inline: <<-SHELL
85+
pkg upgrade -y
86+
pkg install -y bash gmake ruby rubygem-bundler git-lite python2
87+
SHELL
88+
end
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
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-11.0-RELEASE-p1"
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", type: "dhcp"
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+
# Various settings as suggested by the FreeBSD community
60+
config.ssh.shell = "sh"
61+
config.vm.base_mac = "080027D14C66"
62+
config.vm.provider :virtualbox do |vb|
63+
vb.memory = "2048"
64+
vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
65+
vb.customize ["modifyvm", :id, "--audio", "none"]
66+
vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
67+
vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
68+
end
69+
70+
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
71+
# such as FTP and Heroku are also available. See the documentation at
72+
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
73+
# config.push.define "atlas" do |push|
74+
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
75+
# end
76+
77+
# Enable provisioning with a shell script. Additional provisioners such as
78+
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
79+
# documentation for more information about their specific syntax and use.
80+
# config.vm.provision "shell", inline: <<-SHELL
81+
# sudo apt-get update
82+
# sudo apt-get install -y apache2
83+
# SHELL
84+
config.vm.provision "shell", inline: <<-SHELL
85+
pkg upgrade -y
86+
pkg install -y bash gmake ruby rubygem-bundler git-lite python2
87+
SHELL
88+
end

release/x86_64-freebsd-10/Vagrantfile

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ Vagrant.configure(2) do |config|
2727
# Create a private network, which allows host-only access to the machine
2828
# using a specific IP.
2929
# config.vm.network "private_network", ip: "192.168.33.10"
30-
config.vm.network "private_network", ip: "192.168.33.10"
30+
# config.vm.network "private_network", ip: "192.168.33.10"
31+
config.vm.network "private_network", type: "dhcp"
3132

3233
# Create a public network, which generally matched to bridged network.
3334
# Bridged networks make the machine appear as another physical device on
@@ -57,7 +58,10 @@ Vagrant.configure(2) do |config|
5758
# View the documentation for the provider you are using for more
5859
# information on available options.
5960
# Various settings as suggested by the FreeBSD community
60-
config.ssh.shell = "sh"
61+
62+
if ARGV[0] != 'ssh'
63+
config.ssh.shell = "sh"
64+
end
6165
config.vm.base_mac = "080027D14C66"
6266
config.vm.provider :virtualbox do |vb|
6367
vb.memory = "2048"
@@ -82,7 +86,12 @@ Vagrant.configure(2) do |config|
8286
# sudo apt-get install -y apache2
8387
# SHELL
8488
config.vm.provision "shell", inline: <<-SHELL
89+
echo 'fdesc /dev/fd fdescfs rw 0 0' >> /etc/fstab
90+
mount -a
8591
pkg upgrade -y
86-
pkg install -y bash gmake ruby rubygem-bundler git-lite python2
92+
pkg install -y curl bash gmake git-lite python2
93+
curl -sSL https://get.rvm.io | grep -v __rvm_print_headline | bash -s stable --ruby=2.4.1 --with-gems='bundler'
94+
pw groupmod rvm -M vagrant
95+
chsh -s /usr/local/bin/bash vagrant
8796
SHELL
8897
end

release/x86_64-freebsd-11/Vagrantfile

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Vagrant.configure(2) do |config|
1212

1313
# Every Vagrant development environment requires a box. You can search for
1414
# boxes at https://atlas.hashicorp.com/search.
15-
config.vm.box = "freebsd/FreeBSD-11.0-STABLE"
15+
config.vm.box = "freebsd/FreeBSD-11.0-RELEASE-p1"
1616

1717
# Disable automatic box update checking. If you disable this, then
1818
# boxes will only be checked for updates when the user runs
@@ -27,7 +27,8 @@ Vagrant.configure(2) do |config|
2727
# Create a private network, which allows host-only access to the machine
2828
# using a specific IP.
2929
# config.vm.network "private_network", ip: "192.168.33.10"
30-
config.vm.network "private_network", ip: "192.168.33.11"
30+
# config.vm.network "private_network", ip: "192.168.33.11"
31+
config.vm.network "private_network", type: "dhcp"
3132

3233
# Create a public network, which generally matched to bridged network.
3334
# Bridged networks make the machine appear as another physical device on
@@ -57,7 +58,10 @@ Vagrant.configure(2) do |config|
5758
# View the documentation for the provider you are using for more
5859
# information on available options.
5960
# Various settings as suggested by the FreeBSD community
60-
config.ssh.shell = "sh"
61+
62+
if ARGV[0] != 'ssh'
63+
config.ssh.shell = "sh"
64+
end
6165
config.vm.base_mac = "080027D14C66"
6266
config.vm.provider :virtualbox do |vb|
6367
vb.memory = "2048"
@@ -82,7 +86,12 @@ Vagrant.configure(2) do |config|
8286
# sudo apt-get install -y apache2
8387
# SHELL
8488
config.vm.provision "shell", inline: <<-SHELL
89+
echo 'fdesc /dev/fd fdescfs rw 0 0' >> /etc/fstab
90+
mount -a
8591
pkg upgrade -y
86-
pkg install -y bash gmake ruby rubygem-bundler git-lite python2
92+
pkg install -y curl bash gmake git-lite python2
93+
curl -sSL https://get.rvm.io | grep -v __rvm_print_headline | bash -s stable --ruby=2.4.1 --with-gems='bundler'
94+
pw groupmod rvm -M vagrant
95+
chsh -s /usr/local/bin/bash vagrant
8796
SHELL
8897
end

release/x86_64-linux-musl/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM alpine:3.5
1+
FROM alpine:edge
22

33
MAINTAINER Andrew Cutler <[email protected]>
44

0 commit comments

Comments
 (0)