clusterlb 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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