omnibus 6.0.25 → 7.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -3
  3. data/README.md +25 -9
  4. data/Rakefile +1 -1
  5. data/lib/omnibus/build_version_dsl.rb +1 -0
  6. data/lib/omnibus/builder.rb +10 -7
  7. data/lib/omnibus/changelog_printer.rb +7 -4
  8. data/lib/omnibus/cleaner.rb +3 -0
  9. data/lib/omnibus/cli.rb +1 -1
  10. data/lib/omnibus/cli/changelog.rb +24 -24
  11. data/lib/omnibus/cli/publish.rb +5 -5
  12. data/lib/omnibus/compressor.rb +2 -2
  13. data/lib/omnibus/compressors/base.rb +1 -1
  14. data/lib/omnibus/compressors/dmg.rb +45 -7
  15. data/lib/omnibus/config.rb +12 -2
  16. data/lib/omnibus/fetchers/git_fetcher.rb +1 -0
  17. data/lib/omnibus/fetchers/net_fetcher.rb +2 -3
  18. data/lib/omnibus/file_syncer.rb +2 -2
  19. data/lib/omnibus/generator.rb +1 -0
  20. data/lib/omnibus/generator_files/Gemfile.erb +2 -2
  21. data/lib/omnibus/generator_files/README.md.erb +18 -15
  22. data/lib/omnibus/generator_files/config/projects/project.rb.erb +0 -3
  23. data/lib/omnibus/generator_files/config/software/preparation.rb.erb +30 -0
  24. data/lib/omnibus/generator_files/omnibus.rb.erb +5 -4
  25. data/lib/omnibus/health_check.rb +1 -1
  26. data/lib/omnibus/licensing.rb +3 -4
  27. data/lib/omnibus/logger.rb +2 -1
  28. data/lib/omnibus/manifest.rb +1 -1
  29. data/lib/omnibus/metadata.rb +2 -2
  30. data/lib/omnibus/packagers/appx.rb +1 -2
  31. data/lib/omnibus/packagers/base.rb +1 -0
  32. data/lib/omnibus/packagers/bff.rb +6 -8
  33. data/lib/omnibus/packagers/deb.rb +7 -10
  34. data/lib/omnibus/packagers/ips.rb +3 -6
  35. data/lib/omnibus/packagers/makeself.rb +1 -2
  36. data/lib/omnibus/packagers/msi.rb +12 -11
  37. data/lib/omnibus/packagers/pkg.rb +125 -9
  38. data/lib/omnibus/packagers/rpm.rb +13 -12
  39. data/lib/omnibus/packagers/solaris.rb +4 -4
  40. data/lib/omnibus/packagers/windows_base.rb +7 -6
  41. data/lib/omnibus/project.rb +1 -0
  42. data/lib/omnibus/publisher.rb +14 -12
  43. data/lib/omnibus/publishers/s3_publisher.rb +6 -4
  44. data/lib/omnibus/s3_cache.rb +3 -1
  45. data/lib/omnibus/s3_helpers.rb +6 -6
  46. data/lib/omnibus/software.rb +66 -30
  47. data/lib/omnibus/templating.rb +1 -1
  48. data/lib/omnibus/util.rb +3 -2
  49. data/lib/omnibus/version.rb +1 -1
  50. data/lib/omnibus/whitelist.rb +6 -1
  51. data/omnibus.gemspec +7 -6
  52. data/resources/rpm/signing.erb +7 -10
  53. data/spec/functional/builder_spec.rb +2 -1
  54. data/spec/functional/fetchers/file_fetcher_spec.rb +4 -4
  55. data/spec/functional/fetchers/git_fetcher_spec.rb +4 -4
  56. data/spec/functional/fetchers/net_fetcher_spec.rb +5 -6
  57. data/spec/functional/fetchers/path_fetcher_spec.rb +4 -4
  58. data/spec/functional/file_syncer_spec.rb +42 -0
  59. data/spec/functional/licensing_spec.rb +5 -5
  60. data/spec/spec_helper.rb +6 -0
  61. data/spec/support/examples.rb +3 -4
  62. data/spec/unit/builder_spec.rb +9 -9
  63. data/spec/unit/changelogprinter_spec.rb +8 -6
  64. data/spec/unit/compressor_spec.rb +3 -3
  65. data/spec/unit/compressors/dmg_spec.rb +43 -4
  66. data/spec/unit/fetchers/net_fetcher_spec.rb +16 -17
  67. data/spec/unit/generator_spec.rb +1 -0
  68. data/spec/unit/health_check_spec.rb +2 -6
  69. data/spec/unit/library_spec.rb +2 -1
  70. data/spec/unit/manifest_diff_spec.rb +2 -2
  71. data/spec/unit/manifest_spec.rb +1 -1
  72. data/spec/unit/metadata_spec.rb +9 -11
  73. data/spec/unit/omnibus_spec.rb +1 -1
  74. data/spec/unit/packagers/bff_spec.rb +2 -2
  75. data/spec/unit/packagers/msi_spec.rb +2 -2
  76. data/spec/unit/packagers/pkg_spec.rb +354 -0
  77. data/spec/unit/packagers/pkgsrc_spec.rb +1 -1
  78. data/spec/unit/packagers/solaris_spec.rb +7 -7
  79. data/spec/unit/project_spec.rb +2 -2
  80. data/spec/unit/publisher_spec.rb +8 -9
  81. data/spec/unit/publishers/artifactory_publisher_spec.rb +2 -4
  82. data/spec/unit/publishers/s3_publisher_spec.rb +2 -4
  83. data/spec/unit/s3_cacher_spec.rb +19 -6
  84. data/spec/unit/s3_helpers_spec.rb +22 -3
  85. data/spec/unit/software_spec.rb +72 -42
  86. data/spec/unit/util_spec.rb +1 -2
  87. metadata +32 -11
@@ -13,10 +13,10 @@ module Omnibus
13
13
 
14
14
  let(:manifest_entry) do
15
15
  double(Omnibus::ManifestEntry,
16
- name: "pathelogical",
17
- locked_version: nil,
18
- described_version: nil,
19
- locked_source: source)
16
+ name: "pathelogical",
17
+ locked_version: nil,
18
+ described_version: nil,
19
+ locked_source: source)
20
20
  end
21
21
 
22
22
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
@@ -110,10 +110,10 @@ module Omnibus
110
110
  let(:remote) { remote_git_repo("zlib", annotated_tags: [version]) }
111
111
  let(:manifest_entry) do
112
112
  double(ManifestEntry,
113
- name: "software",
114
- locked_version: "efde208366abd0f91419d8a54b45e3f6e0540105",
115
- described_version: version,
116
- locked_source: source)
113
+ name: "software",
114
+ locked_version: "efde208366abd0f91419d8a54b45e3f6e0540105",
115
+ described_version: version,
116
+ locked_source: source)
117
117
  end
118
118
 
119
119
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
@@ -4,8 +4,7 @@ module Omnibus
4
4
  module RSpec
5
5
  module OhaiHelpers
6
6
  # Turn off the mandatory Ohai helper.
7
- def stub_ohai(options = {}, &block)
8
- end
7
+ def stub_ohai(options = {}, &block); end
9
8
  end
10
9
  end
11
10
 
@@ -29,10 +28,10 @@ module Omnibus
29
28
 
30
29
  let(:manifest_entry) do
31
30
  double(ManifestEntry,
32
- name: "software",
33
- locked_version: "1.2.8",
34
- described_version: "1.2.8",
35
- locked_source: source)
31
+ name: "software",
32
+ locked_version: "1.2.8",
33
+ described_version: "1.2.8",
34
+ locked_source: source)
36
35
  end
37
36
 
38
37
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
@@ -12,10 +12,10 @@ module Omnibus
12
12
 
13
13
  let(:manifest_entry) do
14
14
  double(Omnibus::ManifestEntry,
15
- name: "pathelogical",
16
- locked_version: nil,
17
- described_version: nil,
18
- locked_source: source)
15
+ name: "pathelogical",
16
+ locked_version: nil,
17
+ described_version: nil,
18
+ locked_source: source)
19
19
  end
20
20
 
21
21
  before do
@@ -56,6 +56,14 @@ module Omnibus
56
56
  FileUtils.touch(File.join(source, ".dot_folder", "file_f"))
57
57
 
58
58
  FileUtils.touch(File.join(source, ".file_g"))
59
+
60
+ FileUtils.mkdir_p(File.join(source, "nested", "deep", "folder"))
61
+ FileUtils.touch(File.join(source, "nested", "deep", "folder", "file_h"))
62
+ FileUtils.touch(File.join(source, "nested", "deep", "folder", "file_i"))
63
+
64
+ FileUtils.mkdir_p(File.join(source, "nested", "deep", "deep", "folder"))
65
+ FileUtils.touch(File.join(source, "nested", "deep", "deep", "folder", "file_j"))
66
+ FileUtils.touch(File.join(source, "nested", "deep", "deep", "folder", "file_k"))
59
67
  source
60
68
  end
61
69
 
@@ -233,6 +241,40 @@ module Omnibus
233
241
  expect("#{destination}/.file_g").to be_a_file
234
242
  end
235
243
 
244
+ it "does not copy files and folders that match the wildcard pattern" do
245
+ described_class.sync(source, destination, exclude: "nested/*/folder")
246
+
247
+ expect("#{destination}/file_a").to be_a_file
248
+ expect("#{destination}/file_b").to be_a_file
249
+ expect("#{destination}/file_c").to be_a_file
250
+ expect("#{destination}/folder/file_d").to be_a_file
251
+ expect("#{destination}/folder/file_e").to be_a_file
252
+ expect("#{destination}/.dot_folder").to be_a_directory
253
+ expect("#{destination}/.dot_folder/file_f").to be_a_file
254
+ expect("#{destination}/.file_g").to be_a_file
255
+ expect("#{destination}/nested/deep/folder/file_h").to_not be_a_file
256
+ expect("#{destination}/nested/deep/folder/file_i").to_not be_a_file
257
+ expect("#{destination}/nested/deep/deep/folder/file_j").to be_a_file
258
+ expect("#{destination}/nested/deep/deep/folder/file_k").to be_a_file
259
+ end
260
+
261
+ it "does not copy files and folders that match the super wildcard pattern" do
262
+ described_class.sync(source, destination, exclude: "nested/**/folder")
263
+
264
+ expect("#{destination}/file_a").to be_a_file
265
+ expect("#{destination}/file_b").to be_a_file
266
+ expect("#{destination}/file_c").to be_a_file
267
+ expect("#{destination}/folder/file_d").to be_a_file
268
+ expect("#{destination}/folder/file_e").to be_a_file
269
+ expect("#{destination}/.dot_folder").to be_a_directory
270
+ expect("#{destination}/.dot_folder/file_f").to be_a_file
271
+ expect("#{destination}/.file_g").to be_a_file
272
+ expect("#{destination}/nested/deep/folder/file_h").to_not be_a_file
273
+ expect("#{destination}/nested/deep/folder/file_i").to_not be_a_file
274
+ expect("#{destination}/nested/deep/deep/folder/file_j").to_not be_a_file
275
+ expect("#{destination}/nested/deep/deep/folder/file_k").to_not be_a_file
276
+ end
277
+
236
278
  it "removes existing files and folders in destination" do
237
279
  FileUtils.mkdir_p("#{destination}/existing_folder")
238
280
  FileUtils.touch("#{destination}/existing_file")
@@ -37,14 +37,14 @@ module Omnibus
37
37
  expect(project_license).to match /This product bundles private_code 1.7.2,\nwhich is available under a "Unspecified"/
38
38
  expect(project_license).to match /This product bundles snoopy 1.0.0,\nwhich is available under a "GPL v2"/
39
39
  expect(project_license).not_to match /preparation/
40
- expect(project_license).to match /LICENSES\/snoopy-artistic.html/
41
- expect(project_license).to match /LICENSES\/snoopy-NOTICE/
40
+ expect(project_license).to match %r{LICENSES/snoopy-artistic.html}
41
+ expect(project_license).to match %r{LICENSES/snoopy-NOTICE}
42
42
  if zlib_version_override
43
43
  expect(project_license).to match /This product bundles zlib 1.8.0,\nwhich is available under a "Apache-2.0"/
44
- expect(project_license).to match /LICENSES\/zlib-APACHE/
44
+ expect(project_license).to match %r{LICENSES/zlib-APACHE}
45
45
  else
46
46
  expect(project_license).to match /This product bundles zlib 1.7.2,\nwhich is available under a "Zlib"/
47
- expect(project_license).to match /LICENSES\/zlib-LICENSE/
47
+ expect(project_license).to match %r{LICENSES/zlib-LICENSE}
48
48
  end
49
49
  end
50
50
 
@@ -263,7 +263,7 @@ module Omnibus
263
263
  it "should log a warning for the missing file" do
264
264
  output = capture_logging { create_licenses }
265
265
  expect(output).to match(/Retrying failed download/)
266
- expect(output).to match(/Can not download license file 'https:\/\/downloads.chef.io\/LICENSE' for software 'problematic'./)
266
+ expect(output).to match(%r{Can not download license file 'https://downloads.chef.io/LICENSE' for software 'problematic'.})
267
267
  end
268
268
  end
269
269
 
@@ -1,3 +1,5 @@
1
+ Encoding.default_external = Encoding::UTF_8
2
+
1
3
  require "rspec"
2
4
  require "rspec/its"
3
5
  require "rspec/json_expectations"
@@ -16,6 +18,10 @@ def mac?
16
18
  end
17
19
 
18
20
  RSpec.configure do |config|
21
+ config.expect_with :rspec do |c|
22
+ c.max_formatted_output_length = 1000
23
+ end
24
+
19
25
  # Custom matchers and shared examples
20
26
  require_relative "support/examples"
21
27
  require_relative "support/matchers"
@@ -27,8 +27,7 @@ RSpec.shared_examples "a software" do |name = "chefdk"|
27
27
  install_dir: install_dir,
28
28
  project_dir: project_dir,
29
29
  source: source,
30
- overridden?: false
31
- )
30
+ overridden?: false)
32
31
  end
33
32
 
34
33
  before do
@@ -56,12 +55,12 @@ RSpec.shared_examples "a software" do |name = "chefdk"|
56
55
  FileUtils.mkdir_p(embedded_bin_dir)
57
56
 
58
57
  allow(software).to receive(:with_embedded_path).and_return(
59
- "PATH" => "#{bin_dir}:#{embedded_bin_dir}:#{ENV['PATH']}"
58
+ "PATH" => "#{bin_dir}:#{embedded_bin_dir}:#{ENV["PATH"]}"
60
59
  )
61
60
 
62
61
  allow(software).to receive(:embedded_bin) do |binary|
63
62
  p = File.join(embedded_bin_dir, binary)
64
- p.gsub!(/\//, '\\') if windows?
63
+ p.gsub!(%r{/}, '\\') if windows?
65
64
  p
66
65
  end
67
66
  end
@@ -6,8 +6,7 @@ module Omnibus
6
6
  double(Software,
7
7
  name: "chefdk",
8
8
  install_dir: project_dir,
9
- project_dir: project_dir
10
- )
9
+ project_dir: project_dir)
11
10
  end
12
11
 
13
12
  let(:project_dir) { on_windows ? "C:/opscode/chefdk" : "/opt/chefdk" }
@@ -238,7 +237,7 @@ module Omnibus
238
237
  it "appends platform host to the options" do
239
238
  expect(subject).to receive(:command)
240
239
  .with("./configure --build=x86_64-w64-mingw32 --prefix=#{project_dir}/embedded", in_msys_bash: true)
241
- subject.configure()
240
+ subject.configure
242
241
  end
243
242
  end
244
243
 
@@ -254,7 +253,7 @@ module Omnibus
254
253
  it "appends platform host to the options" do
255
254
  expect(subject).to receive(:command)
256
255
  .with("./configure --build=i686-w64-mingw32 --prefix=#{project_dir}/embedded", in_msys_bash: true)
257
- subject.configure()
256
+ subject.configure
258
257
  end
259
258
  end
260
259
 
@@ -305,7 +304,8 @@ module Omnibus
305
304
  .with("config/patches", "good_patch")
306
305
  .and_return(
307
306
  [ ["#{project_dir}/patch_location1/good_patch", "#{project_dir}/patch_location2/good_patch"],
308
- "#{project_dir}/patch_location2/good_patch" ])
307
+ "#{project_dir}/patch_location2/good_patch" ]
308
+ )
309
309
  end
310
310
 
311
311
  it "is a DSL method" do
@@ -355,10 +355,10 @@ module Omnibus
355
355
 
356
356
  let(:software) do
357
357
  double(Software,
358
- name: "chefdk",
359
- install_dir: tmp_dir,
360
- project_dir: tmp_dir,
361
- overridden?: false)
358
+ name: "chefdk",
359
+ install_dir: tmp_dir,
360
+ project_dir: tmp_dir,
361
+ overridden?: false)
362
362
  end
363
363
 
364
364
  let(:before_build_shasum) do
@@ -16,16 +16,18 @@ module Omnibus
16
16
 
17
17
  let(:changelog) do
18
18
  double(ChangeLog,
19
- changelog_entries: %w{entry1 entry2},
20
- authors: %w{alice bob}) end
19
+ changelog_entries: %w{entry1 entry2},
20
+ authors: %w{alice bob})
21
+ end
21
22
  let(:git_changelog) do
22
23
  double(ChangeLog,
23
- changelog_entries:
24
- %w{sub-entry1 sub-entry2}) end
24
+ changelog_entries:
25
+ %w{sub-entry1 sub-entry2})
26
+ end
25
27
  let(:now) { double(Time) }
26
28
  let(:emptydiff) { EmptyManifestDiff.new }
27
29
  let(:old_manifest) do
28
- m = Manifest.new()
30
+ m = Manifest.new
29
31
  m.add("updated-comp", manifest_entry_for("updated-comp", "v9", "v9"))
30
32
  m.add("updated-comp-2", manifest_entry_for("updated-comp-2", "someref0", "someref0", :git))
31
33
  m.add("removed-comp", manifest_entry_for("removed-comp", "v9", "v9"))
@@ -33,7 +35,7 @@ module Omnibus
33
35
  m
34
36
  end
35
37
  let(:new_manifest) do
36
- m = Manifest.new()
38
+ m = Manifest.new
37
39
  m.add("updated-comp", manifest_entry_for("updated-comp", "v10", "v10"))
38
40
  m.add("updated-comp-2", manifest_entry_for("updated-comp-2", "someotherref", "someotherref", :git))
39
41
  m.add("added-comp", manifest_entry_for("added-comp", "v100", "v100"))
@@ -8,13 +8,13 @@ module Omnibus
8
8
 
9
9
  context "when :dmg is activated" do
10
10
  it "prefers dmg" do
11
- expect(described_class.for_current_system([:tgz, :dmg])).to eq(Compressor::DMG)
11
+ expect(described_class.for_current_system(%i{tgz dmg})).to eq(Compressor::DMG)
12
12
  end
13
13
  end
14
14
 
15
15
  context "when :dmg is not activated" do
16
16
  it "prefers tgz" do
17
- expect(described_class.for_current_system([:tgz, :foo])).to eq(Compressor::TGZ)
17
+ expect(described_class.for_current_system(%i{tgz foo})).to eq(Compressor::TGZ)
18
18
  end
19
19
  end
20
20
 
@@ -30,7 +30,7 @@ module Omnibus
30
30
 
31
31
  context "when :tgz activated" do
32
32
  it "prefers tgz" do
33
- expect(described_class.for_current_system([:tgz, :foo])).to eq(Compressor::TGZ)
33
+ expect(described_class.for_current_system(%i{tgz foo})).to eq(Compressor::TGZ)
34
34
  end
35
35
  end
36
36
 
@@ -90,7 +90,8 @@ module Omnibus
90
90
  -fs HFS+ \\
91
91
  -fsargs "-c c=64,a=16,e=16" \\
92
92
  -size 512000k \\
93
- "#{staging_dir}/project-writable.dmg"
93
+ "#{staging_dir}/project-writable.dmg" \\
94
+ -puppetstrings
94
95
  EOH
95
96
 
96
97
  subject.create_writable_dmg
@@ -114,6 +115,7 @@ module Omnibus
114
115
  expect(subject).to receive(:shellout!)
115
116
  .with <<-EOH.gsub(/^ {12}/, "")
116
117
  hdiutil attach \\
118
+ -puppetstrings \\
117
119
  -readwrite \\
118
120
  -noverify \\
119
121
  -noautoopen \\
@@ -215,20 +217,57 @@ module Omnibus
215
217
  .with <<-EOH.gsub(/^ {12}/, "")
216
218
  chmod -Rf go-w "/Volumes/Project One"
217
219
  sync
218
- hdiutil detach "#{device}"
220
+ hdiutil unmount "#{device}"
221
+ # Give some time to the system so unmount dmg
222
+ sleep 5
223
+ hdiutil detach "#{device}" &&\
219
224
  hdiutil convert \\
220
225
  "#{staging_dir}/project-writable.dmg" \\
221
226
  -format UDZO \\
222
227
  -imagekey \\
223
228
  zlib-level=9 \\
224
- -o "#{package_dir}/project-1.2.3-2.dmg"
225
- rm -rf "#{staging_dir}/project-writable.dmg"
229
+ -o "#{package_dir}/project-1.2.3-2.dmg" \\
230
+ -puppetstrings
226
231
  EOH
227
232
 
228
233
  subject.compress_dmg
229
234
  end
230
235
  end
231
236
 
237
+ describe "#verify_dmg" do
238
+ it "logs a message" do
239
+ output = capture_logging { subject.verify_dmg }
240
+ expect(output).to include("Verifying dmg")
241
+ end
242
+
243
+ it "runs the command" do
244
+ expect(subject).to receive(:shellout!)
245
+ .with <<-EOH.gsub(/^ {12}/, "")
246
+ hdiutil verify \\
247
+ "#{package_dir}/project-1.2.3-2.dmg" \\
248
+ -puppetstrings
249
+ EOH
250
+
251
+ subject.verify_dmg
252
+ end
253
+ end
254
+
255
+ describe "#remove_writable_dmg" do
256
+ it "logs a message" do
257
+ output = capture_logging { subject.remove_writable_dmg }
258
+ expect(output).to include("Removing writable dmg")
259
+ end
260
+
261
+ it "runs the command" do
262
+ expect(subject).to receive(:shellout!)
263
+ .with <<-EOH.gsub(/^ {12}/, "")
264
+ rm -rf "#{staging_dir}/project-writable.dmg"
265
+ EOH
266
+
267
+ subject.remove_writable_dmg
268
+ end
269
+ end
270
+
232
271
  describe "#set_dmg_icon" do
233
272
  it "logs a message" do
234
273
  output = capture_logging { subject.set_dmg_icon }
@@ -11,10 +11,10 @@ module Omnibus
11
11
 
12
12
  let(:manifest_entry) do
13
13
  double(Omnibus::ManifestEntry,
14
- name: "file",
15
- locked_version: "1.2.3",
16
- described_version: "1.2.3",
17
- locked_source: source)
14
+ name: "file",
15
+ locked_version: "1.2.3",
16
+ described_version: "1.2.3",
17
+ locked_source: source)
18
18
  end
19
19
 
20
20
  let(:cache_dir) { "/cache" }
@@ -331,11 +331,10 @@ module Omnibus
331
331
  context "when the file is a .#{extension}" do
332
332
  let(:manifest_entry) do
333
333
  double(Omnibus::ManifestEntry,
334
- name: "file",
335
- locked_version: "1.2.3",
336
- described_version: "1.2.3",
337
- locked_source: { url: "https://get.example.com/file.#{extension}", md5: "abcd1234" }.merge(source_options)
338
- )
334
+ name: "file",
335
+ locked_version: "1.2.3",
336
+ described_version: "1.2.3",
337
+ locked_source: { url: "https://get.example.com/file.#{extension}", md5: "abcd1234" }.merge(source_options))
339
338
  end
340
339
 
341
340
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
@@ -361,10 +360,10 @@ module Omnibus
361
360
  context "when the downloaded file is a folder" do
362
361
  let(:manifest_entry) do
363
362
  double(Omnibus::ManifestEntry,
364
- name: "file",
365
- locked_version: "1.2.3",
366
- described_version: "1.2.3",
367
- locked_source: { url: "https://get.example.com/folder", md5: "abcd1234" })
363
+ name: "file",
364
+ locked_version: "1.2.3",
365
+ described_version: "1.2.3",
366
+ locked_source: { url: "https://get.example.com/folder", md5: "abcd1234" })
368
367
  end
369
368
 
370
369
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
@@ -382,10 +381,10 @@ module Omnibus
382
381
  context "when the downloaded file is a regular file" do
383
382
  let(:manifest_entry) do
384
383
  double(Omnibus::ManifestEntry,
385
- name: "file",
386
- locked_version: "1.2.3",
387
- described_version: "1.2.3",
388
- locked_source: { url: "https://get.example.com/file", md5: "abcd1234" })
384
+ name: "file",
385
+ locked_version: "1.2.3",
386
+ described_version: "1.2.3",
387
+ locked_source: { url: "https://get.example.com/file", md5: "abcd1234" })
389
388
  end
390
389
 
391
390
  subject { described_class.new(manifest_entry, project_dir, build_dir) }
@@ -36,6 +36,7 @@ module Omnibus
36
36
  omnibus-name/config/projects/name.rb
37
37
  omnibus-name/config/software
38
38
  omnibus-name/config/software/name-zlib.rb
39
+ omnibus-name/config/software/preparation.rb
39
40
  omnibus-name/omnibus.rb
40
41
  omnibus-name/package-scripts
41
42
  omnibus-name/package-scripts/name