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,43 @@
1
+ #
2
+ # Copyright 2012-2019 Chef Software, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ name "make"
18
+ default_version "4.3"
19
+
20
+ license "GPL-3.0"
21
+ license_file "COPYING"
22
+
23
+ # version_list: url=https://ftp.gnu.org/gnu/make/ filter=*.tar.gz
24
+
25
+ version("4.3") { source sha256: "e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19" }
26
+
27
+ source url: "https://ftp.gnu.org/gnu/make/make-#{version}.tar.gz"
28
+
29
+ relative_path "make-#{version}"
30
+
31
+ build do
32
+ env = with_standard_compiler_flags(with_embedded_path)
33
+
34
+ command "./configure" \
35
+ " --disable-nls" \
36
+ " --prefix=#{install_dir}/embedded", env: env
37
+
38
+ make "-j #{workers}", env: env
39
+ make "install", env: env
40
+
41
+ # We are very prescriptive. We made make, we will make all the things use it!
42
+ link "#{install_dir}/embedded/bin/make", "#{install_dir}/embedded/bin/gmake"
43
+ end
@@ -0,0 +1,44 @@
1
+ #
2
+ # Copyright 2014 Chef, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ name "makedepend"
18
+ default_version "1.0.6"
19
+
20
+ license "MIT"
21
+ license_file "COPYING"
22
+ skip_transitive_dependency_licensing true
23
+
24
+ # version_list: url=https://www.x.org/releases/individual/util/ Filter=makedepend-*.tar.gz
25
+
26
+ version("1.0.6") { source sha256: "845f6708fc850bf53f5b1d0fb4352c4feab3949f140b26f71b22faba354c3365" }
27
+ version("1.0.5") { source sha256: "503903d41fb5badb73cb70d7b3740c8b30fe1cc68c504d3b6a85e6644c4e5004" }
28
+
29
+ source url: "https://www.x.org/releases/individual/util/makedepend-#{version}.tar.gz"
30
+
31
+ relative_path "makedepend-#{version}"
32
+
33
+ dependency "xproto"
34
+ dependency "util-macros"
35
+ dependency "pkg-config-lite"
36
+
37
+ build do
38
+ env = with_standard_compiler_flags(with_embedded_path)
39
+
40
+ command "./configure --prefix=#{install_dir}/embedded", env: env
41
+
42
+ make "-j #{workers}", env: env
43
+ make "-j #{workers} install", env: env
44
+ end
@@ -0,0 +1,44 @@
1
+ #
2
+ # Copyright 2014-2019 Chef Software, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ name "mpc"
18
+ default_version "1.2.1"
19
+
20
+ dependency "gmp"
21
+ dependency "mpfr"
22
+
23
+ license "LGPL-3.0-or-later"
24
+ license_file "COPYING.LESSER"
25
+
26
+ # version_list: url=https://ftp.gnu.org/gnu/mpc/ filter=*.tar.gz
27
+
28
+ version("1.2.1") { source sha256: "17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459" }
29
+ version("1.1.0") { source sha256: "6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e" }
30
+
31
+ source url: "https://ftp.gnu.org/gnu/mpc/mpc-#{version}.tar.gz"
32
+
33
+ relative_path "mpc-#{version}"
34
+
35
+ build do
36
+ env = with_standard_compiler_flags(with_embedded_path)
37
+
38
+ configure_command = ["./configure",
39
+ "--prefix=#{install_dir}/embedded"]
40
+
41
+ command configure_command.join(" "), env: env
42
+ make "-j #{workers}", env: env
43
+ make "-j #{workers} install", env: env
44
+ end
@@ -0,0 +1,45 @@
1
+ #
2
+ # Copyright 2014-2019 Chef Software, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ name "mpfr"
18
+ default_version "4.1.0"
19
+
20
+ dependency "gmp"
21
+
22
+ license "LGPL-3.0-or-later"
23
+ license_file "COPYING.LESSER"
24
+
25
+ # version_list: url=https://ftp.gnu.org/gnu/mpfr/ filter=*.tar.gz
26
+
27
+ version("4.1.0") { source sha256: "3127fe813218f3a1f0adf4e8899de23df33b4cf4b4b3831a5314f78e65ffa2d6" }
28
+ version("3.1.6") { source sha256: "569ceb418aa935317a79e93b87eeb3f956cab1a97dfb2f3b5fd8ac2501011d62" }
29
+ version("3.1.3") { source sha256: "b87feae279e6da95a0b45eabdb04f3a35422dab0d30113d58a7803c0d73a79dc" }
30
+ version("3.1.2") { source sha256: "176043ec07f55cd02e91ee3219db141d87807b322179388413a9523292d2ee85" }
31
+
32
+ source url: "https://ftp.gnu.org/gnu/mpfr/mpfr-#{version}.tar.gz"
33
+
34
+ relative_path "mpfr-#{version}"
35
+
36
+ build do
37
+ env = with_standard_compiler_flags(with_embedded_path)
38
+
39
+ configure_command = ["./configure",
40
+ "--prefix=#{install_dir}/embedded"]
41
+
42
+ command configure_command.join(" "), env: env
43
+ make "-j #{workers}", env: env
44
+ make "-j #{workers} install", env: env
45
+ end
@@ -0,0 +1,107 @@
1
+ # Copyright 2012-2018 Chef Software, Inc.
2
+ # Copyright 2018 Microsoft
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
+ # MUSL libc software definition README #
18
+ #######################################################################
19
+ #
20
+ # The musl (pronounced muscle) library is an alternative C library
21
+ # to glibc.
22
+ #
23
+ # One may incorporate the musl linker into their omnibus build
24
+ # definitions in order to build universal linux packages which will be
25
+ # linked against the embedded musl-libc. As opposed to linking against
26
+ # the system glibc that may vary from platform to platform.
27
+ #
28
+ # This is an easy way to create linux packages that have far greater
29
+ # portability across linux platforms than have been traditionally
30
+ # produced with omnibus. You may produce one binary artifact, with
31
+ # a singular build pipeline, that will run on all supported versions
32
+ # of Ubuntu and CentOS. As opposed to running a separate build
33
+ # pipeline for each platform and version which you intend to support.
34
+ #
35
+ # In order to use the musl linker in your project, simply override
36
+ # the `CC` environment variable in your project definition(s) so that
37
+ # the musl-gcc wrapper takes action to link all the C code in your
38
+ # project against the musl-libc libraries. The below snippet will
39
+ # need to be invoked before any dependencies in your project that
40
+ # compile C code. Note that the musl-gcc wrapper is dependent on
41
+ # having a system gcc in-place. This software definition is
42
+ # dependent on the gcc location being symlinked, or installed, at
43
+ # `/usr/bin/gcc`.
44
+ #
45
+ # Example project definition override:
46
+ #
47
+ # if linux?
48
+ # ENV['CC'] = "#{install_dir}/embedded/bin/musl-gcc"
49
+ # dependency 'musl'
50
+ # end
51
+ #
52
+ # How that works:
53
+ #
54
+ # 1. Set `CC` equal to the embedded musl-gcc wrapper in project
55
+ # definition. e.g. chef-workstation
56
+ #
57
+ # 2. The musl software definition overrides `CC=/usr/bin/gcc` and
58
+ # builds musl-libc and installs in $install_dir/embedded.
59
+ # e.g. /opt/chef/embedded/(lib|bin)
60
+ #
61
+ # 3. Software definition (e.g. ruby) picks up `CC` environment
62
+ # variable from project definition and uses the embedded musl-gcc
63
+ # wrapper to link the code against the embedded musl libraries.
64
+ #
65
+ #####################################################################
66
+ #
67
+ # expeditor/ignore: deprecated 2021-04
68
+
69
+ name "musl"
70
+ default_version "1.2.2"
71
+
72
+ license "MIT"
73
+ license_file "COPYRIGHT"
74
+
75
+ # versions_list: https://www.musl-libc.org/releases/ filter=*.tar.gz
76
+ version("1.2.2") { source sha256: "9b969322012d796dc23dda27a35866034fa67d8fb67e0e2c45c913c3d43219dd" }
77
+ version("1.2.1") { source sha256: "68af6e18539f646f9c41a3a2bb25be4a5cfa5a8f65f0bb647fd2bbfdf877e84b" }
78
+ version("1.1.22") { source sha256: "8b0941a48d2f980fd7036cfbd24aa1d414f03d9a0652ecbd5ec5c7ff1bee29e3" }
79
+ version("1.1.20") { source sha256: "44be8771d0e6c6b5f82dd15662eb2957c9a3173a19a8b49966ac0542bbd40d61" }
80
+ version("1.1.19") { source sha256: "db59a8578226b98373f5b27e61f0dd29ad2456f4aa9cec587ba8c24508e4c1d9" }
81
+
82
+ source url: "https://www.musl-libc.org/releases/musl-#{version}.tar.gz"
83
+
84
+ relative_path "musl-#{version}"
85
+
86
+ build do
87
+ # The musl definition must be compiled with a system gcc.
88
+ # This isn't a self-hosting build definition wherein
89
+ # musl compiles itself.
90
+ env = with_standard_compiler_flags(with_embedded_path)
91
+ env["CC"] = "/usr/bin/gcc"
92
+
93
+ command "./configure" \
94
+ " --prefix=#{install_dir}/embedded" \
95
+ " --syslibdir=#{install_dir}/embedded/lib", env: env
96
+
97
+ make env: env
98
+ make "install", env: env
99
+
100
+ # Ruby compilation requires the linux kernel headers to be in the
101
+ # same location as the Libc headers. For this to work correctly
102
+ # will need to have a kernel-dev(el) package installed on your
103
+ # omnibus builder.
104
+ %w{asm asm-generic linux}.each do |d|
105
+ copy "/usr/include/#{d}", "#{install_dir}/embedded/include"
106
+ end
107
+ end
@@ -0,0 +1,50 @@
1
+ #
2
+ # Copyright 2012-2014 Chef Software, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ #
18
+ # Enable MySQL support by adding the following to '/etc/chef-server/chef-server.rb':
19
+ #
20
+ # database_type = 'mysql'
21
+ # postgresql['enable'] = false
22
+ # mysql['enable'] = true
23
+ # mysql['destructive_migrate'] = true
24
+ #
25
+ # Then run 'chef-server-ctl reconfigure'
26
+ #
27
+
28
+ versions_to_install = ["0.3.6", "0.3.7"]
29
+
30
+ name "mysql2"
31
+ default_version versions_to_install.join("-")
32
+
33
+ dependency "ruby"
34
+
35
+ build do
36
+ env = with_standard_compiler_flags(with_embedded_path)
37
+
38
+ cache_path = "#{install_dir}/embedded/service/gem/ruby/1.9.1/cache"
39
+
40
+ gem "install rake-compiler" \
41
+ " --version '0.8.3'" \
42
+ " --no-document", env: env
43
+
44
+ mkdir cache_path
45
+
46
+ versions_to_install.each do |version|
47
+ gem "fetch mysql2" \
48
+ " --version '#{version}'", env: env, cwd: cache_path
49
+ end
50
+ end
@@ -0,0 +1,159 @@
1
+ #
2
+ # Copyright 2012-2019, Chef Software Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ name "ncurses"
18
+ default_version "6.3"
19
+
20
+ license "MIT"
21
+ license_file "http://invisible-island.net/ncurses/ncurses-license.html"
22
+ license_file "http://invisible-island.net/ncurses/ncurses.faq.html"
23
+ skip_transitive_dependency_licensing true
24
+
25
+ dependency "config_guess"
26
+
27
+ # versions_list: https://ftp.gnu.org/gnu/ncurses/ filter=*.tar.gz
28
+ version("6.3") { source sha256: "97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059" }
29
+ version("6.2") { source sha256: "30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d" }
30
+ version("6.1") { source sha256: "aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17" }
31
+ version("5.9") { source sha256: "9046298fb440324c9d4135ecea7879ffed8546dd1b58e59430ea07a4633f563b" }
32
+
33
+ source url: "https://ftp.gnu.org/gnu/ncurses/ncurses-#{version}.tar.gz"
34
+
35
+ relative_path "ncurses-#{version}"
36
+
37
+ ########################################################################
38
+ #
39
+ # wide-character support:
40
+ # Ruby 1.9 optimistically builds against libncursesw for UTF-8
41
+ # support. In order to prevent Ruby from linking against a
42
+ # package-installed version of ncursesw, we build wide-character
43
+ # support into ncurses with the "--enable-widec" configure parameter.
44
+ # To support other applications and libraries that still try to link
45
+ # against libncurses, we also have to create non-wide libraries.
46
+ #
47
+ # The methods below are adapted from:
48
+ # http://www.linuxfromscratch.org/lfs/view/development/chapter06/ncurses.html
49
+ #
50
+ ########################################################################
51
+
52
+ build do
53
+ env = with_standard_compiler_flags(with_embedded_path)
54
+ env.delete("CPPFLAGS")
55
+
56
+ if smartos?
57
+ # SmartOS is Illumos Kernel, plus NetBSD userland with a GNU toolchain.
58
+ # These patches are taken from NetBSD pkgsrc and provide GCC 4.7.0
59
+ # compatibility:
60
+ # http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/ncurses/patches/
61
+ patch source: "patch-aa", plevel: 0, env: env
62
+ patch source: "patch-ab", plevel: 0, env: env
63
+ patch source: "patch-ac", plevel: 0, env: env
64
+ patch source: "patch-ad", plevel: 0, env: env
65
+ patch source: "patch-cxx_cursesf.h", plevel: 0, env: env
66
+ patch source: "patch-cxx_cursesm.h", plevel: 0, env: env
67
+
68
+ # Chef patches - <sean@sean.io>
69
+ # The configure script from the pristine tarball detects xopen_source_extended incorrectly.
70
+ # Manually working around a false positive.
71
+ patch source: "ncurses-5.9-solaris-xopen_source_extended-detection.patch", plevel: 0, env: env
72
+ end
73
+
74
+ update_config_guess
75
+
76
+ # AIX's old version of patch doesn't like the patches here
77
+ unless aix?
78
+ if version == "5.9"
79
+ # Patch to add support for GCC 5, doesn't break previous versions
80
+ patch source: "ncurses-5.9-gcc-5.patch", plevel: 1, env: env
81
+ end
82
+ end
83
+
84
+ if mac_os_x? ||
85
+ # Clang became the default compiler in FreeBSD 10+
86
+ (freebsd? && ohai["os_version"].to_i >= 1000024)
87
+ # References:
88
+ # https://github.com/Homebrew/homebrew-dupes/issues/43
89
+ # http://invisible-island.net/ncurses/NEWS.html#t20110409
90
+ #
91
+ # Patches ncurses for clang compiler. Changes have been accepted into
92
+ # upstream, but occurred shortly after the 5.9 release. We should be able
93
+ # to remove this after upgrading to any release created after June 2012
94
+ patch source: "ncurses-clang.patch", env: env
95
+ end
96
+
97
+ if openbsd?
98
+ patch source: "patch-ncurses_tinfo_lib__baudrate.c", plevel: 0, env: env
99
+ end
100
+
101
+ configure_command = [
102
+ "./configure",
103
+ "--prefix=#{install_dir}/embedded",
104
+ "--enable-overwrite",
105
+ "--with-shared",
106
+ "--with-termlib",
107
+ "--without-ada",
108
+ "--without-cxx-binding",
109
+ "--without-debug",
110
+ "--without-manpages",
111
+ ]
112
+
113
+ if aix?
114
+ # AIX kinda needs 5.9-20140621 or later
115
+ # because of a naming snafu in shared library naming.
116
+ # see http://invisible-island.net/ncurses/NEWS.html#t20140621
117
+
118
+ # let libtool deal with library silliness
119
+ configure_command << "--with-libtool=\"#{install_dir}/embedded/bin/libtool\""
120
+
121
+ # stick with just the shared libs on AIX
122
+ configure_command << "--without-normal"
123
+
124
+ # ncurses's ./configure incorrectly
125
+ # "figures out" ARFLAGS if you try
126
+ # to set them yourself
127
+ env.delete("ARFLAGS")
128
+
129
+ # use gnu install from the coreutils IBM rpm package
130
+ env["INSTALL"] = "/opt/freeware/bin/install"
131
+ end
132
+
133
+ command configure_command.join(" "), env: env
134
+
135
+ # unfortunately, libtool may try to link to libtinfo
136
+ # before it has been assembled; so we have to build in serial
137
+ make "libs", env: env if aix?
138
+
139
+ make "-j #{workers}", env: env
140
+ make "-j #{workers} install", env: env
141
+
142
+ # Build non-wide-character libraries
143
+ make "distclean", env: env
144
+ configure_command << "--enable-widec"
145
+
146
+ command configure_command.join(" "), env: env
147
+ make "libs", env: env if aix?
148
+ make "-j #{workers}", env: env
149
+
150
+ # Installing the non-wide libraries will also install the non-wide
151
+ # binaries, which doesn't happen to be a problem since we don't
152
+ # utilize the ncurses binaries in private-chef (or oss chef)
153
+ make "-j #{workers} install", env: env
154
+
155
+ # Ensure embedded ncurses wins in the LD search path
156
+ if smartos?
157
+ link "#{install_dir}/embedded/lib/libcurses.so", "#{install_dir}/embedded/lib/libcurses.so.1"
158
+ end
159
+ end
@@ -0,0 +1,55 @@
1
+ #
2
+ # Copyright 2012-2016 Chef Software, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ ## expeditor/ignore: deprecated 2022 03
17
+
18
+ name "nginx"
19
+ default_version "1.21.4"
20
+
21
+ dependency "pcre"
22
+ dependency "openssl"
23
+ dependency "zlib"
24
+
25
+ license "BSD-2-Clause"
26
+ license_file "LICENSE"
27
+
28
+ source url: "https://nginx.org/download/nginx-#{version}.tar.gz"
29
+
30
+ # versions_list: https://nginx.org/download/ filter=*.tar.gz
31
+ version("1.21.4") { source sha256: "d1f72f474e71bcaaf465dcc7e6f7b6a4705e4b1ed95c581af31df697551f3bfe" }
32
+ version("1.20.1") { source sha256: "e462e11533d5c30baa05df7652160ff5979591d291736cfa5edb9fd2edb48c49" }
33
+ version("1.19.9") { source sha256: "2e35dff06a9826e8aca940e9e8be46b7e4b12c19a48d55bfc2dc28fc9cc7d841" }
34
+ version("1.19.8") { source sha256: "308919b1a1359315a8066578472f998f14cb32af8de605a3743acca834348b05" }
35
+
36
+ relative_path "nginx-#{version}"
37
+
38
+ build do
39
+ env = with_standard_compiler_flags(with_embedded_path)
40
+
41
+ command "./configure" \
42
+ " --prefix=#{install_dir}/embedded" \
43
+ " --with-http_ssl_module" \
44
+ " --with-http_stub_status_module" \
45
+ " --with-ipv6" \
46
+ " --with-debug" \
47
+ " --with-cc-opt=\"-L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include\"" \
48
+ " --with-ld-opt=-L#{install_dir}/embedded/lib", env: env
49
+
50
+ make "-j #{workers}", env: env
51
+ make "install", env: env
52
+
53
+ # Ensure the logs directory is available on rebuild from git cache
54
+ touch "#{install_dir}/embedded/logs/.gitkeep"
55
+ end
@@ -0,0 +1,90 @@
1
+ #
2
+ # Copyright 2016 Chef Software, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ #
18
+ # nodejs-binary provides nodejs using the binary packages provided by
19
+ # the upstream. It does not install it into any of our standard
20
+ # paths, so builds that require nodejs need to add embedded/nodejs/bin
21
+ # to their path.
22
+ #
23
+ # Since nodejs is often a build-time-only dependency, it can then be
24
+ # easily removed with remove-nodejs.
25
+ #
26
+ name "nodejs-binary"
27
+ default_version "6.7.0"
28
+
29
+ license "MIT"
30
+ license_file "LICENSE"
31
+ skip_transitive_dependency_licensing true
32
+
33
+ version "6.7.0" do
34
+ source_hash = if ppc64le?
35
+ "de8e4ca71caa8be6eaf80e65b89de2a6d152fa4ce08efcbc90ce7e1bfdf130e7"
36
+ elsif ppc64?
37
+ "e8ce540b592d337304a10f4eb19bb4efee889c6676c5f188d072bfb2a8089927"
38
+ elsif s390x?
39
+ "e0f2616b4beb4c2505edb19e3cbedbf3d1c958441517cc9a1e918f6feaa4b95b"
40
+ else
41
+ "abe81b4150917cdbbeebc6c6b85003b80c972d32c8f5dfd2970d32e52a6877af"
42
+ end
43
+ source sha256: source_hash
44
+ end
45
+
46
+ # These are the last versions of their series that provide both ppc64 and ppc64le versions
47
+ version "8.9.1" do
48
+ source_hash = if ppc64le?
49
+ "d3e11a9ef301afdecb10ed26470492fd03402b86bf9efc3f89a9aef541bf9a2c"
50
+ elsif ppc64?
51
+ "7ab8c4bf36364624b6bc7610319f1e2c32a7c882aa6392ce285faaee39597dce"
52
+ elsif s390x?
53
+ "48160ddaa7397cf85ca0cf333cc87dc3485956c75a3cdf98f04735bb81b37da6"
54
+ else # x64
55
+ "0e49da19cdf4c89b52656e858346775af21f1953c308efbc803b665d6069c15c"
56
+ end
57
+ source sha256: source_hash
58
+ end
59
+
60
+ # These are the last versions of their series that provide both ppc64 and ppc64le versions
61
+ version "9.2.0" do
62
+ source_hash = if ppc64le?
63
+ "9a173db0c0b88dcddf08542736c597c87bf86d536df8fa65a4fdff75e7bb4243"
64
+ elsif ppc64?
65
+ "34b3d6d7e6036e38aacab6754f55711ac9582a3d963a06f5f75e07e2d986d2a2"
66
+ elsif s390x?
67
+ "c5f6315da901bbb54ffa0b23b58cd0b46f0ebfbe2a4f1847ec1d330602000bfd"
68
+ else # x64
69
+ "36ef2b3d1a99555390835d6fd4ad194a769df6841cbcc46cba0dffbaf6e6aa34"
70
+ end
71
+ source sha256: source_hash
72
+ end
73
+
74
+ arch_ext = if ppc64le?
75
+ "ppc64le"
76
+ elsif ppc64?
77
+ "ppc64"
78
+ elsif s390x?
79
+ "s390x"
80
+ else
81
+ "x64"
82
+ end
83
+
84
+ source url: "https://nodejs.org/dist/v#{version}/node-v#{version}-linux-#{arch_ext}.tar.gz"
85
+ relative_path "node-v#{version}-linux-#{arch_ext}"
86
+
87
+ build do
88
+ mkdir "#{install_dir}/embedded/nodejs"
89
+ sync "#{project_dir}/", "#{install_dir}/embedded/nodejs"
90
+ end