omnibus-software 22.11.239

Sign up to get free protection for your applications and to get access to all the features.
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