omnibus 5.0.0 → 5.1.0
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.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +26 -0
- data/Gemfile +3 -0
- data/MAINTAINERS.md +1 -0
- data/appveyor.yml +1 -1
- data/bin/omnibus +5 -0
- data/lib/omnibus/builder.rb +165 -26
- data/lib/omnibus/digestable.rb +4 -2
- data/lib/omnibus/fetcher.rb +18 -5
- data/lib/omnibus/fetchers/git_fetcher.rb +38 -22
- data/lib/omnibus/fetchers/net_fetcher.rb +106 -37
- data/lib/omnibus/fetchers/path_fetcher.rb +13 -12
- data/lib/omnibus/file_syncer.rb +33 -14
- data/lib/omnibus/generator_files/README.md.erb +1 -1
- data/lib/omnibus/generator_files/package_scripts/postinst.erb +3 -3
- data/lib/omnibus/generator_files/package_scripts/postrm.erb +1 -1
- data/lib/omnibus/generator_files/package_scripts/preinst.erb +1 -1
- data/lib/omnibus/generator_files/package_scripts/prerm.erb +3 -3
- data/lib/omnibus/git_cache.rb +20 -7
- data/lib/omnibus/health_check.rb +144 -12
- data/lib/omnibus/packagers/bff.rb +57 -5
- data/lib/omnibus/packagers/deb.rb +2 -2
- data/lib/omnibus/packagers/pkg.rb +2 -2
- data/lib/omnibus/packagers/solaris.rb +18 -6
- data/lib/omnibus/project.rb +1 -1
- data/lib/omnibus/s3_cache.rb +8 -2
- data/lib/omnibus/software.rb +152 -18
- data/lib/omnibus/sugarable.rb +1 -5
- data/lib/omnibus/util.rb +1 -1
- data/lib/omnibus/version.rb +1 -1
- data/omnibus.gemspec +4 -1
- data/resources/bff/config.erb +7 -0
- data/resources/deb/md5sums.erb +1 -1
- data/spec/functional/builder_spec.rb +89 -2
- data/spec/functional/fetchers/git_fetcher_spec.rb +44 -37
- data/spec/functional/fetchers/net_fetcher_spec.rb +36 -5
- data/spec/functional/fetchers/path_fetcher_spec.rb +28 -28
- data/spec/unit/builder_spec.rb +143 -11
- data/spec/unit/fetchers/git_fetcher_spec.rb +23 -59
- data/spec/unit/fetchers/net_fetcher_spec.rb +151 -63
- data/spec/unit/fetchers/path_fetcher_spec.rb +4 -35
- data/spec/unit/git_cache_spec.rb +13 -14
- data/spec/unit/health_check_spec.rb +90 -0
- data/spec/unit/library_spec.rb +1 -1
- data/spec/unit/packagers/bff_spec.rb +126 -3
- data/spec/unit/packagers/deb_spec.rb +8 -3
- data/spec/unit/packagers/pkg_spec.rb +19 -19
- data/spec/unit/packagers/solaris_spec.rb +13 -1
- data/spec/unit/software_spec.rb +242 -38
- metadata +7 -6
- data/lib/omnibus/generator_files/package_scripts/makeselfinst.erb +0 -0
@@ -116,6 +116,12 @@ module Omnibus
|
|
116
116
|
|
117
117
|
before do
|
118
118
|
allow(subject).to receive(:shellout!)
|
119
|
+
File.open("#{staging_dir}/files", "w+") do |f|
|
120
|
+
f.write <<-EOF
|
121
|
+
/foo/bar/baz
|
122
|
+
/a file with spaces
|
123
|
+
EOF
|
124
|
+
end
|
119
125
|
end
|
120
126
|
|
121
127
|
it 'creates the prototype file' do
|
@@ -135,11 +141,17 @@ module Omnibus
|
|
135
141
|
expect(subject).to receive(:shellout!)
|
136
142
|
.with("cd /opt && find project -print > #{File.join(staging_dir, 'files')}")
|
137
143
|
expect(subject).to receive(:shellout!)
|
138
|
-
.with("cd /opt && pkgproto < #{File.join(staging_dir, 'files')} > #{File.join(staging_dir, 'Prototype.files')}")
|
144
|
+
.with("cd /opt && pkgproto < #{File.join(staging_dir, 'files.clean')} > #{File.join(staging_dir, 'Prototype.files')}")
|
139
145
|
expect(subject).to receive(:shellout!)
|
140
146
|
.with("awk '{ $5 = \"root\"; $6 = \"root\"; print }' < #{File.join(staging_dir, 'Prototype.files')} >> #{File.join(staging_dir, 'Prototype')}")
|
147
|
+
subject.write_prototype_file
|
148
|
+
end
|
141
149
|
|
150
|
+
it 'strips out the file with spaces from files.clean' do
|
142
151
|
subject.write_prototype_file
|
152
|
+
contents = File.read(File.join(staging_dir, 'files.clean'))
|
153
|
+
expect(contents).not_to include("a file with spaces")
|
154
|
+
expect(contents).to include("/foo/bar/baz")
|
143
155
|
end
|
144
156
|
end
|
145
157
|
|
data/spec/unit/software_spec.rb
CHANGED
@@ -9,19 +9,32 @@ module Omnibus
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
+
let(:source) do
|
13
|
+
{
|
14
|
+
url: 'http://example.com/',
|
15
|
+
md5: 'abcd1234'
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
let(:rel_path) { 'software' }
|
20
|
+
|
12
21
|
subject do
|
22
|
+
local_source = source
|
23
|
+
local_rel_path = rel_path
|
24
|
+
|
13
25
|
described_class.new(project).evaluate do
|
14
26
|
name 'software'
|
15
27
|
default_version '1.2.3'
|
16
28
|
|
17
|
-
source
|
18
|
-
|
29
|
+
source local_source
|
30
|
+
relative_path local_rel_path
|
19
31
|
end
|
20
32
|
end
|
21
33
|
|
22
34
|
it_behaves_like 'a cleanroom getter', :project
|
23
35
|
it_behaves_like 'a cleanroom setter', :name, %|name 'libxml2'|
|
24
36
|
it_behaves_like 'a cleanroom setter', :description, %|description 'The XML magician'|
|
37
|
+
it_behaves_like 'a cleanroom setter', :maintainer, %|maintainer 'Captain Jack <sparrow@chef.io>'|
|
25
38
|
it_behaves_like 'a cleanroom setter', :dependency, %|dependency 'libxslt'|
|
26
39
|
it_behaves_like 'a cleanroom setter', :source, %|source url: 'https://source.example.com'|
|
27
40
|
it_behaves_like 'a cleanroom setter', :default_version, %|default_version '1.2.3'|
|
@@ -50,9 +63,9 @@ module Omnibus
|
|
50
63
|
it "sets the defaults" do
|
51
64
|
expect(subject.with_standard_compiler_flags).to eq(
|
52
65
|
'LDFLAGS' => '-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib',
|
53
|
-
'CFLAGS' => '-I/opt/project/embedded/include',
|
54
|
-
'CXXFLAGS' => '-I/opt/project/embedded/include',
|
55
|
-
'CPPFLAGS' => '-I/opt/project/embedded/include',
|
66
|
+
'CFLAGS' => '-I/opt/project/embedded/include -O2',
|
67
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -O2',
|
68
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -O2',
|
56
69
|
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
57
70
|
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
58
71
|
)
|
@@ -60,9 +73,9 @@ module Omnibus
|
|
60
73
|
it 'overrides LDFLAGS' do
|
61
74
|
expect(subject.with_standard_compiler_flags('LDFLAGS' => 'foo')).to eq(
|
62
75
|
'LDFLAGS' => '-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib',
|
63
|
-
'CFLAGS' => '-I/opt/project/embedded/include',
|
64
|
-
'CXXFLAGS' => '-I/opt/project/embedded/include',
|
65
|
-
'CPPFLAGS' => '-I/opt/project/embedded/include',
|
76
|
+
'CFLAGS' => '-I/opt/project/embedded/include -O2',
|
77
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -O2',
|
78
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -O2',
|
66
79
|
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
67
80
|
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
68
81
|
)
|
@@ -70,9 +83,9 @@ module Omnibus
|
|
70
83
|
it 'overrides CFLAGS' do
|
71
84
|
expect(subject.with_standard_compiler_flags('CFLAGS'=>'foo')).to eq(
|
72
85
|
'LDFLAGS' => '-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib',
|
73
|
-
'CFLAGS' => '-I/opt/project/embedded/include',
|
74
|
-
'CXXFLAGS' => '-I/opt/project/embedded/include',
|
75
|
-
'CPPFLAGS' => '-I/opt/project/embedded/include',
|
86
|
+
'CFLAGS' => '-I/opt/project/embedded/include -O2',
|
87
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -O2',
|
88
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -O2',
|
76
89
|
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
77
90
|
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
78
91
|
)
|
@@ -80,9 +93,9 @@ module Omnibus
|
|
80
93
|
it 'overrides CXXFLAGS' do
|
81
94
|
expect(subject.with_standard_compiler_flags('CXXFLAGS'=>'foo')).to eq(
|
82
95
|
'LDFLAGS' => '-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib',
|
83
|
-
'CFLAGS' => '-I/opt/project/embedded/include',
|
84
|
-
'CXXFLAGS' => '-I/opt/project/embedded/include',
|
85
|
-
'CPPFLAGS' => '-I/opt/project/embedded/include',
|
96
|
+
'CFLAGS' => '-I/opt/project/embedded/include -O2',
|
97
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -O2',
|
98
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -O2',
|
86
99
|
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
87
100
|
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
88
101
|
)
|
@@ -90,9 +103,9 @@ module Omnibus
|
|
90
103
|
it 'overrides CPPFLAGS' do
|
91
104
|
expect(subject.with_standard_compiler_flags('CPPFLAGS'=>'foo')).to eq(
|
92
105
|
'LDFLAGS' => '-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib',
|
93
|
-
'CFLAGS' => '-I/opt/project/embedded/include',
|
94
|
-
'CXXFLAGS' => '-I/opt/project/embedded/include',
|
95
|
-
'CPPFLAGS' => '-I/opt/project/embedded/include',
|
106
|
+
'CFLAGS' => '-I/opt/project/embedded/include -O2',
|
107
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -O2',
|
108
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -O2',
|
96
109
|
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
97
110
|
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
98
111
|
)
|
@@ -101,9 +114,9 @@ module Omnibus
|
|
101
114
|
expect(subject.with_standard_compiler_flags('numberwang'=>4)).to eq(
|
102
115
|
'numberwang' => 4,
|
103
116
|
'LDFLAGS' => '-Wl,-rpath,/opt/project/embedded/lib -L/opt/project/embedded/lib',
|
104
|
-
'CFLAGS' => '-I/opt/project/embedded/include',
|
105
|
-
'CXXFLAGS' => '-I/opt/project/embedded/include',
|
106
|
-
'CPPFLAGS' => '-I/opt/project/embedded/include',
|
117
|
+
'CFLAGS' => '-I/opt/project/embedded/include -O2',
|
118
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -O2',
|
119
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -O2',
|
107
120
|
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
108
121
|
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
109
122
|
)
|
@@ -165,9 +178,9 @@ module Omnibus
|
|
165
178
|
it 'sets the defaults' do
|
166
179
|
expect(subject.with_standard_compiler_flags).to eq(
|
167
180
|
'LDFLAGS' => '-L/opt/project/embedded/lib',
|
168
|
-
'CFLAGS' => '-I/opt/project/embedded/include',
|
169
|
-
"CXXFLAGS" => "-I/opt/project/embedded/include",
|
170
|
-
"CPPFLAGS" => "-I/opt/project/embedded/include",
|
181
|
+
'CFLAGS' => '-I/opt/project/embedded/include -O2',
|
182
|
+
"CXXFLAGS" => "-I/opt/project/embedded/include -O2",
|
183
|
+
"CPPFLAGS" => "-I/opt/project/embedded/include -O2",
|
171
184
|
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
172
185
|
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
173
186
|
)
|
@@ -199,37 +212,100 @@ module Omnibus
|
|
199
212
|
end
|
200
213
|
end
|
201
214
|
|
202
|
-
context 'on freebsd' do
|
215
|
+
context 'on freebsd 9' do
|
203
216
|
before do
|
204
217
|
stub_ohai(platform: 'freebsd', version: '9.2')
|
205
218
|
end
|
206
219
|
|
207
220
|
it 'sets the defaults' do
|
208
221
|
expect(subject.with_standard_compiler_flags).to eq(
|
209
|
-
'CFLAGS' => '-I/opt/project/embedded/include',
|
210
|
-
'CXXFLAGS' => '-I/opt/project/embedded/include',
|
211
|
-
'CPPFLAGS' => '-I/opt/project/embedded/include',
|
222
|
+
'CFLAGS' => '-I/opt/project/embedded/include -O2',
|
223
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -O2',
|
224
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -O2',
|
212
225
|
'LDFLAGS' => '-L/opt/project/embedded/lib',
|
213
226
|
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
214
227
|
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig',
|
215
228
|
)
|
216
229
|
end
|
230
|
+
end
|
231
|
+
|
232
|
+
context 'on freebsd 10' do
|
233
|
+
before do
|
234
|
+
stub_ohai(platform: 'freebsd', version: '10.0')
|
235
|
+
end
|
236
|
+
|
237
|
+
it 'Clang as the default compiler' do
|
238
|
+
expect(subject.with_standard_compiler_flags).to eq(
|
239
|
+
'CC' => 'clang',
|
240
|
+
'CXX' => 'clang++',
|
241
|
+
'CFLAGS' => '-I/opt/project/embedded/include -O2',
|
242
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -O2',
|
243
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -O2',
|
244
|
+
'LDFLAGS' => '-L/opt/project/embedded/lib',
|
245
|
+
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
246
|
+
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig',
|
247
|
+
)
|
248
|
+
end
|
249
|
+
end
|
217
250
|
|
218
|
-
|
219
|
-
|
220
|
-
|
251
|
+
context 'on Windows' do
|
252
|
+
let(:win_arch_i386) { true }
|
253
|
+
|
254
|
+
before do
|
255
|
+
stub_ohai(platform: 'windows', version: '2012')
|
256
|
+
allow(subject).to receive(:windows_arch_i386?).and_return(win_arch_i386)
|
257
|
+
end
|
258
|
+
|
259
|
+
context 'in 32-bit mode' do
|
260
|
+
it 'sets the default' do
|
261
|
+
expect(subject.with_standard_compiler_flags).to eq(
|
262
|
+
'CFLAGS' => '-I/opt/project/embedded/include -m32 -O3 -mfpmath=sse -msse2 -march=i686',
|
263
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -m32 -O3 -mfpmath=sse -msse2 -march=i686',
|
264
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -m32 -O3 -mfpmath=sse -msse2 -march=i686',
|
265
|
+
'LDFLAGS' => '-L/opt/project/embedded/lib -m32',
|
266
|
+
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
267
|
+
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
268
|
+
)
|
221
269
|
end
|
222
270
|
|
223
|
-
it '
|
271
|
+
it 'sets BFD flags if requested' do
|
272
|
+
expect(subject.with_standard_compiler_flags({}, bfd_flags: true)).to eq(
|
273
|
+
'CFLAGS' => '-I/opt/project/embedded/include -m32 -O3 -mfpmath=sse -msse2 -march=i686',
|
274
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -m32 -O3 -mfpmath=sse -msse2 -march=i686',
|
275
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -m32 -O3 -mfpmath=sse -msse2 -march=i686',
|
276
|
+
'LDFLAGS' => '-L/opt/project/embedded/lib -m32',
|
277
|
+
'RCFLAGS' => '--target=pe-i386',
|
278
|
+
'ARFLAGS' => '--target=pe-i386',
|
279
|
+
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
280
|
+
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
281
|
+
)
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
context 'in 64-bit mode' do
|
286
|
+
let(:win_arch_i386) { false }
|
287
|
+
|
288
|
+
it 'sets the default' do
|
224
289
|
expect(subject.with_standard_compiler_flags).to eq(
|
225
|
-
'
|
226
|
-
'
|
227
|
-
'
|
228
|
-
'
|
229
|
-
'CPPFLAGS' => '-I/opt/project/embedded/include',
|
230
|
-
'LDFLAGS' => '-L/opt/project/embedded/lib',
|
290
|
+
'CFLAGS' => '-I/opt/project/embedded/include -m64 -O3 -mfpmath=sse -msse2 -march=x86-64',
|
291
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -m64 -O3 -mfpmath=sse -msse2 -march=x86-64',
|
292
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -m64 -O3 -mfpmath=sse -msse2 -march=x86-64',
|
293
|
+
'LDFLAGS' => '-L/opt/project/embedded/lib -m64',
|
231
294
|
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
232
|
-
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
295
|
+
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
296
|
+
)
|
297
|
+
end
|
298
|
+
|
299
|
+
it 'sets BFD flags if requested' do
|
300
|
+
expect(subject.with_standard_compiler_flags({}, bfd_flags: true)).to eq(
|
301
|
+
'CFLAGS' => '-I/opt/project/embedded/include -m64 -O3 -mfpmath=sse -msse2 -march=x86-64',
|
302
|
+
'CXXFLAGS' => '-I/opt/project/embedded/include -m64 -O3 -mfpmath=sse -msse2 -march=x86-64',
|
303
|
+
'CPPFLAGS' => '-I/opt/project/embedded/include -m64 -O3 -mfpmath=sse -msse2 -march=x86-64',
|
304
|
+
'LDFLAGS' => '-L/opt/project/embedded/lib -m64',
|
305
|
+
'RCFLAGS' => '--target=pe-x86-64',
|
306
|
+
'ARFLAGS' => '--target=pe-x86-64',
|
307
|
+
'LD_RUN_PATH' => '/opt/project/embedded/lib',
|
308
|
+
'PKG_CONFIG_PATH' => '/opt/project/embedded/lib/pkgconfig'
|
233
309
|
)
|
234
310
|
end
|
235
311
|
end
|
@@ -273,6 +349,12 @@ module Omnibus
|
|
273
349
|
)
|
274
350
|
end
|
275
351
|
|
352
|
+
it 'with_embedded_path ignores option to add msys to path' do
|
353
|
+
expect(subject.with_embedded_path({}, msys: true)).to eq(
|
354
|
+
'PATH' => prepended_path
|
355
|
+
)
|
356
|
+
end
|
357
|
+
|
276
358
|
it 'prepends multiple paths to PATH' do
|
277
359
|
expect(subject.prepend_path('/foo/bar', '/foo/baz')).to eq(
|
278
360
|
['/foo/bar', separator, '/foo/baz', separator, path].join
|
@@ -288,6 +370,10 @@ module Omnibus
|
|
288
370
|
let(:separator) { ';' }
|
289
371
|
let(:path) { 'c:/Ruby193/bin;c:/Windows/system32;c:/Windows;c:/Windows/System32/Wbem' }
|
290
372
|
let(:install_dir) { 'c:/opt/project' }
|
373
|
+
let(:prepended_path_msys) do
|
374
|
+
[ "#{install_dir}/bin", separator, "#{install_dir}/embedded/bin", separator,
|
375
|
+
"#{install_dir}/embedded/msys/1.0/bin", separator, path].join
|
376
|
+
end
|
291
377
|
|
292
378
|
context '`Path` exists in the environment' do
|
293
379
|
before do
|
@@ -306,11 +392,19 @@ module Omnibus
|
|
306
392
|
before do
|
307
393
|
allow(ENV).to receive(:keys).and_return(['PATH'])
|
308
394
|
end
|
395
|
+
|
309
396
|
it 'returns a path key of `PATH`' do
|
310
397
|
expect(subject.with_embedded_path).to eq(
|
311
398
|
'PATH' => prepended_path
|
312
399
|
)
|
313
400
|
end
|
401
|
+
|
402
|
+
it 'with_embedded_path accepts option to add msys to path' do
|
403
|
+
expect(subject.with_embedded_path({}, msys: true)).to eq(
|
404
|
+
'PATH' => prepended_path_msys
|
405
|
+
)
|
406
|
+
end
|
407
|
+
|
314
408
|
end
|
315
409
|
end
|
316
410
|
end
|
@@ -447,6 +541,116 @@ module Omnibus
|
|
447
541
|
end
|
448
542
|
end
|
449
543
|
|
544
|
+
describe '#fetcher' do
|
545
|
+
before do
|
546
|
+
expect(Omnibus::Fetcher).to receive(:resolve_version).with("1.2.3", source).and_return("1.2.8")
|
547
|
+
end
|
548
|
+
|
549
|
+
context 'when given a source url to an archive' do
|
550
|
+
let(:source) do
|
551
|
+
{
|
552
|
+
url: 'http://example.com/foo.tar.gz',
|
553
|
+
md5: 'abcd1234'
|
554
|
+
}
|
555
|
+
end
|
556
|
+
|
557
|
+
context 'when relative_path is the same as name' do
|
558
|
+
let(:rel_path) { 'software' }
|
559
|
+
|
560
|
+
it 'ignores back-compat and leaves fetch_dir alone' do
|
561
|
+
subject.send(:fetcher)
|
562
|
+
expect(subject.project_dir).to eq(File.expand_path("#{Config.source_dir}/software/software"))
|
563
|
+
end
|
564
|
+
|
565
|
+
it 'sets the fetcher project_dir to fetch_dir' do
|
566
|
+
expect(subject.send(:fetcher).project_dir).to eq(File.expand_path("#{Config.source_dir}/software"))
|
567
|
+
end
|
568
|
+
end
|
569
|
+
|
570
|
+
context 'when relative_path is different from name' do
|
571
|
+
let(:rel_path) { 'foo' }
|
572
|
+
|
573
|
+
it 'ignores back-compat and leaves fetch_dir alone' do
|
574
|
+
subject.send(:fetcher)
|
575
|
+
expect(subject.project_dir).to eq(File.expand_path("#{Config.source_dir}/software/foo"))
|
576
|
+
end
|
577
|
+
|
578
|
+
it 'sets the fetcher project_dir to fetch_dir' do
|
579
|
+
expect(subject.send(:fetcher).project_dir).to eq(File.expand_path("#{Config.source_dir}/software"))
|
580
|
+
end
|
581
|
+
end
|
582
|
+
end
|
583
|
+
|
584
|
+
context 'when given source url is not an archive' do
|
585
|
+
let(:source) do
|
586
|
+
{
|
587
|
+
url: 'http://example.com/foo.txt',
|
588
|
+
md5: 'abcd1234'
|
589
|
+
}
|
590
|
+
end
|
591
|
+
|
592
|
+
context 'when relative_path is the same as name' do
|
593
|
+
let(:rel_path) { 'software' }
|
594
|
+
|
595
|
+
it 'for back-compat, changes fetch_dir' do
|
596
|
+
subject.send(:fetcher)
|
597
|
+
expect(subject.project_dir).to eq(File.expand_path("#{Config.source_dir}/software/software"))
|
598
|
+
end
|
599
|
+
|
600
|
+
it 'sets the fetcher project_dir to project_dir' do
|
601
|
+
expect(subject.send(:fetcher).project_dir).to eq(File.expand_path("#{Config.source_dir}/software/software"))
|
602
|
+
end
|
603
|
+
end
|
604
|
+
|
605
|
+
context 'when relative_path is different from name' do
|
606
|
+
let(:rel_path) { 'foo' }
|
607
|
+
|
608
|
+
it 'ignores back-compat and leaves fetch_dir alone' do
|
609
|
+
subject.send(:fetcher)
|
610
|
+
expect(subject.project_dir).to eq(File.expand_path("#{Config.source_dir}/software/foo"))
|
611
|
+
end
|
612
|
+
|
613
|
+
it 'sets the fetcher project_dir to project_dir' do
|
614
|
+
expect(subject.send(:fetcher).project_dir).to eq(File.expand_path("#{Config.source_dir}/software/foo"))
|
615
|
+
end
|
616
|
+
end
|
617
|
+
end
|
618
|
+
|
619
|
+
context 'when given source is a git repo' do
|
620
|
+
let(:source) do
|
621
|
+
{
|
622
|
+
git: 'http://example.com/my/git/repo',
|
623
|
+
}
|
624
|
+
end
|
625
|
+
|
626
|
+
context 'when relative_path is the same as name' do
|
627
|
+
let(:rel_path) { 'software' }
|
628
|
+
|
629
|
+
it 'for back-compat, changes fetch_dir' do
|
630
|
+
subject.send(:fetcher)
|
631
|
+
expect(subject.project_dir).to eq(File.expand_path("#{Config.source_dir}/software/software"))
|
632
|
+
end
|
633
|
+
|
634
|
+
it 'sets the fetcher project_dir to project_dir' do
|
635
|
+
expect(subject.send(:fetcher).project_dir).to eq(File.expand_path("#{Config.source_dir}/software/software"))
|
636
|
+
end
|
637
|
+
end
|
638
|
+
|
639
|
+
context 'when relative_path is different from name' do
|
640
|
+
let(:rel_path) { 'foo' }
|
641
|
+
|
642
|
+
it 'ignores back-compat and leaves fetch_dir alone' do
|
643
|
+
subject.send(:fetcher)
|
644
|
+
expect(subject.project_dir).to eq(File.expand_path("#{Config.source_dir}/software/foo"))
|
645
|
+
end
|
646
|
+
|
647
|
+
it 'sets the fetcher project_dir to project_dir' do
|
648
|
+
expect(subject.send(:fetcher).project_dir).to eq(File.expand_path("#{Config.source_dir}/software/foo"))
|
649
|
+
end
|
650
|
+
end
|
651
|
+
end
|
652
|
+
end
|
653
|
+
|
450
654
|
describe '#shasum' do
|
451
655
|
context 'when a filepath is given' do
|
452
656
|
let(:path) { '/software.rb' }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omnibus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chef Software, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-sugar
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '3.
|
19
|
+
version: '3.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '3.
|
26
|
+
version: '3.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: cleanroom
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -257,6 +257,7 @@ extensions: []
|
|
257
257
|
extra_rdoc_files: []
|
258
258
|
files:
|
259
259
|
- ".gitignore"
|
260
|
+
- ".rspec"
|
260
261
|
- ".rubocop.yml"
|
261
262
|
- ".travis.yml"
|
262
263
|
- CHANGELOG.md
|
@@ -320,7 +321,6 @@ files:
|
|
320
321
|
- lib/omnibus/generator_files/config/software/zlib.rb.erb
|
321
322
|
- lib/omnibus/generator_files/gitignore.erb
|
322
323
|
- lib/omnibus/generator_files/omnibus.rb.erb
|
323
|
-
- lib/omnibus/generator_files/package_scripts/makeselfinst.erb
|
324
324
|
- lib/omnibus/generator_files/package_scripts/postinst.erb
|
325
325
|
- lib/omnibus/generator_files/package_scripts/postrm.erb
|
326
326
|
- lib/omnibus/generator_files/package_scripts/preinst.erb
|
@@ -364,6 +364,7 @@ files:
|
|
364
364
|
- lib/omnibus/util.rb
|
365
365
|
- lib/omnibus/version.rb
|
366
366
|
- omnibus.gemspec
|
367
|
+
- resources/bff/config.erb
|
367
368
|
- resources/bff/gen.template.erb
|
368
369
|
- resources/deb/conffiles.erb
|
369
370
|
- resources/deb/control.erb
|
@@ -476,7 +477,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
476
477
|
version: '0'
|
477
478
|
requirements: []
|
478
479
|
rubyforge_project:
|
479
|
-
rubygems_version: 2.
|
480
|
+
rubygems_version: 2.5.2
|
480
481
|
signing_key:
|
481
482
|
specification_version: 4
|
482
483
|
summary: Omnibus is a framework for building self-installing, full-stack software
|