omnibus-software 22.11.239

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 (241) hide show
  1. checksums.yaml +7 -0
  2. data/.expeditor/Version_inspector/README.md +21 -0
  3. data/.expeditor/Version_inspector/SW-Version-update.py +243 -0
  4. data/.expeditor/Version_inspector/manual_prod_list.json +29 -0
  5. data/.expeditor/Version_inspector/prod_default_version.json +103 -0
  6. data/.expeditor/Version_inspector/prod_list.json +194 -0
  7. data/.expeditor/Version_inspector/requirements.txt +4 -0
  8. data/.expeditor/Version_inspector/update_prod_default_version.sh +24 -0
  9. data/.expeditor/Version_inspector/update_prod_list.sh +35 -0
  10. data/.expeditor/config.yml +33 -0
  11. data/.expeditor/determine_version.sh +15 -0
  12. data/.expeditor/push_git_tag.sh +12 -0
  13. data/.expeditor/run_linux_tests.sh +16 -0
  14. data/.expeditor/verify.pipeline.yml +52 -0
  15. data/.github/CODEOWNERS +5 -0
  16. data/.github/ISSUE_TEMPLATE/BUG_TEMPLATE.md +29 -0
  17. data/.github/ISSUE_TEMPLATE/DESIGN_PROPOSAL.md +40 -0
  18. data/.github/ISSUE_TEMPLATE/ENHANCEMENT_REQUEST_TEMPLATE.md +17 -0
  19. data/.github/ISSUE_TEMPLATE/SUPPORT_QUESTION.md +11 -0
  20. data/.github/dependabot.yml +9 -0
  21. data/.github/lock.yml +1 -0
  22. data/.gitignore +17 -0
  23. data/CODE_OF_CONDUCT.md +1 -0
  24. data/CONTRIBUTING.md +1 -0
  25. data/Dockerfile +21 -0
  26. data/Gemfile +10 -0
  27. data/LICENSE +201 -0
  28. data/README.md +99 -0
  29. data/Rakefile +56 -0
  30. data/VERSION +1 -0
  31. data/config/patches/bash/race-condition.patch +15 -0
  32. data/config/patches/bzip2/aix_makefile.patch +11 -0
  33. data/config/patches/bzip2/makefile_no_bins.patch +77 -0
  34. data/config/patches/bzip2/makefile_take_env_vars.patch +31 -0
  35. data/config/patches/bzip2/soname_install_dir.patch +11 -0
  36. data/config/patches/curl/curl-aix-disable-alpn.patch +22 -0
  37. data/config/patches/curl/curl-freebsd-hostcheck.patch +10 -0
  38. data/config/patches/erlang/epmd-require-explicitly-adding-loopback-address.patch +84 -0
  39. data/config/patches/erlang/updated-epmd-require-explicitly-adding-loopback-address.patch +75 -0
  40. data/config/patches/expat/configure_xlc_visibility.patch +58 -0
  41. data/config/patches/expat/configure_xlc_visibility_2.4.7.patch +59 -0
  42. data/config/patches/figlet/aix-figlet-cdefs.patch +48 -0
  43. data/config/patches/gdbm/v1.8.3-Makefile.in.patch +32 -0
  44. data/config/patches/git/aix-endian-fix.patch +20 -0
  45. data/config/patches/gtar/aix_extra_case.patch +13 -0
  46. data/config/patches/keepalived/keepalived-1.2.9_opscode_centos_5.patch +15 -0
  47. data/config/patches/libedit/freebsd-vi-fix.patch +24 -0
  48. data/config/patches/libedit/openbsd-weak-alias-fix.patch +48 -0
  49. data/config/patches/libedit/solaris.patch +36 -0
  50. data/config/patches/libffi/libffi-3.2.1-disable-multi-os-directory.patch +83 -0
  51. data/config/patches/libffi/libffi-3.3-arm64.patch +9608 -0
  52. data/config/patches/libxslt/libxslt-solaris-configure.patch +19 -0
  53. data/config/patches/libxslt/libxslt-windows-relocate.patch +12 -0
  54. data/config/patches/libyaml/windows-configure.patch +26 -0
  55. data/config/patches/libzmq/zeromq-4.0.11_mingw_inet_pton.patch +37 -0
  56. data/config/patches/libzmq/zeromq-aix-4.2.2-LARGE_FILES.patch +56 -0
  57. data/config/patches/libzmq/zeromq-aix-4.2.2-atomic-counter-fetch_and_add.patch +59 -0
  58. data/config/patches/logrotate/logrotate_basedir_override.patch +17 -0
  59. data/config/patches/m4/m4-1.4.18-glibc-change-work-around.patch +115 -0
  60. data/config/patches/make/deb-make-glob.patch +31 -0
  61. data/config/patches/ncurses/ncurses-5.9-gcc-5.patch +46 -0
  62. data/config/patches/ncurses/ncurses-5.9-solaris-xopen_source_extended-detection.patch +11 -0
  63. data/config/patches/ncurses/ncurses-clang.patch +43 -0
  64. data/config/patches/ncurses/patch-aa +23 -0
  65. data/config/patches/ncurses/patch-ab +44 -0
  66. data/config/patches/ncurses/patch-ac +40 -0
  67. data/config/patches/ncurses/patch-ad +13 -0
  68. data/config/patches/ncurses/patch-cxx_cursesf.h +22 -0
  69. data/config/patches/ncurses/patch-cxx_cursesm.h +22 -0
  70. data/config/patches/ncurses/patch-ncurses_tinfo_lib__baudrate.c +24 -0
  71. data/config/patches/openssl/openssl-1.0.1f-do-not-build-docs.patch +28 -0
  72. data/config/patches/openssl/openssl-1.0.1j-windows-relocate-dll.patch +20 -0
  73. data/config/patches/openssl/openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch +20 -0
  74. data/config/patches/openssl/openssl-1.0.2x-darwin-arm64.patch +54 -0
  75. data/config/patches/openssl/openssl-1.1.0f-do-not-install-docs.patch +11 -0
  76. data/config/patches/openssl/openssl-3.0.1-do-not-install-docs.patch +22 -0
  77. data/config/patches/openssl-fips/openssl-fips-fix-compiler-flags-table-for-msys.patch +11 -0
  78. data/config/patches/perl/perl-5.18.1-remove_lnsl.patch +441 -0
  79. data/config/patches/perl/perl-5.22.1-remove_lnsl.patch +512 -0
  80. data/config/patches/perl/perl-5.30.0-remove_lnsl.patch +518 -0
  81. data/config/patches/perl/perl-5.32.1-remove_lnsl.patch +456 -0
  82. data/config/patches/perl/perl-5.34.0-remove_lnsl.patch +516 -0
  83. data/config/patches/pkg-config/openbsd-charset.patch +19 -0
  84. data/config/patches/popt/v1.16.ppc64le-configure.patch +18 -0
  85. data/config/patches/redis/password-from-environment.patch +19 -0
  86. data/config/patches/ruby/patch-configure +103 -0
  87. data/config/patches/ruby/remove_nano.patch +10 -0
  88. data/config/patches/ruby/ruby-2.6.7_c99.patch +12 -0
  89. data/config/patches/ruby/ruby-3.0.1-configure.patch +281 -0
  90. data/config/patches/ruby/ruby-3.0.2-configure.patch +251 -0
  91. data/config/patches/ruby/ruby-aix-atomic.patch +11 -0
  92. data/config/patches/ruby/ruby-aix-configure_26_and_later.patch +19 -0
  93. data/config/patches/ruby/ruby-aix-vm-core.patch +14 -0
  94. data/config/patches/ruby/ruby-fast-load_26.patch +16 -0
  95. data/config/patches/ruby/ruby-fast-load_31.patch +16 -0
  96. data/config/patches/ruby/ruby-faster-load_26.patch +11 -0
  97. data/config/patches/ruby/ruby-faster-load_27.patch +11 -0
  98. data/config/patches/ruby/ruby-mkmf.patch +29 -0
  99. data/config/patches/ruby/ruby-no-stack-protector-strong.patch +11 -0
  100. data/config/patches/ruby/ruby-no-stack-protector.patch +13 -0
  101. data/config/patches/ruby/ruby-win32_warning_removal.patch +12 -0
  102. data/config/patches/ruby/ruby_aix_openssl.patch +10 -0
  103. data/config/patches/ruby/ruby_aix_ssl_EAGAIN.patch +19 -0
  104. data/config/patches/ruby/rvm-cflags.patch +27 -0
  105. data/config/patches/stunnel/stunnel-on-windows.patch +42 -0
  106. data/config/patches/zlib/zlib-windows-relocate.patch +20 -0
  107. data/config/software/autoconf.rb +46 -0
  108. data/config/software/automake.rb +49 -0
  109. data/config/software/bash.rb +72 -0
  110. data/config/software/berkshelf-no-depselector.rb +46 -0
  111. data/config/software/berkshelf.rb +34 -0
  112. data/config/software/binutils.rb +47 -0
  113. data/config/software/bundler.rb +38 -0
  114. data/config/software/bzip2.rb +55 -0
  115. data/config/software/cacerts.rb +50 -0
  116. data/config/software/chef-gem.rb +35 -0
  117. data/config/software/chef.rb +112 -0
  118. data/config/software/cmake.rb +94 -0
  119. data/config/software/config_guess.rb +37 -0
  120. data/config/software/cpanminus.rb +49 -0
  121. data/config/software/curl.rb +103 -0
  122. data/config/software/delivery-cli.rb +89 -0
  123. data/config/software/dep-selector-libgecode.rb +48 -0
  124. data/config/software/elasticsearch.rb +61 -0
  125. data/config/software/elixir.rb +35 -0
  126. data/config/software/erlang.rb +134 -0
  127. data/config/software/expat.rb +63 -0
  128. data/config/software/fakeroot.rb +41 -0
  129. data/config/software/ffi-yajl.rb +46 -0
  130. data/config/software/figlet-fonts.rb +31 -0
  131. data/config/software/figlet.rb +44 -0
  132. data/config/software/gcc.rb +60 -0
  133. data/config/software/gdbm.rb +54 -0
  134. data/config/software/gecode.rb +62 -0
  135. data/config/software/gem-permissions.rb +43 -0
  136. data/config/software/git-windows.rb +96 -0
  137. data/config/software/git.rb +138 -0
  138. data/config/software/gmp.rb +48 -0
  139. data/config/software/go-uninstall.rb +33 -0
  140. data/config/software/go.rb +116 -0
  141. data/config/software/google-protobuf.rb +45 -0
  142. data/config/software/gtar.rb +62 -0
  143. data/config/software/help2man.rb +40 -0
  144. data/config/software/highline-gem.rb +37 -0
  145. data/config/software/ibm-jre.rb +59 -0
  146. data/config/software/inspec.rb +43 -0
  147. data/config/software/jre-from-jdk.rb +67 -0
  148. data/config/software/keepalived.rb +68 -0
  149. data/config/software/libarchive.rb +71 -0
  150. data/config/software/libedit.rb +73 -0
  151. data/config/software/libffi.rb +68 -0
  152. data/config/software/libgcc.rb +52 -0
  153. data/config/software/libiconv.rb +55 -0
  154. data/config/software/libintl-perl.rb +56 -0
  155. data/config/software/liblzma.rb +59 -0
  156. data/config/software/libossp-uuid.rb +45 -0
  157. data/config/software/libsodium.rb +40 -0
  158. data/config/software/libtool.rb +56 -0
  159. data/config/software/libuuid.rb +45 -0
  160. data/config/software/libxml2.rb +63 -0
  161. data/config/software/libxslt.rb +64 -0
  162. data/config/software/libyajl2-gem.rb +44 -0
  163. data/config/software/libyaml.rb +50 -0
  164. data/config/software/libzmq.rb +93 -0
  165. data/config/software/logrotate.rb +61 -0
  166. data/config/software/lua.rb +46 -0
  167. data/config/software/m4.rb +40 -0
  168. data/config/software/make.rb +43 -0
  169. data/config/software/makedepend.rb +44 -0
  170. data/config/software/mpc.rb +44 -0
  171. data/config/software/mpfr.rb +45 -0
  172. data/config/software/musl.rb +107 -0
  173. data/config/software/mysql2.rb +50 -0
  174. data/config/software/ncurses.rb +159 -0
  175. data/config/software/nginx.rb +55 -0
  176. data/config/software/nodejs-binary.rb +90 -0
  177. data/config/software/nodejs.rb +58 -0
  178. data/config/software/nokogiri.rb +92 -0
  179. data/config/software/omnibus-ctl.rb +42 -0
  180. data/config/software/openresty.rb +94 -0
  181. data/config/software/opensearch.rb +54 -0
  182. data/config/software/openssl-customization.rb +81 -0
  183. data/config/software/openssl-fips.rb +81 -0
  184. data/config/software/openssl.rb +185 -0
  185. data/config/software/patch.rb +46 -0
  186. data/config/software/patchelf.rb +66 -0
  187. data/config/software/pcre.rb +53 -0
  188. data/config/software/perl-extutils-embed.rb +37 -0
  189. data/config/software/perl-extutils-makemaker.rb +46 -0
  190. data/config/software/perl-thread-queue.rb +40 -0
  191. data/config/software/perl.rb +78 -0
  192. data/config/software/perl_pg_driver.rb +45 -0
  193. data/config/software/pg-gem.rb +36 -0
  194. data/config/software/pkg-config-lite.rb +46 -0
  195. data/config/software/pkg-config.rb +66 -0
  196. data/config/software/popt.rb +54 -0
  197. data/config/software/postgresql.rb +70 -0
  198. data/config/software/preparation.rb +31 -0
  199. data/config/software/python.rb +79 -0
  200. data/config/software/rabbitmq.rb +58 -0
  201. data/config/software/rb-readline.rb +33 -0
  202. data/config/software/rbnacl-libsodium.rb +42 -0
  203. data/config/software/rbzmq.rb +44 -0
  204. data/config/software/rebar.rb +42 -0
  205. data/config/software/redis-gem.rb +36 -0
  206. data/config/software/redis.rb +51 -0
  207. data/config/software/relx.rb +39 -0
  208. data/config/software/rsync.rb +55 -0
  209. data/config/software/ruby-cleanup.rb +254 -0
  210. data/config/software/ruby-msys2-devkit.rb +77 -0
  211. data/config/software/ruby-windows-devkit-bash.rb +41 -0
  212. data/config/software/ruby-windows-devkit.rb +84 -0
  213. data/config/software/ruby.rb +306 -0
  214. data/config/software/rubygems.rb +73 -0
  215. data/config/software/runit.rb +67 -0
  216. data/config/software/rust-uninstall.rb +32 -0
  217. data/config/software/rust.rb +97 -0
  218. data/config/software/sequel-gem.rb +36 -0
  219. data/config/software/server-jre.rb +125 -0
  220. data/config/software/server-open-jre.rb +112 -0
  221. data/config/software/setuptools.rb +48 -0
  222. data/config/software/shebang-cleanup.rb +101 -0
  223. data/config/software/sqitch.rb +87 -0
  224. data/config/software/stunnel.rb +86 -0
  225. data/config/software/util-macros.rb +42 -0
  226. data/config/software/version-manifest.rb +33 -0
  227. data/config/software/xproto.rb +42 -0
  228. data/config/software/zlib.rb +85 -0
  229. data/config/templates/git/config.mak.erb +31 -0
  230. data/config/templates/rubygems/register_devtools.rb.erb +33 -0
  231. data/config/templates/runit/runsvdir-start.erb +42 -0
  232. data/docker-compose.yml +15 -0
  233. data/lib/omnibus-software/version.rb +3 -0
  234. data/lib/omnibus-software.rb +115 -0
  235. data/omnibus-software.gemspec +20 -0
  236. data/test/Gemfile +10 -0
  237. data/test/config/projects/test.rb +14 -0
  238. data/test/generate_steps.rb +55 -0
  239. data/test/omnibus-build.sh +50 -0
  240. data/test/omnibus.rb +55 -0
  241. metadata +296 -0
@@ -0,0 +1,58 @@
1
+ #
2
+ # Copyright:: 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
+ # expeditor/ignore: deprecated 2021-11
17
+
18
+ name "nodejs"
19
+
20
+ license "MIT"
21
+ license_file "LICENSE"
22
+ skip_transitive_dependency_licensing true
23
+
24
+ default_version "0.10.48"
25
+
26
+ dependency "python"
27
+
28
+ default_src_url = "https://nodejs.org/dist/v#{version}/node-v#{version}.tar.gz"
29
+
30
+ version "12.22.3" do
31
+ source url: default_src_url, sha256: "30acec454f26a168afe6d1c55307c5186ef23dba66527cc34e4497d01f91bda4"
32
+ end
33
+
34
+ version "0.10.48" do
35
+ source url: default_src_url, sha256: "27a1765b86bf4ec9833e2f89e8421ba4bc01a326b883f125de2f0b3494bd5549"
36
+ end
37
+
38
+ relative_path "node-v#{version}"
39
+
40
+ build do
41
+ env = with_standard_compiler_flags(with_embedded_path)
42
+
43
+ config_command = [
44
+ "--prefix=#{install_dir}/embedded",
45
+ "--without-dtrace",
46
+ ]
47
+
48
+ if version.satisfies?(">= 12")
49
+ config_command << "--without-node-snapshot"
50
+ config_command << "--without-inspector"
51
+ config_command << "--without-intl"
52
+ end
53
+
54
+ configure(*config_command, env: env)
55
+
56
+ make "-j #{workers}", env: env
57
+ make "install", env: env
58
+ end
@@ -0,0 +1,92 @@
1
+ # Copyright:: Copyright (c) Chef Software Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # expeditor/ignore: no version pinning
16
+
17
+ name "nokogiri"
18
+
19
+ license "MIT"
20
+ license_file "https://raw.githubusercontent.com/sparklemotion/nokogiri/master/LICENSE.md"
21
+ # We install only nokogiri from rubygems here.
22
+ skip_transitive_dependency_licensing true
23
+
24
+ dependency "ruby"
25
+
26
+ using_prebuilt_ruby = windows? && (project.overrides[:ruby].nil? || project.overrides[:ruby][:version] == "ruby-windows")
27
+ unless using_prebuilt_ruby
28
+ dependency "libxml2"
29
+ dependency "libxslt"
30
+ dependency "liblzma"
31
+ dependency "zlib"
32
+ end
33
+
34
+ #
35
+ # NOTE: As of nokogiri 1.6.4 it will superficially 'work' to remove most
36
+ # of the nonsense in this file and simply gem install nokogiri on most
37
+ # platforms. This is because nokogiri has improved its packaging so that
38
+ # all of the dynamic libraries are 'statically' compiled into nokogiri.so
39
+ # with -lz -llzma -lxslt -lxml2, etc. What will happen in that case is
40
+ # that the nokogiri build system will pull zlib, lzma, etc out of the
41
+ # system and link it inside of nokogiri.so and ship it as one big
42
+ # dynamic library. This will essentially defeat one aspect of our
43
+ # health_check system so that we will be shipping an embedded zlib inside
44
+ # of nokogiri.so that we do not track and will have a high likelihood that
45
+ # if there are security errata that we ship exploitable code without
46
+ # knowing it. For all other purposes, the built executable will work,
47
+ # however, so it is likely that someone will 'discover' that 'everything
48
+ # works' and remove all the junk in this file. That will, however, have
49
+ # unintended side effects. We do not have a mechanism to inspect the
50
+ # nokogiri.so and determine that it is shipping with an embedded zlib that
51
+ # does not match the one that we ship in /opt/chef/embedded/lib, so there
52
+ # will be nothing that alerts or fails on this.
53
+ #
54
+ # TL;DR: do not remove --use-system-libraries even if everything appears to
55
+ # be green after you do.
56
+ #
57
+ build do
58
+ env = with_standard_compiler_flags(with_embedded_path)
59
+
60
+ gem_command = [ "install nokogiri" ]
61
+ gem_command << "--version '#{version}'" unless version.nil?
62
+
63
+ # windows uses the 'fat' precompiled binaries'
64
+ unless using_prebuilt_ruby
65
+ # Tell nokogiri to use the system libraries instead of compiling its own
66
+ env["NOKOGIRI_USE_SYSTEM_LIBRARIES"] = "true"
67
+
68
+ gem_command += [
69
+ "--platform ruby",
70
+ "--conservative",
71
+ "--minimal-deps",
72
+ "--",
73
+ "--use-system-libraries",
74
+ "--with-xml2-lib=#{install_dir}/embedded/lib",
75
+ "--with-xml2-include=#{install_dir}/embedded/include/libxml2",
76
+ "--with-xslt-lib=#{install_dir}/embedded/lib",
77
+ "--with-xslt-include=#{install_dir}/embedded/include/libxslt",
78
+ "--without-iconv",
79
+ "--with-zlib-dir=#{install_dir}/embedded",
80
+ ]
81
+ end
82
+
83
+ gem gem_command.join(" "), env: env
84
+
85
+ # The mini-portile2 gem ships with some test fixture data compressed in a format Apple's notarization
86
+ # service cannot understand. We need to delete that archive to pass notarization.
87
+ block "Delete test folder of mini-portile2 gem so downstream projects pass notarization" do
88
+ env["VISUAL"] = "echo"
89
+ gem_install_dir = shellout!("#{install_dir}/embedded/bin/gem open mini_portile2", env: env).stdout.chomp
90
+ remove_directory "#{gem_install_dir}/test"
91
+ end
92
+ end
@@ -0,0 +1,42 @@
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 "omnibus-ctl"
18
+ default_version "v0.6.0"
19
+
20
+ license "Apache-2.0"
21
+ license_file "https://raw.githubusercontent.com/chef/omnibus-ctl/main/LICENSE"
22
+ # Even though omnibus-ctl is a gem, it does not have any dependencies.
23
+ skip_transitive_dependency_licensing true
24
+
25
+ dependency "ruby"
26
+
27
+ # versions_list: https://github.com/chef/omnibus-ctl/tags filter=*.tar.gz
28
+ source git: "https://github.com/chef/omnibus-ctl.git"
29
+
30
+ relative_path "omnibus-ctl"
31
+
32
+ build do
33
+ env = with_standard_compiler_flags(with_embedded_path)
34
+
35
+ # Remove existing built gems in case they exist in the current dir
36
+ delete "omnibus-ctl-*.gem"
37
+
38
+ gem "build omnibus-ctl.gemspec", env: env
39
+ gem "install omnibus-ctl-*.gem --no-document ", env: env
40
+
41
+ touch "#{install_dir}/embedded/service/omnibus-ctl/.gitkeep"
42
+ end
@@ -0,0 +1,94 @@
1
+ #
2
+ # Copyright:: 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 "openresty"
18
+ license "BSD-2-Clause"
19
+ license_file "README.markdown"
20
+ skip_transitive_dependency_licensing true
21
+ default_version "1.21.4.1"
22
+
23
+ dependency "pcre"
24
+ dependency "openssl"
25
+ dependency "zlib"
26
+ dependency "lua" if ppc64? || ppc64le? || s390x?
27
+
28
+ # versions_list: https://openresty.org/download/ filter=*.tar.gz
29
+ version("1.21.4.1") { source sha256: "0c5093b64f7821e85065c99e5d4e6cc31820cfd7f37b9a0dec84209d87a2af99" }
30
+ version("1.21.4.1rc1") { source sha256: "1cb216bc57a253149cb5c4b815bfe00e1c0713e7355774bbc26cf306d2ff632f" }
31
+ version("1.19.9.1") { source sha256: "576ff4e546e3301ce474deef9345522b7ef3a9d172600c62057f182f3a68c1f6" }
32
+ version("1.19.3.2") { source sha256: "ce40e764990fbbeb782e496eb63e214bf19b6f301a453d13f70c4f363d1e5bb9" }
33
+ version("1.19.3.1") { source sha256: "f36fcd9c51f4f9eb8aaab8c7f9e21018d5ce97694315b19cacd6ccf53ab03d5d" }
34
+ version("1.17.8.2") { source sha256: "2f321ab11cb228117c840168f37094ee97f8f0316eac413766305409c7e023a0" }
35
+ version("1.15.8.1") { source sha256: "89a1238ca177692d6903c0adbea5bdf2a0b82c383662a73c03ebf5ef9f570842" }
36
+ version("1.13.6.2") { source sha256: "946e1958273032db43833982e2cec0766154a9b5cb8e67868944113208ff2942" }
37
+ version("1.11.2.5") { source sha256: "f8cc203e8c0fcd69676f65506a3417097fc445f57820aa8e92d7888d8ad657b9" }
38
+
39
+ source url: "https://openresty.org/download/openresty-#{version}.tar.gz"
40
+
41
+ relative_path "openresty-#{version}"
42
+
43
+ build do
44
+ env = with_standard_compiler_flags(with_embedded_path)
45
+ env["PATH"] += "#{env["PATH"]}:/usr/sbin:/sbin"
46
+
47
+ configure = [
48
+ "./configure",
49
+ "--prefix=#{install_dir}/embedded",
50
+ "--sbin-path=#{install_dir}/embedded/sbin/nginx",
51
+ "--conf-path=#{install_dir}/embedded/conf/nginx.conf",
52
+ "--with-http_ssl_module",
53
+ "--with-debug",
54
+ "--with-http_stub_status_module",
55
+ # Building Nginx with non-system OpenSSL
56
+ # http://www.ruby-forum.com/topic/207287#902308
57
+ "--with-ld-opt=\"-L#{install_dir}/embedded/lib -Wl,-rpath,#{install_dir}/embedded/lib -lssl -lcrypto -ldl -lz\"",
58
+ "--with-cc-opt=\"-L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include\"",
59
+ # Options inspired by the OpenResty Cookbook
60
+ "--with-md5-asm",
61
+ "--with-sha1-asm",
62
+ "--with-pcre-jit",
63
+ "--without-http_ssi_module",
64
+ "--without-mail_smtp_module",
65
+ "--without-mail_imap_module",
66
+ "--without-mail_pop3_module",
67
+ "--with-http_v2_module",
68
+ "--with-ipv6",
69
+ # AIO support define in Openresty cookbook. Requires Kernel >= 2.6.22
70
+ # Ubuntu 10.04 reports: 2.6.32-38-server #83-Ubuntu SMP
71
+ # However, they require libatomic-ops-dev and libaio
72
+ # '--with-file-aio',
73
+ # '--with-libatomic'
74
+ ]
75
+
76
+ # Currently LuaJIT doesn't support POWER correctly so use Lua51 there instead
77
+ if ppc64? || ppc64le? || s390x?
78
+ # 1.13 breaks these; discover a workaround
79
+ if version.satisfies?(">= 1.13")
80
+ exit("ppc64? || ppc64le? || s390x? unsupported for 1.13 and greater")
81
+ else
82
+ configure << "--with-lua51=#{install_dir}/embedded/lib"
83
+ end
84
+ else
85
+ configure << "--with-luajit"
86
+ end
87
+
88
+ command configure.join(" "), env: env
89
+
90
+ make "-j #{workers}", env: env
91
+ make "install", env: env
92
+
93
+ touch "#{install_dir}/embedded/nginx/logs/.gitkeep"
94
+ end
@@ -0,0 +1,54 @@
1
+ #
2
+ # Copyright 2020 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 "opensearch"
18
+ default_version "2.2.0"
19
+
20
+ dependency "server-open-jre"
21
+ license "Apache-2.0"
22
+ license_file "LICENSE.txt"
23
+ skip_transitive_dependency_licensing true
24
+
25
+ source url: "https://artifacts.opensearch.org/releases/bundle/opensearch/#{version}/opensearch-#{version}-linux-x64.tar.gz"
26
+ relative_path "opensearch-#{version}"
27
+
28
+ # versions_list:https://opensearch.org/docs/latest/version-history/
29
+ version("2.2.0") { source sha256: "4480c15682ddcd10cebb8a1103f4efafa789d7aee9d4c8c9201cd9864d5ed58c" }
30
+ version("2.1.0") { source sha256: "bccd737e0f4e4554d3918f011a1e379ebda9e53473c70b4264aa28ce719611e3" }
31
+ version("2.0.1") { source sha256: "8366dc71c839935330dbe841b415b37f28573de5ae7718e75f2e1c50756e0d99" }
32
+ version("2.0.0") { source sha256: "bec706d221052cb962ed0e6973d28e1058f21ef3dfc054c97c991bb279b0564e" }
33
+ version("1.3.2") { source sha256: "14199251a8aae2068fd54aa39c778ff29dcc8be33d57f36a8cc2d19e07ff4149" }
34
+ version("1.2.4") { source sha256: "d40f2696623b6766aa235997e2847a6c661a226815d4ba173292a219754bd8a8" }
35
+
36
+ target_path = "#{install_dir}/embedded/opensearch"
37
+
38
+ build do
39
+ mkdir "#{target_path}"
40
+
41
+ delete "#{project_dir}/config"
42
+
43
+ # OpenSearch includes a compatible jdk but its files fail the omnibus health check.
44
+ # It isn't needed since we use the omnibus built server-open-jre so it can be deleted.
45
+ delete "#{project_dir}/jdk"
46
+
47
+ # Delete the opensearch-knn plugin because it causes health check failures
48
+ delete "#{project_dir}/plugins/opensearch-knn"
49
+
50
+ sync "#{project_dir}/", "#{target_path}"
51
+ # Dropping a VERSION file here allows additional software definitions
52
+ # to read it to determine ES plugin compatibility.
53
+ command "echo #{version} > #{target_path}/VERSION"
54
+ end
@@ -0,0 +1,81 @@
1
+ #
2
+ # Copyright:: Copyright (c) 2014-2017, 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
+ # This software makes sure that SSL_CERT_FILE environment variable is pointed
19
+ # to the bundled CA certificates that ship with omnibus. With this, Chef
20
+ # tools can be used with https URLs out of the box.
21
+ # expeditor/ignore: logic only
22
+
23
+ name "openssl-customization"
24
+
25
+ license :project_license
26
+ skip_transitive_dependency_licensing true
27
+
28
+ source path: "#{project.files_path}/#{name}"
29
+
30
+ dependency "ruby"
31
+
32
+ build do
33
+ block "Add OpenSSL customization file" do
34
+ # gets directories for RbConfig::CONFIG and sanitizes them.
35
+ def get_sanitized_rbconfig(config)
36
+ ruby = windows_safe_path("#{install_dir}/embedded/bin/ruby")
37
+
38
+ config_dir = Bundler.with_clean_env do
39
+ command_output = `#{ruby} -rrbconfig -e "puts RbConfig::CONFIG['#{config}']"`.strip
40
+ windows_safe_path(command_output)
41
+ end
42
+
43
+ if config_dir.nil? || config_dir.empty?
44
+ raise "could not determine embedded ruby's RbConfig::CONFIG['#{config}']"
45
+ end
46
+
47
+ config_dir
48
+ end
49
+
50
+ if windows?
51
+ embedded_ruby_site_dir = get_sanitized_rbconfig("sitelibdir")
52
+ embedded_ruby_lib_dir = get_sanitized_rbconfig("rubylibdir")
53
+
54
+ source_ssl_env_hack = File.join(project_dir, "windows", "ssl_env_hack.rb")
55
+ destination_ssl_env_hack = File.join(embedded_ruby_site_dir, "ssl_env_hack.rb")
56
+
57
+ create_directory(embedded_ruby_site_dir)
58
+
59
+ copy(source_ssl_env_hack, destination_ssl_env_hack)
60
+
61
+ # Unfortunately there is no patch on windows, but luckily we only need to append a line to the openssl.rb
62
+ # to pick up our script which find the CA bundle in omnibus installations and points SSL_CERT_FILE to it
63
+ # if it's not already set
64
+ source_openssl_rb = File.join(embedded_ruby_lib_dir, "openssl.rb")
65
+ File.open(source_openssl_rb, "r+") do |f|
66
+ unpatched_openssl_rb = f.read
67
+ f.rewind
68
+ f.write("\nrequire 'ssl_env_hack'\n")
69
+ f.write(unpatched_openssl_rb)
70
+ end
71
+ else
72
+ embedded_ruby_lib_dir = get_sanitized_rbconfig("rubylibdir")
73
+ source_openssl_rb = File.join(embedded_ruby_lib_dir, "openssl.rb")
74
+ File.open(source_openssl_rb, "r+") do |f|
75
+ unpatched_openssl_rb = f.read
76
+ f.rewind
77
+ f.write(unpatched_openssl_rb)
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,81 @@
1
+ #
2
+ # Copyright 2014-2019 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-fips"
18
+ default_version "2.0.16"
19
+
20
+ license "OpenSSL"
21
+ license_file "https://www.openssl.org/source/license.html"
22
+ skip_transitive_dependency_licensing true
23
+
24
+ # HAHAHA According to the FIPS manual, you need to "securely" fetch the source
25
+ # such as asking some humans to mail you a CD-ROM or something.
26
+ # You are then supposed to manually verify the PGP signatures.
27
+ # When making an "official" build - make sure you go do that...
28
+ source url: "https://www.openssl.org/source/old/fips/openssl-fips-#{version}.tar.gz", extract: :lax_tar
29
+
30
+ version("2.0.16") {
31
+ source sha256: "a3cd13d0521d22dd939063d3b4a0d4ce24494374b91408a05bdaca8b681c63d4", \
32
+ url: "https://www.openssl.org/source/openssl-fips-#{version}.tar.gz", extract: :lax_tar
33
+ }
34
+ version("2.0.14") { source sha256: "8ea069ec39f9c49d85b9831b16daa29936b4527446998336cf93e575f07626c0" }
35
+ version("2.0.11") { source sha256: "a6532875956d357a05838ca2c9865b8eecac211543e4246512684b17acbbdfac" }
36
+ version("2.0.10") { source sha256: "a42ccf5f08a8b510c0c78da1ba889532a0ce24e772b576604faf09b4d6a0f771" }
37
+ version("2.0.9") { source md5: "c8256051d7a76471c6ad4fb771404e60" }
38
+
39
+ relative_path "openssl-fips-#{version}"
40
+
41
+ build do
42
+ # According to the FIPS manual, this is the only environment you are allowed
43
+ # to build it in, to ensure security.
44
+ env = {}
45
+ env["FIPSDIR"] = "#{install_dir}/embedded"
46
+
47
+ if windows?
48
+ default_env = with_standard_compiler_flags(with_embedded_path)
49
+
50
+ if windows_arch_i386?
51
+ # Patch Makefile.org to update the compiler flags/options table for mingw.
52
+ patch source: "openssl-fips-fix-compiler-flags-table-for-msys.patch", env: default_env
53
+
54
+ platform = "mingw"
55
+ else
56
+ platform = "mingw64"
57
+ end
58
+
59
+ configure_command = ["perl.exe ./Configure #{platform}"]
60
+ configure_command << "--prefix=#{install_dir}/embedded"
61
+ elsif ppc64? && rhel?
62
+ # you have to specify on el ppc64 (big-endian only) otherwise it has won't
63
+ # compile
64
+ configure_command = ["perl ./Configure linux-ppc64"]
65
+ configure_command << "--prefix=#{install_dir}/embedded"
66
+ elsif s390x?
67
+ configure_command = ["perl ./Configure linux64-s390x"]
68
+ configure_command << "--prefix=#{install_dir}/embedded"
69
+ # Unfortunately openssl-fips is not supported on s390x, so we have to tell it to
70
+ # compile solely in C
71
+ configure_command << "no-asm"
72
+ else
73
+ configure_command = ["./config"]
74
+ end
75
+
76
+ command configure_command.join(" "), env: env, in_msys_bash: true
77
+
78
+ # Cannot use -j with openssl :(.
79
+ make env: env
80
+ make "install", env: env
81
+ end