omnibus 6.1.7 → 6.1.9
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/Rakefile +1 -1
- data/lib/omnibus/build_version_dsl.rb +1 -0
- data/lib/omnibus/builder.rb +6 -5
- data/lib/omnibus/changelog_printer.rb +7 -4
- data/lib/omnibus/cleaner.rb +3 -0
- data/lib/omnibus/cli/changelog.rb +24 -24
- data/lib/omnibus/compressors/dmg.rb +3 -4
- data/lib/omnibus/fetchers/git_fetcher.rb +1 -0
- data/lib/omnibus/fetchers/net_fetcher.rb +2 -3
- data/lib/omnibus/health_check.rb +1 -1
- data/lib/omnibus/licensing.rb +2 -3
- data/lib/omnibus/logger.rb +2 -1
- data/lib/omnibus/manifest.rb +1 -1
- data/lib/omnibus/packagers/appx.rb +1 -2
- data/lib/omnibus/packagers/base.rb +1 -0
- data/lib/omnibus/packagers/bff.rb +6 -8
- data/lib/omnibus/packagers/deb.rb +7 -10
- data/lib/omnibus/packagers/ips.rb +3 -6
- data/lib/omnibus/packagers/makeself.rb +1 -2
- data/lib/omnibus/packagers/msi.rb +12 -11
- data/lib/omnibus/packagers/pkg.rb +3 -6
- data/lib/omnibus/packagers/rpm.rb +11 -12
- data/lib/omnibus/packagers/solaris.rb +4 -4
- data/lib/omnibus/packagers/windows_base.rb +7 -6
- data/lib/omnibus/project.rb +1 -0
- data/lib/omnibus/publisher.rb +2 -2
- data/lib/omnibus/software.rb +18 -11
- data/lib/omnibus/templating.rb +1 -1
- data/lib/omnibus/util.rb +3 -2
- data/lib/omnibus/version.rb +1 -1
- data/omnibus.gemspec +2 -2
- data/spec/functional/builder_spec.rb +2 -1
- data/spec/functional/fetchers/file_fetcher_spec.rb +4 -4
- data/spec/functional/fetchers/git_fetcher_spec.rb +4 -4
- data/spec/functional/fetchers/net_fetcher_spec.rb +5 -6
- data/spec/functional/fetchers/path_fetcher_spec.rb +4 -4
- data/spec/functional/licensing_spec.rb +5 -5
- data/spec/support/examples.rb +3 -4
- data/spec/unit/builder_spec.rb +9 -9
- data/spec/unit/changelogprinter_spec.rb +8 -6
- data/spec/unit/compressor_spec.rb +3 -3
- data/spec/unit/fetchers/net_fetcher_spec.rb +16 -17
- data/spec/unit/health_check_spec.rb +2 -6
- data/spec/unit/library_spec.rb +2 -1
- data/spec/unit/manifest_diff_spec.rb +2 -2
- data/spec/unit/manifest_spec.rb +1 -1
- data/spec/unit/metadata_spec.rb +8 -11
- data/spec/unit/omnibus_spec.rb +1 -1
- data/spec/unit/packagers/bff_spec.rb +2 -2
- data/spec/unit/packagers/msi_spec.rb +2 -2
- data/spec/unit/packagers/pkgsrc_spec.rb +1 -1
- data/spec/unit/packagers/solaris_spec.rb +7 -7
- data/spec/unit/project_spec.rb +2 -2
- data/spec/unit/publisher_spec.rb +1 -2
- data/spec/unit/publishers/artifactory_publisher_spec.rb +2 -4
- data/spec/unit/publishers/s3_publisher_spec.rb +2 -4
- data/spec/unit/s3_cacher_spec.rb +2 -6
- data/spec/unit/s3_helpers_spec.rb +2 -2
- data/spec/unit/software_spec.rb +9 -9
- data/spec/unit/util_spec.rb +1 -2
- metadata +4 -4
@@ -209,8 +209,7 @@ module Omnibus
|
|
209
209
|
destination: transform_file,
|
210
210
|
variables: {
|
211
211
|
pathdir: project.install_dir.split("/")[1],
|
212
|
-
}
|
213
|
-
)
|
212
|
+
})
|
214
213
|
end
|
215
214
|
|
216
215
|
#
|
@@ -242,8 +241,7 @@ module Omnibus
|
|
242
241
|
render_template_content(resource_path(symlinks_file),
|
243
242
|
{
|
244
243
|
projectdir: project.install_dir,
|
245
|
-
}
|
246
|
-
)
|
244
|
+
})
|
247
245
|
end
|
248
246
|
|
249
247
|
#
|
@@ -262,8 +260,7 @@ module Omnibus
|
|
262
260
|
description: project.description,
|
263
261
|
summary: project.friendly_name,
|
264
262
|
arch: safe_architecture,
|
265
|
-
}
|
266
|
-
)
|
263
|
+
})
|
267
264
|
|
268
265
|
# Append the contents of symlinks_file if it exists
|
269
266
|
if symlinks_file
|
@@ -181,10 +181,12 @@ module Omnibus
|
|
181
181
|
unless val.is_a?(TrueClass) || val.is_a?(FalseClass)
|
182
182
|
raise InvalidValue.new(:iwix_light_delay_validation, "be TrueClass or FalseClass")
|
183
183
|
end
|
184
|
+
|
184
185
|
@delay_validation ||= val
|
185
186
|
unless @delay_validation
|
186
187
|
return ""
|
187
188
|
end
|
189
|
+
|
188
190
|
"-sval"
|
189
191
|
end
|
190
192
|
expose :wix_light_delay_validation
|
@@ -225,6 +227,7 @@ module Omnibus
|
|
225
227
|
unless val.is_a?(TrueClass) || val.is_a?(FalseClass)
|
226
228
|
raise InvalidValue.new(:bundle_msi, "be TrueClass or FalseClass")
|
227
229
|
end
|
230
|
+
|
228
231
|
@bundle_msi ||= val
|
229
232
|
end
|
230
233
|
expose :bundle_msi
|
@@ -244,6 +247,7 @@ module Omnibus
|
|
244
247
|
unless val.is_a?(TrueClass) || val.is_a?(FalseClass)
|
245
248
|
raise InvalidValue.new(:fast_msi, "be TrueClass or FalseClass")
|
246
249
|
end
|
250
|
+
|
247
251
|
@fast_msi ||= val
|
248
252
|
end
|
249
253
|
expose :fast_msi
|
@@ -298,6 +302,7 @@ module Omnibus
|
|
298
302
|
|
299
303
|
raise "Could not find `#{search_pattern}'!" if file_paths.none?
|
300
304
|
raise "Multiple possible matches of `#{search_pattern}'! : #{file_paths}" if file_paths.count > 1
|
305
|
+
|
301
306
|
file_paths.first.relative_path_from(install_path).to_s
|
302
307
|
end
|
303
308
|
expose :gem_path
|
@@ -340,8 +345,7 @@ module Omnibus
|
|
340
345
|
name: project.package_name,
|
341
346
|
friendly_name: project.friendly_name,
|
342
347
|
maintainer: project.maintainer,
|
343
|
-
}
|
344
|
-
)
|
348
|
+
})
|
345
349
|
end
|
346
350
|
|
347
351
|
#
|
@@ -360,8 +364,7 @@ module Omnibus
|
|
360
364
|
parameters: parameters,
|
361
365
|
version: windows_package_version,
|
362
366
|
display_version: msi_display_version,
|
363
|
-
}
|
364
|
-
)
|
367
|
+
})
|
365
368
|
end
|
366
369
|
|
367
370
|
#
|
@@ -408,8 +411,7 @@ module Omnibus
|
|
408
411
|
hierarchy: hierarchy,
|
409
412
|
fastmsi: fast_msi,
|
410
413
|
wix_install_dir: wix_install_dir,
|
411
|
-
}
|
412
|
-
)
|
414
|
+
})
|
413
415
|
end
|
414
416
|
|
415
417
|
#
|
@@ -429,8 +431,7 @@ module Omnibus
|
|
429
431
|
version: windows_package_version,
|
430
432
|
display_version: msi_display_version,
|
431
433
|
msi: windows_safe_path(Config.package_dir, msi_name),
|
432
|
-
}
|
433
|
-
)
|
434
|
+
})
|
434
435
|
end
|
435
436
|
|
436
437
|
#
|
@@ -487,7 +488,7 @@ module Omnibus
|
|
487
488
|
-ext WixBalExtension
|
488
489
|
#{wix_extension_switches(wix_candle_extensions)}
|
489
490
|
-dOmnibusCacheDir="#{windows_safe_path(File.expand_path(Config.cache_dir))}"
|
490
|
-
"#{windows_safe_path(staging_dir,
|
491
|
+
"#{windows_safe_path(staging_dir, "bundle.wxs")}"
|
491
492
|
EOH
|
492
493
|
else
|
493
494
|
<<-EOH.split.join(" ").squeeze(" ").strip
|
@@ -496,7 +497,7 @@ module Omnibus
|
|
496
497
|
#{wix_candle_flags}
|
497
498
|
#{wix_extension_switches(wix_candle_extensions)}
|
498
499
|
-dProjectSourceDir="#{windows_safe_path(project.install_dir)}" "project-files.wxs"
|
499
|
-
"#{windows_safe_path(staging_dir,
|
500
|
+
"#{windows_safe_path(staging_dir, "source.wxs")}"
|
500
501
|
EOH
|
501
502
|
end
|
502
503
|
end
|
@@ -588,7 +589,7 @@ module Omnibus
|
|
588
589
|
# @return [String]
|
589
590
|
#
|
590
591
|
def wix_extension_switches(arr)
|
591
|
-
"#{arr.map { |e| "-ext '#{e}'" }.join(
|
592
|
+
"#{arr.map { |e| "-ext '#{e}'" }.join(" ")}"
|
592
593
|
end
|
593
594
|
end
|
594
595
|
end
|
@@ -44,8 +44,7 @@ module Omnibus
|
|
44
44
|
maintainer: project.maintainer,
|
45
45
|
build_version: project.build_version,
|
46
46
|
package_name: project.package_name,
|
47
|
-
}
|
48
|
-
)
|
47
|
+
})
|
49
48
|
|
50
49
|
# Render the welcome template
|
51
50
|
render_template(resource_path("welcome.html.erb"),
|
@@ -56,8 +55,7 @@ module Omnibus
|
|
56
55
|
maintainer: project.maintainer,
|
57
56
|
build_version: project.build_version,
|
58
57
|
package_name: project.package_name,
|
59
|
-
}
|
60
|
-
)
|
58
|
+
})
|
61
59
|
|
62
60
|
# "Render" the assets
|
63
61
|
copy_file(resource_path("background.png"), "#{resources_dir}/background.png")
|
@@ -221,8 +219,7 @@ module Omnibus
|
|
221
219
|
identifier: safe_identifier,
|
222
220
|
version: safe_version,
|
223
221
|
component_pkg: component_pkg,
|
224
|
-
}
|
225
|
-
)
|
222
|
+
})
|
226
223
|
end
|
227
224
|
|
228
225
|
#
|
@@ -243,7 +243,7 @@ module Omnibus
|
|
243
243
|
if null?(val)
|
244
244
|
@compression_type || :gzip
|
245
245
|
else
|
246
|
-
unless val.is_a?(Symbol) &&
|
246
|
+
unless val.is_a?(Symbol) && %i{gzip bzip2 xz}.member?(val)
|
247
247
|
raise InvalidValue.new(:compression_type, "be a Symbol (:gzip, :bzip2, or :xz)")
|
248
248
|
end
|
249
249
|
|
@@ -317,7 +317,7 @@ module Omnibus
|
|
317
317
|
# @return [Array]
|
318
318
|
#
|
319
319
|
def filesystem_directories
|
320
|
-
@filesystem_directories ||= IO.readlines(resource_path("filesystem_list")).map
|
320
|
+
@filesystem_directories ||= IO.readlines(resource_path("filesystem_list")).map(&:chomp)
|
321
321
|
end
|
322
322
|
|
323
323
|
#
|
@@ -356,7 +356,7 @@ module Omnibus
|
|
356
356
|
|
357
357
|
# Get a list of all files
|
358
358
|
files = FileSyncer.glob("#{build_dir}/**/*")
|
359
|
-
|
359
|
+
.map { |path| build_filepath(path) }
|
360
360
|
|
361
361
|
render_template(resource_path("spec.erb"),
|
362
362
|
destination: spec_file,
|
@@ -383,8 +383,7 @@ module Omnibus
|
|
383
383
|
build_dir: build_dir,
|
384
384
|
platform_family: Ohai["platform_family"],
|
385
385
|
compression: compression,
|
386
|
-
}
|
387
|
-
)
|
386
|
+
})
|
388
387
|
end
|
389
388
|
|
390
389
|
#
|
@@ -422,8 +421,8 @@ module Omnibus
|
|
422
421
|
if signing_passphrase
|
423
422
|
log.info(log_key) { "Signing enabled for .rpm file" }
|
424
423
|
|
425
|
-
if File.exist?("#{ENV[
|
426
|
-
log.info(log_key) { "Detected .rpmmacros file at `#{ENV[
|
424
|
+
if File.exist?("#{ENV["HOME"]}/.rpmmacros")
|
425
|
+
log.info(log_key) { "Detected .rpmmacros file at `#{ENV["HOME"]}'" }
|
427
426
|
home = ENV["HOME"]
|
428
427
|
else
|
429
428
|
log.info(log_key) { "Using default .rpmmacros file from Omnibus" }
|
@@ -435,9 +434,8 @@ module Omnibus
|
|
435
434
|
destination: "#{home}/.rpmmacros",
|
436
435
|
variables: {
|
437
436
|
gpg_name: project.maintainer,
|
438
|
-
gpg_path: "#{ENV[
|
439
|
-
}
|
440
|
-
)
|
437
|
+
gpg_path: "#{ENV["HOME"]}/.gnupg", # TODO: Make this configurable
|
438
|
+
})
|
441
439
|
end
|
442
440
|
|
443
441
|
command << " --sign"
|
@@ -466,11 +464,13 @@ module Omnibus
|
|
466
464
|
def build_filepath(path)
|
467
465
|
filepath = rpm_safe("/" + path.gsub("#{build_dir}/", ""))
|
468
466
|
return if config_files.include?(filepath)
|
467
|
+
|
469
468
|
full_path = build_dir + filepath.gsub("[%]", "%")
|
470
469
|
# FileSyncer.glob quotes pathnames that contain spaces, which is a problem on el7
|
471
470
|
full_path.delete!('"')
|
472
471
|
# Mark directories with the %dir directive to prevent rpmbuild from counting their contents twice.
|
473
472
|
return mark_filesystem_directories(filepath) if !File.symlink?(full_path) && File.directory?(full_path)
|
473
|
+
|
474
474
|
filepath
|
475
475
|
end
|
476
476
|
|
@@ -502,8 +502,7 @@ module Omnibus
|
|
502
502
|
mode: 0700,
|
503
503
|
variables: {
|
504
504
|
passphrase: signing_passphrase,
|
505
|
-
}
|
506
|
-
)
|
505
|
+
})
|
507
506
|
|
508
507
|
# Yield the destination to the block
|
509
508
|
yield(destination)
|
@@ -76,7 +76,7 @@ module Omnibus
|
|
76
76
|
# Generate a Prototype file for solaris build
|
77
77
|
#
|
78
78
|
def write_prototype_file
|
79
|
-
shellout! "cd #{install_dirname} && find #{install_basename} -print > #{staging_dir_path(
|
79
|
+
shellout! "cd #{install_dirname} && find #{install_basename} -print > #{staging_dir_path("files")}"
|
80
80
|
|
81
81
|
File.open staging_dir_path("files.clean"), "w+" do |fout|
|
82
82
|
File.open staging_dir_path("files") do |fin|
|
@@ -100,10 +100,10 @@ module Omnibus
|
|
100
100
|
end
|
101
101
|
|
102
102
|
# generate the prototype's file list
|
103
|
-
shellout! "cd #{install_dirname} && pkgproto < #{staging_dir_path(
|
103
|
+
shellout! "cd #{install_dirname} && pkgproto < #{staging_dir_path("files.clean")} > #{staging_dir_path("Prototype.files")}"
|
104
104
|
|
105
105
|
# fix up the user and group in the file list to root
|
106
|
-
shellout! "awk '{ $5 = \"root\"; $6 = \"root\"; print }' < #{staging_dir_path(
|
106
|
+
shellout! "awk '{ $5 = \"root\"; $6 = \"root\"; print }' < #{staging_dir_path("Prototype.files")} >> #{staging_dir_path("Prototype")}"
|
107
107
|
end
|
108
108
|
|
109
109
|
#
|
@@ -139,7 +139,7 @@ module Omnibus
|
|
139
139
|
# @return [void]
|
140
140
|
#
|
141
141
|
def create_solaris_file
|
142
|
-
shellout! "pkgmk -o -r #{install_dirname} -d #{staging_dir} -f #{staging_dir_path(
|
142
|
+
shellout! "pkgmk -o -r #{install_dirname} -d #{staging_dir} -f #{staging_dir_path("Prototype")}"
|
143
143
|
shellout! "pkgchk -vd #{staging_dir} #{project.package_name}"
|
144
144
|
shellout! "pkgtrans #{staging_dir} #{package_path} #{project.package_name}"
|
145
145
|
end
|
@@ -59,11 +59,11 @@ module Omnibus
|
|
59
59
|
raise InvalidValue.new(:params, "be a Hash")
|
60
60
|
end
|
61
61
|
|
62
|
-
valid_keys =
|
62
|
+
valid_keys = %i{store timestamp_servers machine_store algorithm}
|
63
63
|
invalid_keys = params.keys - valid_keys
|
64
64
|
unless invalid_keys.empty?
|
65
|
-
raise InvalidValue.new(:params, "contain keys from [#{valid_keys.join(
|
66
|
-
"Found invalid keys [#{invalid_keys.join(
|
65
|
+
raise InvalidValue.new(:params, "contain keys from [#{valid_keys.join(", ")}]. "\
|
66
|
+
"Found invalid keys [#{invalid_keys.join(", ")}]")
|
67
67
|
end
|
68
68
|
|
69
69
|
if !params[:machine_store].nil? && !(
|
@@ -117,11 +117,11 @@ module Omnibus
|
|
117
117
|
success = try_sign(package_file, ts)
|
118
118
|
break if success
|
119
119
|
end
|
120
|
-
raise FailedToSignWindowsPackage.new
|
120
|
+
raise FailedToSignWindowsPackage.new unless success
|
121
121
|
end
|
122
122
|
|
123
123
|
def try_sign(package_file, url)
|
124
|
-
cmd =
|
124
|
+
cmd = [].tap do |arr|
|
125
125
|
arr << "signtool.exe"
|
126
126
|
arr << "sign /v"
|
127
127
|
arr << "/t #{url}"
|
@@ -158,8 +158,9 @@ module Omnibus
|
|
158
158
|
#
|
159
159
|
def certificate_subject
|
160
160
|
return "CN=#{project.package_name}" unless signing_identity
|
161
|
+
|
161
162
|
store = machine_store? ? "LocalMachine" : "CurrentUser"
|
162
|
-
cmd =
|
163
|
+
cmd = [].tap do |arr|
|
163
164
|
arr << "powershell.exe"
|
164
165
|
arr << "-ExecutionPolicy Bypass"
|
165
166
|
arr << "-NoProfile"
|
data/lib/omnibus/project.rb
CHANGED
data/lib/omnibus/publisher.rb
CHANGED
@@ -69,7 +69,7 @@ module Omnibus
|
|
69
69
|
#
|
70
70
|
def packages
|
71
71
|
@packages ||= begin
|
72
|
-
publish_packages =
|
72
|
+
publish_packages = []
|
73
73
|
build_packages = FileSyncer.glob(@pattern).map { |path| Package.new(path) }
|
74
74
|
|
75
75
|
if @options[:platform_mappings]
|
@@ -88,7 +88,7 @@ module Omnibus
|
|
88
88
|
if packages.empty?
|
89
89
|
log.warn(log_key) do
|
90
90
|
"Could not locate a package for build platform #{build_platform}-#{build_platform_version}-#{build_architecture}. " \
|
91
|
-
"Publishing will be skipped for: #{publish_platforms.join(
|
91
|
+
"Publishing will be skipped for: #{publish_platforms.join(", ")}"
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|
data/lib/omnibus/software.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright 2012-
|
2
|
+
# Copyright 2012-2018, Chef Software Inc.
|
3
3
|
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
5
|
# you may not use this file except in compliance with the License.
|
@@ -305,7 +305,7 @@ module Omnibus
|
|
305
305
|
"only include valid keys. Invalid keys: #{extra_keys.inspect}")
|
306
306
|
end
|
307
307
|
|
308
|
-
duplicate_keys = val.keys &
|
308
|
+
duplicate_keys = val.keys & %i{git file path url}
|
309
309
|
unless duplicate_keys.size < 2
|
310
310
|
raise InvalidValue.new(:source,
|
311
311
|
"not include duplicate keys. Duplicate keys: #{duplicate_keys.inspect}")
|
@@ -509,7 +509,7 @@ module Omnibus
|
|
509
509
|
# the list of currently whitelisted files
|
510
510
|
#
|
511
511
|
def whitelist_file(file)
|
512
|
-
file = Regexp.new(file) unless file.
|
512
|
+
file = Regexp.new(file) unless file.is_a?(Regexp)
|
513
513
|
whitelist_files << file
|
514
514
|
whitelist_files.dup
|
515
515
|
end
|
@@ -987,17 +987,18 @@ module Omnibus
|
|
987
987
|
fetcher.version_guid
|
988
988
|
end
|
989
989
|
|
990
|
+
# This is the real version if one exists (nil if there's no real version)
|
991
|
+
def real_version
|
992
|
+
@real_version ||= fetcher.version_for_cache || version
|
993
|
+
end
|
994
|
+
|
990
995
|
# Returns the version to be used in cache.
|
991
996
|
def version_for_cache
|
992
|
-
@version_for_cache ||= if
|
993
|
-
|
994
|
-
elsif version
|
995
|
-
version
|
997
|
+
@version_for_cache ||= if real_version
|
998
|
+
real_version
|
996
999
|
else
|
997
1000
|
log.warn(log_key) do
|
998
|
-
"No version given!
|
999
|
-
"assume the version `0.0.0', but that is most certainly not your " \
|
1000
|
-
"desired behavior. If git caching seems off, this is probably why."
|
1001
|
+
"No version given! Git caching disabled." \
|
1001
1002
|
end
|
1002
1003
|
|
1003
1004
|
"0.0.0"
|
@@ -1070,7 +1071,13 @@ module Omnibus
|
|
1070
1071
|
#
|
1071
1072
|
def build_me(build_wrappers = [])
|
1072
1073
|
if Config.use_git_caching
|
1073
|
-
if
|
1074
|
+
if !real_version
|
1075
|
+
log.info(log_key) do
|
1076
|
+
"Forcing a build because resolved version is nil"
|
1077
|
+
end
|
1078
|
+
execute_build
|
1079
|
+
project.dirty!(self)
|
1080
|
+
elsif project.dirty?
|
1074
1081
|
log.info(log_key) do
|
1075
1082
|
"Building because `#{project.culprit.name}' dirtied the cache"
|
1076
1083
|
end
|
data/lib/omnibus/templating.rb
CHANGED
@@ -73,7 +73,7 @@ module Omnibus
|
|
73
73
|
|
74
74
|
unless options.empty?
|
75
75
|
raise ArgumentError,
|
76
|
-
"Unknown option(s): #{options.keys.map(&:inspect).join(
|
76
|
+
"Unknown option(s): #{options.keys.map(&:inspect).join(", ")}"
|
77
77
|
end
|
78
78
|
|
79
79
|
# String value returned from #render_template_content
|
data/lib/omnibus/util.rb
CHANGED
@@ -80,7 +80,7 @@ module Omnibus
|
|
80
80
|
# populated with results of the command.
|
81
81
|
#
|
82
82
|
def shellout(*args)
|
83
|
-
options = args.last.
|
83
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
84
84
|
options = SHELLOUT_OPTIONS.merge(options)
|
85
85
|
|
86
86
|
command_string = args.join(" ")
|
@@ -158,6 +158,7 @@ module Omnibus
|
|
158
158
|
yield
|
159
159
|
rescue Exception => e
|
160
160
|
raise e unless retried_exceptions.any? { |eclass| e.is_a?(eclass) }
|
161
|
+
|
161
162
|
if retries != 0
|
162
163
|
log.info(log_key) { "Retrying failed #{logstr} due to #{e} (#{retries} retries left)..." }
|
163
164
|
retries -= 1
|
@@ -196,7 +197,7 @@ module Omnibus
|
|
196
197
|
#
|
197
198
|
def compiler_safe_path(*pieces)
|
198
199
|
path = File.join(*pieces)
|
199
|
-
path = path.sub(
|
200
|
+
path = path.sub(%r{^([A-Za-z]):/}, "/\\1/") if ENV["MSYSTEM"]
|
200
201
|
path
|
201
202
|
end
|
202
203
|
|