clusterlb 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/Gemfile.lock +761 -1
- data/build.sh +4 -0
- data/clusterlb.gemspec +3 -0
- data/exe/clusterlb-stectrl +3 -2
- data/lib/clusterlb/version.rb +1 -1
- data/lib/clusterlb.rb +108 -5
- data/omnibus/.gitignore +10 -0
- data/omnibus/.kitchen.yml +41 -0
- data/omnibus/.ruby-version +1 -0
- data/omnibus/Berksfile +12 -0
- data/omnibus/Gemfile +21 -0
- data/omnibus/Gemfile.lock +284 -0
- data/omnibus/README.md +120 -0
- data/omnibus/build.sh +3 -0
- data/omnibus/config/patches/eventmachine/disable-extensions.patch +11 -0
- data/omnibus/config/patches/libffi/libffi-3.2.1-disable-multi-os-directory.patch +83 -0
- data/omnibus/config/patches/libffi/libffi-3.2.1-makefiles-sparc.patch +24 -0
- data/omnibus/config/patches/libiconv/config.guess_2015-09-14.patch +2390 -0
- data/omnibus/config/patches/libiconv/libiconv-1.14_srclib_stdio.in.h-remove-gets-declarations.patch +29 -0
- data/omnibus/config/patches/libyaml/v0.1.6.windows-configure.patch +26 -0
- data/omnibus/config/patches/ncurses/config_guess_2015-09-24.patch +857 -0
- data/omnibus/config/patches/ncurses/ncurses-5.9-gcc-5.patch +46 -0
- data/omnibus/config/patches/openssl/openssl-1.0.1f-do-not-build-docs.patch +28 -0
- data/omnibus/config/patches/openssl/openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch +20 -0
- data/omnibus/config/patches/openssl/openssl-1.0.2k-no-bang.patch +17 -0
- data/omnibus/config/patches/openssl/solaris-do-not-define-xopen-source.patch +24 -0
- data/omnibus/config/patches/pkg-config-lite/pkg-config-lite-0.28-1.config.guess.patch +992 -0
- data/omnibus/config/patches/ruby/ruby-2_1_3-no-mkmf.patch +22 -0
- data/omnibus/config/patches/ruby/ruby-aix-atomic.patch +11 -0
- data/omnibus/config/patches/ruby/ruby-aix-configure-all-source.patch +11 -0
- data/omnibus/config/patches/ruby/ruby-aix-configure-use-bash.patch +8 -0
- data/omnibus/config/patches/ruby/ruby-aix-configure.patch +20 -0
- data/omnibus/config/patches/ruby/ruby-aix-vm-core.patch +14 -0
- data/omnibus/config/patches/ruby/ruby-mkmf.patch +29 -0
- data/omnibus/config/patches/ruby/ruby-no-m32-cflag.patch +38 -0
- data/omnibus/config/patches/ruby/ruby-no-stack-protector.patch +13 -0
- data/omnibus/config/patches/ruby/ruby-remove-headc.patch +10 -0
- data/omnibus/config/patches/ruby/ruby-solaris-linux-socket-compat.patch +42 -0
- data/omnibus/config/patches/ruby/ruby-take-windres-rcflags.patch +11 -0
- data/omnibus/config/patches/ruby/ruby_aix_2_1_3_ssl_EAGAIN.patch +19 -0
- data/omnibus/config/patches/ruby/ruby_aix_openssl.patch +10 -0
- data/omnibus/config/patches/ruby/ruby_nano.patch +68 -0
- data/omnibus/config/patches/zlib/zlib-windows-relocate.patch +20 -0
- data/omnibus/config/projects/clusterlb.rb +38 -0
- data/omnibus/config/software/acme.sh.rb +18 -0
- data/omnibus/config/software/cacerts.rb +89 -0
- data/omnibus/config/software/clusterlb-gem.rb +25 -0
- data/omnibus/config/software/clusterlb-zlib.rb +55 -0
- data/omnibus/config/software/config_guess.rb +36 -0
- data/omnibus/config/software/libffi.rb +70 -0
- data/omnibus/config/software/libiconv.rb +62 -0
- data/omnibus/config/software/libtool.rb +55 -0
- data/omnibus/config/software/libyaml.rb +46 -0
- data/omnibus/config/software/makedepend.rb +43 -0
- data/omnibus/config/software/ncurses.rb +154 -0
- data/omnibus/config/software/oggcert-gem.rb +24 -0
- data/omnibus/config/software/openssl.rb +166 -0
- data/omnibus/config/software/pkg-config-lite.rb +45 -0
- data/omnibus/config/software/preparation.rb +30 -0
- data/omnibus/config/software/ruby.rb +238 -0
- data/omnibus/config/software/rubygems.rb +89 -0
- data/omnibus/config/software/util-macros.rb +43 -0
- data/omnibus/config/software/xproto.rb +43 -0
- data/omnibus/config/software/zlib.rb +84 -0
- data/omnibus/omnibus.rb +54 -0
- data/omnibus/package-scripts/clusterlb/postinst +17 -0
- data/omnibus/package-scripts/clusterlb/postrm +9 -0
- data/omnibus/package-scripts/clusterlb/preinst +7 -0
- data/omnibus/package-scripts/clusterlb/prerm +15 -0
- data/omnibus/resources/clusterlb/deb/conffiles.erb +3 -0
- data/omnibus/resources/clusterlb/deb/control.erb +25 -0
- data/omnibus/resources/clusterlb/deb/md5sums.erb +3 -0
- metadata +124 -2
@@ -0,0 +1,30 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2019 YOUR NAME
|
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 "preparation"
|
18
|
+
description "the steps required to preprare the build"
|
19
|
+
default_version "1.0.0"
|
20
|
+
|
21
|
+
license :project_license
|
22
|
+
skip_transitive_dependency_licensing true
|
23
|
+
|
24
|
+
build do
|
25
|
+
block do
|
26
|
+
touch "#{install_dir}/embedded/lib/.gitkeep"
|
27
|
+
touch "#{install_dir}/embedded/bin/.gitkeep"
|
28
|
+
touch "#{install_dir}/bin/.gitkeep"
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,238 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2012-2016 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 "ruby"
|
18
|
+
|
19
|
+
license "BSD-2-Clause"
|
20
|
+
license_file "BSDL"
|
21
|
+
license_file "COPYING"
|
22
|
+
license_file "LEGAL"
|
23
|
+
skip_transitive_dependency_licensing true
|
24
|
+
|
25
|
+
# - chef-client cannot use 2.2.x yet due to a bug in IRB that affects chef-shell on linux:
|
26
|
+
# https://bugs.ruby-lang.org/issues/11869
|
27
|
+
# - the current status of 2.3.x is that it downloads but fails to compile.
|
28
|
+
# - verify that all ffi libs are available for your version on all platforms.
|
29
|
+
default_version "2.6.3"
|
30
|
+
|
31
|
+
fips_enabled = (project.overrides[:fips] && project.overrides[:fips][:enabled]) || false
|
32
|
+
|
33
|
+
dependency "ncurses" unless windows? || version.satisfies?(">= 2.1")
|
34
|
+
dependency "zlib"
|
35
|
+
dependency "openssl"
|
36
|
+
dependency "libffi"
|
37
|
+
dependency "libyaml"
|
38
|
+
# Needed for chef_gem installs of (e.g.) nokogiri on upgrades -
|
39
|
+
# they expect to see our libiconv instead of a system version.
|
40
|
+
# Ignore on windows - TDM GCC comes with libiconv in the runtime
|
41
|
+
# and that's the only one we will ever use.
|
42
|
+
dependency "libiconv"
|
43
|
+
|
44
|
+
version("2.6.3") { source sha256: "577fd3795f22b8d91c1d4e6733637b0394d4082db659fccf224c774a2b1c82fb" }
|
45
|
+
|
46
|
+
source url: "https://cache.ruby-lang.org/pub/ruby/#{version.match(/^(\d+\.\d+)/)[0]}/ruby-#{version}.tar.gz"
|
47
|
+
|
48
|
+
relative_path "ruby-#{version}"
|
49
|
+
|
50
|
+
env = with_standard_compiler_flags(with_embedded_path)
|
51
|
+
|
52
|
+
if mac_os_x?
|
53
|
+
# -Qunused-arguments suppresses "argument unused during compilation"
|
54
|
+
# warnings. These can be produced if you compile a program that doesn't
|
55
|
+
# link to anything in a path given with -Lextra-libs. Normally these
|
56
|
+
# would be harmless, except that autoconf treats any output to stderr as
|
57
|
+
# a failure when it makes a test program to check your CFLAGS (regardless
|
58
|
+
# of the actual exit code from the compiler).
|
59
|
+
env["CFLAGS"] << " -I#{install_dir}/embedded/include/ncurses -arch x86_64 -m64 -O3 -g -pipe -Qunused-arguments"
|
60
|
+
env["LDFLAGS"] << " -arch x86_64"
|
61
|
+
elsif freebsd?
|
62
|
+
# Stops "libtinfo.so.5.9: could not read symbols: Bad value" error when
|
63
|
+
# compiling ext/readline. See the following for more info:
|
64
|
+
#
|
65
|
+
# https://lists.freebsd.org/pipermail/freebsd-current/2013-October/045425.html
|
66
|
+
# http://mailing.freebsd.ports-bugs.narkive.com/kCgK8sNQ/ports-183106-patch-sysutils-libcdio-does-not-build-on-10-0-and-head
|
67
|
+
#
|
68
|
+
env["LDFLAGS"] << " -ltinfow"
|
69
|
+
elsif aix?
|
70
|
+
# this magic per IBM
|
71
|
+
env["LDSHARED"] = "xlc -G"
|
72
|
+
env["CFLAGS"] = "-I#{install_dir}/embedded/include/ncurses -I#{install_dir}/embedded/include"
|
73
|
+
# this magic per IBM
|
74
|
+
env["XCFLAGS"] = "-DRUBY_EXPORT"
|
75
|
+
# need CPPFLAGS set so ruby doesn't try to be too clever
|
76
|
+
env["CPPFLAGS"] = "-I#{install_dir}/embedded/include/ncurses -I#{install_dir}/embedded/include"
|
77
|
+
env["SOLIBS"] = "-lm -lc"
|
78
|
+
# need to use GNU m4, default m4 doesn't work
|
79
|
+
env["M4"] = "/opt/freeware/bin/m4"
|
80
|
+
elsif solaris_10?
|
81
|
+
if sparc?
|
82
|
+
# Known issue with rubby where too much GCC optimization blows up miniruby on sparc
|
83
|
+
env["CFLAGS"] << " -std=c99 -g -pipe -mcpu=v9 -fms-extensions"
|
84
|
+
env["LDFLAGS"] << " -mcpu=v9"
|
85
|
+
else
|
86
|
+
env["CFLAGS"] << " -std=c99 -O3 -g -pipe -fms-extensions"
|
87
|
+
end
|
88
|
+
elsif solaris_11?
|
89
|
+
env["CFLAGS"] << " -std=c99"
|
90
|
+
env["CPPFLAGS"] << " -D_XOPEN_SOURCE=600 -D_XPG6"
|
91
|
+
elsif windows?
|
92
|
+
env["CPPFLAGS"] << " -DFD_SETSIZE=2048"
|
93
|
+
else # including linux
|
94
|
+
if version.satisfies?(">= 2.3.0") &&
|
95
|
+
rhel? && platform_version.satisfies?("< 6.0")
|
96
|
+
env["CFLAGS"] << " -O2 -g -pipe"
|
97
|
+
else
|
98
|
+
env["CFLAGS"] << " -O3 -g -pipe"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
build do
|
103
|
+
# AIX needs /opt/freeware/bin only for patch
|
104
|
+
patch_env = env.dup
|
105
|
+
patch_env["PATH"] = "/opt/freeware/bin:#{env['PATH']}" if aix?
|
106
|
+
|
107
|
+
if solaris_10? && version.satisfies?(">= 2.1")
|
108
|
+
patch source: "ruby-no-stack-protector.patch", plevel: 1, env: patch_env
|
109
|
+
if version.satisfies?("= 2.4.4") && sparc?
|
110
|
+
patch source: "ruby-remove-headc.patch", plevel: 1, env: patch_env
|
111
|
+
patch source: "ruby-no-m32-cflag.patch", plevel: 1, env: patch_env
|
112
|
+
end
|
113
|
+
elsif solaris_11? && version =~ /^2.1/
|
114
|
+
patch source: "ruby-solaris-linux-socket-compat.patch", plevel: 1, env: patch_env
|
115
|
+
end
|
116
|
+
|
117
|
+
# wrlinux7/ios_xr build boxes from Cisco include libssp and there is no way to
|
118
|
+
# disable ruby from linking against it, but Cisco switches will not have the
|
119
|
+
# library. Disabling it as we do for Solaris.
|
120
|
+
if ios_xr? && version.satisfies?(">= 2.1")
|
121
|
+
patch source: "ruby-no-stack-protector.patch", plevel: 1, env: patch_env
|
122
|
+
end
|
123
|
+
|
124
|
+
# disable libpath in mkmf across all platforms, it trolls omnibus and
|
125
|
+
# breaks the postgresql cookbook. i'm not sure why ruby authors decided
|
126
|
+
# this was a good idea, but it breaks our use case hard. AIX cannot even
|
127
|
+
# compile without removing it, and it breaks some native gem installs on
|
128
|
+
# other platforms. generally you need to have a condition where the
|
129
|
+
# embedded and non-embedded libs get into a fight (libiconv, openssl, etc)
|
130
|
+
# and ruby trying to set LD_LIBRARY_PATH itself gets it wrong.
|
131
|
+
#
|
132
|
+
# Also, fix paths emitted in the makefile on windows on both msys and msys2.
|
133
|
+
if version.satisfies?(">= 2.1")
|
134
|
+
patch source: "ruby-mkmf.patch", plevel: 1, env: patch_env
|
135
|
+
# should intentionally break and fail to apply on 2.2, patch will need to
|
136
|
+
# be fixed.
|
137
|
+
end
|
138
|
+
|
139
|
+
# Fix reserve stack segmentation fault when building on RHEL5 or below
|
140
|
+
# Currently only affects 2.1.7 and 2.2.3. This patch taken from the fix
|
141
|
+
# in Ruby trunk and expected to be included in future point releases.
|
142
|
+
# https://redmine.ruby-lang.org/issues/11602
|
143
|
+
if rhel? &&
|
144
|
+
platform_version.satisfies?("< 6") &&
|
145
|
+
(version == "2.1.7" || version == "2.2.3")
|
146
|
+
|
147
|
+
patch source: "ruby-fix-reserve-stack-segfault.patch", plevel: 1, env: patch_env
|
148
|
+
end
|
149
|
+
|
150
|
+
configure_command = ["--with-out-ext=dbm,readline",
|
151
|
+
"--enable-shared",
|
152
|
+
"--disable-install-doc",
|
153
|
+
"--without-gmp",
|
154
|
+
"--without-gdbm",
|
155
|
+
"--without-tk",
|
156
|
+
"--disable-dtrace"]
|
157
|
+
configure_command << "--with-ext=psych" if version.satisfies?("< 2.3")
|
158
|
+
configure_command << "--with-bundled-md5" if fips_enabled
|
159
|
+
|
160
|
+
if aix?
|
161
|
+
# need to patch ruby's configure file so it knows how to find shared libraries
|
162
|
+
patch source: "ruby-aix-configure.patch", plevel: 1, env: patch_env
|
163
|
+
# configure no longer seems to work under ksh, use bash instead
|
164
|
+
patch source: "ruby-aix-configure-use-bash.patch", plevel: 1, env: patch_env
|
165
|
+
# have ruby use zlib on AIX correctly
|
166
|
+
patch source: "ruby_aix_openssl.patch", plevel: 1, env: patch_env
|
167
|
+
# AIX has issues with ssl retries, need to patch to have it retry
|
168
|
+
patch source: "ruby_aix_2_1_3_ssl_EAGAIN.patch", plevel: 1, env: patch_env
|
169
|
+
# the next two patches are because xlc doesn't deal with long vs int types well
|
170
|
+
patch source: "ruby-aix-atomic.patch", plevel: 1, env: patch_env
|
171
|
+
patch source: "ruby-aix-vm-core.patch", plevel: 1, env: patch_env
|
172
|
+
|
173
|
+
# per IBM, just help ruby along on what it's running on
|
174
|
+
configure_command << "--host=powerpc-ibm-aix6.1.0.0 --target=powerpc-ibm-aix6.1.0.0 --build=powerpc-ibm-aix6.1.0.0 --enable-pthread"
|
175
|
+
|
176
|
+
elsif freebsd?
|
177
|
+
# Disable optional support C level backtrace support. This requires the
|
178
|
+
# optional devel/libexecinfo port to be installed.
|
179
|
+
configure_command << "ac_cv_header_execinfo_h=no"
|
180
|
+
configure_command << "--with-opt-dir=#{install_dir}/embedded"
|
181
|
+
elsif smartos?
|
182
|
+
# Opscode patch - someara@opscode.com
|
183
|
+
# GCC 4.7.0 chokes on mismatched function types between OpenSSL 1.0.1c and Ruby 1.9.3-p286
|
184
|
+
patch source: "ruby-openssl-1.0.1c.patch", plevel: 1, env: patch_env
|
185
|
+
|
186
|
+
# Patches taken from RVM.
|
187
|
+
# http://bugs.ruby-lang.org/issues/5384
|
188
|
+
# https://www.illumos.org/issues/1587
|
189
|
+
# https://github.com/wayneeseguin/rvm/issues/719
|
190
|
+
patch source: "rvm-cflags.patch", plevel: 1, env: patch_env
|
191
|
+
|
192
|
+
# From RVM forum
|
193
|
+
# https://github.com/wayneeseguin/rvm/commit/86766534fcc26f4582f23842a4d3789707ce6b96
|
194
|
+
configure_command << "ac_cv_func_dl_iterate_phdr=no"
|
195
|
+
configure_command << "--with-opt-dir=#{install_dir}/embedded"
|
196
|
+
elsif windows?
|
197
|
+
if version.satisfies?(">= 2.3")
|
198
|
+
# Windows Nano Server COM libraries do not support Apartment threading
|
199
|
+
# instead COINIT_MULTITHREADED must be used
|
200
|
+
patch source: "ruby_nano.patch", plevel: 1, env: patch_env
|
201
|
+
end
|
202
|
+
|
203
|
+
configure_command << " debugflags=-g"
|
204
|
+
else
|
205
|
+
configure_command << "--with-opt-dir=#{install_dir}/embedded"
|
206
|
+
end
|
207
|
+
|
208
|
+
# FFS: works around a bug that infects AIX when it picks up our pkg-config
|
209
|
+
# AFAIK, ruby does not need or use this pkg-config it just causes the build to fail.
|
210
|
+
# The alternative would be to patch configure to remove all the pkg-config garbage entirely
|
211
|
+
env["PKG_CONFIG"] = "/bin/true" if aix?
|
212
|
+
|
213
|
+
configure(*configure_command, env: env)
|
214
|
+
make "-j #{workers}", env: env
|
215
|
+
make "-j #{workers} install", env: env
|
216
|
+
|
217
|
+
if windows?
|
218
|
+
# Needed now that we switched to msys2 and have not figured out how to tell
|
219
|
+
# it how to statically link yet
|
220
|
+
dlls = ["libwinpthread-1"]
|
221
|
+
if windows_arch_i386?
|
222
|
+
dlls << "libgcc_s_dw2-1"
|
223
|
+
else
|
224
|
+
dlls << "libgcc_s_seh-1"
|
225
|
+
end
|
226
|
+
dlls.each do |dll|
|
227
|
+
arch_suffix = windows_arch_i386? ? "32" : "64"
|
228
|
+
windows_path = "C:/opscode/omnibus-toolchain/embedded/bin/#{dll}.dll"
|
229
|
+
if File.exist?(windows_path)
|
230
|
+
copy windows_path, "#{install_dir}/embedded/bin/#{dll}.dll"
|
231
|
+
else
|
232
|
+
raise "Cannot find required DLL needed for dynamic linking: #{windows_path}"
|
233
|
+
end
|
234
|
+
end
|
235
|
+
else
|
236
|
+
end
|
237
|
+
|
238
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2012-2016 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 "rubygems"
|
18
|
+
|
19
|
+
license "MIT"
|
20
|
+
license_file "https://raw.githubusercontent.com/rubygems/rubygems/master/LICENSE.txt"
|
21
|
+
skip_transitive_dependency_licensing true
|
22
|
+
|
23
|
+
dependency "ruby"
|
24
|
+
|
25
|
+
if version && !source
|
26
|
+
# NOTE: 2.1.11 is the last version of rubygems before the 2.2.x change to native gem install location
|
27
|
+
#
|
28
|
+
# https://github.com/rubygems/rubygems/issues/874
|
29
|
+
#
|
30
|
+
# This is a breaking change for omnibus clients. Chef-11 needs to be pinned to 2.1.11 for eternity.
|
31
|
+
# We have switched from tarballs to just `gem update --system`, but for backcompat
|
32
|
+
# we pin the previously known tarballs.
|
33
|
+
known_tarballs = {
|
34
|
+
"2.1.11" => "b561b7aaa70d387e230688066e46e448",
|
35
|
+
"2.2.1" => "1f0017af0ad3d3ed52665132f80e7443",
|
36
|
+
"2.4.1" => "7e39c31806bbf9268296d03bd97ce718",
|
37
|
+
"2.4.4" => "440a89ad6a3b1b7a69b034233cc4658e",
|
38
|
+
"2.4.5" => "5918319a439c33ac75fbbad7fd60749d",
|
39
|
+
"2.4.8" => "dc77b51449dffe5b31776bff826bf559",
|
40
|
+
}
|
41
|
+
|
42
|
+
if solaris_10?
|
43
|
+
known_tarballs["2.6.6"] = "7f969e32e9db8d602ee0b02c81a6ee7a"
|
44
|
+
known_tarballs["2.6.10"] = "ab5a0028d2a0653691b29d7463bd0892"
|
45
|
+
end
|
46
|
+
|
47
|
+
known_tarballs.each do |version, md5|
|
48
|
+
self.version version do
|
49
|
+
source md5: md5, url: "http://production.cf.rubygems.org/rubygems/rubygems-#{version}.tgz"
|
50
|
+
relative_path "rubygems-#{version}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
version("v2.4.4_plus_debug") { source git: "https://github.com/danielsdeleo/rubygems.git" }
|
55
|
+
version("2.4.4.debug.1") { source git: "https://github.com/danielsdeleo/rubygems.git" }
|
56
|
+
# This is the 2.4.8 release with a fix for
|
57
|
+
# windows so things like `gem install "pry"` still
|
58
|
+
# work
|
59
|
+
version("jdm/2.4.8-patched") { source git: "https://github.com/jaym/rubygems.git" }
|
60
|
+
end
|
61
|
+
|
62
|
+
# If we still don't have a source (if it's a tarball) grab from ruby ...
|
63
|
+
if version && !source
|
64
|
+
# If the version is a gem version, we"ll just be using rubygems.
|
65
|
+
# If it's a branch or SHA (i.e. v1.2.3) we use github.
|
66
|
+
begin
|
67
|
+
Gem::Version.new(version)
|
68
|
+
rescue ArgumentError
|
69
|
+
source git: "https://github.com/rubygems/rubygems.git"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# git repo is always expanded to "rubygems"
|
74
|
+
if source && source.include?(:git)
|
75
|
+
relative_path "rubygems"
|
76
|
+
end
|
77
|
+
|
78
|
+
build do
|
79
|
+
env = with_standard_compiler_flags(with_embedded_path)
|
80
|
+
|
81
|
+
if source
|
82
|
+
# Building from source:
|
83
|
+
ruby "setup.rb --no-ri --no-rdoc", env: env
|
84
|
+
else
|
85
|
+
# Installing direct from rubygems:
|
86
|
+
# If there is no version, this will get latest.
|
87
|
+
gem "update --no-document --system #{version}", env: env
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 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 "util-macros"
|
18
|
+
default_version "1.18.0"
|
19
|
+
|
20
|
+
version "1.19.0" do
|
21
|
+
source md5: "40e1caa49a71a26e0aa68ddd00203717"
|
22
|
+
end
|
23
|
+
|
24
|
+
version "1.18.0" do
|
25
|
+
source md5: "fd0ba21b3179703c071bbb4c3e5fb0f4"
|
26
|
+
end
|
27
|
+
|
28
|
+
source url: "http://xorg.freedesktop.org/releases/individual/util/util-macros-#{version}.tar.gz"
|
29
|
+
|
30
|
+
license "MIT"
|
31
|
+
license_file "COPYING"
|
32
|
+
|
33
|
+
relative_path "util-macros-#{version}"
|
34
|
+
|
35
|
+
build do
|
36
|
+
env = with_standard_compiler_flags(with_embedded_path)
|
37
|
+
|
38
|
+
command "./configure" \
|
39
|
+
" --prefix=#{install_dir}/embedded", env: env
|
40
|
+
|
41
|
+
make "-j #{workers}", env: env
|
42
|
+
make "-j #{workers} install", env: env
|
43
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 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 "xproto"
|
18
|
+
default_version "7.0.25"
|
19
|
+
|
20
|
+
version "7.0.28" do
|
21
|
+
source md5: "0b42843b99aee3e4f6a9cc7710143f86"
|
22
|
+
end
|
23
|
+
|
24
|
+
version "7.0.25" do
|
25
|
+
source md5: "a47db46cb117805bd6947aa5928a7436"
|
26
|
+
end
|
27
|
+
|
28
|
+
source url: "http://xorg.freedesktop.org/releases/individual/proto/xproto-#{version}.tar.gz"
|
29
|
+
|
30
|
+
license "MIT"
|
31
|
+
license_file "COPYING"
|
32
|
+
|
33
|
+
relative_path "xproto-#{version}"
|
34
|
+
|
35
|
+
build do
|
36
|
+
env = with_standard_compiler_flags(with_embedded_path)
|
37
|
+
|
38
|
+
command "./configure" \
|
39
|
+
" --prefix=#{install_dir}/embedded", env: env
|
40
|
+
|
41
|
+
make "-j #{workers}", env: env
|
42
|
+
make "-j #{workers} install", env: env
|
43
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2012-2015 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 "zlib"
|
18
|
+
default_version "1.2.8"
|
19
|
+
|
20
|
+
version "1.2.8" do
|
21
|
+
source md5: "44d667c142d7cda120332623eab69f40"
|
22
|
+
end
|
23
|
+
version "1.2.6" do
|
24
|
+
source md5: "618e944d7c7cd6521551e30b32322f4a"
|
25
|
+
end
|
26
|
+
|
27
|
+
source url: "http://downloads.sourceforge.net/project/libpng/zlib/#{version}/zlib-#{version}.tar.gz"
|
28
|
+
|
29
|
+
license "Zlib"
|
30
|
+
license_file "README"
|
31
|
+
skip_transitive_dependency_licensing true
|
32
|
+
|
33
|
+
relative_path "zlib-#{version}"
|
34
|
+
|
35
|
+
build do
|
36
|
+
if windows?
|
37
|
+
env = with_standard_compiler_flags(with_embedded_path)
|
38
|
+
|
39
|
+
patch source: "zlib-windows-relocate.patch", env: env
|
40
|
+
|
41
|
+
# We can't use the top-level Makefile. Instead, the developers have made
|
42
|
+
# an organic, artisanal, hand-crafted Makefile.gcc for us which takes a few
|
43
|
+
# variables.
|
44
|
+
env["BINARY_PATH"] = "/bin"
|
45
|
+
env["LIBRARY_PATH"] = "/lib"
|
46
|
+
env["INCLUDE_PATH"] = "/include"
|
47
|
+
env["DESTDIR"] = "#{install_dir}/embedded"
|
48
|
+
|
49
|
+
make_args = [
|
50
|
+
"-fwin32/Makefile.gcc",
|
51
|
+
"SHARED_MODE=1",
|
52
|
+
"CFLAGS=\"#{env['CFLAGS']} -Wall\"",
|
53
|
+
"ASFLAGS=\"#{env['CFLAGS']} -Wall\"",
|
54
|
+
"LDFLAGS=\"#{env['LDFLAGS']}\"",
|
55
|
+
# The win32 makefile for zlib does not handle parallel make correctly.
|
56
|
+
# In particular, see its rule for IMPLIB and SHAREDLIB. The ld step in
|
57
|
+
# SHAREDLIB will generate both the dll and the dll.a files. The step to
|
58
|
+
# strip the dll occurs next but since the dll.a file is already present,
|
59
|
+
# make will attempt to link example_d.exe and minigzip_d.exe in parallel
|
60
|
+
# with the strip step - causing gcc to freak out when a source file is
|
61
|
+
# rewritten part way through the linking stage.
|
62
|
+
#"-j #{workers}",
|
63
|
+
]
|
64
|
+
|
65
|
+
make(*make_args, env: env)
|
66
|
+
make("install", *make_args, env: env)
|
67
|
+
else
|
68
|
+
# We omit the omnibus path here because it breaks mac_os_x builds by picking
|
69
|
+
# up the embedded libtool instead of the system libtool which the zlib
|
70
|
+
# configure script cannot handle.
|
71
|
+
# TODO: Do other OSes need this? Is this strictly a mac thing?
|
72
|
+
env = with_standard_compiler_flags
|
73
|
+
if freebsd?
|
74
|
+
# FreeBSD 10+ gets cranky if zlib is not compiled in a
|
75
|
+
# position-independent way.
|
76
|
+
env["CFLAGS"] << " -fPIC"
|
77
|
+
end
|
78
|
+
|
79
|
+
configure env: env
|
80
|
+
|
81
|
+
make "-j #{workers}", env: env
|
82
|
+
make "-j #{workers} install", env: env
|
83
|
+
end
|
84
|
+
end
|
data/omnibus/omnibus.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#
|
2
|
+
# This file is used to configure the clusterlb project. It contains
|
3
|
+
# some minimal configuration examples for working with Omnibus. For a full list
|
4
|
+
# of configurable options, please see the documentation for +omnibus/config.rb+.
|
5
|
+
#
|
6
|
+
|
7
|
+
# Build internally
|
8
|
+
# ------------------------------
|
9
|
+
# By default, Omnibus uses system folders (like +/var+ and +/opt+) to build and
|
10
|
+
# cache components. If you would to build everything internally, you can
|
11
|
+
# uncomment the following options. This will prevent the need for root
|
12
|
+
# permissions in most cases.
|
13
|
+
#
|
14
|
+
# Uncomment this line to change the default base directory to "local"
|
15
|
+
# -------------------------------------------------------------------
|
16
|
+
# base_dir './local'
|
17
|
+
#
|
18
|
+
# Alternatively you can tune the individual values
|
19
|
+
# ------------------------------------------------
|
20
|
+
# cache_dir './local/omnibus/cache'
|
21
|
+
# git_cache_dir './local/omnibus/cache/git_cache'
|
22
|
+
# source_dir './local/omnibus/src'
|
23
|
+
# build_dir './local/omnibus/build'
|
24
|
+
# package_dir './local/omnibus/pkg'
|
25
|
+
# package_tmp './local/omnibus/pkg-tmp'
|
26
|
+
|
27
|
+
# Disable git caching
|
28
|
+
# ------------------------------
|
29
|
+
# use_git_caching false
|
30
|
+
|
31
|
+
# Enable S3 asset caching
|
32
|
+
# ------------------------------
|
33
|
+
# use_s3_caching true
|
34
|
+
# s3_access_key ENV['AWS_ACCESS_KEY_ID']
|
35
|
+
# s3_secret_key ENV['AWS_SECRET_ACCESS_KEY']
|
36
|
+
# s3_profile ENV['AWS_S3_PROFILE']
|
37
|
+
# s3_bucket ENV['AWS_S3_BUCKET']
|
38
|
+
|
39
|
+
# Customize compiler bits
|
40
|
+
# ------------------------------
|
41
|
+
# solaris_compiler 'gcc'
|
42
|
+
# build_retries 5
|
43
|
+
# fetcher_read_timeout 120
|
44
|
+
# fetcher_retries 5
|
45
|
+
|
46
|
+
# Load additional software
|
47
|
+
# ------------------------------
|
48
|
+
# software_gems ['omnibus-software', 'my-company-software']
|
49
|
+
# local_software_dirs ['/path/to/local/software']
|
50
|
+
|
51
|
+
# Windows architecture defaults
|
52
|
+
# ------------------------------
|
53
|
+
windows_arch %w{x86 x64}.include?((ENV['OMNIBUS_WINDOWS_ARCH'] || '').downcase) ?
|
54
|
+
ENV['OMNIBUS_WINDOWS_ARCH'].downcase.to_sym : :x86
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# Perform necessary clusterlb setup steps
|
4
|
+
# after package is installed.
|
5
|
+
#
|
6
|
+
|
7
|
+
PROGNAME=`basename $0`
|
8
|
+
|
9
|
+
error_exit()
|
10
|
+
{
|
11
|
+
echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2
|
12
|
+
exit 1
|
13
|
+
}
|
14
|
+
|
15
|
+
echo "Thank you for installing clusterlb!"
|
16
|
+
|
17
|
+
exit 0
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Package: <%= name %>
|
2
|
+
Version: <%= version %>-<%= iteration %>
|
3
|
+
License: <%= license %>
|
4
|
+
Vendor: <%= vendor %>
|
5
|
+
Architecture: <%= architecture %>
|
6
|
+
Maintainer: <%= maintainer %>
|
7
|
+
Installed-Size: <%= installed_size %>
|
8
|
+
<% unless dependencies.empty? -%>
|
9
|
+
Depends: <%= dependencies.join(', ') %>
|
10
|
+
<% end -%>
|
11
|
+
<% unless conflicts.empty? -%>
|
12
|
+
Conflicts: <%= conflicts.join(', ') %>
|
13
|
+
<% end -%>
|
14
|
+
<% unless replaces.empty? -%>
|
15
|
+
Replaces: <%= replaces.join(', ') %>
|
16
|
+
<% end -%>
|
17
|
+
Section: <%= section %>
|
18
|
+
Priority: <%= priority %>
|
19
|
+
Homepage: <%= homepage %>
|
20
|
+
<% lines = description.split("\n") -%>
|
21
|
+
<% firstline, *remainder = lines -%>
|
22
|
+
Description: <%= firstline %>
|
23
|
+
<% if remainder.any? -%>
|
24
|
+
<%= remainder.collect { |l| l =~ /^ *$/ ? " ." : " #{l}" }.join("\n") %>
|
25
|
+
<% end -%>
|