Commit f343941407aba4c094ac3f3ab0411e4e5056b600

Authored by Jacob Vosmaer
2 parents d1311763 d7e8ae72

Merge branch 'update/omnibus' into 'master'

Update omnibus-ruby to 3.2.1

See merge request !177
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'
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!
@@ -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).
config/software/libffi.rb 0 → 100644
@@ -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