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,50 @@
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 "cacerts"
18
+
19
+ license "MPL-2.0"
20
+ license_file "https://www.mozilla.org/media/MPL/2.0/index.815ca599c9df.txt"
21
+ skip_transitive_dependency_licensing true
22
+
23
+ default_version "2022-10-11"
24
+
25
+ source url: "https://curl.se/ca/cacert-#{version}.pem"
26
+
27
+ # versions_list: https://curl.se/docs/caextract.html
28
+ version("2022-10-11") { source sha256: "2cff03f9efdaf52626bd1b451d700605dc1ea000c5da56bd0fc59f8f43071040" }
29
+ version("2022-07-19") { source sha256: "6ed95025fba2aef0ce7b647607225745624497f876d74ef6ec22b26e73e9de77" }
30
+ version("2022-04-26") { source sha256: "08df40e8f528ed283b0e480ba4bcdbfdd2fdcf695a7ada1668243072d80f8b6f" }
31
+ version("2022-03-29") { source sha256: "1979e7fe618c51ed1c9df43bba92f977a0d3fe7497ffa2a5e80dfc559a1e5a29" }
32
+ version("2022-02-01") { source sha256: "1d9195b76d2ea25c2b5ae9bee52d05075244d78fcd9c58ee0b6fac47d395a5eb" }
33
+ version("2021-10-26") { source sha256: "ae31ecb3c6e9ff3154cb7a55f017090448f88482f0e94ac927c0c67a1f33b9cf" }
34
+ version("2021-09-30") { source sha256: "f524fc21859b776e18df01a87880efa198112214e13494275dbcbd9bcb71d976" }
35
+
36
+ relative_path "cacerts-#{version}"
37
+
38
+ build do
39
+ mkdir "#{install_dir}/embedded/ssl/certs"
40
+
41
+ copy "#{project_dir}/cacert*.pem", "#{install_dir}/embedded/ssl/certs/cacert.pem"
42
+ copy "#{project_dir}/cacert*.pem", "#{install_dir}/embedded/ssl/cert.pem" if windows?
43
+
44
+ # Windows does not support symlinks
45
+ unless windows?
46
+ link "certs/cacert.pem", "#{install_dir}/embedded/ssl/cert.pem", unchecked: true
47
+
48
+ block { File.chmod(0644, "#{install_dir}/embedded/ssl/certs/cacert.pem") }
49
+ end
50
+ end
@@ -0,0 +1,35 @@
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
+ # expeditor/ignore: deprecated 2021-04
17
+
18
+ name "chef-gem"
19
+ default_version "11.12.2"
20
+
21
+ license "Apache-2.0"
22
+ license_file "https://raw.githubusercontent.com/chef/chef/main/LICENSE"
23
+
24
+ dependency "ruby"
25
+ dependency "libffi"
26
+ dependency "rb-readline"
27
+
28
+ build do
29
+ env = with_standard_compiler_flags(with_embedded_path)
30
+
31
+ gem "install chef" \
32
+ " --version '#{version}'" \
33
+ " --bindir '#{install_dir}/embedded/bin'" \
34
+ " --no-document", env: env
35
+ end
@@ -0,0 +1,112 @@
1
+ #
2
+ # Copyright:: Copyright (c) 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: no version pinning
17
+
18
+ name "chef"
19
+ default_version "main"
20
+
21
+ license "Apache-2.0"
22
+ license_file "LICENSE"
23
+
24
+ # Grab accompanying notice file.
25
+ # So that Open4/deep_merge/diff-lcs disclaimers are present in Omnibus LICENSES tree.
26
+ license_file "NOTICE"
27
+
28
+ # For the specific super-special version "local_source", build the source from
29
+ # the local git checkout. This is what you'd want to occur by default if you
30
+ # just ran omnibus build locally.
31
+ version("local_source") do
32
+ source path: "#{project.files_path}/../..",
33
+ # Since we are using the local repo, we try to not copy any files
34
+ # that are generated in the process of bundle installing omnibus.
35
+ # If the install steps are well-behaved, this should not matter
36
+ # since we only perform bundle and gem installs from the
37
+ # omnibus cache source directory, but we do this regardless
38
+ # to maintain consistency between what a local build sees and
39
+ # what a github based build will see.
40
+ options: { exclude: [ "omnibus/vendor" ] }
41
+ end
42
+
43
+ # For any version other than "local_source", fetch from github.
44
+ # This is the behavior the transitive omnibus software deps such as chef-dk
45
+ # expect.
46
+ if version != "local_source"
47
+ source git: "https://github.com/chef/chef.git"
48
+ end
49
+
50
+ relative_path "chef"
51
+
52
+ dependency "ruby"
53
+ dependency "libarchive" # for archive resource
54
+
55
+ build do
56
+ env = with_standard_compiler_flags(with_embedded_path)
57
+
58
+ # The --without groups here MUST match groups in https://github.com/chef/chef/blob/main/Gemfile
59
+ excluded_groups = %w{docgen chefstyle}
60
+ excluded_groups << "ruby_prof" if aix?
61
+ excluded_groups << "ruby_shadow" if aix?
62
+ excluded_groups << "ed25519" if solaris2?
63
+
64
+ # these are gems which are not shipped but which must be installed in the testers
65
+ bundle_excludes = excluded_groups + %w{development test}
66
+
67
+ bundle "install --without #{bundle_excludes.join(" ")}", env: env
68
+
69
+ ruby "post-bundle-install.rb", env: env
70
+
71
+ # use the rake install task to build/install chef-config/chef-utils
72
+ command "rake install:local", env: env
73
+
74
+ gemspec_name = if windows?
75
+ # Chef18 is built with ruby3.1 so platform name is changed.
76
+ RUBY_PLATFORM == "x64-mingw-ucrt" ? "chef-universal-mingw-ucrt.gemspec" : "chef-universal-mingw32.gemspec"
77
+ else
78
+ "chef.gemspec"
79
+ end
80
+
81
+ # This step will build native components as needed - the event log dll is
82
+ # generated as part of this step. This is why we need devkit.
83
+ gem "build #{gemspec_name}", env: env
84
+
85
+ # ensure we put the gems in the right place to get picked up by the publish scripts
86
+ delete "pkg"
87
+ mkdir "pkg"
88
+ copy "chef*.gem", "pkg"
89
+
90
+ # Always deploy the powershell modules in the correct place.
91
+ if windows?
92
+ mkdir "#{install_dir}/modules/chef"
93
+ copy "distro/powershell/chef/*", "#{install_dir}/modules/chef"
94
+ end
95
+
96
+ block do
97
+ appbundle "chef", lockdir: project_dir, gem: "inspec-core-bin", without: excluded_groups, env: env
98
+ appbundle "chef", lockdir: project_dir, gem: "chef-bin", without: excluded_groups, env: env
99
+ appbundle "chef", lockdir: project_dir, gem: "chef", without: excluded_groups, env: env
100
+ appbundle "chef", lockdir: project_dir, gem: "ohai", without: excluded_groups, env: env
101
+ end
102
+
103
+ # The rubyzip gem ships with some test fixture data compressed in a format Apple's notarization service
104
+ # cannot understand. We need to delete that archive to pass notarization.
105
+ block "Delete test folder of rubyzip gem so downstream projects pass notarization" do
106
+ env["VISUAL"] = "echo"
107
+ %w{rubyzip}.each do |gem|
108
+ gem_install_dir = shellout!("#{install_dir}/embedded/bin/gem open #{gem}", env: env).stdout.chomp
109
+ remove_directory "#{gem_install_dir}/test"
110
+ end
111
+ end
112
+ 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
+ # expeditor/ignore: deprecated 2021-11
17
+
18
+ name "cmake"
19
+ default_version "3.19.7"
20
+
21
+ dependency "cacerts"
22
+
23
+ license "BSD-3-Clause"
24
+ skip_transitive_dependency_licensing true
25
+
26
+ if windows?
27
+ if windows_arch_i386?
28
+ # version_list: url=https://cmake.org/files/v3.20/ filter=*-windows-i386.zip
29
+ version("3.20.0") { source sha256: "6df4c34f7d2735100ebae91e6d2d37b3c3c7b81e93decce9f4926a4e505affbc" }
30
+
31
+ # version_list: url=https://cmake.org/files/v3.19/ filter=*-win32-x86.zip
32
+ version("3.19.7") { source sha256: "7771205d94022787bc4c3a623629d236b10bf697315e9f92c214dd8b53e8746e" }
33
+
34
+ # version_list: url=https://cmake.org/files/v3.18/ filter=*-win32-x86.zip
35
+ version("3.18.6") { source sha256: "f6531568def18afecf3d54abd7ccf1f9cf092c683b14fde36b47910c7f822e8d" }
36
+ version("3.18.1") { source sha256: "1a20c049e094d9ad49caca4b4d713c75c924a3885ecec4ed3986344aab05b6eb" }
37
+ else
38
+ # version_list: url=https://cmake.org/files/v3.20/ filter=*-windows-x86_64.zip
39
+ version("3.20.0") { source sha256: "056378cb599353479c3a8aa2654454b8a3eaa3c8c0872928ba7e09c3ec50774c" }
40
+
41
+ # version_list: url=https://cmake.org/files/v3.19/ filter=*-win64-x64.zip
42
+ version("3.19.7") { source sha256: "e6788d6e23b3026c37fcfa7658075d6b5f9113f26fae17fe372ad4a7ee62d5fd" }
43
+
44
+ # version_list: url=https://cmake.org/files/v3.18/ filter=*-win64-x64.zip
45
+ version("3.18.6") { source sha256: "6a7166841bf2d72d56b5ff8c7c7606901bd8a0d87194f509b759d3ae3b6fdd6e" }
46
+ version("3.18.1") { source sha256: "2c6c06da43c1088fc3a673e4440c8ebb1531bb6511134892c0589aa0b94f11ad" }
47
+ end
48
+ else
49
+ # version_list: url=https://cmake.org/files/v3.20/ filter=*.tar.gz
50
+ version("3.20.0") { source sha256: "9c06b2ddf7c337e31d8201f6ebcd3bba86a9a033976a9aee207fe0c6971f4755" }
51
+
52
+ # version_list: url=https://cmake.org/files/v3.19/ filter=*.tar.gz default_version=true
53
+ version("3.19.7") { source sha256: "58a15f0d56a0afccc3cc5371234fce73fcc6c8f9dbd775d898e510b83175588e" }
54
+
55
+ # version_list: url=https://cmake.org/files/v3.18/ filter=*.tar.gz
56
+ version("3.18.6") { source sha256: "124f571ab70332da97a173cb794dfa09a5b20ccbb80a08e56570a500f47b6600" }
57
+ version("3.18.1") { source sha256: "c0e3338bd37e67155b9d1e9526fec326b5c541f74857771b7ffed0c46ad62508" }
58
+ end
59
+
60
+ minor_version = version.split(".")[0..1].join(".")
61
+
62
+ if windows?
63
+ if windows_arch_i386?
64
+ suffix = version.satisfies?(">= 3.20") ? "windows-i386" : "win32-x86"
65
+ source url: "https://cmake.org/files/v#{minor_version}/cmake-#{version}-#{suffix}.zip"
66
+ relative_path "cmake-#{version}-win32-x86"
67
+ license_file "doc/cmake/Copyright.txt"
68
+ else
69
+ suffix = version.satisfies?(">= 3.20") ? "windows-x86_64" : "win32-x64"
70
+ source url: "https://cmake.org/files/v#{minor_version}/cmake-#{version}-#{suffix}.zip"
71
+ relative_path "cmake-#{version}-win64-x64"
72
+ license_file "doc/cmake/Copyright.txt"
73
+ end
74
+ else
75
+ source url: "https://cmake.org/files/v#{minor_version}/cmake-#{version}.tar.gz"
76
+ relative_path "cmake-#{version}"
77
+ license_file "Copyright.txt"
78
+ end
79
+
80
+ build do
81
+ # It's hard-slash-impossible to build cmake on windows without cmake, so we don't even try
82
+ if windows?
83
+ copy "bin/cmake.exe", "#{install_dir}/embedded/bin"
84
+ copy "share/cmake-3.18", "#{install_dir}/embedded/share/"
85
+ copy "share/aclocal/cmake.m4", "#{install_dir}/embedded/share/aclocal/"
86
+ else
87
+ env = with_standard_compiler_flags(with_embedded_path)
88
+
89
+ command "./bootstrap --prefix=#{install_dir}/embedded", env: env
90
+
91
+ make "-j #{workers}", env: env
92
+ make "install", env: env
93
+ end
94
+ end
@@ -0,0 +1,37 @@
1
+ #
2
+ # Copyright 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
+ # expeditor/ignore: no version pinning
17
+
18
+ name "config_guess"
19
+ default_version "master"
20
+
21
+ # Use our github mirror of the savannah repository
22
+ source git: "https://github.com/chef/config-mirror.git"
23
+
24
+ # http://savannah.gnu.org/projects/config
25
+ license "GPL-3.0 (with exception)"
26
+ license_file "config.guess"
27
+ license_file "config.sub"
28
+ skip_transitive_dependency_licensing true
29
+
30
+ relative_path "config_guess-#{version}"
31
+
32
+ build do
33
+ mkdir "#{install_dir}/embedded/lib/config_guess"
34
+
35
+ copy "#{project_dir}/config.guess", "#{install_dir}/embedded/lib/config_guess/config.guess"
36
+ copy "#{project_dir}/config.sub", "#{install_dir}/embedded/lib/config_guess/config.sub"
37
+ end
@@ -0,0 +1,49 @@
1
+ #
2
+ # Copyright 2014 Chef Software, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ name "cpanminus"
18
+ default_version "1.7046"
19
+
20
+ license "Artistic-2.0"
21
+ license_file "http://dev.perl.org/licenses/artistic.html"
22
+ skip_transitive_dependency_licensing true
23
+
24
+ dependency "perl"
25
+
26
+ # version_list: url=https://metacpan.org/pod/App::cpanminus filter=*.tar.gz
27
+
28
+ version("1.7046") { source sha256: "cefc58349f9f741aba82b8ed3d672265b53ca4e4183f72613fce06d6ab97d30c" }
29
+ version("1.7045") { source sha256: "f2ab7e18a695960ac07f072b369c1bf113ae278bf81aa807b3f4bdaf098df34d" }
30
+ version("1.7040") { source sha256: "48a747c040689445f7db0edd169da0abd709a37cfece3ceecff0816c09beab0e" }
31
+ version("1.7004") { source sha256: "5cef499d12418a877c68070fc14193bd700d47a286d95e16c517f9673493af79" }
32
+
33
+ source url: "https://github.com/miyagawa/cpanminus/archive/#{version}.tar.gz"
34
+
35
+ relative_path "cpanminus-#{version}"
36
+
37
+ build do
38
+ env = with_standard_compiler_flags(with_embedded_path)
39
+
40
+ command "cat cpanm | perl - App::cpanminus", env: env
41
+ end
42
+
43
+ # Perl after 5.18 does not come with this by default
44
+ build do
45
+ env = with_standard_compiler_flags(with_embedded_path)
46
+
47
+ command "cpanm Module::Build", env: env
48
+ end
49
+
@@ -0,0 +1,103 @@
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 "curl"
18
+ default_version "7.84.0"
19
+
20
+ dependency "zlib"
21
+ dependency "openssl"
22
+ dependency "cacerts"
23
+
24
+ license "MIT"
25
+ license_file "COPYING"
26
+ skip_transitive_dependency_licensing true
27
+
28
+ # version_list: url=https://curl.se/download/ filter=*.tar.gz
29
+ version("7.85.0") { source sha256: "78a06f918bd5fde3c4573ef4f9806f56372b32ec1829c9ec474799eeee641c27" }
30
+ version("7.84.0") { source sha256: "3c6893d38d054d4e378267166858698899e9d87258e8ff1419d020c395384535" }
31
+ version("7.83.1") { source sha256: "93fb2cd4b880656b4e8589c912a9fd092750166d555166370247f09d18f5d0c0" }
32
+ version("7.82.0") { source sha256: "910cc5fe279dc36e2cca534172c94364cf3fcf7d6494ba56e6c61a390881ddce" }
33
+ version("7.81.0") { source sha256: "ac8e1087711084548d788ef18b9b732c8de887457b81f616fc681d1044b32f98" }
34
+ version("7.80.0") { source sha256: "dab997c9b08cb4a636a03f2f7f985eaba33279c1c52692430018fae4a4878dc7" }
35
+ version("7.79.1") { source sha256: "370b11201349816287fb0ccc995e420277fbfcaf76206e309b3f60f0eda090c2" }
36
+
37
+ source url: "https://curl.haxx.se/download/curl-#{version}.tar.gz"
38
+
39
+ relative_path "curl-#{version}"
40
+
41
+ build do
42
+ env = with_standard_compiler_flags(with_embedded_path)
43
+
44
+ if freebsd? && version.satisfies?("< 7.82.0")
45
+ # from freebsd ports - IPv6 Hostcheck patch
46
+ patch source: "curl-freebsd-hostcheck.patch", plevel: 1, env: env
47
+ end
48
+
49
+ delete "#{project_dir}/src/tool_hugehelp.c"
50
+
51
+ if aix?
52
+ # alpn doesn't appear to work on AIX when connecting to certain sites, most
53
+ # importantly for us https://www.github.com Since git uses libcurl under
54
+ # the covers, this functionality breaks the handshake on connection, giving
55
+ # a cryptic error. This patch essentially forces disabling of ALPN on AIX,
56
+ # which is not really what we want in a http/2 world, but we're not there
57
+ # yet.
58
+ patch_env = env.dup
59
+ patch_env["PATH"] = "/opt/freeware/bin:#{env["PATH"]}" if aix?
60
+ patch source: "curl-aix-disable-alpn.patch", plevel: 0, env: patch_env
61
+
62
+ # otherwise gawk will die during ./configure with variations on the theme of:
63
+ # "/opt/omnibus-toolchain/embedded/lib/libiconv.a(shr4.o) could not be loaded"
64
+ env["LIBPATH"] = "/usr/lib:/lib"
65
+ elsif solaris2?
66
+ # Without /usr/gnu/bin first in PATH the libtool fails during make on Solaris
67
+ env["PATH"] = "/usr/gnu/bin:#{env["PATH"]}"
68
+ end
69
+
70
+ configure_options = [
71
+ "--prefix=#{install_dir}/embedded",
72
+ "--disable-option-checking",
73
+ "--disable-manual",
74
+ "--disable-debug",
75
+ "--enable-optimize",
76
+ "--disable-ldap",
77
+ "--disable-ldaps",
78
+ "--disable-rtsp",
79
+ "--enable-proxy",
80
+ "--disable-pop3",
81
+ "--disable-imap",
82
+ "--disable-smtp",
83
+ "--disable-gopher",
84
+ "--disable-dependency-tracking",
85
+ "--enable-ipv6",
86
+ "--without-brotli",
87
+ "--without-libidn2",
88
+ "--without-gnutls",
89
+ "--without-librtmp",
90
+ "--without-zsh-functions-dir",
91
+ "--without-fish-functions-dir",
92
+ "--disable-mqtt",
93
+ "--with-ssl=#{install_dir}/embedded",
94
+ "--with-zlib=#{install_dir}/embedded",
95
+ "--with-ca-bundle=#{install_dir}/embedded/ssl/certs/cacert.pem",
96
+ "--without-zstd",
97
+ ]
98
+
99
+ configure(*configure_options, env: env)
100
+
101
+ make "-j #{workers}", env: env
102
+ make "install", env: env
103
+ end
@@ -0,0 +1,89 @@
1
+ #
2
+ # Copyright 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
+ # expeditor/ignore: no version pinning
17
+
18
+ name "delivery-cli"
19
+ # Delivery CLI is only pushed to the main branch of Github after it
20
+ # is successfully Delivered. So pulling in the "main" version
21
+ # will always give you the latest Delivered version.
22
+ default_version "main"
23
+
24
+ license "Apache-2.0"
25
+ license_file "LICENSE"
26
+
27
+ source git: "https://github.com/chef/delivery-cli.git"
28
+
29
+ dependency "openssl"
30
+ dependency "rust"
31
+
32
+ build do
33
+ env = with_standard_compiler_flags(with_embedded_path)
34
+ env["RUST_BACKTRACE"] = "1"
35
+
36
+ # The rust core libraries are dynamicaly linked
37
+ if linux?
38
+ env["LD_LIBRARY_PATH"] = "#{install_dir}/embedded/lib"
39
+ elsif mac_os_x? &&
40
+ platform_version.satisfies?("< 10.13") # Setting DYLD PATH fails builds with library conflicts in 10.13
41
+ env["DYLD_FALLBACK_LIBRARY_PATH"] = "#{install_dir}/embedded/lib:"
42
+ end
43
+
44
+ # pass version info into the build
45
+ env["DELIV_CLI_VERSION"] = version
46
+ env["DELIV_CLI_GIT_SHA"] = Omnibus::Fetcher.resolve_version(version, source)
47
+
48
+ if windows?
49
+ copy "#{install_dir}/embedded/bin/ssleay32.dll", "#{install_dir}/embedded/bin/libssl32.dll"
50
+ env["OPENSSL_LIB_DIR"] = "#{install_dir}/embedded/bin"
51
+ end
52
+
53
+ command "cargo build -j #{workers} --release", env: env
54
+
55
+ mkdir "#{install_dir}/bin"
56
+
57
+ if windows?
58
+ copy "#{project_dir}/target/release/delivery.exe", "#{install_dir}/bin/delivery.exe"
59
+ # When using `openssl` dependency, by default it builds the libraries inside
60
+ # `embedded/bin/`. We are copying the libs inside `bin/`.
61
+ copy "#{install_dir}/embedded/bin/ssleay32.dll", "#{install_dir}/bin/ssleay32.dll"
62
+ copy "#{install_dir}/embedded/bin/libeay32.dll", "#{install_dir}/bin/libeay32.dll"
63
+ copy "#{install_dir}/embedded/bin/zlib1.dll", "#{install_dir}/bin/zlib1.dll"
64
+
65
+ # Needed now that we switched to installed version of msys2 and have not figured out how to tell
66
+ # it how to statically link yet
67
+ dlls = ["libwinpthread-1"]
68
+ if windows_arch_i386?
69
+ dlls << "libgcc_s_dw2-1"
70
+ else
71
+ dlls << "libgcc_s_seh-1"
72
+ end
73
+ dlls.each do |dll|
74
+ mingw = ENV["MSYSTEM"].downcase
75
+ # Starting omnibus-toolchain version 1.1.115 we do not build msys2 as a part of omnibus-toolchain anymore, but pre install it in image
76
+ # so here we set the path to default install of msys2 first and default to OMNIBUS_TOOLCHAIN_INSTALL_DIR for backward compatibility
77
+ msys_path = ENV["MSYS2_INSTALL_DIR"] ? "#{ENV["MSYS2_INSTALL_DIR"]}" : "#{ENV["OMNIBUS_TOOLCHAIN_INSTALL_DIR"]}/embedded/bin"
78
+ windows_path = "#{msys_path}/#{mingw}/bin/#{dll}.dll"
79
+ if File.exist?(windows_path)
80
+ copy windows_path, "#{install_dir}/bin/#{dll}.dll"
81
+ else
82
+ raise "Cannot find required DLL needed for dynamic linking: #{windows_path}"
83
+ end
84
+ end
85
+
86
+ else
87
+ copy "#{project_dir}/target/release/delivery", "#{install_dir}/bin/delivery"
88
+ end
89
+ end
@@ -0,0 +1,48 @@
1
+ #
2
+ # Copyright 2014-2018 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-04
17
+
18
+ name "dep-selector-libgecode"
19
+ default_version "1.3.1"
20
+
21
+ license "Apache-2.0"
22
+ license_file "https://raw.githubusercontent.com/chef/dep-selector-libgecode/master/LICENSE"
23
+ # dep-selector-libgecode does not have any dependencies. We only install it from
24
+ # rubygems here.
25
+ skip_transitive_dependency_licensing true
26
+
27
+ dependency "ruby"
28
+
29
+ build do
30
+ env = with_standard_compiler_flags(with_embedded_path)
31
+
32
+ # On some RHEL-based systems, the default GCC that's installed is 4.1. We
33
+ # need to use 4.4, which is provided by the gcc44 and gcc44-c++ packages.
34
+ # These do not use the gcc binaries so we set the flags to point to the
35
+ # correct version here.
36
+ if File.exist?("/usr/bin/gcc44")
37
+ env["CC"] = "gcc44"
38
+ env["CXX"] = "g++44"
39
+ end
40
+
41
+ # Ruby DevKit ships with BSD Tar
42
+ env["PROG_TAR"] = "bsdtar" if windows?
43
+ env["ARFLAGS"] = "rv #{env["ARFLAGS"]}" if env["ARFLAGS"]
44
+
45
+ gem "install dep-selector-libgecode" \
46
+ " --version '#{version}'" \
47
+ " --no-document", env: env
48
+ end