clusterlb 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/Gemfile.lock +761 -1
  4. data/build.sh +4 -0
  5. data/clusterlb.gemspec +3 -0
  6. data/exe/clusterlb-stectrl +3 -2
  7. data/lib/clusterlb/version.rb +1 -1
  8. data/lib/clusterlb.rb +108 -5
  9. data/omnibus/.gitignore +10 -0
  10. data/omnibus/.kitchen.yml +41 -0
  11. data/omnibus/.ruby-version +1 -0
  12. data/omnibus/Berksfile +12 -0
  13. data/omnibus/Gemfile +21 -0
  14. data/omnibus/Gemfile.lock +284 -0
  15. data/omnibus/README.md +120 -0
  16. data/omnibus/build.sh +3 -0
  17. data/omnibus/config/patches/eventmachine/disable-extensions.patch +11 -0
  18. data/omnibus/config/patches/libffi/libffi-3.2.1-disable-multi-os-directory.patch +83 -0
  19. data/omnibus/config/patches/libffi/libffi-3.2.1-makefiles-sparc.patch +24 -0
  20. data/omnibus/config/patches/libiconv/config.guess_2015-09-14.patch +2390 -0
  21. data/omnibus/config/patches/libiconv/libiconv-1.14_srclib_stdio.in.h-remove-gets-declarations.patch +29 -0
  22. data/omnibus/config/patches/libyaml/v0.1.6.windows-configure.patch +26 -0
  23. data/omnibus/config/patches/ncurses/config_guess_2015-09-24.patch +857 -0
  24. data/omnibus/config/patches/ncurses/ncurses-5.9-gcc-5.patch +46 -0
  25. data/omnibus/config/patches/openssl/openssl-1.0.1f-do-not-build-docs.patch +28 -0
  26. data/omnibus/config/patches/openssl/openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch +20 -0
  27. data/omnibus/config/patches/openssl/openssl-1.0.2k-no-bang.patch +17 -0
  28. data/omnibus/config/patches/openssl/solaris-do-not-define-xopen-source.patch +24 -0
  29. data/omnibus/config/patches/pkg-config-lite/pkg-config-lite-0.28-1.config.guess.patch +992 -0
  30. data/omnibus/config/patches/ruby/ruby-2_1_3-no-mkmf.patch +22 -0
  31. data/omnibus/config/patches/ruby/ruby-aix-atomic.patch +11 -0
  32. data/omnibus/config/patches/ruby/ruby-aix-configure-all-source.patch +11 -0
  33. data/omnibus/config/patches/ruby/ruby-aix-configure-use-bash.patch +8 -0
  34. data/omnibus/config/patches/ruby/ruby-aix-configure.patch +20 -0
  35. data/omnibus/config/patches/ruby/ruby-aix-vm-core.patch +14 -0
  36. data/omnibus/config/patches/ruby/ruby-mkmf.patch +29 -0
  37. data/omnibus/config/patches/ruby/ruby-no-m32-cflag.patch +38 -0
  38. data/omnibus/config/patches/ruby/ruby-no-stack-protector.patch +13 -0
  39. data/omnibus/config/patches/ruby/ruby-remove-headc.patch +10 -0
  40. data/omnibus/config/patches/ruby/ruby-solaris-linux-socket-compat.patch +42 -0
  41. data/omnibus/config/patches/ruby/ruby-take-windres-rcflags.patch +11 -0
  42. data/omnibus/config/patches/ruby/ruby_aix_2_1_3_ssl_EAGAIN.patch +19 -0
  43. data/omnibus/config/patches/ruby/ruby_aix_openssl.patch +10 -0
  44. data/omnibus/config/patches/ruby/ruby_nano.patch +68 -0
  45. data/omnibus/config/patches/zlib/zlib-windows-relocate.patch +20 -0
  46. data/omnibus/config/projects/clusterlb.rb +38 -0
  47. data/omnibus/config/software/acme.sh.rb +18 -0
  48. data/omnibus/config/software/cacerts.rb +89 -0
  49. data/omnibus/config/software/clusterlb-gem.rb +25 -0
  50. data/omnibus/config/software/clusterlb-zlib.rb +55 -0
  51. data/omnibus/config/software/config_guess.rb +36 -0
  52. data/omnibus/config/software/libffi.rb +70 -0
  53. data/omnibus/config/software/libiconv.rb +62 -0
  54. data/omnibus/config/software/libtool.rb +55 -0
  55. data/omnibus/config/software/libyaml.rb +46 -0
  56. data/omnibus/config/software/makedepend.rb +43 -0
  57. data/omnibus/config/software/ncurses.rb +154 -0
  58. data/omnibus/config/software/oggcert-gem.rb +24 -0
  59. data/omnibus/config/software/openssl.rb +166 -0
  60. data/omnibus/config/software/pkg-config-lite.rb +45 -0
  61. data/omnibus/config/software/preparation.rb +30 -0
  62. data/omnibus/config/software/ruby.rb +238 -0
  63. data/omnibus/config/software/rubygems.rb +89 -0
  64. data/omnibus/config/software/util-macros.rb +43 -0
  65. data/omnibus/config/software/xproto.rb +43 -0
  66. data/omnibus/config/software/zlib.rb +84 -0
  67. data/omnibus/omnibus.rb +54 -0
  68. data/omnibus/package-scripts/clusterlb/postinst +17 -0
  69. data/omnibus/package-scripts/clusterlb/postrm +9 -0
  70. data/omnibus/package-scripts/clusterlb/preinst +7 -0
  71. data/omnibus/package-scripts/clusterlb/prerm +15 -0
  72. data/omnibus/resources/clusterlb/deb/conffiles.erb +3 -0
  73. data/omnibus/resources/clusterlb/deb/control.erb +25 -0
  74. data/omnibus/resources/clusterlb/deb/md5sums.erb +3 -0
  75. metadata +124 -2
@@ -0,0 +1,70 @@
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 "libffi"
18
+
19
+ default_version "3.2.1"
20
+
21
+ license "MIT"
22
+ license_file "LICENSE"
23
+ skip_transitive_dependency_licensing true
24
+
25
+ # Is libtool actually necessary? Doesn't configure generate one?
26
+ dependency "libtool" unless windows?
27
+
28
+ version("3.0.13") { source md5: "45f3b6dbc9ee7c7dfbbbc5feba571529" }
29
+ version("3.2.1") { source md5: "83b89587607e3eb65c70d361f13bab43" }
30
+
31
+ source url: "https://s3-us-west-2.amazonaws.com/sensuapp.org/build-dependencies/omnibus/libffi-#{version}.tar.gz"
32
+
33
+ relative_path "libffi-#{version}"
34
+
35
+ build do
36
+ env = with_standard_compiler_flags(with_embedded_path)
37
+
38
+ env["INSTALL"] = "/opt/freeware/bin/install" if aix?
39
+
40
+ configure_command = []
41
+
42
+ # AIX's old version of patch doesn't like the patch here
43
+ unless aix?
44
+ # Patch to disable multi-os-directory via configure flag (don't use /lib64)
45
+ # Works on all platforms, and is compatible on 32bit platforms as well
46
+ if version == "3.2.1"
47
+ patch source: "libffi-3.2.1-disable-multi-os-directory.patch", plevel: 1, env: env
48
+ configure_command << "--disable-multi-os-directory"
49
+ end
50
+ end
51
+
52
+ configure(*configure_command, env: env)
53
+
54
+ if solaris_10?
55
+ if version == "3.2.1" && sparc?
56
+ patch source: "libffi-3.2.1-makefiles-sparc.patch", plevel: 1, env: env
57
+ end
58
+
59
+ # run old make :(
60
+ make env: env, bin: "/usr/ccs/bin/make"
61
+ make "install", env: env, bin: "/usr/ccs/bin/make"
62
+ else
63
+ make "-j #{workers}", env: env
64
+ make "-j #{workers} install", env: env
65
+ end
66
+
67
+ # libffi's default install location of header files is awful...
68
+ copy "#{install_dir}/embedded/lib/libffi-#{version}/include/*", "#{install_dir}/embedded/include"
69
+
70
+ end
@@ -0,0 +1,62 @@
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
+ # CAUTION - although its not used, external libraries such as nokogiri may pick up an optional dep on
18
+ # libiconv such that removal of libiconv will break those libraries on upgrade. With an better story around
19
+ # external gem handling when chef-client is upgraded libconv could be dropped.
20
+ name "libiconv"
21
+ default_version "1.14"
22
+
23
+ license "LGPL-2.1"
24
+ license_file "COPYING.LIB"
25
+ skip_transitive_dependency_licensing true
26
+
27
+ dependency "config_guess"
28
+
29
+ source url: "https://ftp.gnu.org/pub/gnu/libiconv/libiconv-#{version}.tar.gz",
30
+ md5: "e34509b1623cec449dfeb73d7ce9c6c6"
31
+
32
+ relative_path "libiconv-#{version}"
33
+
34
+ build do
35
+ env = with_standard_compiler_flags(with_embedded_path)
36
+
37
+ # freebsd 10 needs to be build PIC
38
+ env["CFLAGS"] << " -fPIC" if freebsd?
39
+
40
+ update_config_guess(target: "build-aux")
41
+ update_config_guess(target: "libcharset/build-aux")
42
+
43
+ if aix?
44
+ patch_env = env.dup
45
+ patch_env["PATH"] = "/opt/freeware/bin:#{env['PATH']}"
46
+ patch source: "libiconv-1.14_srclib_stdio.in.h-remove-gets-declarations.patch", env: patch_env
47
+ else
48
+ patch source: "libiconv-1.14_srclib_stdio.in.h-remove-gets-declarations.patch", env: env
49
+ end
50
+
51
+ if version == "1.14" && ppc64le?
52
+ patch source: "v1.14.ppc64le-ldemulation.patch", plevel: 1, env: env
53
+ end
54
+
55
+ configure(env: env)
56
+
57
+ pmake = "-j #{workers}"
58
+ make "#{pmake}", env: env
59
+ make "#{pmake} install-lib" \
60
+ " libdir=#{install_dir}/embedded/lib" \
61
+ " includedir=#{install_dir}/embedded/include", env: env
62
+ end
@@ -0,0 +1,55 @@
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 "libtool"
18
+ default_version "2.4"
19
+
20
+ license "GPL-2.0"
21
+ license_file "COPYING"
22
+
23
+ # NOTE: 2.4.6 2.4.2 do not compile on solaris2 yet
24
+ version("2.4.6") { source md5: "addf44b646ddb4e3919805aa88fa7c5e" }
25
+ version("2.4.2") { source md5: "d2f3b7d4627e69e13514a40e72a24d50" }
26
+ version("2.4") { source md5: "b32b04148ecdd7344abc6fe8bd1bb021" }
27
+
28
+ source url: "https://ftp.gnu.org/gnu/libtool/libtool-#{version}.tar.gz"
29
+
30
+ relative_path "libtool-#{version}"
31
+
32
+ dependency "config_guess"
33
+
34
+ build do
35
+ env = with_standard_compiler_flags(with_embedded_path)
36
+
37
+ # AIX's old version of patch doesn't like the config.guess patch here
38
+ unless aix?
39
+ # Update config.guess to support newer platforms (like aarch64)
40
+ if version == "2.4"
41
+ update_config_guess
42
+ update_config_guess(target: "libltdl/config")
43
+ end
44
+ end
45
+
46
+ if aix?
47
+ env["M4"] = "/opt/freeware/bin/m4"
48
+ end
49
+
50
+ command "./configure" \
51
+ " --prefix=#{install_dir}/embedded", env: env
52
+
53
+ make env: env
54
+ make "install", env: env
55
+ end
@@ -0,0 +1,46 @@
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 "libyaml"
18
+ default_version "0.1.6"
19
+
20
+ license "MIT"
21
+ license_file "LICENSE"
22
+ skip_transitive_dependency_licensing true
23
+
24
+ dependency "config_guess"
25
+
26
+ source url: "http://pyyaml.org/download/libyaml/yaml-#{version}.tar.gz",
27
+ md5: "5fe00cda18ca5daeb43762b80c38e06e"
28
+
29
+ relative_path "yaml-#{version}"
30
+
31
+ build do
32
+ env = with_standard_compiler_flags(with_embedded_path)
33
+
34
+ update_config_guess(target: "config")
35
+
36
+ configure "--enable-shared", env: env
37
+
38
+ # Windows had worse automake/libtool version issues.
39
+ # Just patch the output instead.
40
+ if version == "0.1.6" && windows?
41
+ patch source: "v0.1.6.windows-configure.patch", plevel: 1, env: env
42
+ end
43
+
44
+ make "-j #{workers}", env: env
45
+ make "-j #{workers} install", env: env
46
+ end
@@ -0,0 +1,43 @@
1
+ #
2
+ # Copyright 2014 Chef, 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 "makedepend"
18
+ default_version "1.0.5"
19
+
20
+ license "MIT"
21
+ license_file "COPYING"
22
+
23
+ source url: "http://xorg.freedesktop.org/releases/individual/util/makedepend-1.0.5.tar.gz",
24
+ md5: "efb2d7c7e22840947863efaedc175747"
25
+
26
+ relative_path "makedepend-1.0.5"
27
+
28
+ dependency "xproto"
29
+ dependency "util-macros"
30
+ dependency "pkg-config-lite"
31
+
32
+ build do
33
+ env = with_standard_compiler_flags(with_embedded_path)
34
+
35
+ if solaris2?
36
+ env['PKG_CONFIG'] = "#{install_dir}/embedded/bin/pkg-config"
37
+ end
38
+
39
+ command "./configure --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,154 @@
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 "ncurses"
18
+ default_version "5.9"
19
+
20
+ dependency "libtool" if aix?
21
+ dependency "patch" if solaris2?
22
+
23
+ version("5.9") { source md5: "8cb9c412e5f2d96bc6f459aa8c6282a1", url: "http://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz" }
24
+ version("5.9-20150530") { source md5: "bb2cbe1d788d3ab0138fc2734e446b43", url: "ftp://invisible-island.net/ncurses/current/ncurses-5.9-20150530.tgz" }
25
+ version("6.0-20150613") { source md5: "0c6a0389d004c78f4a995bc61884a563", url: "ftp://invisible-island.net/ncurses/current/ncurses-6.0-20150613.tgz" }
26
+ version("6.0-20150810") { source md5: "78bfcb4634a87b4cda390956586f8f1f", url: "ftp://invisible-island.net/ncurses/current/ncurses-6.0-20150810.tgz" }
27
+
28
+ relative_path "ncurses-#{version}"
29
+
30
+ ########################################################################
31
+ #
32
+ # wide-character support:
33
+ # Ruby 1.9 optimistically builds against libncursesw for UTF-8
34
+ # support. In order to prevent Ruby from linking against a
35
+ # package-installed version of ncursesw, we build wide-character
36
+ # support into ncurses with the "--enable-widec" configure parameter.
37
+ # To support other applications and libraries that still try to link
38
+ # against libncurses, we also have to create non-wide libraries.
39
+ #
40
+ # The methods below are adapted from:
41
+ # http://www.linuxfromscratch.org/lfs/view/development/chapter06/ncurses.html
42
+ #
43
+ ########################################################################
44
+
45
+ build do
46
+ env = with_standard_compiler_flags(with_embedded_path)
47
+ env.delete('CPPFLAGS')
48
+
49
+ if smartos?
50
+ # SmartOS is Illumos Kernel, plus NetBSD userland with a GNU toolchain.
51
+ # These patches are taken from NetBSD pkgsrc and provide GCC 4.7.0
52
+ # compatibility:
53
+ # http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/ncurses/patches/
54
+ patch source: "patch-aa", plevel: 0
55
+ patch source: "patch-ab", plevel: 0
56
+ patch source: "patch-ac", plevel: 0
57
+ patch source: "patch-ad", plevel: 0
58
+ patch source: "patch-cxx_cursesf.h", plevel: 0
59
+ patch source: "patch-cxx_cursesm.h", plevel: 0
60
+
61
+ # Opscode patches - <someara@opscode.com>
62
+ # The configure script from the pristine tarball detects xopen_source_extended incorrectly.
63
+ # Manually working around a false positive.
64
+ patch source: "ncurses-5.9-solaris-xopen_source_extended-detection.patch", plevel: 0
65
+ end
66
+
67
+ if version == "5.9"
68
+ # Update config.guess to support platforms made after 2010 (like aarch64)
69
+ patch source: "config_guess_2015-09-24.patch", plevel: 0
70
+
71
+ # Patch to add support for GCC 5, doesn't break previous versions
72
+ patch source: "ncurses-5.9-gcc-5.patch", plevel: 1
73
+ end
74
+
75
+ if mac_os_x? ||
76
+ # Clang became the default compiler in FreeBSD 10+
77
+ (freebsd? && ohai['os_version'].to_i >= 1000024)
78
+ # References:
79
+ # https://github.com/Homebrew/homebrew-dupes/issues/43
80
+ # http://invisible-island.net/ncurses/NEWS.html#t20110409
81
+ #
82
+ # Patches ncurses for clang compiler. Changes have been accepted into
83
+ # upstream, but occurred shortly after the 5.9 release. We should be able
84
+ # to remove this after upgrading to any release created after June 2012
85
+ patch source: "ncurses-clang.patch"
86
+ end
87
+
88
+ if openbsd?
89
+ patch source: "patch-ncurses_tinfo_lib__baudrate.c", plevel: 0
90
+ end
91
+
92
+ configure_command = [
93
+ "./configure",
94
+ "--prefix=#{install_dir}/embedded",
95
+ "--enable-overwrite",
96
+ "--with-shared",
97
+ "--with-termlib",
98
+ "--without-ada",
99
+ "--without-cxx-binding",
100
+ "--without-debug",
101
+ "--without-manpages",
102
+ ]
103
+
104
+ if aix?
105
+ # AIX kinda needs 5.9-20140621 or later
106
+ # because of a naming snafu in shared library naming.
107
+ # see http://invisible-island.net/ncurses/NEWS.html#t20140621
108
+
109
+ # let libtool deal with library silliness
110
+ configure_command << "--with-libtool=\"#{install_dir}/embedded/bin/libtool\""
111
+
112
+ # stick with just the shared libs on AIX
113
+ configure_command << "--without-normal"
114
+
115
+ # ncurses's ./configure incorrectly
116
+ # "figures out" ARFLAGS if you try
117
+ # to set them yourself
118
+ env.delete('ARFLAGS')
119
+
120
+ # use gnu install from the coreutils IBM rpm package
121
+ env['INSTALL'] = "/opt/freeware/bin/install"
122
+ end
123
+
124
+ # only Solaris 10 sh has a problem with
125
+ # parens enclosed case statement conditions the configure script
126
+ configure_command.unshift "bash" if solaris2?
127
+
128
+ command configure_command.join(" "), env: env
129
+
130
+ # unfortunately, libtool may try to link to libtinfo
131
+ # before it has been assembled; so we have to build in serial
132
+ make "libs", env: env if aix?
133
+
134
+ make "-j #{workers}", env: env
135
+ make "-j #{workers} install", env: env
136
+
137
+ # Build non-wide-character libraries
138
+ make "distclean", env: env
139
+ configure_command << "--enable-widec"
140
+
141
+ command configure_command.join(" "), env: env
142
+ make "libs", env: env if aix?
143
+ make "-j #{workers}", env: env
144
+
145
+ # Installing the non-wide libraries will also install the non-wide
146
+ # binaries, which doesn't happen to be a problem since we don't
147
+ # utilize the ncurses binaries in private-chef (or oss chef)
148
+ make "-j #{workers} install", env: env
149
+
150
+ # Ensure embedded ncurses wins in the LD search path
151
+ if smartos?
152
+ link "#{install_dir}/embedded/lib/libcurses.so", "#{install_dir}/embedded/lib/libcurses.so.1"
153
+ end
154
+ end
@@ -0,0 +1,24 @@
1
+ name "oggcert-gem"
2
+ default_version "0.1.1"
3
+
4
+ dependency "ruby"
5
+ dependency "ncurses"
6
+ dependency "rubygems"
7
+
8
+ build do
9
+ env = with_standard_compiler_flags(with_embedded_path)
10
+ skip_transitive_dependency_licensing true
11
+ patch_env = env.dup
12
+
13
+
14
+ gem "install oggcert" \
15
+ " --version '#{version}'" \
16
+ " --bindir '#{install_dir}/embedded/bin'", env: env
17
+
18
+ bin_dir = File.join(install_dir, "bin")
19
+ embedded_bin_dir = File.join(install_dir, "embedded", "bin")
20
+ link("#{embedded_bin_dir}/oggcert", "#{bin_dir}/oggcert")
21
+
22
+
23
+
24
+ end
@@ -0,0 +1,166 @@
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 "openssl"
18
+
19
+ license "OpenSSL"
20
+ license_file "LICENSE"
21
+ skip_transitive_dependency_licensing true
22
+
23
+ dependency "zlib"
24
+ dependency "cacerts"
25
+ dependency "makedepend" unless aix? || windows?
26
+ dependency "openssl-fips" if fips_mode?
27
+
28
+ default_version "1.0.2k"
29
+
30
+ # OpenSSL source ships with broken symlinks which windows doesn't allow.
31
+ # Skip error checking.
32
+ source url: "https://www.openssl.org/source/openssl-#{version}.tar.gz", extract: :lax_tar
33
+
34
+ version("1.0.2k") { source sha256: "6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" }
35
+ version("1.0.2j") { source sha256: "e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431" }
36
+ version("1.0.2i") { source sha256: "9287487d11c9545b6efb287cdb70535d4e9b284dd10d51441d9b9963d000de6f" }
37
+ version("1.0.2h") { source sha256: "1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919" }
38
+ version("1.0.2g") { source md5: "f3c710c045cdee5fd114feb69feba7aa" }
39
+ version("1.0.1u") { source sha256: "4312b4ca1215b6f2c97007503d80db80d5157f76f8f7d3febbe6b4c56ff26739" }
40
+ version("1.0.1t") { source md5: "9837746fcf8a6727d46d22ca35953da1" }
41
+ version("1.0.1s") { source md5: "562986f6937aabc7c11a6d376d8a0d26" }
42
+ version("1.0.1r") { source md5: "1abd905e079542ccae948af37e393d28" }
43
+
44
+ relative_path "openssl-#{version}"
45
+
46
+ build do
47
+
48
+ env = with_standard_compiler_flags(with_embedded_path)
49
+ if aix?
50
+ env["M4"] = "/opt/freeware/bin/m4"
51
+ elsif freebsd?
52
+ # Should this just be in standard_compiler_flags?
53
+ env["LDFLAGS"] += " -Wl,-rpath,#{install_dir}/embedded/lib"
54
+ elsif windows?
55
+ # XXX: OpenSSL explicitly sets -march=i486 and expects that to be honored.
56
+ # It has OPENSSL_IA32_SSE2 controlling whether it emits optimized SSE2 code
57
+ # and the 32-bit calling convention involving XMM registers is... vague.
58
+ # Do not enable SSE2 generally because the hand optimized assembly will
59
+ # overwrite registers that mingw expects to get preserved.
60
+ env["CFLAGS"] = "-I#{install_dir}/embedded/include"
61
+ env["CPPFLAGS"] = env["CFLAGS"]
62
+ env["CXXFLAGS"] = env["CFLAGS"]
63
+
64
+ if windows_arch_i386?
65
+ env["LDFLAGS"] ="-L#{install_dir}/embedded/lib -m32 -fno-lto"
66
+ else
67
+ env["LDFLAGS"] ="-L#{install_dir}/embedded/lib -m64 -fno-lto"
68
+ end
69
+ end
70
+
71
+ configure_args = [
72
+ "--prefix=#{install_dir}/embedded",
73
+ "--with-zlib-lib=#{install_dir}/embedded/lib",
74
+ "--with-zlib-include=#{install_dir}/embedded/include",
75
+ "no-idea",
76
+ "no-mdc2",
77
+ "no-rc5",
78
+ "shared",
79
+ ]
80
+
81
+ configure_args += ["--with-fipsdir=#{install_dir}/embedded", "fips"] if fips_mode?
82
+
83
+ if windows?
84
+ configure_args << "zlib-dynamic"
85
+ else
86
+ configure_args << "zlib"
87
+ end
88
+
89
+ configure_cmd =
90
+ if aix?
91
+ "perl ./Configure aix64-cc"
92
+ elsif mac_os_x?
93
+ "./Configure darwin64-x86_64-cc"
94
+ elsif smartos?
95
+ "/bin/bash ./Configure solaris64-x86_64-gcc -static-libgcc"
96
+ elsif omnios?
97
+ "/bin/bash ./Configure solaris-x86-gcc"
98
+ elsif solaris_10?
99
+ # This should not require a /bin/sh, but without it we get
100
+ # Errno::ENOEXEC: Exec format error
101
+ platform = sparc? ? "solaris-sparcv9-gcc" : "solaris-x86-gcc"
102
+ "/bin/sh ./Configure #{platform} -static-libgcc"
103
+ elsif solaris_11?
104
+ platform = sparc? ? "solaris64-sparcv9-gcc" : "solaris64-x86_64-gcc"
105
+ "/bin/bash ./Configure #{platform} -static-libgcc"
106
+ elsif windows?
107
+ platform = windows_arch_i386? ? "mingw" : "mingw64"
108
+ "perl.exe ./Configure #{platform}"
109
+ else
110
+ prefix =
111
+ if linux? && ppc64?
112
+ "./Configure linux-ppc64"
113
+ elsif linux? && s390x?
114
+ # With gcc > 4.3 on s390x there is an error building
115
+ # with inline asm enabled
116
+ "./Configure linux64-s390x -DOPENSSL_NO_INLINE_ASM"
117
+ else
118
+ "./config"
119
+ end
120
+ "#{prefix} disable-gost"
121
+ end
122
+
123
+ patch_env = if aix?
124
+ # This enables omnibus to use 'makedepend'
125
+ # from fileset 'X11.adt.imake' (AIX install media)
126
+ env["PATH"] = "/usr/lpp/X11/bin:#{ENV["PATH"]}"
127
+ penv = env.dup
128
+ penv["PATH"] = "/opt/freeware/bin:#{env['PATH']}"
129
+ penv
130
+ else
131
+ env
132
+ end
133
+
134
+ patch source: "openssl-1.0.1f-do-not-build-docs.patch", env: patch_env
135
+
136
+ if version == "1.0.2k"
137
+ patch source: "openssl-1.0.2k-no-bang.patch", env: patch_env, plevel: 1
138
+ end
139
+
140
+ if windows?
141
+ # Patch Makefile.org to update the compiler flags/options table for mingw.
142
+ patch source: "openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch", env: env
143
+ end
144
+
145
+ # Out of abundance of caution, we put the feature flags first and then
146
+ # the crazy platform specific compiler flags at the end.
147
+ configure_args << env["CFLAGS"] << env["LDFLAGS"]
148
+
149
+ configure_command = configure_args.unshift(configure_cmd).join(" ")
150
+
151
+ command configure_command, env: env, in_msys_bash: true
152
+ make "depend", env: env
153
+ # make -j N on openssl is not reliable
154
+ make env: env
155
+ if aix?
156
+ # We have to sudo this because you can't actually run slibclean without being root.
157
+ # Something in openssl changed in the build process so now it loads the libcrypto
158
+ # and libssl libraries into AIX's shared library space during the first part of the
159
+ # compile. This means we need to clear the space since it's not being used and we
160
+ # can't install the library that is already in use. Ideally we would patch openssl
161
+ # to make this not be an issue.
162
+ # Bug Ref: http://rt.openssl.org/Ticket/Display.html?id=2986&user=guest&pass=guest
163
+ command "sudo /usr/sbin/slibclean", env: env
164
+ end
165
+ make "install", env: env
166
+ end
@@ -0,0 +1,45 @@
1
+ #
2
+ # Copyright 2013-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 "pkg-config-lite"
18
+ default_version "0.28-1"
19
+
20
+ license "GPL-2.0"
21
+ license_file "COPYING"
22
+
23
+ version "0.28-1" do
24
+ source md5: "61f05feb6bab0a6bbfab4b6e3b2f44b6"
25
+ end
26
+
27
+ source url: "http://downloads.sourceforge.net/project/pkgconfiglite/#{version}/pkg-config-lite-#{version}.tar.gz"
28
+
29
+ relative_path "pkg-config-lite-#{version}"
30
+
31
+ build do
32
+ env = with_standard_compiler_flags(with_embedded_path)
33
+
34
+ if version == "0.28-1"
35
+ patch source: "pkg-config-lite-0.28-1.config.guess.patch", plevel: 0
36
+ end
37
+
38
+ command "./configure" \
39
+ " --prefix=#{install_dir}/embedded" \
40
+ " --disable-host-tool" \
41
+ " --with-pc-path=#{install_dir}/embedded/bin/pkgconfig", env: env
42
+
43
+ make "-j #{workers}", env: env
44
+ make "-j #{workers} install", env: env
45
+ end