omnibus-software 22.11.239 → 23.2.283
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.buildkite/hooks/pre-command +9 -0
- data/.expeditor/config.yml +11 -0
- data/.expeditor/software_upload.pipeline.yml +17 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +1 -1
- data/VERSION +1 -1
- data/config/patches/bash/updated_race-condition.patch +15 -0
- data/config/patches/openssl/openssl-1.0.1j-windows-relocate-dll.patch +28 -4
- data/config/software/bash.rb +15 -6
- data/config/software/bzip2.rb +2 -0
- data/config/software/cacerts.rb +2 -0
- data/config/software/chef.rb +3 -2
- data/config/software/cmake.rb +6 -0
- data/config/software/cpanminus.rb +2 -1
- data/config/software/curl.rb +3 -1
- data/config/software/elasticsearch.rb +6 -0
- data/config/software/erlang.rb +6 -6
- data/config/software/expat.rb +4 -1
- data/config/software/gecode.rb +2 -0
- data/config/software/git-windows.rb +2 -0
- data/config/software/git.rb +5 -1
- data/config/software/gmp.rb +2 -0
- data/config/software/go.rb +8 -1
- data/config/software/google-protobuf.rb +1 -1
- data/config/software/gtar.rb +2 -0
- data/config/software/libarchive.rb +4 -1
- data/config/software/libedit.rb +3 -0
- data/config/software/libffi.rb +4 -1
- data/config/software/libiconv.rb +2 -0
- data/config/software/libintl-perl.rb +3 -0
- data/config/software/liblzma.rb +5 -1
- data/config/software/libossp-uuid.rb +2 -0
- data/config/software/libsodium.rb +2 -0
- data/config/software/libtool.rb +2 -0
- data/config/software/libuuid.rb +0 -1
- data/config/software/libxml2.rb +2 -0
- data/config/software/libxslt.rb +5 -1
- data/config/software/libyaml.rb +2 -0
- data/config/software/logrotate.rb +4 -1
- data/config/software/lua.rb +2 -0
- data/config/software/make.rb +4 -1
- data/config/software/makedepend.rb +4 -1
- data/config/software/mpc.rb +5 -1
- data/config/software/mpfr.rb +3 -0
- data/config/software/ncurses.rb +4 -1
- data/config/software/nginx.rb +2 -0
- data/config/software/nodejs-binary.rb +3 -0
- data/config/software/openresty.rb +2 -0
- data/config/software/opensearch.rb +6 -1
- data/config/software/openssl-fips.rb +4 -0
- data/config/software/openssl.rb +4 -0
- data/config/software/patch.rb +2 -0
- data/config/software/patchelf.rb +4 -0
- data/config/software/pcre.rb +2 -0
- data/config/software/perl-extutils-embed.rb +2 -1
- data/config/software/perl-extutils-makemaker.rb +2 -1
- data/config/software/perl-thread-queue.rb +2 -1
- data/config/software/perl.rb +2 -0
- data/config/software/perl_pg_driver.rb +2 -1
- data/config/software/pkg-config-lite.rb +2 -0
- data/config/software/pkg-config.rb +2 -0
- data/config/software/popt.rb +7 -2
- data/config/software/postgresql.rb +5 -4
- data/config/software/python.rb +5 -1
- data/config/software/redis.rb +4 -1
- data/config/software/rsync.rb +2 -0
- data/config/software/ruby-msys2-devkit.rb +6 -0
- data/config/software/ruby-windows-devkit-bash.rb +2 -0
- data/config/software/ruby.rb +2 -0
- data/config/software/runit.rb +2 -1
- data/config/software/server-jre.rb +14 -7
- data/config/software/server-open-jre.rb +16 -0
- data/config/software/sqitch.rb +6 -1
- data/config/software/stunnel.rb +8 -6
- data/config/software/util-macros.rb +2 -0
- data/config/software/xproto.rb +2 -1
- data/config/software/zlib.rb +4 -1
- data/scripts/internal_sources.rb +78 -0
- data/scripts/internal_sources.yml +413 -0
- data/test/generate_steps.rb +11 -1
- data/test/omnibus-build.sh +5 -0
- data/test/omnibus.rb +4 -0
- metadata +12 -6
data/config/software/ruby.rb
CHANGED
@@ -60,6 +60,8 @@ version("2.6.8") { source sha256: "1807b78577bc08596a390e8a41aede37b8512190
|
|
60
60
|
version("2.6.7") { source sha256: "e4227e8b7f65485ecb73397a83e0d09dcd39f25efd411c782b69424e55c7a99e" }
|
61
61
|
|
62
62
|
source url: "https://cache.ruby-lang.org/pub/ruby/#{version.match(/^(\d+\.\d+)/)[0]}/ruby-#{version}.tar.gz"
|
63
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
64
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
63
65
|
|
64
66
|
# In order to pass notarization we need to sign any binaries and libraries included in the package.
|
65
67
|
# This makes sure we include and bins and libs that are brought in by gems.
|
data/config/software/runit.rb
CHANGED
@@ -27,7 +27,8 @@ version("2.1.2") { source sha256: "6fd0160cb0cf1207de4e66754b6d39750cff14bb0aa66
|
|
27
27
|
version("2.1.1") { source sha256: "ffcf2d27b32f59ac14f2d4b0772a3eb80d9342685a2042b7fbbc472c07cf2a2c" }
|
28
28
|
|
29
29
|
source url: "http://smarden.org/runit/runit-#{version}.tar.gz"
|
30
|
-
|
30
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
31
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
31
32
|
relative_path "admin/runit-#{version}/src"
|
32
33
|
|
33
34
|
build do
|
@@ -49,7 +49,8 @@ version "8u202" do
|
|
49
49
|
cookie: license_cookie,
|
50
50
|
warning: license_warning,
|
51
51
|
unsafe: true
|
52
|
-
|
52
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
53
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
53
54
|
relative_path "jdk1.8.0_202"
|
54
55
|
end
|
55
56
|
|
@@ -60,7 +61,8 @@ version "8u162" do
|
|
60
61
|
cookie: license_cookie,
|
61
62
|
warning: license_warning,
|
62
63
|
unsafe: true
|
63
|
-
|
64
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
65
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
64
66
|
relative_path "jdk1.8.0_162"
|
65
67
|
end
|
66
68
|
|
@@ -71,7 +73,8 @@ version "8u151" do
|
|
71
73
|
cookie: license_cookie,
|
72
74
|
warning: license_warning,
|
73
75
|
unsafe: true
|
74
|
-
|
76
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
77
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
75
78
|
relative_path "jdk1.8.0_151"
|
76
79
|
end
|
77
80
|
|
@@ -82,7 +85,8 @@ version "8u144" do
|
|
82
85
|
cookie: license_cookie,
|
83
86
|
warning: license_warning,
|
84
87
|
unsafe: true
|
85
|
-
|
88
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
89
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
86
90
|
relative_path "jdk1.8.0_144"
|
87
91
|
end
|
88
92
|
|
@@ -93,7 +97,8 @@ version "8u121" do
|
|
93
97
|
cookie: license_cookie,
|
94
98
|
warning: license_warning,
|
95
99
|
unsafe: true
|
96
|
-
|
100
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
101
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
97
102
|
relative_path "jdk1.8.0_121"
|
98
103
|
end
|
99
104
|
|
@@ -104,7 +109,8 @@ version "8u111" do
|
|
104
109
|
cookie: license_cookie,
|
105
110
|
warning: license_warning,
|
106
111
|
unsafe: true
|
107
|
-
|
112
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
113
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
108
114
|
relative_path "jdk1.8.0_111"
|
109
115
|
end
|
110
116
|
|
@@ -115,7 +121,8 @@ version "8u91" do
|
|
115
121
|
cookie: license_cookie,
|
116
122
|
warning: license_warning,
|
117
123
|
unsafe: true
|
118
|
-
|
124
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
125
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
119
126
|
relative_path "jdk1.8.0_91"
|
120
127
|
end
|
121
128
|
|
@@ -43,6 +43,8 @@ version "11.0.17+8" do
|
|
43
43
|
sha256: "752616097e09d7f60a3ad8bd312f90eaf50ac72577e55df229fe6e8091148f79",
|
44
44
|
warning: license_warning,
|
45
45
|
unsafe: true
|
46
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
47
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
46
48
|
end
|
47
49
|
|
48
50
|
version "11.0.16.1+1" do
|
@@ -50,6 +52,8 @@ version "11.0.16.1+1" do
|
|
50
52
|
sha256: "1ffe1a682e8179e35238bf3f93aba0cb185850e202c676f41d38cb0561883eda",
|
51
53
|
warning: license_warning,
|
52
54
|
unsafe: true
|
55
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
56
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
53
57
|
end
|
54
58
|
|
55
59
|
version "11.0.15+10" do
|
@@ -57,6 +61,8 @@ version "11.0.15+10" do
|
|
57
61
|
sha256: "22831fd097dfb39e844cb34f42064ff26a0ada9cd13621d7b8bca8e9b9d3a5ee",
|
58
62
|
warning: license_warning,
|
59
63
|
unsafe: true
|
64
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
65
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
60
66
|
end
|
61
67
|
|
62
68
|
version "11.0.14.1+1" do
|
@@ -64,6 +70,8 @@ version "11.0.14.1+1" do
|
|
64
70
|
sha256: "b5a6960bc6bb0b1a967e307f908ea9b06ad7adbbd9df0b8954ab51374faa8a98",
|
65
71
|
warning: license_warning,
|
66
72
|
unsafe: true
|
73
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
74
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
67
75
|
end
|
68
76
|
|
69
77
|
version "11.0.13+8" do
|
@@ -71,6 +79,8 @@ version "11.0.13+8" do
|
|
71
79
|
sha256: "fb0a27e6e1f26a1ee79daa92e4cfe3ec0d676acfe114d99dd84b3414f056e8a0",
|
72
80
|
warning: license_warning,
|
73
81
|
unsafe: true
|
82
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
83
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
74
84
|
end
|
75
85
|
|
76
86
|
version "11.0.12+7" do
|
@@ -78,6 +88,8 @@ version "11.0.12+7" do
|
|
78
88
|
sha256: "e813e270b7ea0a13f9c400ce5abd4cb811aacbd536b8909e6c7f0e346f78348c",
|
79
89
|
warning: license_warning,
|
80
90
|
unsafe: true
|
91
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
92
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
81
93
|
end
|
82
94
|
|
83
95
|
version "11.0.11+9" do
|
@@ -85,6 +97,8 @@ version "11.0.11+9" do
|
|
85
97
|
sha256: "144f2c6bcf64faa32016f2474b6c01031be75d25325e9c3097aed6589bc5d548",
|
86
98
|
warning: license_warning,
|
87
99
|
unsafe: true
|
100
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
101
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
88
102
|
end
|
89
103
|
|
90
104
|
version "11.0.10+9" do
|
@@ -92,6 +106,8 @@ version "11.0.10+9" do
|
|
92
106
|
sha256: "25fdcf9427095ac27c8bdfc82096ad2e615693a3f6ea06c700fca7ffb271131a",
|
93
107
|
warning: license_warning,
|
94
108
|
unsafe: true
|
109
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
110
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
95
111
|
end
|
96
112
|
|
97
113
|
relative_path "jdk-#{version}-jre"
|
data/config/software/sqitch.rb
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
#
|
16
16
|
|
17
17
|
name "sqitch"
|
18
|
-
default_version "1.3.
|
18
|
+
default_version "1.3.1"
|
19
19
|
|
20
20
|
license "MIT"
|
21
21
|
license_file "https://raw.githubusercontent.com/theory/sqitch/master/README.md"
|
@@ -28,6 +28,7 @@ dependency "libintl-perl"
|
|
28
28
|
|
29
29
|
# version_list: url=https://github.com/theory/#{name}/releases/download/v#{version}/ filter=app-sqitch-*.tar.gz
|
30
30
|
|
31
|
+
version("1.3.1") { source sha256: "f5e768d298cd4047ee2ae42319782e8c2cda312737bcbdbfaf580bd47efe8b94" }
|
31
32
|
version("1.3.0") { source sha256: "7d07635ec77a7faf3c50281c76ec833c68702f14470996cb2203a8bc6abc5bf2" }
|
32
33
|
version("1.2.1") { source sha256: "020835a13429effd8fda12d5627604ecf99293775918f4f8ba9ccc5ed796e5e7" }
|
33
34
|
version("1.1.0") { source sha256: "ee146cd75d6300837e6ca559bb0bde247d42123c96b2c5d4b2800f38d3e3d1ab" }
|
@@ -36,9 +37,13 @@ version("0.973") { source sha256: "95fc7f18fff786c5d2579133e2e3ac56779e54bb3a06
|
|
36
37
|
|
37
38
|
if version >= "1.1.0"
|
38
39
|
source url: "https://github.com/theory/#{name}/releases/download/v#{version}/app-sqitch-v#{version}.tar.gz"
|
40
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
41
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
39
42
|
relative_path "App-Sqitch-v#{version}"
|
40
43
|
else
|
41
44
|
source url: "https://github.com/theory/#{name}/releases/download/v#{version}/app-sqitch-#{version}.tar.gz"
|
45
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
46
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
42
47
|
relative_path "App-Sqitch-#{version}"
|
43
48
|
end
|
44
49
|
|
data/config/software/stunnel.rb
CHANGED
@@ -26,12 +26,14 @@ dependency "openssl"
|
|
26
26
|
|
27
27
|
# version_list: url=https://www.stunnel.org/downloads/ filter=*.tar.gz
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
end
|
29
|
+
source url: "https://www.stunnel.org/archive/5.x/stunnel-#{version}.tar.gz"
|
30
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
31
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
32
|
+
|
34
33
|
relative_path "stunnel-#{version}"
|
34
|
+
|
35
|
+
version("5.67") { source sha256: "3086939ee6407516c59b0ba3fbf555338f9d52f459bcab6337c0f00e91ea8456" }
|
36
|
+
version("5.66") { source sha256: "558178704d1aa5f6883aac6cc5d6bbf2a5714c8a0d2e91da0392468cee9f579c" }
|
35
37
|
version("5.65") { source sha256: "60c500063bd1feff2877f5726e38278c086f96c178f03f09d264a2012d6bf7fc" }
|
36
38
|
version("5.64") { source sha256: "eebe53ed116ba43b2e786762b0c2b91511e7b74857ad4765824e7199e6faf883" }
|
37
39
|
version("5.63") { source sha256: "c74c4e15144a3ae34b8b890bb31c909207301490bd1e51bfaaa5ffeb0a994617" }
|
@@ -58,7 +60,7 @@ build do
|
|
58
60
|
env["WIN32_SSL_DIR_PATCHED"] = "#{install_dir}/embedded"
|
59
61
|
|
60
62
|
mingw = ENV["MSYSTEM"].downcase
|
61
|
-
target = (mingw == "mingw32" ? "mingw" :
|
63
|
+
target = (mingw == "mingw32" ? "mingw" : "mingw64")
|
62
64
|
# 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
|
63
65
|
# so here we set the path to default install of msys2 first and default to OMNIBUS_TOOLCHAIN_INSTALL_DIR for backward compatibility
|
64
66
|
msys_path = ENV["MSYS2_INSTALL_DIR"] ? "#{ENV["MSYS2_INSTALL_DIR"]}" : "#{ENV["OMNIBUS_TOOLCHAIN_INSTALL_DIR"]}/embedded/bin"
|
@@ -24,6 +24,8 @@ version("1.19.0") { source sha256: "0d4df51b29023daf2f63aebf3ebc638ea88efedfd560
|
|
24
24
|
version("1.18.0") { source sha256: "cf4ab0e17bfee0f7689cdcff8c7d7f164c9a710f851f91c488f5cd81fac9c0aa" }
|
25
25
|
|
26
26
|
source url: "https://www.x.org/releases/individual/util/util-macros-#{version}.tar.gz"
|
27
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
28
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
27
29
|
|
28
30
|
license "MIT"
|
29
31
|
license_file "COPYING"
|
data/config/software/xproto.rb
CHANGED
@@ -24,7 +24,8 @@ version("7.0.28") { source sha256: "6cabc8ce3fa2b1a2427871167b62c24d5b08a58bd3e8
|
|
24
24
|
version("7.0.25") { source sha256: "e3dc634103f923a2276289745eb7b702b18cfc885ea4b2382bd35a8cc3d935cb" }
|
25
25
|
|
26
26
|
source url: "https://www.x.org/releases/individual/proto/xproto-#{version}.tar.gz"
|
27
|
-
|
27
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
28
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
28
29
|
license "MIT"
|
29
30
|
license_file "COPYING"
|
30
31
|
skip_transitive_dependency_licensing true
|
data/config/software/zlib.rb
CHANGED
@@ -15,16 +15,19 @@
|
|
15
15
|
#
|
16
16
|
|
17
17
|
name "zlib"
|
18
|
-
default_version "1.2.
|
18
|
+
default_version "1.2.13"
|
19
19
|
|
20
20
|
# version_list: url=https://zlib.net/fossils/ filter=*.tar.gz
|
21
21
|
|
22
|
+
version("1.2.13") { source sha256: "b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30" }
|
22
23
|
version("1.2.12") { source sha256: "91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9" }
|
23
24
|
version("1.2.11") { source sha256: "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1" }
|
24
25
|
version("1.2.8") { source sha256: "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d" }
|
25
26
|
version("1.2.6") { source sha256: "21235e08552e6feba09ea5e8d750805b3391c62fb81c71a235c0044dc7a8a61b" }
|
26
27
|
|
27
28
|
source url: "https://zlib.net/fossils/zlib-#{version}.tar.gz"
|
29
|
+
internal_source url: "#{ENV["ARTIFACTORY_REPO_URL"]}/#{name}/#{name}-#{version}.tar.gz",
|
30
|
+
authorization: "X-JFrog-Art-Api:#{ENV["ARTIFACTORY_TOKEN"]}"
|
28
31
|
|
29
32
|
license "Zlib"
|
30
33
|
license_file "README"
|
@@ -0,0 +1,78 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require "net/http"
|
3
|
+
require "openssl"
|
4
|
+
require "tmpdir"
|
5
|
+
require "yaml"
|
6
|
+
|
7
|
+
ARTIFACTORY_REPO_URL = ENV["ARTIFACTORY_REPO_URL"] || "https://artifactory-internal.ps.chef.co/artifactory/omnibus-software-local"
|
8
|
+
ARTIFACTORY_PASSWORD = ENV["ARTIFACTORY_PASSWORD"]
|
9
|
+
|
10
|
+
def print_usage
|
11
|
+
puts "Must provide path to internal_sources.yml file."
|
12
|
+
puts "Usage: ./internal_sources.rb <file path> [only]"
|
13
|
+
puts ""
|
14
|
+
puts " <file path>: Path to an internal_sources.yml file."
|
15
|
+
puts " [only]: (Optional) Name of software to upload. Skips all others."
|
16
|
+
end
|
17
|
+
|
18
|
+
def validate_checksum!(response, source)
|
19
|
+
if source.key?("sha256")
|
20
|
+
response.header["x-checksum-sha256"] == source["sha256"]
|
21
|
+
elsif source.key?("md5")
|
22
|
+
response.header["x-checksum-md5"] == source["md5"]
|
23
|
+
elsif source.key?("sha1")
|
24
|
+
response.header["x-checksum-sha1"] == source["sha1"]
|
25
|
+
else
|
26
|
+
raise "Unknown checksum format supplied for '#{source["url"]}'"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def exists_in_artifactory?(name, source)
|
31
|
+
uri = URI(ARTIFACTORY_REPO_URL)
|
32
|
+
file_name = File.basename(source["url"])
|
33
|
+
dir_name = name
|
34
|
+
path = File.join(uri.path, dir_name, file_name)
|
35
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
36
|
+
http.use_ssl = true
|
37
|
+
response = http.head(path)
|
38
|
+
validate_checksum!(response, source)
|
39
|
+
end
|
40
|
+
|
41
|
+
def maybe_upload(name, source)
|
42
|
+
unless exists_in_artifactory?(name, source)
|
43
|
+
Dir.mktmpdir do |dir|
|
44
|
+
puts "Downloading #{name} from #{source["url"]}"
|
45
|
+
raise "Failed to download" unless system("wget -q -P #{dir} #{source["url"]}")
|
46
|
+
|
47
|
+
file_name = File.basename(source["url"])
|
48
|
+
downloaded_file = File.join(dir, file_name)
|
49
|
+
repo_url = File.join(ARTIFACTORY_REPO_URL, name, file_name)
|
50
|
+
puts "Uploading #{downloaded_file} to #{repo_url}"
|
51
|
+
raise "Failed to upload" unless system("curl -s -H 'X-JFrog-Art-Api:#{ARTIFACTORY_PASSWORD}' -T '#{downloaded_file}' #{repo_url}")
|
52
|
+
|
53
|
+
puts ""
|
54
|
+
end
|
55
|
+
else
|
56
|
+
puts "#{File.basename(source["url"])} exists in artifactory already...skipping"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
if ARGV.size < 1 || ARGV.size > 2
|
61
|
+
print_usage
|
62
|
+
exit(1)
|
63
|
+
end
|
64
|
+
|
65
|
+
file_path = ARGV[0]
|
66
|
+
only = ARGV[1]
|
67
|
+
|
68
|
+
unless File.exist?(file_path)
|
69
|
+
abort("File '#{file_path}' does not exist")
|
70
|
+
end
|
71
|
+
|
72
|
+
yaml = YAML.load_file file_path
|
73
|
+
yaml["software"].each do |software|
|
74
|
+
next if only && software["name"] != only
|
75
|
+
|
76
|
+
name = software["name"]
|
77
|
+
software["sources"].each { |source| maybe_upload(name, source) }
|
78
|
+
end
|