omnibus 7.0.13 → 8.1.15
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/Gemfile +1 -6
- data/README.md +38 -6
- data/bin/omnibus +1 -1
- data/lib/omnibus.rb +2 -2
- data/lib/omnibus/build_version.rb +1 -1
- data/lib/omnibus/build_version_dsl.rb +5 -7
- data/lib/omnibus/builder.rb +16 -11
- data/lib/omnibus/cleaner.rb +1 -1
- data/lib/omnibus/cli.rb +2 -2
- data/lib/omnibus/cli/changelog.rb +1 -1
- data/lib/omnibus/compressors/base.rb +1 -1
- data/lib/omnibus/compressors/dmg.rb +5 -2
- data/lib/omnibus/compressors/tgz.rb +2 -2
- data/lib/omnibus/config.rb +1 -1
- data/lib/omnibus/core_extensions/open_uri.rb +1 -1
- data/lib/omnibus/digestable.rb +2 -2
- data/lib/omnibus/download_helpers.rb +6 -2
- data/lib/omnibus/fetchers/file_fetcher.rb +1 -1
- data/lib/omnibus/fetchers/net_fetcher.rb +1 -1
- data/lib/omnibus/fetchers/path_fetcher.rb +1 -1
- data/lib/omnibus/file_syncer.rb +1 -1
- data/lib/omnibus/generator.rb +2 -2
- data/lib/omnibus/generator_files/README.md.erb +2 -1
- data/lib/omnibus/git_cache.rb +2 -2
- data/lib/omnibus/health_check.rb +2 -0
- data/lib/omnibus/licensing.rb +2 -2
- data/lib/omnibus/logger.rb +1 -1
- data/lib/omnibus/manifest.rb +1 -1
- data/lib/omnibus/manifest_diff.rb +7 -13
- data/lib/omnibus/metadata.rb +8 -4
- data/lib/omnibus/ohai.rb +1 -1
- data/lib/omnibus/package.rb +1 -1
- data/lib/omnibus/packager.rb +6 -14
- data/lib/omnibus/packagers/base.rb +1 -1
- data/lib/omnibus/packagers/msi.rb +1 -1
- data/lib/omnibus/packagers/pkg.rb +14 -4
- data/lib/omnibus/packagers/rpm.rb +23 -9
- data/lib/omnibus/packagers/solaris.rb +1 -1
- data/lib/omnibus/project.rb +2 -2
- data/lib/omnibus/publishers/artifactory_publisher.rb +2 -2
- data/lib/omnibus/s3_cache.rb +1 -1
- data/lib/omnibus/s3_helpers.rb +1 -1
- data/lib/omnibus/software.rb +5 -16
- data/lib/omnibus/sugarable.rb +5 -14
- data/lib/omnibus/templating.rb +1 -1
- data/lib/omnibus/thread_pool.rb +0 -2
- data/lib/omnibus/util.rb +1 -1
- data/lib/omnibus/version.rb +1 -1
- data/lib/omnibus/whitelist.rb +22 -0
- data/omnibus.gemspec +8 -8
- data/resources/ips/doc-transform.erb +1 -0
- data/resources/msi/CustomActionFastMsi.CA.dll +0 -0
- data/resources/msi/source.wxs.erb +2 -10
- data/resources/pkg/distribution.xml.erb +1 -1
- data/resources/rpm/spec.erb +2 -2
- data/spec/functional/fetchers/net_fetcher_spec.rb +2 -11
- data/spec/support/path_helpers.rb +2 -2
- data/spec/unit/compressor_spec.rb +2 -2
- data/spec/unit/compressors/dmg_spec.rb +12 -9
- data/spec/unit/compressors/tgz_spec.rb +4 -4
- data/spec/unit/fetchers/net_fetcher_spec.rb +5 -1
- data/spec/unit/metadata_spec.rb +8 -6
- data/spec/unit/packager_spec.rb +7 -14
- data/spec/unit/packagers/ips_spec.rb +1 -0
- data/spec/unit/packagers/pkg_spec.rb +20 -4
- data/spec/unit/packagers/rpm_spec.rb +15 -5
- data/spec/unit/project_spec.rb +6 -6
- data/spec/unit/software_spec.rb +29 -120
- metadata +36 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af309d0053f4ea4f740cbf3268c4e4d0087e014ab9abfaca3899c279b41a7a88
|
4
|
+
data.tar.gz: f7c125f7f25811d2b74a7aa03b7065594e4b887f520ff7432e7409b7855ab898
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1227ee4ad5223279042ed600811c2348f10d78abe08859b27a4552a4dd81bdd554842b007ed43ee7aa79403cc9512117733a5db50b9f16dd104d0033a63ef45b
|
7
|
+
data.tar.gz: 8683b174eeb40459b16bf337c7d1e0421b9642172e34e4a61d93348296d45b0fcf9d1272971ac43cdfeee4eb899659c8856ffc2fc0cbc84138b57f481e231107
|
data/Gemfile
CHANGED
@@ -11,10 +11,5 @@ end
|
|
11
11
|
group :debug do
|
12
12
|
gem "pry"
|
13
13
|
gem "pry-byebug"
|
14
|
-
gem "pry-stack_explorer"
|
15
|
-
end
|
16
|
-
|
17
|
-
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.5")
|
18
|
-
gem "ohai", "<15"
|
19
|
-
gem "activesupport", "~> 5.0"
|
14
|
+
gem "pry-stack_explorer"
|
20
15
|
end
|
data/README.md
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
[][gem]
|
4
4
|
[](https://buildkite.com/chef-oss/chef-omnibus-master-verify)
|
5
|
-
[][appveyor]
|
6
5
|
|
7
6
|
**Umbrella Project**: [Chef Foundation](https://github.com/chef/chef-oss-practices/blob/master/projects/chef-foundation.md)
|
8
7
|
|
@@ -16,7 +15,6 @@ Easily create full-stack installers for your project across a variety of platfor
|
|
16
15
|
|
17
16
|
Seth Chisamore and Christopher Maier of CHEF gave an introductory talk on Omnibus at ChefConf 2013, entitled **Eat the Whole Bowl: Building a Full-Stack Installer with Omnibus**:
|
18
17
|
|
19
|
-
- [Video](http://www.youtube.com/watch?v=q8iJAntXCNY)
|
20
18
|
- [Slides](https://speakerdeck.com/schisamo/eat-the-whole-bowl-building-a-full-stack-installer-with-omnibus)
|
21
19
|
|
22
20
|
This project is managed by the CHEF Release Engineering team. For more information on the Release Engineering team's contribution, triage, and release process, please consult the [CHEF Release Engineering OSS Management Guide](https://docs.google.com/a/opscode.com/document/d/1oJB0vZb_3bl7_ZU2YMDBkMFdL-EWplW1BJv_FXTUOzg/edit).
|
@@ -25,8 +23,7 @@ This project is managed by the CHEF Release Engineering team. For more informati
|
|
25
23
|
|
26
24
|
Omnibus is designed to run with a minimal set of prerequisites. You will need the following:
|
27
25
|
|
28
|
-
- Ruby 2.
|
29
|
-
- Bundler
|
26
|
+
- Ruby 2.6+
|
30
27
|
|
31
28
|
## Get Started
|
32
29
|
|
@@ -46,10 +43,11 @@ $ omnibus new $MY_PROJECT_NAME
|
|
46
43
|
|
47
44
|
This will generate a complete project skeleton in the directory `omnibus-$MY_PROJECT_NAME`
|
48
45
|
|
46
|
+
By default this will make a directory called `omnibus-$MY_PROJECT_NAME` assuming you're keeping your omnibus config separate from the repo. However, keeping it *in* your repo is a common practice, so feel to rename this directory to `omnibus` and place it in the top level of your projects source repo.
|
47
|
+
|
49
48
|
```bash
|
50
49
|
$ cd omnibus-$MY_PROJECT_NAME
|
51
50
|
$ bundle install --binstubs
|
52
|
-
$ bin/omnibus build $MY_PROJECT_NAME
|
53
51
|
```
|
54
52
|
|
55
53
|
More details can be found in the generated project's README file.
|
@@ -143,7 +141,7 @@ DSL Method | Description
|
|
143
141
|
`package` | Invoke a packager-specific DSL
|
144
142
|
`compress` | Invoke a compressor-specific DSL
|
145
143
|
|
146
|
-
By default a timestamp is appended to the build_version. You can turn this behavior off by setting `append_timestamp` to `false` in your
|
144
|
+
By default a timestamp is appended to the build_version. You can turn this behavior off by setting `append_timestamp` to `false` in your `omnibus.rb` or using `--override append_timestamp:false` at the command line.
|
147
145
|
|
148
146
|
For more information, please see the [`Project` documentation](http://www.rubydoc.info/github/chef/omnibus/Omnibus/Project).
|
149
147
|
|
@@ -267,6 +265,40 @@ $PWD/config/software/foo.rb
|
|
267
265
|
|
268
266
|
The first instance of `foo.rb` that is encountered will be used. Please note that **local** (vendored) softare definitions take precedence!
|
269
267
|
|
268
|
+
## Building
|
269
|
+
|
270
|
+
Once you've created your package and software definitions you can build with:
|
271
|
+
|
272
|
+
```shell
|
273
|
+
./bin/omnibus build $MY_PACKAGE_NAME
|
274
|
+
```
|
275
|
+
|
276
|
+
However there are several caveats to be aware of:
|
277
|
+
|
278
|
+
1. You will almost certainly want to uncomment the `base_dir` in `omnibus.rb`,
|
279
|
+
or at the very least change `cache_dir` and `build_dir` as otherwise it'll try
|
280
|
+
to use `/var/cache/omnibus` and `/opt/$MY_PROJECT_NAME`, requiring root.
|
281
|
+
1. The default configuration created for you references a lot of things
|
282
|
+
that are in the default config that come from the `omnibus-software` gem.
|
283
|
+
So you want to use those you'll need to either uncomment it in the `Gemfile`,
|
284
|
+
or fork it, and then reference your own
|
285
|
+
1. If this is a ruby project and you want binstubs in `/opt/$project/bin`, you
|
286
|
+
will either need to use [appbundler](https://github.com/chef/appbundler), or
|
287
|
+
you will need to have a post install step to create those binstubs.
|
288
|
+
- Side note, appbundler requires that you include your Gemfile and gemspec
|
289
|
+
in your gem.
|
290
|
+
- Also, needs to be in your Gemfile for you to use it, as it also must
|
291
|
+
be in the resulting gem.
|
292
|
+
1. If you specify an override of the version of the `ruby`, you will also need
|
293
|
+
to override `rubygems` and `bundler` to match the versions in that version of
|
294
|
+
`ruby` or you'll get failures around bundler version mismatches.
|
295
|
+
|
296
|
+
The build command above will of course build on your local host thus being
|
297
|
+
specific to the OS and base system you are on. But the skeleten setup by
|
298
|
+
`omnibus new` already setup kitchen for you so that it's easy to build for
|
299
|
+
a variety of OSes, See the `README.md` in your generated omnibus directory
|
300
|
+
for details.
|
301
|
+
|
270
302
|
## Version Manifest
|
271
303
|
|
272
304
|
Git-based software definitions may specify branches as their default_version. In this case, the exact git revision to use will be determined at build-time unless a project override (see below) or external version manifest is used. To generate a version manifest use the `omnibus manifest` command:
|
data/bin/omnibus
CHANGED
data/lib/omnibus.rb
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
require "omnibus/core_extensions"
|
18
18
|
|
19
19
|
require "cleanroom"
|
20
|
-
require "pathname"
|
20
|
+
require "pathname" unless defined?(Pathname)
|
21
21
|
|
22
22
|
require "omnibus/digestable"
|
23
23
|
require "omnibus/exceptions"
|
@@ -208,7 +208,7 @@ module Omnibus
|
|
208
208
|
# @return [Pathname]
|
209
209
|
#
|
210
210
|
def source_root
|
211
|
-
@source_root ||= Pathname.new(File.expand_path("
|
211
|
+
@source_root ||= Pathname.new(File.expand_path("..", __dir__))
|
212
212
|
end
|
213
213
|
|
214
214
|
#
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
|
17
|
-
require "time"
|
17
|
+
require "time" unless defined?(Time.zone_offset)
|
18
18
|
|
19
19
|
module Omnibus
|
20
20
|
class BuildVersionDSL
|
@@ -136,12 +136,10 @@ module Omnibus
|
|
136
136
|
return false if build_info.nil?
|
137
137
|
|
138
138
|
build_info.split(".").any? do |part|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
false
|
144
|
-
end
|
139
|
+
Time.strptime(part, Omnibus::BuildVersion::TIMESTAMP_FORMAT)
|
140
|
+
true
|
141
|
+
rescue ArgumentError
|
142
|
+
false
|
145
143
|
end
|
146
144
|
end
|
147
145
|
|
data/lib/omnibus/builder.rb
CHANGED
@@ -14,10 +14,10 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
|
17
|
-
require "fileutils"
|
18
|
-
require "mixlib/shellout"
|
19
|
-
require "ostruct"
|
20
|
-
require "pathname"
|
17
|
+
require "fileutils" unless defined?(FileUtils)
|
18
|
+
require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
|
19
|
+
require "ostruct" unless defined?(OpenStruct)
|
20
|
+
require "pathname" unless defined?(Pathname)
|
21
21
|
require "omnibus/whitelist"
|
22
22
|
|
23
23
|
module Omnibus
|
@@ -373,11 +373,16 @@ module Omnibus
|
|
373
373
|
# @param (see #command)
|
374
374
|
# @return (see #command)
|
375
375
|
#
|
376
|
-
def appbundle(software_name,
|
376
|
+
def appbundle(software_name, options = {})
|
377
377
|
build_commands << BuildCommand.new("appbundle `#{software_name}'") do
|
378
378
|
bin_dir = "#{install_dir}/bin"
|
379
379
|
appbundler_bin = embedded_bin("appbundler")
|
380
380
|
|
381
|
+
lockdir = options.delete(:lockdir)
|
382
|
+
gem = options.delete(:gem)
|
383
|
+
without = options.delete(:without)
|
384
|
+
extra_bin_files = options.delete(:extra_bin_files)
|
385
|
+
|
381
386
|
lockdir ||=
|
382
387
|
begin
|
383
388
|
app_software = project.softwares.find do |p|
|
@@ -535,7 +540,7 @@ module Omnibus
|
|
535
540
|
def mkdir(directory, options = {})
|
536
541
|
build_commands << BuildCommand.new("mkdir `#{directory}'") do
|
537
542
|
Dir.chdir(software.project_dir) do
|
538
|
-
FileUtils.mkdir_p(directory, options)
|
543
|
+
FileUtils.mkdir_p(directory, **options)
|
539
544
|
end
|
540
545
|
end
|
541
546
|
end
|
@@ -557,7 +562,7 @@ module Omnibus
|
|
557
562
|
parent = File.dirname(file)
|
558
563
|
FileUtils.mkdir_p(parent) unless File.directory?(parent)
|
559
564
|
|
560
|
-
FileUtils.touch(file, options)
|
565
|
+
FileUtils.touch(file, **options)
|
561
566
|
end
|
562
567
|
end
|
563
568
|
end
|
@@ -578,7 +583,7 @@ module Omnibus
|
|
578
583
|
build_commands << BuildCommand.new("delete `#{path}'") do
|
579
584
|
Dir.chdir(software.project_dir) do
|
580
585
|
FileSyncer.glob(path).each do |file|
|
581
|
-
FileUtils.rm_rf(file, options)
|
586
|
+
FileUtils.rm_rf(file, **options)
|
582
587
|
end
|
583
588
|
end
|
584
589
|
end
|
@@ -629,7 +634,7 @@ module Omnibus
|
|
629
634
|
log.warn(log_key) { "no matched files for glob #{command}" }
|
630
635
|
else
|
631
636
|
files.each do |file|
|
632
|
-
FileUtils.cp_r(file, destination, options)
|
637
|
+
FileUtils.cp_r(file, destination, **options)
|
633
638
|
end
|
634
639
|
end
|
635
640
|
end
|
@@ -658,7 +663,7 @@ module Omnibus
|
|
658
663
|
log.warn(log_key) { "no matched files for glob #{command}" }
|
659
664
|
else
|
660
665
|
files.each do |file|
|
661
|
-
FileUtils.mv(file, destination, options)
|
666
|
+
FileUtils.mv(file, destination, **options)
|
662
667
|
end
|
663
668
|
end
|
664
669
|
end
|
@@ -690,7 +695,7 @@ module Omnibus
|
|
690
695
|
log.warn(log_key) { "no matched files for glob #{command}" }
|
691
696
|
else
|
692
697
|
files.each do |file|
|
693
|
-
FileUtils.ln_s(file, destination, options)
|
698
|
+
FileUtils.ln_s(file, destination, **options)
|
694
699
|
end
|
695
700
|
end
|
696
701
|
end
|
data/lib/omnibus/cleaner.rb
CHANGED
data/lib/omnibus/cli.rb
CHANGED
@@ -18,7 +18,7 @@ require "omnibus/changelog"
|
|
18
18
|
require "omnibus/changelog_printer"
|
19
19
|
require "omnibus/manifest_diff"
|
20
20
|
require "omnibus/semantic_version"
|
21
|
-
require "ffi_yajl"
|
21
|
+
require "ffi_yajl" unless defined?(FFI_Yajl)
|
22
22
|
|
23
23
|
module Omnibus
|
24
24
|
class Command::ChangeLog < Command::Base
|
@@ -259,8 +259,11 @@ module Omnibus
|
|
259
259
|
sync
|
260
260
|
hdiutil unmount "#{@device}"
|
261
261
|
# Give some time to the system so unmount dmg
|
262
|
-
|
263
|
-
hdiutil detach "#{@device}"
|
262
|
+
ATTEMPTS=1
|
263
|
+
until [ $ATTEMPTS -eq 6 ] || hdiutil detach "#{@device}"; do
|
264
|
+
sleep 10
|
265
|
+
echo Attempt number $(( ATTEMPTS++ ))
|
266
|
+
done
|
264
267
|
hdiutil convert \\
|
265
268
|
"#{writable_dmg}" \\
|
266
269
|
-format UDZO \\
|
@@ -14,8 +14,8 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
|
17
|
-
require "rubygems/package"
|
18
|
-
require "zlib"
|
17
|
+
require "rubygems/package" unless defined?(Gem::Package)
|
18
|
+
require "zlib" unless defined?(Zlib)
|
19
19
|
|
20
20
|
module Omnibus
|
21
21
|
class Compressor::TGZ < Compressor::Base
|
data/lib/omnibus/config.rb
CHANGED
data/lib/omnibus/digestable.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
|
17
|
-
require "open-uri"
|
17
|
+
require "open-uri" unless defined?(OpenURI)
|
18
18
|
require "ruby-progressbar"
|
19
19
|
|
20
20
|
module Omnibus
|
@@ -77,7 +77,11 @@ module Omnibus
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
-
|
80
|
+
if RUBY_VERSION.to_f < 2.7
|
81
|
+
file = open(from_url, options)
|
82
|
+
else
|
83
|
+
file = URI.open(from_url, options)
|
84
|
+
end
|
81
85
|
# This is a temporary file. Close and flush it before attempting to copy
|
82
86
|
# it over.
|
83
87
|
file.close
|
data/lib/omnibus/file_syncer.rb
CHANGED
data/lib/omnibus/generator.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# limitations under the License.
|
15
15
|
#
|
16
16
|
|
17
|
-
require "thor"
|
17
|
+
require "thor" unless defined?(Thor)
|
18
18
|
|
19
19
|
module Omnibus
|
20
20
|
class Generator < Thor::Group
|
@@ -73,7 +73,7 @@ module Omnibus
|
|
73
73
|
class << self
|
74
74
|
# Set the source root for Thor
|
75
75
|
def source_root
|
76
|
-
File.expand_path("
|
76
|
+
File.expand_path("generator_files", __dir__)
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -114,7 +114,8 @@ section:
|
|
114
114
|
```shell
|
115
115
|
$ bin/kitchen login ubuntu-1804
|
116
116
|
[vagrant@ubuntu...] $ . load-omnibus-toolchain.sh
|
117
|
-
[vagrant@ubuntu...] $
|
117
|
+
[vagrant@ubuntu...] $ [ -e .bundle ] && sudo chown -R vagrant:vagrant .bundle
|
118
|
+
[vagrant@ubuntu...] $ cd <%= config[:name] %> # or 'cd <%= config[:name] %>/omnibus' if your omnibus project is embedded in your main project
|
118
119
|
[vagrant@ubuntu...] $ bundle install
|
119
120
|
[vagrant@ubuntu...] $ bin/omnibus build <%= config[:name] %>
|
120
121
|
```
|