Commit f343941407aba4c094ac3f3ab0411e4e5056b600
Exists in
master
and in
2 other branches
Merge branch 'update/omnibus' into 'master'
Update omnibus-ruby to 3.2.1 See merge request !177
Showing
14 changed files
with
86 additions
and
477 deletions
Show diff stats
Gemfile
| 1 | source 'https://rubygems.org' | 1 | source 'https://rubygems.org' |
| 2 | 2 | ||
| 3 | -gem 'omnibus', '~> 3.0.0' | 3 | +gem 'omnibus' |
| 4 | gem 'omnibus-software', :git => 'git://github.com/opscode/omnibus-software.git', :branch => 'master' | 4 | gem 'omnibus-software', :git => 'git://github.com/opscode/omnibus-software.git', :branch => 'master' |
| 5 | gem 'ohai' | 5 | gem 'ohai' |
Gemfile.lock
| 1 | GIT | 1 | GIT |
| 2 | remote: git://github.com/opscode/omnibus-software.git | 2 | remote: git://github.com/opscode/omnibus-software.git |
| 3 | - revision: 4309667e135644c0c49473ec16aa7dba9fa84f41 | 3 | + revision: 7ac92daa6892e0898eb868679e578df530e38ee8 |
| 4 | branch: master | 4 | branch: master |
| 5 | specs: | 5 | specs: |
| 6 | - omnibus-software (0.0.1) | 6 | + omnibus-software (4.0.0) |
| 7 | 7 | ||
| 8 | GEM | 8 | GEM |
| 9 | remote: https://rubygems.org/ | 9 | remote: https://rubygems.org/ |
| @@ -13,18 +13,20 @@ GEM | @@ -13,18 +13,20 @@ GEM | ||
| 13 | cabin (> 0) | 13 | cabin (> 0) |
| 14 | backports (3.6.0) | 14 | backports (3.6.0) |
| 15 | cabin (0.6.1) | 15 | cabin (0.6.1) |
| 16 | - chef-sugar (1.2.6) | ||
| 17 | - childprocess (0.5.2) | 16 | + chef-sugar (1.3.0) |
| 17 | + childprocess (0.5.3) | ||
| 18 | ffi (~> 1.0, >= 1.0.11) | 18 | ffi (~> 1.0, >= 1.0.11) |
| 19 | clamp (0.6.3) | 19 | clamp (0.6.3) |
| 20 | ffi (1.9.3) | 20 | ffi (1.9.3) |
| 21 | - fpm (1.0.2) | 21 | + ffi-yajl (1.0.2) |
| 22 | + ffi (~> 1.5) | ||
| 23 | + libyajl2 (~> 1.0) | ||
| 24 | + fpm (0.4.42) | ||
| 22 | arr-pm (~> 0.0.8) | 25 | arr-pm (~> 0.0.8) |
| 23 | backports (>= 2.6.2) | 26 | backports (>= 2.6.2) |
| 24 | cabin (>= 0.6.0) | 27 | cabin (>= 0.6.0) |
| 25 | childprocess | 28 | childprocess |
| 26 | clamp (~> 0.6) | 29 | clamp (~> 0.6) |
| 27 | - ffi | ||
| 28 | ftw (~> 0.0.30) | 30 | ftw (~> 0.0.30) |
| 29 | json (>= 1.7.7) | 31 | json (>= 1.7.7) |
| 30 | ftw (0.0.39) | 32 | ftw (0.0.39) |
| @@ -35,37 +37,40 @@ GEM | @@ -35,37 +37,40 @@ GEM | ||
| 35 | http_parser.rb (0.5.3) | 37 | http_parser.rb (0.5.3) |
| 36 | ipaddress (0.8.0) | 38 | ipaddress (0.8.0) |
| 37 | json (1.8.1) | 39 | json (1.8.1) |
| 40 | + libyajl2 (1.0.1) | ||
| 38 | mime-types (1.25.1) | 41 | mime-types (1.25.1) |
| 39 | - mixlib-cli (1.4.0) | 42 | + mixlib-cli (1.5.0) |
| 40 | mixlib-config (2.1.0) | 43 | mixlib-config (2.1.0) |
| 41 | mixlib-log (1.6.0) | 44 | mixlib-log (1.6.0) |
| 42 | - mixlib-shellout (1.3.0) | ||
| 43 | - ohai (6.20.0) | 45 | + mixlib-shellout (1.4.0) |
| 46 | + ohai (7.2.0) | ||
| 47 | + ffi (~> 1.9) | ||
| 48 | + ffi-yajl (~> 1.0) | ||
| 44 | ipaddress | 49 | ipaddress |
| 50 | + mime-types (~> 1.16) | ||
| 45 | mixlib-cli | 51 | mixlib-cli |
| 46 | - mixlib-config | 52 | + mixlib-config (~> 2.0) |
| 47 | mixlib-log | 53 | mixlib-log |
| 48 | - mixlib-shellout | ||
| 49 | - systemu (~> 2.5.2) | ||
| 50 | - yajl-ruby | ||
| 51 | - omnibus (3.0.0) | 54 | + mixlib-shellout (~> 1.2) |
| 55 | + systemu (~> 2.6.4) | ||
| 56 | + wmi-lite (~> 1.0) | ||
| 57 | + omnibus (3.2.1) | ||
| 52 | chef-sugar (~> 1.2) | 58 | chef-sugar (~> 1.2) |
| 53 | - fpm (~> 1.0.0) | ||
| 54 | - mixlib-config (~> 2.1) | ||
| 55 | - mixlib-shellout (~> 1.3) | ||
| 56 | - ohai (~> 6.12) | ||
| 57 | - thor (>= 0.16.0) | 59 | + fpm (~> 0.4) |
| 60 | + mixlib-shellout (~> 1.4) | ||
| 61 | + ohai (~> 7.2) | ||
| 62 | + thor (~> 0.18) | ||
| 58 | uber-s3 | 63 | uber-s3 |
| 59 | - systemu (2.5.2) | 64 | + systemu (2.6.4) |
| 60 | thor (0.19.1) | 65 | thor (0.19.1) |
| 61 | uber-s3 (0.2.4) | 66 | uber-s3 (0.2.4) |
| 62 | mime-types (~> 1.17) | 67 | mime-types (~> 1.17) |
| 63 | - yajl-ruby (1.2.0) | 68 | + wmi-lite (1.0.0) |
| 64 | 69 | ||
| 65 | PLATFORMS | 70 | PLATFORMS |
| 66 | ruby | 71 | ruby |
| 67 | 72 | ||
| 68 | DEPENDENCIES | 73 | DEPENDENCIES |
| 69 | ohai | 74 | ohai |
| 70 | - omnibus (~> 3.0.0) | 75 | + omnibus |
| 71 | omnibus-software! | 76 | omnibus-software! |
Makefile
| @@ -5,7 +5,7 @@ SECRET_DIR:=$(shell openssl rand -hex 20) | @@ -5,7 +5,7 @@ SECRET_DIR:=$(shell openssl rand -hex 20) | ||
| 5 | PLATFORM_DIR:=$(shell ruby -rjson -e 'puts JSON.parse(`bin/ohai`).values_at("platform", "platform_version").join("-")') | 5 | PLATFORM_DIR:=$(shell ruby -rjson -e 'puts JSON.parse(`bin/ohai`).values_at("platform", "platform_version").join("-")') |
| 6 | 6 | ||
| 7 | build: | 7 | build: |
| 8 | - OMNIBUS_APPEND_TIMESTAMP=0 bin/omnibus build project ${PROJECT} | 8 | + bin/omnibus build ${PROJECT} --override append_timestamp:false --log-level info |
| 9 | 9 | ||
| 10 | do_release: no_changes on_tag purge build move_to_platform_dir sync | 10 | do_release: no_changes on_tag purge build move_to_platform_dir sync |
| 11 | 11 |
config/projects/gitlab.rb
| @@ -21,7 +21,7 @@ maintainer "GitLab.com" | @@ -21,7 +21,7 @@ maintainer "GitLab.com" | ||
| 21 | homepage "http://www.gitlab.com/" | 21 | homepage "http://www.gitlab.com/" |
| 22 | 22 | ||
| 23 | replaces "gitlab" | 23 | replaces "gitlab" |
| 24 | -install_path "/opt/gitlab" | 24 | +install_dir "/opt/gitlab" |
| 25 | build_version Omnibus::BuildVersion.new.semver | 25 | build_version Omnibus::BuildVersion.new.semver |
| 26 | build_iteration 1 | 26 | build_iteration 1 |
| 27 | 27 | ||
| @@ -35,7 +35,7 @@ dependency "git" | @@ -35,7 +35,7 @@ dependency "git" | ||
| 35 | dependency "redis" | 35 | dependency "redis" |
| 36 | dependency "nginx" | 36 | dependency "nginx" |
| 37 | dependency "chef-gem" | 37 | dependency "chef-gem" |
| 38 | -if system("#{Omnibus.project_root}/support/is_gitlab_ee.sh") || system("#{Omnibus.project_root}/support/is_gitlab_com.sh") | 38 | +if system("#{Config.project_root}/support/is_gitlab_ee.sh") || system("#{Config.project_root}/support/is_gitlab_com.sh") |
| 39 | dependency "remote-syslog" | 39 | dependency "remote-syslog" |
| 40 | end | 40 | end |
| 41 | dependency "runit" | 41 | dependency "runit" |
config/software/cacerts.rb
| @@ -1,52 +0,0 @@ | @@ -1,52 +0,0 @@ | ||
| 1 | -# | ||
| 2 | -# Copyright:: Copyright (c) 2012-2014 Chef Software, Inc. | ||
| 3 | -# License:: Apache License, Version 2.0 | ||
| 4 | -# | ||
| 5 | -# Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 6 | -# you may not use this file except in compliance with the License. | ||
| 7 | -# You may obtain a copy of the License at | ||
| 8 | -# | ||
| 9 | -# http://www.apache.org/licenses/LICENSE-2.0 | ||
| 10 | -# | ||
| 11 | -# Unless required by applicable law or agreed to in writing, software | ||
| 12 | -# distributed under the License is distributed on an "AS IS" BASIS, | ||
| 13 | -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 14 | -# See the License for the specific language governing permissions and | ||
| 15 | -# limitations under the License. | ||
| 16 | -# | ||
| 17 | - | ||
| 18 | -name "cacerts" | ||
| 19 | -default_version "2014.07.15" # date of the file is in a comment at the start, or in the changelog | ||
| 20 | - | ||
| 21 | -version "2014.07.15" do | ||
| 22 | - source :md5 => "fd48275847fa10a8007008379ee902f1" | ||
| 23 | -end | ||
| 24 | - | ||
| 25 | -version "2014.04.22" do | ||
| 26 | - source :md5 => "9f92a0d9f605e227ae068e605f4c86fa" | ||
| 27 | -end | ||
| 28 | - | ||
| 29 | -version "2014.01.28" do | ||
| 30 | - source :md5 => "5d108f8ab86afacc6663aafca8604dd3" | ||
| 31 | -end | ||
| 32 | - | ||
| 33 | -source :url => "http://curl.haxx.se/ca/cacert.pem" | ||
| 34 | -relative_path "cacerts-#{version}" | ||
| 35 | - | ||
| 36 | -build do | ||
| 37 | - block do | ||
| 38 | - FileUtils.mkdir_p(File.expand_path("embedded/ssl/certs", install_dir)) | ||
| 39 | - | ||
| 40 | - # There is a bug in omnibus-ruby that may or may not have been fixed. Since the source url | ||
| 41 | - # does not point to an archive, omnibus-ruby tries to copy cacert.pem into the project working | ||
| 42 | - # directory. However, it fails and copies to '/var/cache/omnibus/src/cacerts-2012.12.19\' instead | ||
| 43 | - # There is supposed to be a fix in omnibus-ruby, but under further testing, it was unsure if the | ||
| 44 | - # fix worked. Rather than trying to fix this now, we're filing a bug and copying the cacert.pem | ||
| 45 | - # directly from the cache instead. | ||
| 46 | - | ||
| 47 | - FileUtils.cp(File.expand_path("cacert.pem", Config.cache_dir), | ||
| 48 | - File.expand_path("embedded/ssl/certs/cacert.pem", install_dir)) | ||
| 49 | - end | ||
| 50 | - | ||
| 51 | - command "ln -sf #{install_dir}/embedded/ssl/certs/cacert.pem #{install_dir}/embedded/ssl/cert.pem" | ||
| 52 | -end |
config/software/chef-gem.rb
| @@ -1,28 +0,0 @@ | @@ -1,28 +0,0 @@ | ||
| 1 | -# | ||
| 2 | -# Copyright:: Copyright (c) 2012-2014 Chef Software, Inc. | ||
| 3 | -# Copyright:: Copyright (c) 2014 GitLab B.V. | ||
| 4 | -# License:: Apache License, Version 2.0 | ||
| 5 | -# | ||
| 6 | -# Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 7 | -# you may not use this file except in compliance with the License. | ||
| 8 | -# You may obtain a copy of the License at | ||
| 9 | -# | ||
| 10 | -# http://www.apache.org/licenses/LICENSE-2.0 | ||
| 11 | -# | ||
| 12 | -# Unless required by applicable law or agreed to in writing, software | ||
| 13 | -# distributed under the License is distributed on an "AS IS" BASIS, | ||
| 14 | -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 15 | -# See the License for the specific language governing permissions and | ||
| 16 | -# limitations under the License. | ||
| 17 | -# | ||
| 18 | - | ||
| 19 | -name "chef-gem" | ||
| 20 | -default_version "11.12.2" | ||
| 21 | - | ||
| 22 | -dependency "ruby" | ||
| 23 | -dependency "rubygems" | ||
| 24 | -dependency "ohai" | ||
| 25 | - | ||
| 26 | -build do | ||
| 27 | - gem "install chef -n #{install_dir}/embedded/bin --no-rdoc --no-ri -v #{version}" | ||
| 28 | -end |
config/software/gitlab-cookbooks.rb
| @@ -22,7 +22,7 @@ dependency "rsync" | @@ -22,7 +22,7 @@ dependency "rsync" | ||
| 22 | 22 | ||
| 23 | always_build true | 23 | always_build true |
| 24 | 24 | ||
| 25 | -source :path => File.expand_path("files/gitlab-cookbooks", Omnibus.project_root) | 25 | +source :path => File.expand_path("files/gitlab-cookbooks", Config.project_root) |
| 26 | 26 | ||
| 27 | build do | 27 | build do |
| 28 | command "mkdir -p #{install_dir}/embedded/cookbooks" | 28 | command "mkdir -p #{install_dir}/embedded/cookbooks" |
config/software/gitlab-ctl.rb
| @@ -21,7 +21,7 @@ name "gitlab-ctl" | @@ -21,7 +21,7 @@ name "gitlab-ctl" | ||
| 21 | dependency "rsync" | 21 | dependency "rsync" |
| 22 | dependency "omnibus-ctl" | 22 | dependency "omnibus-ctl" |
| 23 | 23 | ||
| 24 | -source :path => File.expand_path("files/gitlab-ctl-commands", Omnibus.project_root) | 24 | +source :path => File.expand_path("files/gitlab-ctl-commands", Config.project_root) |
| 25 | 25 | ||
| 26 | build do | 26 | build do |
| 27 | block do | 27 | block do |
config/software/gitlab-rails.rb
| @@ -19,7 +19,7 @@ | @@ -19,7 +19,7 @@ | ||
| 19 | name "gitlab-rails" | 19 | name "gitlab-rails" |
| 20 | default_version "70ed6ef2a6894042c9bbd92f273542bca2a2374f" # 7.0.0.rc1 | 20 | default_version "70ed6ef2a6894042c9bbd92f273542bca2a2374f" # 7.0.0.rc1 |
| 21 | 21 | ||
| 22 | -EE = system("#{Omnibus.project_root}/support/is_gitlab_ee.sh") | 22 | +EE = system("#{Config.project_root}/support/is_gitlab_ee.sh") |
| 23 | 23 | ||
| 24 | dependency "ruby" | 24 | dependency "ruby" |
| 25 | dependency "bundler" | 25 | dependency "bundler" |
| @@ -62,7 +62,7 @@ build do | @@ -62,7 +62,7 @@ build do | ||
| 62 | # database at this point so that is a problem. This bug is fixed in | 62 | # database at this point so that is a problem. This bug is fixed in |
| 63 | # acts-as-taggable-on 3.0.0 by | 63 | # acts-as-taggable-on 3.0.0 by |
| 64 | # https://github.com/mbleigh/acts-as-taggable-on/commit/ad02dc9bb24ec8e1e79e7e35e2d4bb5910a66d8e | 64 | # https://github.com/mbleigh/acts-as-taggable-on/commit/ad02dc9bb24ec8e1e79e7e35e2d4bb5910a66d8e |
| 65 | - aato_patch = "#{Omnibus.project_root}/config/patches/acts-as-taggable-on-ad02dc9bb24ec8e1e79e7e35e2d4bb5910a66d8e.diff" | 65 | + aato_patch = "#{Config.project_root}/config/patches/acts-as-taggable-on-ad02dc9bb24ec8e1e79e7e35e2d4bb5910a66d8e.diff" |
| 66 | 66 | ||
| 67 | # To make this idempotent, we apply the patch (in case this is a first run) or | 67 | # To make this idempotent, we apply the patch (in case this is a first run) or |
| 68 | # we revert and re-apply the patch (if this is a second or later run). | 68 | # we revert and re-apply the patch (if this is a second or later run). |
| @@ -0,0 +1,47 @@ | @@ -0,0 +1,47 @@ | ||
| 1 | +# | ||
| 2 | +# Copyright 2012-2014 Chef Software, Inc. | ||
| 3 | +# | ||
| 4 | +# Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 5 | +# you may not use this file except in compliance with the License. | ||
| 6 | +# You may obtain a copy of the License at | ||
| 7 | +# | ||
| 8 | +# http://www.apache.org/licenses/LICENSE-2.0 | ||
| 9 | +# | ||
| 10 | +# Unless required by applicable law or agreed to in writing, software | ||
| 11 | +# distributed under the License is distributed on an "AS IS" BASIS, | ||
| 12 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 13 | +# See the License for the specific language governing permissions and | ||
| 14 | +# limitations under the License. | ||
| 15 | +# | ||
| 16 | + | ||
| 17 | +name "libffi" | ||
| 18 | +default_version "3.0.13" | ||
| 19 | + | ||
| 20 | +dependency "libgcc" | ||
| 21 | +dependency "libtool" | ||
| 22 | + | ||
| 23 | +source url: "ftp://sourceware.org/pub/libffi/libffi-3.0.13.tar.gz", | ||
| 24 | + md5: '45f3b6dbc9ee7c7dfbbbc5feba571529' | ||
| 25 | + | ||
| 26 | +relative_path "libffi-3.0.13" | ||
| 27 | + | ||
| 28 | +build do | ||
| 29 | + env = with_standard_compiler_flags(with_embedded_path) | ||
| 30 | + | ||
| 31 | + command "./configure" \ | ||
| 32 | + " --prefix=#{install_dir}/embedded", env: env | ||
| 33 | + | ||
| 34 | + command "make -j #{max_build_jobs}", env: env | ||
| 35 | + command "make -j #{max_build_jobs} install", env: env | ||
| 36 | + | ||
| 37 | + # libffi's default install location of header files is awful... | ||
| 38 | + copy "#{install_dir}/embedded/lib/libffi-#{version}/include/*", "#{install_dir}/embedded/include" | ||
| 39 | + | ||
| 40 | + # On 64-bit centos, libffi libraries are places under /embedded/lib64 | ||
| 41 | + # move them over to lib | ||
| 42 | + if rhel? && _64_bit? | ||
| 43 | + copy "#{install_dir}/embedded/lib64/*", "#{install_dir}/embedded/lib/" | ||
| 44 | + delete "#{install_dir}/embedded/lib64" | ||
| 45 | + end | ||
| 46 | +end | ||
| 47 | + |
config/software/mysql-client.rb
| @@ -18,11 +18,9 @@ | @@ -18,11 +18,9 @@ | ||
| 18 | name "mysql-client" | 18 | name "mysql-client" |
| 19 | default_version "5.5.37" | 19 | default_version "5.5.37" |
| 20 | 20 | ||
| 21 | -dependencies [ | ||
| 22 | - "openssl", | ||
| 23 | - "zlib", | ||
| 24 | - "ncurses" | ||
| 25 | - ] | 21 | +dependency "openssl" |
| 22 | +dependency "zlib" | ||
| 23 | +dependency "ncurses" | ||
| 26 | 24 | ||
| 27 | source :url => "http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.37.tar.gz", | 25 | source :url => "http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.37.tar.gz", |
| 28 | :md5 => "bf1d80c66d4822ec6036300399a33c03" | 26 | :md5 => "bf1d80c66d4822ec6036300399a33c03" |
| @@ -38,14 +36,8 @@ env = { | @@ -38,14 +36,8 @@ env = { | ||
| 38 | "PATH" => "#{install_dir}/embedded/bin:#{ENV['PATH']}", | 36 | "PATH" => "#{install_dir}/embedded/bin:#{ENV['PATH']}", |
| 39 | } | 37 | } |
| 40 | 38 | ||
| 41 | -unless OHAI.platform =~ /ubuntu/ && OHAI.platform_version =~ /^14.04/ | ||
| 42 | - # Perhaps we can drop LD_LIBRARY_PATH on all platforms? For now, all we know | ||
| 43 | - # is that it breaks the build on Ubuntu 14.04. | ||
| 44 | - env.merge!("LD_LIBRARY_PATH" => "#{install_dir}/embedded/lib") | ||
| 45 | -end | ||
| 46 | - | ||
| 47 | # Force CentOS-5 to use gcc/g++ v4.4 | 39 | # Force CentOS-5 to use gcc/g++ v4.4 |
| 48 | -if OHAI.platform =~ /centos/ and OHAI.platform_version =~ /^5/ | 40 | +if Ohai['platform'] =~ /centos/ and Ohai['platform_version'] =~ /^5/ |
| 49 | env.merge!( { | 41 | env.merge!( { |
| 50 | "CC" => "gcc44", | 42 | "CC" => "gcc44", |
| 51 | "CXX" => "g++44" | 43 | "CXX" => "g++44" |
config/software/ohai.rb
| @@ -1,26 +0,0 @@ | @@ -1,26 +0,0 @@ | ||
| 1 | -# | ||
| 2 | -# Copyright:: Copyright (c) 2014 GitLab B.V. | ||
| 3 | -# License:: Apache License, Version 2.0 | ||
| 4 | -# | ||
| 5 | -# Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 6 | -# you may not use this file except in compliance with the License. | ||
| 7 | -# You may obtain a copy of the License at | ||
| 8 | -# | ||
| 9 | -# http://www.apache.org/licenses/LICENSE-2.0 | ||
| 10 | -# | ||
| 11 | -# Unless required by applicable law or agreed to in writing, software | ||
| 12 | -# distributed under the License is distributed on an "AS IS" BASIS, | ||
| 13 | -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 14 | -# See the License for the specific language governing permissions and | ||
| 15 | -# limitations under the License. | ||
| 16 | -# | ||
| 17 | - | ||
| 18 | -name "ohai" | ||
| 19 | -default_version "7.0.4" | ||
| 20 | - | ||
| 21 | -dependency "ruby" | ||
| 22 | -dependency "rubygems" | ||
| 23 | - | ||
| 24 | -build do | ||
| 25 | - gem "install ohai -n #{install_dir}/embedded/bin --no-rdoc --no-ri -v #{version}" | ||
| 26 | -end |
config/software/openssl.rb
| @@ -1,158 +0,0 @@ | @@ -1,158 +0,0 @@ | ||
| 1 | -# | ||
| 2 | -# Copyright:: Copyright (c) 2012-2014 Chef Software, Inc. | ||
| 3 | -# License:: Apache License, Version 2.0 | ||
| 4 | -# | ||
| 5 | -# Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 6 | -# you may not use this file except in compliance with the License. | ||
| 7 | -# You may obtain a copy of the License at | ||
| 8 | -# | ||
| 9 | -# http://www.apache.org/licenses/LICENSE-2.0 | ||
| 10 | -# | ||
| 11 | -# Unless required by applicable law or agreed to in writing, software | ||
| 12 | -# distributed under the License is distributed on an "AS IS" BASIS, | ||
| 13 | -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 14 | -# See the License for the specific language governing permissions and | ||
| 15 | -# limitations under the License. | ||
| 16 | -# | ||
| 17 | - | ||
| 18 | -name "openssl" | ||
| 19 | - | ||
| 20 | -dependency "zlib" | ||
| 21 | -dependency "cacerts" | ||
| 22 | -dependency "libgcc" | ||
| 23 | -dependency "makedepend" | ||
| 24 | - | ||
| 25 | - | ||
| 26 | -if platform == "aix" | ||
| 27 | - # XXX: OpenSSL has an open bug on 1.0.1e where it fails to install on AIX | ||
| 28 | - # http://rt.openssl.org/Ticket/Display.html?id=2986&user=guest&pass=guest | ||
| 29 | - default_version "1.0.1c" | ||
| 30 | - source :url => "http://www.openssl.org/source/openssl-1.0.1c.tar.gz", | ||
| 31 | - :md5 => "ae412727c8c15b67880aef7bd2999b2e" | ||
| 32 | -else | ||
| 33 | - default_version "1.0.1h" | ||
| 34 | - source :url => "http://www.openssl.org/source/openssl-1.0.1h.tar.gz", | ||
| 35 | - :md5 => "8d6d684a9430d5cc98a62a5d8fbda8cf" | ||
| 36 | -end | ||
| 37 | - | ||
| 38 | -relative_path "openssl-#{version}" | ||
| 39 | - | ||
| 40 | -build do | ||
| 41 | - patch :source => "openssl-1.0.1f-do-not-build-docs.patch" | ||
| 42 | - | ||
| 43 | - env = case platform | ||
| 44 | - when "mac_os_x" | ||
| 45 | - { | ||
| 46 | - "CFLAGS" => "-arch x86_64 -m64 -L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -I#{install_dir}/embedded/include/ncurses", | ||
| 47 | - "LDFLAGS" => "-arch x86_64 -R#{install_dir}/embedded/lib -L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -I#{install_dir}/embedded/include/ncurses" | ||
| 48 | - } | ||
| 49 | - when "aix" | ||
| 50 | - { | ||
| 51 | - "CC" => "xlc -q64", | ||
| 52 | - "CXX" => "xlC -q64", | ||
| 53 | - "LD" => "ld -b64", | ||
| 54 | - "CFLAGS" => "-q64 -I#{install_dir}/embedded/include -O", | ||
| 55 | - "CXXFLAGS" => "-q64 -I#{install_dir}/embedded/include -O", | ||
| 56 | - "LDFLAGS" => "-q64 -L#{install_dir}/embedded/lib -Wl,-blibpath:#{install_dir}/embedded/lib:/usr/lib:/lib", | ||
| 57 | - "OBJECT_MODE" => "64", | ||
| 58 | - "AR" => "/usr/bin/ar", | ||
| 59 | - "ARFLAGS" => "-X64 cru", | ||
| 60 | - "M4" => "/opt/freeware/bin/m4", | ||
| 61 | - } | ||
| 62 | - when "solaris2" | ||
| 63 | - { | ||
| 64 | - "CFLAGS" => "-L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include", | ||
| 65 | - "LDFLAGS" => "-R#{install_dir}/embedded/lib -L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -static-libgcc", | ||
| 66 | - "LD_OPTIONS" => "-R#{install_dir}/embedded/lib" | ||
| 67 | - } | ||
| 68 | - else | ||
| 69 | - { | ||
| 70 | - "CFLAGS" => "-I#{install_dir}/embedded/include", | ||
| 71 | - "LDFLAGS" => "-Wl,-rpath,#{install_dir}/embedded/lib -L#{install_dir}/embedded/lib" | ||
| 72 | - } | ||
| 73 | - end | ||
| 74 | - | ||
| 75 | - common_args = [ | ||
| 76 | - "--prefix=#{install_dir}/embedded", | ||
| 77 | - "--with-zlib-lib=#{install_dir}/embedded/lib", | ||
| 78 | - "--with-zlib-include=#{install_dir}/embedded/include", | ||
| 79 | - "no-idea", | ||
| 80 | - "no-mdc2", | ||
| 81 | - "no-rc5", | ||
| 82 | - "zlib", | ||
| 83 | - "shared", | ||
| 84 | - ].join(" ") | ||
| 85 | - | ||
| 86 | - configure_command = case platform | ||
| 87 | - when "aix" | ||
| 88 | - ["perl", "./Configure", | ||
| 89 | - "aix64-cc", | ||
| 90 | - common_args, | ||
| 91 | - "-L#{install_dir}/embedded/lib", | ||
| 92 | - "-I#{install_dir}/embedded/include", | ||
| 93 | - "-Wl,-blibpath:#{install_dir}/embedded/lib:/usr/lib:/lib"].join(" ") | ||
| 94 | - when "mac_os_x" | ||
| 95 | - ["./Configure", | ||
| 96 | - "darwin64-x86_64-cc", | ||
| 97 | - common_args, | ||
| 98 | - ].join(" ") | ||
| 99 | - when "smartos" | ||
| 100 | - ["/bin/bash ./Configure", | ||
| 101 | - "solaris64-x86_64-gcc", | ||
| 102 | - common_args, | ||
| 103 | - "-L#{install_dir}/embedded/lib", | ||
| 104 | - "-I#{install_dir}/embedded/include", | ||
| 105 | - "-R#{install_dir}/embedded/lib", | ||
| 106 | - "-static-libgcc"].join(" ") | ||
| 107 | - when "solaris2" | ||
| 108 | - if Omnibus.config.solaris_compiler == "gcc" | ||
| 109 | - if architecture == "sparc" | ||
| 110 | - ["/bin/sh ./Configure", | ||
| 111 | - "solaris-sparcv9-gcc", | ||
| 112 | - common_args, | ||
| 113 | - "-L#{install_dir}/embedded/lib", | ||
| 114 | - "-I#{install_dir}/embedded/include", | ||
| 115 | - "-R#{install_dir}/embedded/lib", | ||
| 116 | - "-static-libgcc"].join(" ") | ||
| 117 | - else | ||
| 118 | - # This should not require a /bin/sh, but without it we get | ||
| 119 | - # Errno::ENOEXEC: Exec format error | ||
| 120 | - ["/bin/sh ./Configure", | ||
| 121 | - "solaris-x86-gcc", | ||
| 122 | - common_args, | ||
| 123 | - "-L#{install_dir}/embedded/lib", | ||
| 124 | - "-I#{install_dir}/embedded/include", | ||
| 125 | - "-R#{install_dir}/embedded/lib", | ||
| 126 | - "-static-libgcc"].join(" ") | ||
| 127 | - end | ||
| 128 | - else | ||
| 129 | - raise "sorry, we don't support building openssl on non-gcc solaris builds right now." | ||
| 130 | - end | ||
| 131 | - else | ||
| 132 | - ["./config", | ||
| 133 | - common_args, | ||
| 134 | - "disable-gost", # fixes build on linux, but breaks solaris | ||
| 135 | - "-L#{install_dir}/embedded/lib", | ||
| 136 | - "-I#{install_dir}/embedded/include", | ||
| 137 | - "-Wl,-rpath,#{install_dir}/embedded/lib"].join(" ") | ||
| 138 | - end | ||
| 139 | - | ||
| 140 | - # openssl build process uses a `makedepend` tool that we build inside the bundle. | ||
| 141 | - env["PATH"] = "#{install_dir}/embedded/bin" + File::PATH_SEPARATOR + ENV["PATH"] | ||
| 142 | - | ||
| 143 | - # @todo: move into omnibus-ruby | ||
| 144 | - has_gmake = system("gmake --version") | ||
| 145 | - | ||
| 146 | - if has_gmake | ||
| 147 | - env.merge!({'MAKE' => 'gmake'}) | ||
| 148 | - make_binary = 'gmake' | ||
| 149 | - else | ||
| 150 | - make_binary = 'make' | ||
| 151 | - end | ||
| 152 | - | ||
| 153 | - command configure_command, :env => env | ||
| 154 | - command "#{make_binary} depend", :env => env | ||
| 155 | - # make -j N on openssl is not reliable | ||
| 156 | - command "#{make_binary}", :env => env | ||
| 157 | - command "#{make_binary} install", :env => env | ||
| 158 | -end |
config/software/ruby.rb
| @@ -1,171 +0,0 @@ | @@ -1,171 +0,0 @@ | ||
| 1 | -# | ||
| 2 | -# Copyright:: Copyright (c) 2012-2014 Chef Software, Inc. | ||
| 3 | -# Copyright:: Copyright (c) 2014 GitLab B.V. | ||
| 4 | -# License:: Apache License, Version 2.0 | ||
| 5 | -# | ||
| 6 | -# Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 7 | -# you may not use this file except in compliance with the License. | ||
| 8 | -# You may obtain a copy of the License at | ||
| 9 | -# | ||
| 10 | -# http://www.apache.org/licenses/LICENSE-2.0 | ||
| 11 | -# | ||
| 12 | -# Unless required by applicable law or agreed to in writing, software | ||
| 13 | -# distributed under the License is distributed on an "AS IS" BASIS, | ||
| 14 | -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 15 | -# See the License for the specific language governing permissions and | ||
| 16 | -# limitations under the License. | ||
| 17 | -# | ||
| 18 | - | ||
| 19 | -name "ruby" | ||
| 20 | -default_version "1.9.3-p484" | ||
| 21 | - | ||
| 22 | -dependency "zlib" | ||
| 23 | -dependency "ncurses" | ||
| 24 | -dependency "libedit" | ||
| 25 | -dependency "openssl" | ||
| 26 | -dependency "libyaml" | ||
| 27 | -dependency "libiconv" | ||
| 28 | -dependency "gdbm" | ||
| 29 | -dependency "libgcc" if (platform == "solaris2" and Omnibus.config.solaris_compiler == "gcc") | ||
| 30 | - | ||
| 31 | -version "1.9.3-p484" do | ||
| 32 | - source md5: '8ac0dee72fe12d75c8b2d0ef5d0c2968' | ||
| 33 | -end | ||
| 34 | - | ||
| 35 | -version "2.0.0-p451" do | ||
| 36 | - source md5: '9227787a9636551f1749ee8394b5ffe5' | ||
| 37 | -end | ||
| 38 | - | ||
| 39 | -version "2.1.1" do | ||
| 40 | - source md5: 'e57fdbb8ed56e70c43f39c79da1654b2' | ||
| 41 | -end | ||
| 42 | - | ||
| 43 | -version "2.1.2" do | ||
| 44 | - source md5: 'a5b5c83565f8bd954ee522bd287d2ca1' | ||
| 45 | -end | ||
| 46 | - | ||
| 47 | -source url: "http://cache.ruby-lang.org/pub/ruby/#{version.match(/^(\d+\.\d+)/)[0]}/ruby-#{version}.tar.gz" | ||
| 48 | - | ||
| 49 | -relative_path "ruby-#{version}" | ||
| 50 | - | ||
| 51 | -env = | ||
| 52 | - case platform | ||
| 53 | - when "mac_os_x" | ||
| 54 | - { | ||
| 55 | - # -Qunused-arguments suppresses "argument unused during compilation" | ||
| 56 | - # warnings. These can be produced if you compile a program that doesn't | ||
| 57 | - # link to anything in a path given with -Lextra-libs. Normally these | ||
| 58 | - # would be harmless, except that autoconf treats any output to stderr as | ||
| 59 | - # a failure when it makes a test program to check your CFLAGS (regardless | ||
| 60 | - # of the actual exit code from the compiler). | ||
| 61 | - "CFLAGS" => "-arch x86_64 -m64 -L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -I#{install_dir}/embedded/include/ncurses -O3 -g -pipe -Qunused-arguments", | ||
| 62 | - "LDFLAGS" => "-arch x86_64 -L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -I#{install_dir}/embedded/include/ncurses" | ||
| 63 | - } | ||
| 64 | - when "solaris2" | ||
| 65 | - { | ||
| 66 | - "CFLAGS" => "-L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -O3 -g -pipe", | ||
| 67 | - "LDFLAGS" => "-R#{install_dir}/embedded/lib -L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -static-libgcc", | ||
| 68 | - "LD_OPTIONS" => "-R#{install_dir}/embedded/lib" | ||
| 69 | - } | ||
| 70 | - when "aix" | ||
| 71 | - { | ||
| 72 | - # see http://www.ibm.com/developerworks/aix/library/au-gnu.html | ||
| 73 | - # | ||
| 74 | - # specifically: | ||
| 75 | - # | ||
| 76 | - # "To use AIX run-time linking, you should create the shared object | ||
| 77 | - # using gcc -shared -Wl,-G and create executables using the library | ||
| 78 | - # by adding the -Wl,-brtl option to the link line. Technically, you | ||
| 79 | - # can leave off the -shared option, but it does no harm and reduces | ||
| 80 | - # confusion." | ||
| 81 | - # | ||
| 82 | - # AIX also uses -Wl,-blibpath instead of -R or LD_RUN_PATH, but the | ||
| 83 | - # option is not additive, so requires /usr/lib and /lib as well (there | ||
| 84 | - # is a -bsvr4 option to allow ld to take an -R flag in addition | ||
| 85 | - # to turning on -brtl, but it had other side effects I couldn't fix). | ||
| 86 | - # | ||
| 87 | - # If libraries linked with gcc -shared have symbol resolution failures | ||
| 88 | - # then it may be useful to add -bexpfull to export all symbols. | ||
| 89 | - # | ||
| 90 | - # -O2 optimized away some configure test which caused ext libs to fail | ||
| 91 | - # | ||
| 92 | - # We also need prezl's M4 instead of picking up /usr/bin/m4 which | ||
| 93 | - # barfs on ruby. | ||
| 94 | - # | ||
| 95 | - "CC" => "xlc -q64", | ||
| 96 | - "CXX" => "xlC -q64", | ||
| 97 | - "LD" => "ld -b64", | ||
| 98 | - "CFLAGS" => "-q64 -O -qhot -I#{install_dir}/embedded/include", | ||
| 99 | - "CXXFLAGS" => "-q64 -O -qhot -I#{install_dir}/embedded/include", | ||
| 100 | - "LDFLAGS" => "-q64 -L#{install_dir}/embedded/lib -Wl,-brtl -Wl,-blibpath:#{install_dir}/embedded/lib:/usr/lib:/lib", | ||
| 101 | - "OBJECT_MODE" => "64", | ||
| 102 | - "ARFLAGS" => "-X64 cru", | ||
| 103 | - "M4" => "/opt/freeware/bin/m4", | ||
| 104 | - "warnflags" => "-qinfo=por" | ||
| 105 | - } | ||
| 106 | - else | ||
| 107 | - { | ||
| 108 | - "CFLAGS" => "-I#{install_dir}/embedded/include -O3 -g -pipe", | ||
| 109 | - "LDFLAGS" => "-Wl,-rpath,#{install_dir}/embedded/lib -L#{install_dir}/embedded/lib" | ||
| 110 | - } | ||
| 111 | - end | ||
| 112 | - | ||
| 113 | -build do | ||
| 114 | - configure_command = ["./configure", | ||
| 115 | - "--prefix=#{install_dir}/embedded", | ||
| 116 | - "--with-out-ext=fiddle,dbm", | ||
| 117 | - "--enable-shared", | ||
| 118 | - "--enable-libedit", | ||
| 119 | - "--with-ext=psych", | ||
| 120 | - "--disable-install-doc"] | ||
| 121 | - | ||
| 122 | - case platform | ||
| 123 | - when "aix" | ||
| 124 | - patch :source => "ruby-aix-configure.patch", :plevel => 1 | ||
| 125 | - patch :source => "ruby_aix_1_9_3_448_ssl_EAGAIN.patch", :plevel => 1 | ||
| 126 | - # --with-opt-dir causes ruby to send bogus commands to the AIX linker | ||
| 127 | - when "freebsd" | ||
| 128 | - configure_command << "--without-execinfo" | ||
| 129 | - configure_command << "--with-opt-dir=#{install_dir}/embedded" | ||
| 130 | - when "smartos" | ||
| 131 | - # Opscode patch - someara@opscode.com | ||
| 132 | - # GCC 4.7.0 chokes on mismatched function types between OpenSSL 1.0.1c and Ruby 1.9.3-p286 | ||
| 133 | - patch :source => "ruby-openssl-1.0.1c.patch", :plevel => 1 | ||
| 134 | - | ||
| 135 | - # Patches taken from RVM. | ||
| 136 | - # http://bugs.ruby-lang.org/issues/5384 | ||
| 137 | - # https://www.illumos.org/issues/1587 | ||
| 138 | - # https://github.com/wayneeseguin/rvm/issues/719 | ||
| 139 | - patch :source => "rvm-cflags.patch", :plevel => 1 | ||
| 140 | - | ||
| 141 | - # From RVM forum | ||
| 142 | - # https://github.com/wayneeseguin/rvm/commit/86766534fcc26f4582f23842a4d3789707ce6b96 | ||
| 143 | - configure_command << "ac_cv_func_dl_iterate_phdr=no" | ||
| 144 | - configure_command << "--with-opt-dir=#{install_dir}/embedded" | ||
| 145 | - else | ||
| 146 | - configure_command << "--with-opt-dir=#{install_dir}/embedded" | ||
| 147 | - end | ||
| 148 | - | ||
| 149 | - # @todo expose bundle_bust() in the DSL | ||
| 150 | - env.merge!({ | ||
| 151 | - "RUBYOPT" => nil, | ||
| 152 | - "BUNDLE_BIN_PATH" => nil, | ||
| 153 | - "BUNDLE_GEMFILE" => nil, | ||
| 154 | - "GEM_PATH" => nil, | ||
| 155 | - "GEM_HOME" => nil | ||
| 156 | - }) | ||
| 157 | - | ||
| 158 | - # @todo: move into omnibus-ruby | ||
| 159 | - has_gmake = system("gmake --version") | ||
| 160 | - | ||
| 161 | - if has_gmake | ||
| 162 | - env.merge!({'MAKE' => 'gmake'}) | ||
| 163 | - make_binary = 'gmake' | ||
| 164 | - else | ||
| 165 | - make_binary = 'make' | ||
| 166 | - end | ||
| 167 | - | ||
| 168 | - command configure_command.join(" "), :env => env | ||
| 169 | - command "#{make_binary} -j #{max_build_jobs}", :env => env | ||
| 170 | - command "#{make_binary} -j #{max_build_jobs} install", :env => env | ||
| 171 | -end |