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,185 @@
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
+
17
+ name "openssl"
18
+
19
+ license "OpenSSL"
20
+ license_file "LICENSE"
21
+ skip_transitive_dependency_licensing true
22
+
23
+ dependency "cacerts"
24
+ dependency "openssl-fips" if fips_mode?
25
+
26
+ default_version "1.0.2zb" # do_not_auto_update
27
+
28
+ # Openssl builds engines as libraries into a special directory. We need to include
29
+ # that directory in lib_dirs so omnibus can sign them during macOS deep signing.
30
+ lib_dirs lib_dirs.concat(["#{install_dir}/embedded/lib/engines"])
31
+ lib_dirs lib_dirs.concat(["#{install_dir}/embedded/lib/engines-1.1"]) if version.start_with?("1.1")
32
+ if version.start_with?("3.")
33
+ lib_dirs lib_dirs.concat(["#{install_dir}/embedded/lib/engines-3"])
34
+ lib_dirs lib_dirs.concat(["#{install_dir}/embedded/lib/ossl-modules"])
35
+ end
36
+
37
+ # 1.0.2u was the last public release of 1.0.2. Subsequent releases come from a support contract with OpenSSL Software Services
38
+ if version.satisfies?("< 1.1.0")
39
+ source url: "https://s3.amazonaws.com/chef-releng/openssl/openssl-#{version}.tar.gz", extract: :lax_tar
40
+ else
41
+ # As of 2020-09-09 even openssl-1.0.0.tar.gz can be downloaded from /source/openssl-VERSION.tar.gz
42
+ # However, the latest releases are not in /source/old/VERSION/openssl-VERSION.tar.gz.
43
+ # Let's stick with the simpler one for now.
44
+ source url: "https://www.openssl.org/source/openssl-#{version}.tar.gz", extract: :lax_tar
45
+ end
46
+
47
+ version("3.0.5") { source sha256: "aa7d8d9bef71ad6525c55ba11e5f4397889ce49c2c9349dcea6d3e4f0b024a7a" }
48
+ version("3.0.4") { source sha256: "2831843e9a668a0ab478e7020ad63d2d65e51f72977472dc73efcefbafc0c00f" }
49
+ version("3.0.3") { source sha256: "ee0078adcef1de5f003c62c80cc96527721609c6f3bb42b7795df31f8b558c0b" }
50
+ version("3.0.1") { source sha256: "c311ad853353bce796edad01a862c50a8a587f62e7e2100ef465ab53ec9b06d1" } # only ruby 3.1 supports openssl-3.0.1
51
+ version("1.1.1q") { source sha256: "d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" }
52
+ version("1.1.1p") { source sha256: "bf61b62aaa66c7c7639942a94de4c9ae8280c08f17d4eac2e44644d9fc8ace6f" }
53
+ version("1.1.1o") { source sha256: "9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" }
54
+ version("1.1.1m") { source sha256: "f89199be8b23ca45fc7cb9f1d8d3ee67312318286ad030f5316aca6462db6c96" }
55
+ version("1.1.1l") { source sha256: "0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" }
56
+ version("1.0.2zb") { source sha256: "b7d8f8c895279caa651e7f3de9a7b87b8dd01a452ca3d9327f45a9ef31d0c518" }
57
+ version("1.0.2za") { source sha256: "86ec5d2ecb53839e9ec999db7f8715d0eb7e534d8a1d8688ef25280fbeee2ff8" }
58
+
59
+ relative_path "openssl-#{version}"
60
+
61
+ build do
62
+ env = with_standard_compiler_flags(with_embedded_path)
63
+ if aix?
64
+ env["M4"] = "/opt/freeware/bin/m4"
65
+ elsif mac_os_x? && arm?
66
+ env["CFLAGS"] << " -Qunused-arguments"
67
+ elsif windows?
68
+ # XXX: OpenSSL explicitly sets -march=i486 and expects that to be honored.
69
+ # It has OPENSSL_IA32_SSE2 controlling whether it emits optimized SSE2 code
70
+ # and the 32-bit calling convention involving XMM registers is... vague.
71
+ # Do not enable SSE2 generally because the hand optimized assembly will
72
+ # overwrite registers that mingw expects to get preserved.
73
+ env["CFLAGS"] = "-I#{install_dir}/embedded/include"
74
+ env["CPPFLAGS"] = env["CFLAGS"]
75
+ env["CXXFLAGS"] = env["CFLAGS"]
76
+ end
77
+
78
+ configure_args = [
79
+ "--prefix=#{install_dir}/embedded",
80
+ "no-unit-test",
81
+ "no-comp",
82
+ "no-idea",
83
+ "no-mdc2",
84
+ "no-rc5",
85
+ "no-ssl2",
86
+ "no-ssl3",
87
+ "no-zlib",
88
+ "shared",
89
+ ]
90
+
91
+ configure_args += ["--libdir=#{install_dir}/embedded/lib"] if version.satisfies?(">=3.0.1")
92
+
93
+ # https://www.openssl.org/blog/blog/2021/09/13/LetsEncryptRootCertExpire/
94
+ configure_args += [ "-DOPENSSL_TRUSTED_FIRST_DEFAULT" ] if version.satisfies?(">= 1.0.2zb") && version.satisfies?("< 1.1.0")
95
+
96
+ configure_args += ["--with-fipsdir=#{install_dir}/embedded", "fips"] if fips_mode?
97
+
98
+ configure_cmd =
99
+ if aix?
100
+ "perl ./Configure aix64-cc"
101
+ elsif mac_os_x?
102
+ intel? ? "./Configure darwin64-x86_64-cc" : "./Configure darwin64-arm64-cc no-asm"
103
+ elsif smartos?
104
+ "/bin/bash ./Configure solaris64-x86_64-gcc -static-libgcc"
105
+ elsif omnios?
106
+ "/bin/bash ./Configure solaris-x86-gcc"
107
+ elsif solaris2?
108
+ platform = sparc? ? "solaris64-sparcv9-gcc" : "solaris64-x86_64-gcc"
109
+ if version.satisfies?("< 1.1.0")
110
+ "/bin/bash ./Configure #{platform} -static-libgcc"
111
+ else
112
+ "./Configure #{platform} -static-libgcc"
113
+ end
114
+ elsif windows?
115
+ platform = windows_arch_i386? ? "mingw" : "mingw64"
116
+ "perl.exe ./Configure #{platform}"
117
+ else
118
+ prefix =
119
+ if linux? && ppc64?
120
+ "./Configure linux-ppc64"
121
+ elsif linux? && s390x?
122
+ # With gcc > 4.3 on s390x there is an error building
123
+ # with inline asm enabled
124
+ "./Configure linux64-s390x -DOPENSSL_NO_INLINE_ASM"
125
+ else
126
+ "./config"
127
+ end
128
+ "#{prefix} disable-gost"
129
+ end
130
+
131
+ patch_env = if aix?
132
+ # This enables omnibus to use 'makedepend'
133
+ # from fileset 'X11.adt.imake' (AIX install media)
134
+ env["PATH"] = "/usr/lpp/X11/bin:#{ENV["PATH"]}"
135
+ penv = env.dup
136
+ penv["PATH"] = "/opt/freeware/bin:#{env["PATH"]}"
137
+ penv
138
+ else
139
+ env
140
+ end
141
+
142
+ if version.start_with? "1.0"
143
+ patch source: "openssl-1.0.1f-do-not-build-docs.patch", env: patch_env
144
+ elsif version.start_with? "1.1"
145
+ patch source: "openssl-1.1.0f-do-not-install-docs.patch", env: patch_env
146
+ elsif version.start_with? "3.0"
147
+ patch source: "openssl-3.0.1-do-not-install-docs.patch", env: patch_env
148
+ end
149
+
150
+ if version.start_with?("1.0.2") && mac_os_x? && arm?
151
+ patch source: "openssl-1.0.2x-darwin-arm64.patch"
152
+ end
153
+
154
+ if version.start_with?("1.0.2") && windows?
155
+ # Patch Makefile.org to update the compiler flags/options table for mingw.
156
+ patch source: "openssl-1.0.1q-fix-compiler-flags-table-for-msys.patch", env: env
157
+ end
158
+
159
+ # Out of abundance of caution, we put the feature flags first and then
160
+ # the crazy platform specific compiler flags at the end.
161
+ configure_args << env["CFLAGS"]
162
+
163
+ configure_command = configure_args.unshift(configure_cmd).join(" ")
164
+
165
+ command configure_command, env: env, in_msys_bash: true
166
+
167
+ if version.start_with?("1.0.2") && windows?
168
+ patch source: "openssl-1.0.1j-windows-relocate-dll.patch", env: env
169
+ end
170
+
171
+ make "depend", env: env
172
+ # make -j N on openssl is not reliable
173
+ make env: env
174
+ if aix?
175
+ # We have to sudo this because you can't actually run slibclean without being root.
176
+ # Something in openssl changed in the build process so now it loads the libcrypto
177
+ # and libssl libraries into AIX's shared library space during the first part of the
178
+ # compile. This means we need to clear the space since it's not being used and we
179
+ # can't install the library that is already in use. Ideally we would patch openssl
180
+ # to make this not be an issue.
181
+ # Bug Ref: http://rt.openssl.org/Ticket/Display.html?id=2986&user=guest&pass=guest
182
+ command "sudo /usr/sbin/slibclean", env: env
183
+ end
184
+ make "install", env: env
185
+ end
@@ -0,0 +1,46 @@
1
+ #
2
+ # Copyright 2015-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
+
17
+ name "patch"
18
+
19
+ dependency "config_guess"
20
+
21
+ license "GPL-3.0"
22
+ license_file "COPYING"
23
+ skip_transitive_dependency_licensing true
24
+
25
+ default_version "2.7.6"
26
+
27
+ # version_list: url=https://ftp.gnu.org/gnu/patch/ filter=*.tar.gz
28
+
29
+ version("2.7.6") { source sha256: "8cf86e00ad3aaa6d26aca30640e86b0e3e1f395ed99f189b06d4c9f74bc58a4e" }
30
+ version("2.7.5") { source sha256: "7436f5a19f93c3ca83153ce9c5cbe4847e97c5d956e57a220121e741f6e7968f" }
31
+ version("2.7") { source sha256: "59c29f56faa0a924827e6a60c6accd6e2900eae5c6aaa922268c717f06a62048" }
32
+
33
+ source url: "https://ftp.gnu.org/gnu/patch/patch-#{version}.tar.gz"
34
+
35
+ relative_path "patch-#{version}"
36
+
37
+ env = with_standard_compiler_flags(with_embedded_path)
38
+
39
+ build do
40
+
41
+ update_config_guess(target: "build-aux")
42
+
43
+ configure "--disable-xattr", env: env
44
+ make "-j #{workers}", env: env
45
+ make "-j #{workers} install", env: env
46
+ end
@@ -0,0 +1,66 @@
1
+ #
2
+ # Copyright 2019-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
+ # This software definition installs project called 'patchelf' which can be
18
+ # used to change rpath of a precompiled binary.
19
+
20
+ name "patchelf"
21
+
22
+ default_version "0.13.1" # version greater than 0.13.1 require C++17 compiler to build
23
+
24
+ license :project_license
25
+
26
+ skip_transitive_dependency_licensing true
27
+
28
+ # version_list: url=https://github.com/NixOS/patchelf/releases filter=*.tar.gz
29
+
30
+ version "0.15.0" do
31
+ source sha256: "53a8d58ed4e060412b8fdcb6489562b3c62be6f65cee5af30eba60f4423bfa0f"
32
+ relative_path "patchelf-#{version}"
33
+ end
34
+
35
+ version "0.14.5" do
36
+ source sha256: "113ada3f1ace08f0a7224aa8500f1fa6b08320d8f7df05ff58585286ec5faa6f"
37
+ relative_path "patchelf-#{version}"
38
+ end
39
+
40
+ version "0.13.1" do
41
+ source sha256: "08c0237e89be74d61ddf8f6ff218439cdd62af572d568fb38913b53e222831de"
42
+ relative_path "patchelf-0.13.1.20211127.72b6d44"
43
+ end
44
+
45
+ version "0.11" do
46
+ source sha256: "e52378cc2f9379c6e84a04ac100a3589145533a7b0cd26ef23c79dfd8a9038f9"
47
+ relative_path "patchelf-0.11.20200609.d6b2a72"
48
+ end
49
+
50
+ version "0.10" do
51
+ source sha256: "b2deabce05c34ce98558c0efb965f209de592197b2c88e930298d740ead09019"
52
+ relative_path "patchelf-0.10"
53
+ end
54
+
55
+ if version.satisfies?(">= 0.12")
56
+ source url: "https://github.com/NixOS/patchelf/releases/download/#{version}/patchelf-#{version}.tar.gz"
57
+ else
58
+ source url: "https://nixos.org/releases/patchelf/patchelf-#{version}/patchelf-#{version}.tar.gz"
59
+ end
60
+
61
+ build do
62
+ env = with_standard_compiler_flags(with_embedded_path)
63
+ configure "--prefix #{install_dir}/embedded"
64
+ make env: env
65
+ make "install", env: env
66
+ end
@@ -0,0 +1,53 @@
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 "pcre"
18
+ default_version "8.45"
19
+
20
+ license "BSD-2-Clause"
21
+ license_file "LICENCE"
22
+ skip_transitive_dependency_licensing true
23
+
24
+ dependency "libedit"
25
+ dependency "ncurses"
26
+ dependency "config_guess"
27
+
28
+ # version_list: url=https://sourceforge.net/projects/pcre/files/pcre/ filter=*.tar.gz
29
+
30
+ version("8.45") { source sha256: "4e6ce03e0336e8b4a3d6c2b70b1c5e18590a5673a98186da90d4f33c23defc09" }
31
+ version("8.44") { source sha256: "aecafd4af3bd0f3935721af77b889d9024b2e01d96b58471bd91a3063fb47728" }
32
+ version("8.38") { source sha256: "9883e419c336c63b0cb5202b09537c140966d585e4d0da66147dc513da13e629" }
33
+
34
+ source url: "https://downloads.sourceforge.net/project/pcre/pcre/#{version}/pcre-#{version}.tar.gz"
35
+
36
+ relative_path "pcre-#{version}"
37
+
38
+ build do
39
+ env = with_standard_compiler_flags(with_embedded_path)
40
+
41
+ update_config_guess
42
+
43
+ command "./configure" \
44
+ " --prefix=#{install_dir}/embedded" \
45
+ " --disable-cpp" \
46
+ " --enable-utf" \
47
+ " --enable-unicode-properties" \
48
+ " --enable-pcretest-libedit" \
49
+ "--disable-pcregrep-jit", env: env
50
+
51
+ make "-j #{workers}", env: env
52
+ make "install", env: env
53
+ end
@@ -0,0 +1,37 @@
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
+ # expeditor/ignore: deprecated 2021-04
17
+
18
+ name "perl-extutils-embed"
19
+ default_version "1.14"
20
+
21
+ dependency "perl"
22
+
23
+ source url: "http://search.cpan.org/CPAN/authors/id/D/DO/DOUGM/ExtUtils-Embed-#{version}.tar.gz",
24
+ md5: "b2a2c26a18bca3ce69f8a0b1b54a0105"
25
+
26
+ relative_path "ExtUtils-Embed-#{version}"
27
+
28
+ build do
29
+ env = with_standard_compiler_flags(with_embedded_path).merge(
30
+ "INSTALL_BASE" => "#{install_dir}/embedded"
31
+ )
32
+
33
+ command "#{install_dir}/embedded/bin/perl Makefile.PL", env: env
34
+
35
+ make env: env
36
+ make "install", env: env
37
+ end
@@ -0,0 +1,46 @@
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
+ # expeditor/ignore: deprecated 2021-04
17
+
18
+ name "perl-extutils-makemaker"
19
+ default_version "6.78"
20
+
21
+ dependency "perl"
22
+
23
+ version "6.98" do
24
+ source md5: "3eb83b59e33159ecc700bf60ac3c357a"
25
+ end
26
+ version "6.78" do
27
+ source md5: "843886bc1060b5e5c619e34029343eba"
28
+ end
29
+ version "7.10" do
30
+ source md5: "2639a21adee5e0a903730c12dcba08ec"
31
+ end
32
+
33
+ source url: "http://search.cpan.org/CPAN/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-#{version}.tar.gz"
34
+
35
+ relative_path "ExtUtils-MakeMaker-#{version}"
36
+
37
+ build do
38
+ env = with_standard_compiler_flags(with_embedded_path).merge(
39
+ "INSTALL_BASE" => "#{install_dir}/embedded"
40
+ )
41
+
42
+ command "#{install_dir}/embedded/bin/perl Makefile.PL", env: env
43
+
44
+ make env: env
45
+ make "install", env: env
46
+ end
@@ -0,0 +1,40 @@
1
+ #
2
+ # Copyright 2019 Oregon State University
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 "perl-thread-queue"
19
+ default_version "3.13"
20
+
21
+ dependency "perl"
22
+
23
+ version "3.13" do
24
+ source sha256: "6ba3dacddd2fbb66822b4aa1d11a0a5273cd04c825cb3ff31c20d7037cbfdce8"
25
+ end
26
+
27
+ source url: "http://search.cpan.org/CPAN/authors/id/J/JD/JDHEDDEN/Thread-Queue-#{version}.tar.gz"
28
+
29
+ relative_path "Thread-Queue-#{version}"
30
+
31
+ build do
32
+ env = with_standard_compiler_flags(with_embedded_path).merge(
33
+ "INSTALL_BASE" => "#{install_dir}/embedded"
34
+ )
35
+
36
+ command "#{install_dir}/embedded/bin/perl Makefile.PL", env: env
37
+
38
+ make env: env
39
+ make "install", env: env
40
+ end
@@ -0,0 +1,78 @@
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 "perl"
18
+
19
+ license "Artistic-2.0"
20
+ license_file "Artistic"
21
+ skip_transitive_dependency_licensing true
22
+
23
+ default_version "5.36.0"
24
+
25
+ # versions_list: http://www.cpan.org/src/ filter=*.tar.gz
26
+ version("5.36.0") { source sha256: "e26085af8ac396f62add8a533c3a0ea8c8497d836f0689347ac5abd7b7a4e00a" }
27
+ version("5.34.1") { source sha256: "357951a491b0ba1ce3611263922feec78ccd581dddc24a446b033e25acf242a1" }
28
+ version("5.34.0") { source sha256: "551efc818b968b05216024fb0b727ef2ad4c100f8cb6b43fab615fa78ae5be9a" }
29
+ version("5.32.1") { source sha256: "03b693901cd8ae807231b1787798cf1f2e0b8a56218d07b7da44f784a7caeb2c" }
30
+ version("5.30.0") { source sha256: "851213c754d98ccff042caa40ba7a796b2cee88c5325f121be5cbb61bbf975f2" }
31
+ version("5.22.1") { source sha256: "2b475d0849d54c4250e9cba4241b7b7291cffb45dfd083b677ca7b5d38118f27" }
32
+ version("5.18.1") { source sha256: "655e11a8ffba8853efcdce568a142c232600ed120ac24aaebb4e6efe74e85b2b" }
33
+ source url: "https://www.cpan.org/src/5.0/perl-#{version}.tar.gz"
34
+
35
+ # perl builds perl as libraries into a special directory. We need to include
36
+ # that directory in lib_dirs so omnibus can sign them during macOS deep signing.
37
+ lib_dirs lib_dirs.concat ["#{install_dir}/embedded/lib/perl5/**"]
38
+
39
+ relative_path "perl-#{version}"
40
+
41
+ build do
42
+ env = with_standard_compiler_flags(with_embedded_path)
43
+
44
+ if version.satisfies?("<= 5.34.0")
45
+ patch source: "perl-#{version}-remove_lnsl.patch", plevel: 1, env: env
46
+ end
47
+
48
+ if solaris2?
49
+ cc_command = "-Dcc='gcc -m64 -static-libgcc'"
50
+ elsif aix?
51
+ cc_command = "-Dcc='/opt/IBM/xlc/13.1.0/bin/cc_r -q64'"
52
+ elsif freebsd? && ohai["os_version"].to_i >= 1000024
53
+ cc_command = "-Dcc='clang'"
54
+ elsif mac_os_x?
55
+ cc_command = "-Dcc='clang'"
56
+ else
57
+ cc_command = "-Dcc='gcc -static-libgcc'"
58
+ end
59
+
60
+ configure_command = ["sh Configure",
61
+ " -de",
62
+ " -Dprefix=#{install_dir}/embedded",
63
+ " -Duseshrplib",
64
+ " -Dusethreads",
65
+ " #{cc_command}",
66
+ " -Dnoextensions='DB_File GDBM_File NDBM_File ODBM_File'"]
67
+
68
+ if aix?
69
+ configure_command << "-Dmake=gmake"
70
+ configure_command << "-Duse64bitall"
71
+ end
72
+
73
+ command configure_command.join(" "), env: env
74
+ make "-j #{workers}", env: env
75
+ # using the install.perl target lets
76
+ # us skip install the manpages
77
+ make "install.perl", env: env
78
+ end
@@ -0,0 +1,45 @@
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 "perl_pg_driver"
18
+ default_version "3.16.0"
19
+
20
+ dependency "perl"
21
+ dependency "cpanminus"
22
+ dependency "postgresql"
23
+
24
+ license "Artistic"
25
+ license_file "README"
26
+ license_file "LICENSES/artistic.txt"
27
+
28
+ # version_list: url=https://cpan.metacpan.org/authors/id/T/TU/TURNSTEP/ filter=*.tar.gz
29
+
30
+ version("3.16.0") { source sha256: "2c31163d8bdaaf8beaef9c97b8f260432d67a534bc7b69e7265c21cb841432b8" }
31
+ version("3.15.1") { source sha256: "13c7543b545c9a5253c86550ccd9204d06fe5f34a7dc51769d3dd665563fc17e" }
32
+ version("3.15.0") { source sha256: "69cc19870f9d935f16530be39d0ed60afadc5e560e29c3a17af4498e7e3082d9" }
33
+ version("3.14.2") { source sha256: "c973e98458960a78ec54032a71b3840f178418dd7e69d063e462a0f10ec68e4d" }
34
+ version("3.5.3") { source sha256: "7e98a9b975256a4733db1c0e974cad5ad5cb821489323e395ed97bd058e0a90e" }
35
+ version("3.3.0") { source sha256: "52f43de5b2d916d447d7ed252b127f728b226dc88db57d4fe9712e21d3586ffe" }
36
+
37
+ source url: "https://search.cpan.org/CPAN/authors/id/T/TU/TURNSTEP/DBD-Pg-#{version}.tar.gz"
38
+
39
+ relative_path "DBD-Pg-#{version}"
40
+
41
+ build do
42
+ env = with_standard_compiler_flags(with_embedded_path)
43
+
44
+ command "cpanm -v --notest .", env: env
45
+ end
@@ -0,0 +1,36 @@
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 "pg-gem"
18
+ default_version "0.17.1"
19
+
20
+ license "BSD-2-Clause"
21
+ license_file "https://raw.githubusercontent.com/ged/ruby-pg/master/LICENSE"
22
+ license_file "https://raw.githubusercontent.com/ged/ruby-pg/master/BSDL"
23
+ # pg gem 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
+ gem "install pg" \
33
+ " --version '#{version}'" \
34
+ " --bindir '#{install_dir}/embedded/bin'" \
35
+ " --no-document", env: env
36
+ end