summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-06-16 17:27:00 -0600
committermo khan <mo.khan@gmail.com>2020-06-16 17:27:00 -0600
commit6f2d8f013765a3a5065edc6201dd082f0eeacd2b (patch)
tree4ec77dc15960f2c90dac6bb039c80b913e59ae27
parentdf370980301b81abf491c7583765d46a8474a821 (diff)
Install asdf-rubies
-rw-r--r--Dockerfile2
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock280
-rw-r--r--config/projects/asdf.rb1
-rw-r--r--config/software/asdf-ruby.rb53
5 files changed, 336 insertions, 2 deletions
diff --git a/Dockerfile b/Dockerfile
index 84cf360..a03e88a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -22,5 +22,5 @@ RUN apt-get update -q \
zlib1g-dev \
&& gem install bundler \
&& bundle install \
- && omnibus build asdf \
+ && bundle exec omnibus build asdf \
&& echo 'done'
diff --git a/Gemfile b/Gemfile
index 0f90c00..752c7f1 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,7 +5,7 @@ gem 'omnibus', '~> 7.0'
# Use Chef's software definitions. It is recommended that you write your own
# software definitions, but you can clone/fork Chef's to get you started.
-# gem 'omnibus-software', github: 'chef/omnibus-software'
+gem 'omnibus-software', github: 'chef/omnibus-software'
# This development group is installed by default when you run `bundle install`,
# but if you are using Omnibus in a CI-based infrastructure, you do not need
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..eea43e5
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,280 @@
+GIT
+ remote: https://github.com/chef/omnibus-software.git
+ revision: 86a1c7ebb859161385676e3bfe537e13ba680f59
+ specs:
+ omnibus-software (4.0.0)
+ omnibus (>= 5.6.1)
+
+GEM
+ remote: https://rubygems.org/
+ specs:
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ awesome_print (1.8.0)
+ aws-eventstream (1.1.0)
+ aws-partitions (1.329.0)
+ aws-sdk-core (3.100.0)
+ aws-eventstream (~> 1, >= 1.0.2)
+ aws-partitions (~> 1, >= 1.239.0)
+ aws-sigv4 (~> 1.1)
+ jmespath (~> 1.0)
+ aws-sdk-kms (1.34.1)
+ aws-sdk-core (~> 3, >= 3.99.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-s3 (1.68.1)
+ aws-sdk-core (~> 3, >= 3.99.0)
+ aws-sdk-kms (~> 1)
+ aws-sigv4 (~> 1.1)
+ aws-sigv4 (1.1.4)
+ aws-eventstream (~> 1.0, >= 1.0.2)
+ bcrypt_pbkdf (1.0.1)
+ berkshelf (7.0.10)
+ chef (>= 13.6.52)
+ chef-config
+ cleanroom (~> 1.0)
+ concurrent-ruby (~> 1.0)
+ minitar (>= 0.6)
+ mixlib-archive (>= 0.4, < 2.0)
+ mixlib-config (>= 2.2.5)
+ mixlib-shellout (>= 2.0, < 4.0)
+ octokit (~> 4.0)
+ retryable (>= 2.0, < 4.0)
+ solve (~> 4.0)
+ thor (>= 0.20)
+ builder (3.2.4)
+ chef (15.11.8)
+ addressable
+ bcrypt_pbkdf (~> 1.0)
+ bundler (>= 1.10)
+ chef-config (= 15.11.8)
+ chef-utils (= 15.11.8)
+ chef-zero (>= 14.0.11)
+ diff-lcs (~> 1.2, >= 1.2.4)
+ ed25519 (~> 1.2)
+ erubis (~> 2.7)
+ ffi (~> 1.9, >= 1.9.25)
+ ffi-libarchive
+ ffi-yajl (~> 2.2)
+ highline (>= 1.6.9, < 2)
+ iniparse (~> 1.4)
+ license-acceptance (~> 1.0, >= 1.0.5)
+ mixlib-archive (>= 0.4, < 2.0)
+ mixlib-authentication (>= 2.1, < 4)
+ mixlib-cli (>= 2.1.1, < 3.0)
+ mixlib-log (>= 2.0.3, < 4.0)
+ mixlib-shellout (>= 3.0.3, < 4.0)
+ net-sftp (~> 2.1, >= 2.1.2)
+ net-ssh (>= 4.2, < 6)
+ net-ssh-multi (~> 1.2, >= 1.2.1)
+ ohai (~> 15.0)
+ plist (~> 3.2)
+ proxifier (~> 1.0)
+ syslog-logger (~> 1.6)
+ train-core (~> 3.2, >= 3.2.28)
+ train-winrm (>= 0.2.5)
+ tty-screen (~> 0.6)
+ uuidtools (~> 2.1.5)
+ chef-cleanroom (1.0.2)
+ chef-config (15.11.8)
+ addressable
+ chef-utils (= 15.11.8)
+ fuzzyurl
+ mixlib-config (>= 2.2.12, < 4.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ tomlrb (~> 1.2)
+ chef-sugar (5.1.9)
+ chef-utils (15.11.8)
+ chef-zero (14.0.17)
+ ffi-yajl (~> 2.2)
+ hashie (>= 2.0, < 4.0)
+ mixlib-log (>= 2.0, < 4.0)
+ rack (~> 2.0, >= 2.0.6)
+ uuidtools (~> 2.1)
+ citrus (3.0.2)
+ cleanroom (1.0.0)
+ concurrent-ruby (1.1.6)
+ diff-lcs (1.3)
+ ed25519 (1.2.4)
+ equatable (0.6.1)
+ erubi (1.9.0)
+ erubis (2.7.0)
+ faraday (1.0.1)
+ multipart-post (>= 1.2, < 3)
+ ffi (1.13.1)
+ ffi-libarchive (1.0.0)
+ ffi (~> 1.0)
+ ffi-yajl (2.3.3)
+ libyajl2 (~> 1.2)
+ fuzzyurl (0.9.0)
+ gssapi (1.3.0)
+ ffi (>= 1.0.1)
+ gyoku (1.3.1)
+ builder (>= 2.1.2)
+ hashie (3.6.0)
+ highline (1.7.10)
+ httpclient (2.8.3)
+ iniparse (1.5.0)
+ iostruct (0.0.4)
+ ipaddress (0.8.3)
+ jmespath (1.4.0)
+ json (2.3.0)
+ libyajl2 (1.2.0)
+ license-acceptance (1.0.19)
+ pastel (~> 0.7)
+ tomlrb (~> 1.2)
+ tty-box (~> 0.3)
+ tty-prompt (~> 0.18)
+ license_scout (1.1.8)
+ ffi-yajl (~> 2.2)
+ mixlib-shellout (>= 2.2, < 4.0)
+ toml-rb (>= 1, < 3)
+ little-plugger (1.1.4)
+ logging (2.2.2)
+ little-plugger (~> 1.1)
+ multi_json (~> 1.10)
+ minitar (0.9)
+ mixlib-archive (1.0.5)
+ mixlib-log
+ mixlib-authentication (3.0.6)
+ mixlib-cli (2.1.6)
+ mixlib-config (3.0.6)
+ tomlrb
+ mixlib-log (3.0.8)
+ mixlib-shellout (3.0.9)
+ mixlib-versioning (1.2.12)
+ molinillo (0.6.6)
+ multi_json (1.14.1)
+ multipart-post (2.1.1)
+ necromancer (0.5.1)
+ net-scp (3.0.0)
+ net-ssh (>= 2.6.5, < 7.0.0)
+ net-sftp (2.1.2)
+ net-ssh (>= 2.6.5)
+ net-ssh (5.2.0)
+ net-ssh-gateway (2.0.0)
+ net-ssh (>= 4.0.0)
+ net-ssh-multi (1.2.1)
+ net-ssh (>= 2.6.5)
+ net-ssh-gateway (>= 1.2.0)
+ nori (2.6.0)
+ octokit (4.18.0)
+ faraday (>= 0.9)
+ sawyer (~> 0.8.0, >= 0.5.3)
+ ohai (15.9.1)
+ chef-config (>= 12.8, < 16)
+ ffi (~> 1.9)
+ ffi-yajl (~> 2.2)
+ ipaddress
+ mixlib-cli (>= 1.7.0)
+ mixlib-config (>= 2.0, < 4.0)
+ mixlib-log (>= 2.0.1, < 4.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ plist (~> 3.1)
+ systemu (~> 2.6.4)
+ wmi-lite (~> 1.0)
+ omnibus (7.0.13)
+ aws-sdk-s3 (~> 1)
+ chef-cleanroom (~> 1.0)
+ chef-sugar (>= 3.3)
+ ffi-yajl (~> 2.2)
+ license_scout (~> 1.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ mixlib-versioning
+ ohai (>= 13, < 17)
+ pedump
+ ruby-progressbar (~> 1.7)
+ thor (>= 0.18, < 2.0)
+ pastel (0.7.4)
+ equatable (~> 0.6)
+ tty-color (~> 0.5)
+ pedump (0.5.4)
+ awesome_print
+ iostruct (>= 0.0.4)
+ multipart-post (>= 2.0.0)
+ progressbar
+ rainbow
+ zhexdump (>= 0.0.2)
+ plist (3.5.0)
+ progressbar (1.10.1)
+ proxifier (1.0.3)
+ public_suffix (4.0.5)
+ rack (2.2.3)
+ rainbow (3.0.0)
+ retryable (3.0.5)
+ ruby-progressbar (1.10.1)
+ rubyntlm (0.6.2)
+ rubyzip (2.3.0)
+ sawyer (0.8.2)
+ addressable (>= 2.3.5)
+ faraday (> 0.8, < 2.0)
+ semverse (3.0.0)
+ solve (4.0.3)
+ molinillo (~> 0.6)
+ semverse (>= 1.1, < 4.0)
+ strings (0.1.8)
+ strings-ansi (~> 0.1)
+ unicode-display_width (~> 1.5)
+ unicode_utils (~> 1.4)
+ strings-ansi (0.2.0)
+ syslog-logger (1.6.8)
+ systemu (2.6.5)
+ thor (1.0.1)
+ toml-rb (2.0.1)
+ citrus (~> 3.0, > 3.0)
+ tomlrb (1.3.0)
+ train-core (3.3.1)
+ addressable (~> 2.5)
+ ffi (!= 1.13.0)
+ json (>= 1.8, < 3.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ net-scp (>= 1.2, < 4.0)
+ net-ssh (>= 2.9, < 7.0)
+ train-winrm (0.2.6)
+ winrm (~> 2.0)
+ winrm-fs (~> 1.0)
+ tty-box (0.5.0)
+ pastel (~> 0.7.2)
+ strings (~> 0.1.6)
+ tty-cursor (~> 0.7)
+ tty-color (0.5.1)
+ tty-cursor (0.7.1)
+ tty-prompt (0.21.0)
+ necromancer (~> 0.5.0)
+ pastel (~> 0.7.0)
+ tty-reader (~> 0.7.0)
+ tty-reader (0.7.0)
+ tty-cursor (~> 0.7)
+ tty-screen (~> 0.7)
+ wisper (~> 2.0.0)
+ tty-screen (0.8.0)
+ unicode-display_width (1.7.0)
+ unicode_utils (1.4.0)
+ uuidtools (2.1.5)
+ winrm (2.3.4)
+ builder (>= 2.1.2)
+ erubi (~> 1.8)
+ gssapi (~> 1.2)
+ gyoku (~> 1.0)
+ httpclient (~> 2.2, >= 2.2.0.2)
+ logging (>= 1.6.1, < 3.0)
+ nori (~> 2.0)
+ rubyntlm (~> 0.6.0, >= 0.6.1)
+ winrm-fs (1.3.4)
+ erubi (~> 1.8)
+ logging (>= 1.6.1, < 3.0)
+ rubyzip (~> 2.0)
+ winrm (~> 2.0)
+ wisper (2.0.1)
+ wmi-lite (1.0.5)
+ zhexdump (0.0.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ berkshelf
+ omnibus (~> 7.0)
+ omnibus-software!
+
+BUNDLED WITH
+ 2.1.4
diff --git a/config/projects/asdf.rb b/config/projects/asdf.rb
index 97c1483..1d7c0f8 100644
--- a/config/projects/asdf.rb
+++ b/config/projects/asdf.rb
@@ -17,6 +17,7 @@ build_iteration 1
# Creates required build directories
dependency "preparation"
+dependency "asdf-ruby"
# asdf dependencies/components
# dependency "somedep"
diff --git a/config/software/asdf-ruby.rb b/config/software/asdf-ruby.rb
new file mode 100644
index 0000000..9ea15cd
--- /dev/null
+++ b/config/software/asdf-ruby.rb
@@ -0,0 +1,53 @@
+name "asdf-ruby"
+
+license "BSD-2-Clause"
+license_file "BSDL"
+license_file "COPYING"
+license_file "LEGAL"
+skip_transitive_dependency_licensing true
+
+default_version "2.6.6"
+
+dependency "zlib"
+dependency "openssl"
+dependency "libffi"
+dependency "libyaml"
+
+version("2.7.1") { source sha256: "d418483bdd0000576c1370571121a6eb24582116db0b7bb2005e90e250eae418" }
+version("2.7.0") { source sha256: "8c99aa93b5e2f1bc8437d1bbbefd27b13e7694025331f77245d0c068ef1f8cbe" }
+version("2.6.6") { source sha256: "364b143def360bac1b74eb56ed60b1a0dca6439b00157ae11ff77d5cd2e92291" }
+version("2.6.5") { source sha256: "66976b716ecc1fd34f9b7c3c2b07bbd37631815377a2e3e85a5b194cfdcbed7d" }
+version("2.6.4") { source sha256: "4fc1d8ba75505b3797020a6ffc85a8bcff6adc4dabae343b6572bf281ee17937" }
+version("2.6.3") { source sha256: "577fd3795f22b8d91c1d4e6733637b0394d4082db659fccf224c774a2b1c82fb" }
+version("2.6.2") { source sha256: "a0405d2bf2c2d2f332033b70dff354d224a864ab0edd462b7a413420453b49ab" }
+version("2.6.1") { source sha256: "17024fb7bb203d9cf7a5a42c78ff6ce77140f9d083676044a7db67f1e5191cb8" }
+
+source url: "https://cache.ruby-lang.org/pub/ruby/#{version.match(/^(\d+\.\d+)/)[0]}/ruby-#{version}.tar.gz"
+
+semver = Gem::Version.create(version).segments
+ruby_mmv = "#{semver[0..1].join(".")}.0"
+ruby_dir = "#{install_dir}/embedded/lib/ruby/#{ruby_mmv}"
+gem_dir = "#{install_dir}/embedded/lib/ruby/gems/#{ruby_mmv}"
+bin_dirs bin_dirs.concat ["#{gem_dir}/gems/*/bin/**"]
+lib_dirs ["#{ruby_dir}/**", "#{gem_dir}/extensions/**", "#{gem_dir}/gems/*", "#{gem_dir}/gems/*/lib/**", "#{gem_dir}/gems/*/ext/**"]
+
+relative_path "ruby-#{version}"
+
+env = with_standard_compiler_flags(with_embedded_path)
+env["CFLAGS"] << " -O3 -g -pipe"
+
+build do
+ configure_command = ["--with-out-ext=dbm,readline",
+ "--enable-shared",
+ "--disable-install-doc",
+ "--without-gmp",
+ "--without-doc",
+ "--without-gdbm",
+ "--without-tk",
+ "--disable-dtrace",
+ "--disable-jit-support"]
+ configure_command << "--with-opt-dir=#{install_dir}/embedded"
+ configure(*configure_command, env: env)
+ make "-j #{workers}", env: env
+ make "-j #{workers} install", env: env
+end