omnibus 3.2.2 → 4.0.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +140 -10
- data/CHANGELOG.md +181 -8
- data/README.md +63 -35
- data/Rakefile +1 -1
- data/docs/omnibus-build-cache.md b/data/docs/Build → Cache.md +0 -0
- data/docs/Building on Debian.md +59 -0
- data/docs/Building on OSX.md +61 -35
- data/docs/Building on RHEL.md +74 -0
- data/docs/Building on Windows.md +40 -81
- data/features/commands/build.feature +1 -2
- data/features/commands/clean.feature +1 -1
- data/lib/omnibus.rb +111 -204
- data/lib/omnibus/build_version.rb +3 -20
- data/lib/omnibus/build_version_dsl.rb +2 -3
- data/lib/omnibus/builder.rb +103 -211
- data/lib/omnibus/cleaner.rb +5 -7
- data/lib/omnibus/cli.rb +1 -4
- data/lib/omnibus/cli/base.rb +9 -16
- data/lib/omnibus/compressor.rb +60 -0
- data/{spec/data/complicated/config/software/version-manifest.rb → lib/omnibus/compressors/base.rb} +17 -12
- data/lib/omnibus/compressors/dmg.rb +312 -0
- data/lib/omnibus/{null_builder.rb → compressors/null.rb} +10 -4
- data/lib/omnibus/compressors/tgz.rb +141 -0
- data/lib/omnibus/config.rb +89 -83
- data/lib/omnibus/core_extensions.rb +1 -0
- data/lib/omnibus/core_extensions/open_uri.rb +58 -0
- data/lib/omnibus/digestable.rb +9 -3
- data/lib/omnibus/exceptions.rb +116 -175
- data/lib/omnibus/fetcher.rb +97 -138
- data/lib/omnibus/fetchers/git_fetcher.rb +130 -165
- data/lib/omnibus/fetchers/net_fetcher.rb +205 -164
- data/lib/omnibus/fetchers/{s3_cache_fetcher.rb → null_fetcher.rb} +27 -17
- data/lib/omnibus/fetchers/path_fetcher.rb +74 -32
- data/lib/omnibus/file_syncer.rb +149 -0
- data/lib/omnibus/generator.rb +103 -32
- data/lib/omnibus/generator_files/.kitchen.yml.erb +5 -1
- data/lib/omnibus/generator_files/Gemfile.erb +13 -7
- data/lib/omnibus/generator_files/config/projects/project.rb.erb +28 -0
- data/lib/omnibus/generator_files/config/software/zlib.rb.erb +55 -0
- data/lib/omnibus/generator_files/omnibus.rb.erb +5 -7
- data/lib/omnibus/git_cache.rb +11 -13
- data/lib/omnibus/logger.rb +76 -22
- data/lib/omnibus/logging.rb +1 -1
- data/lib/omnibus/metadata.rb +264 -0
- data/lib/omnibus/ohai.rb +0 -51
- data/lib/omnibus/package.rb +4 -228
- data/lib/omnibus/packager.rb +71 -0
- data/lib/omnibus/packagers/base.rb +118 -176
- data/lib/omnibus/packagers/bff.rb +136 -0
- data/lib/omnibus/packagers/deb.rb +389 -0
- data/lib/omnibus/packagers/makeself.rb +114 -0
- data/lib/omnibus/packagers/msi.rb +346 -0
- data/lib/omnibus/packagers/pkg.rb +278 -0
- data/lib/omnibus/packagers/rpm.rb +438 -0
- data/lib/omnibus/packagers/solaris.rb +110 -0
- data/lib/omnibus/project.rb +263 -666
- data/lib/omnibus/publisher.rb +3 -3
- data/lib/omnibus/s3_cache.rb +21 -30
- data/lib/omnibus/software.rb +132 -271
- data/lib/omnibus/templating.rb +66 -0
- data/lib/omnibus/thread_pool.rb +109 -0
- data/lib/omnibus/util.rb +137 -15
- data/lib/omnibus/version.rb +1 -1
- data/omnibus.gemspec +2 -2
- data/resources/bff/gen.template.erb +22 -0
- data/resources/bff/postinstall.sh +0 -0
- data/resources/bff/unpostinstall.sh +0 -0
- data/resources/deb/conffiles.erb +3 -0
- data/resources/deb/control.erb +25 -0
- data/resources/deb/md5sums.erb +3 -0
- data/{lib/omnibus/generator_files/mac_dmg → resources/dmg}/background.png +0 -0
- data/resources/dmg/create_dmg.osascript.erb +17 -0
- data/{lib/omnibus/generator_files/mac_dmg → resources/dmg}/icon.png +0 -0
- data/{bin → resources/makeself}/makeself-header.sh +0 -0
- data/{bin → resources/makeself}/makeself.sh +0 -0
- data/{lib/omnibus/generator_files/package_scripts/makeselfinst.erb → resources/makeself/post_extract.sh.erb} +4 -4
- data/{lib/omnibus/generator_files/windows_msi → resources/msi}/assets/LICENSE.rtf +0 -0
- data/{lib/omnibus/generator_files/windows_msi → resources/msi}/assets/banner_background.bmp +0 -0
- data/{lib/omnibus/generator_files/windows_msi → resources/msi}/assets/dialog_background.bmp +0 -0
- data/{lib/omnibus/generator_files/windows_msi → resources/msi}/assets/project.ico +0 -0
- data/{lib/omnibus/generator_files/windows_msi → resources/msi}/assets/project_16x16.ico +0 -0
- data/{lib/omnibus/generator_files/windows_msi → resources/msi}/assets/project_32x32.ico +0 -0
- data/{spec/fixtures/sample/files/windows_msi/Resources/localization-en-us.wxl → resources/msi/localization-en-us.wxl.erb} +3 -4
- data/resources/msi/parameters.wxi.erb +9 -0
- data/{lib/omnibus/generator_files/windows_msi → resources/msi}/source.wxs.erb +14 -15
- data/{lib/omnibus/generator_files/mac_pkg → resources/pkg}/background.png +0 -0
- data/resources/pkg/distribution.xml.erb +21 -0
- data/resources/pkg/license.html.erb +3 -0
- data/resources/pkg/welcome.html.erb +7 -0
- data/resources/rpm/rpmmacros.erb +3 -0
- data/resources/rpm/signing.erb +40 -0
- data/resources/rpm/spec.erb +70 -0
- data/spec/functional/builder_spec.rb +90 -111
- data/spec/functional/fetchers/git_fetcher_spec.rb +130 -0
- data/spec/functional/fetchers/net_fetcher_spec.rb +110 -0
- data/spec/functional/fetchers/path_fetcher_spec.rb +97 -0
- data/spec/functional/file_syncer_spec.rb +206 -0
- data/spec/functional/templating_spec.rb +73 -0
- data/spec/spec_helper.rb +31 -94
- data/spec/support/env_helpers.rb +20 -0
- data/spec/support/examples.rb +56 -0
- data/spec/support/file_helpers.rb +46 -0
- data/spec/support/git_helpers.rb +107 -0
- data/spec/support/logging_helpers.rb +33 -0
- data/spec/support/matchers.rb +36 -0
- data/spec/support/ohai_helpers.rb +22 -0
- data/spec/support/path_helpers.rb +19 -0
- data/spec/support/shell_helpers.rb +14 -0
- data/spec/unit/build_version_dsl_spec.rb +0 -17
- data/spec/unit/build_version_spec.rb +1 -19
- data/spec/unit/builder_spec.rb +158 -46
- data/spec/unit/compressor_spec.rb +45 -0
- data/spec/unit/compressors/base_spec.rb +26 -0
- data/spec/unit/compressors/dmg_spec.rb +291 -0
- data/spec/unit/compressors/null_spec.rb +23 -0
- data/spec/unit/compressors/tgz_spec.rb +67 -0
- data/spec/unit/config_spec.rb +27 -34
- data/spec/unit/digestable_spec.rb +4 -4
- data/spec/unit/fetchers/git_fetcher_spec.rb +110 -39
- data/spec/unit/fetchers/net_fetcher_spec.rb +182 -72
- data/spec/unit/fetchers/path_fetcher_spec.rb +111 -0
- data/spec/unit/generator_spec.rb +137 -0
- data/spec/unit/git_cache_spec.rb +24 -34
- data/spec/unit/library_spec.rb +21 -82
- data/spec/unit/metadata_spec.rb +207 -0
- data/spec/unit/ohai_spec.rb +0 -7
- data/spec/unit/omnibus_spec.rb +41 -36
- data/spec/unit/package_spec.rb +1 -216
- data/spec/unit/packagers/base_spec.rb +76 -190
- data/spec/unit/packagers/bff_spec.rb +160 -0
- data/spec/unit/packagers/deb_spec.rb +324 -0
- data/spec/unit/packagers/makeself_spec.rb +80 -0
- data/spec/unit/packagers/msi_spec.rb +267 -0
- data/spec/unit/packagers/pkg_spec.rb +219 -0
- data/spec/unit/packagers/rpm_spec.rb +328 -0
- data/spec/unit/project_spec.rb +217 -80
- data/spec/unit/publisher_spec.rb +6 -2
- data/spec/unit/publishers/artifactory_publisher_spec.rb +1 -1
- data/spec/unit/publishers/s3_publisher_spec.rb +1 -1
- data/spec/unit/s3_cacher_spec.rb +22 -5
- data/spec/unit/software_spec.rb +89 -232
- data/spec/unit/util_spec.rb +188 -0
- metadata +159 -402
- data/features/commands/_deprecated.feature +0 -84
- data/lib/omnibus/cleanroom.rb +0 -141
- data/lib/omnibus/cli/deprecated.rb +0 -132
- data/lib/omnibus/generator_files/mac_pkg/license.html.erb +0 -1
- data/lib/omnibus/generator_files/mac_pkg/welcome.html.erb +0 -9
- data/lib/omnibus/generator_files/project.rb.erb +0 -20
- data/lib/omnibus/generator_files/software/c-example.rb.erb +0 -42
- data/lib/omnibus/generator_files/software/erlang-example.rb.erb +0 -38
- data/lib/omnibus/generator_files/software/ruby-example.rb.erb +0 -24
- data/lib/omnibus/generator_files/windows_msi/localization-en-us.wxl.erb +0 -20
- data/lib/omnibus/generator_files/windows_msi/parameters.wxi.erb +0 -9
- data/lib/omnibus/packagers/mac_dmg.rb +0 -235
- data/lib/omnibus/packagers/mac_pkg.rb +0 -176
- data/lib/omnibus/packagers/windows_msi.rb +0 -109
- data/spec/data/complicated/config/patches/bzip2/makefile_take_env_vars.patch +0 -15
- data/spec/data/complicated/config/patches/couchdb/patch_for_couchjs_stack.patch +0 -19
- data/spec/data/complicated/config/patches/gd/gd-2.0.33-configure-libpng.patch +0 -100
- data/spec/data/complicated/config/patches/keepalived/keepalived-1.2.9_opscode_centos_5.patch +0 -15
- data/spec/data/complicated/config/patches/libedit/freebsd-vi-fix.patch +0 -24
- data/spec/data/complicated/config/patches/libiconv/libiconv-1.14_srclib_stdio.in.h-remove-gets-declarations.patch +0 -29
- data/spec/data/complicated/config/patches/libwrap/tcp_wrappers-7.6-makefile-dest-fix.patch +0 -35
- data/spec/data/complicated/config/patches/libwrap/tcp_wrappers-7.6-malloc-fix.patch +0 -13
- data/spec/data/complicated/config/patches/libwrap/tcp_wrappers-7.6-shared_lib_plus_plus-1.patch +0 -1035
- data/spec/data/complicated/config/patches/logrotate/logrotate_basedir_override.patch +0 -12
- data/spec/data/complicated/config/patches/ncurses/ncurses-5.9-solaris-xopen_source_extended-detection.patch +0 -11
- data/spec/data/complicated/config/patches/ncurses/ncurses-clang.patch +0 -42
- data/spec/data/complicated/config/patches/ncurses/patch-aa +0 -23
- data/spec/data/complicated/config/patches/ncurses/patch-ab +0 -44
- data/spec/data/complicated/config/patches/ncurses/patch-ac +0 -40
- data/spec/data/complicated/config/patches/ncurses/patch-ad +0 -12
- data/spec/data/complicated/config/patches/ncurses/patch-aix-configure +0 -23
- data/spec/data/complicated/config/patches/ncurses/patch-cxx_cursesf.h +0 -22
- data/spec/data/complicated/config/patches/ncurses/patch-cxx_cursesm.h +0 -22
- data/spec/data/complicated/config/patches/nrpe/fix_for_runit.patch +0 -64
- data/spec/data/complicated/config/patches/openssl/openssl-1.0.1f-do-not-build-docs.patch +0 -101
- data/spec/data/complicated/config/patches/postgresql/postgresql-9.1.2-configure-ncurses-fix.patch +0 -12
- data/spec/data/complicated/config/patches/ruby/patch-configure +0 -103
- data/spec/data/complicated/config/patches/ruby/ruby-aix-configure.patch +0 -10
- data/spec/data/complicated/config/patches/ruby/ruby-openssl-1.0.1c.patch +0 -42
- data/spec/data/complicated/config/patches/ruby/ruby_aix_1_9_3_448_ssl_EAGAIN.patch +0 -57
- data/spec/data/complicated/config/patches/ruby/rvm-cflags.patch +0 -27
- data/spec/data/complicated/config/projects/angrychef.rb +0 -32
- data/spec/data/complicated/config/projects/chef-windows.rb +0 -32
- data/spec/data/complicated/config/projects/chef.rb +0 -32
- data/spec/data/complicated/config/projects/chefdk-windows.rb +0 -41
- data/spec/data/complicated/config/projects/chefdk.rb +0 -44
- data/spec/data/complicated/config/software/appbundler.rb +0 -25
- data/spec/data/complicated/config/software/autoconf.rb +0 -35
- data/spec/data/complicated/config/software/automake.rb +0 -39
- data/spec/data/complicated/config/software/berkshelf.rb +0 -44
- data/spec/data/complicated/config/software/bundler.rb +0 -25
- data/spec/data/complicated/config/software/bzip2.rb +0 -46
- data/spec/data/complicated/config/software/cacerts.rb +0 -44
- data/spec/data/complicated/config/software/chef-client-msi.rb +0 -87
- data/spec/data/complicated/config/software/chef-gem.rb +0 -26
- data/spec/data/complicated/config/software/chef-vault.rb +0 -43
- data/spec/data/complicated/config/software/chef-windows.rb +0 -158
- data/spec/data/complicated/config/software/chef.rb +0 -170
- data/spec/data/complicated/config/software/chefdk.rb +0 -103
- data/spec/data/complicated/config/software/couchdb.rb +0 -53
- data/spec/data/complicated/config/software/curl.rb +0 -48
- data/spec/data/complicated/config/software/erlang.rb +0 -65
- data/spec/data/complicated/config/software/expat.rb +0 -21
- data/spec/data/complicated/config/software/fcgi.rb +0 -56
- data/spec/data/complicated/config/software/fcgiwrap.rb +0 -41
- data/spec/data/complicated/config/software/gd.rb +0 -56
- data/spec/data/complicated/config/software/gdbm.rb +0 -40
- data/spec/data/complicated/config/software/gecode.rb +0 -48
- data/spec/data/complicated/config/software/git.rb +0 -40
- data/spec/data/complicated/config/software/help2man.rb +0 -30
- data/spec/data/complicated/config/software/icu.rb +0 -40
- data/spec/data/complicated/config/software/jre.rb +0 -48
- data/spec/data/complicated/config/software/keepalived.rb +0 -43
- data/spec/data/complicated/config/software/libarchive.rb +0 -50
- data/spec/data/complicated/config/software/libedit.rb +0 -69
- data/spec/data/complicated/config/software/libffi.rb +0 -71
- data/spec/data/complicated/config/software/libgcc.rb +0 -39
- data/spec/data/complicated/config/software/libiconv.rb +0 -55
- data/spec/data/complicated/config/software/libjpeg.rb +0 -39
- data/spec/data/complicated/config/software/libpng.rb +0 -38
- data/spec/data/complicated/config/software/libtool.rb +0 -52
- data/spec/data/complicated/config/software/libwrap.rb +0 -50
- data/spec/data/complicated/config/software/libxml2.rb +0 -51
- data/spec/data/complicated/config/software/libxslt.rb +0 -52
- data/spec/data/complicated/config/software/libyaml-windows.rb +0 -43
- data/spec/data/complicated/config/software/libyaml.rb +0 -62
- data/spec/data/complicated/config/software/logrotate.rb +0 -41
- data/spec/data/complicated/config/software/makedepend.rb +0 -73
- data/spec/data/complicated/config/software/mysql2.rb +0 -42
- data/spec/data/complicated/config/software/nagios-plugins.rb +0 -53
- data/spec/data/complicated/config/software/nagios.rb +0 -66
- data/spec/data/complicated/config/software/ncurses.rb +0 -149
- data/spec/data/complicated/config/software/nginx.rb +0 -40
- data/spec/data/complicated/config/software/nodejs.rb +0 -44
- data/spec/data/complicated/config/software/nokogiri.rb +0 -55
- data/spec/data/complicated/config/software/nrpe.rb +0 -61
- data/spec/data/complicated/config/software/ohai.rb +0 -64
- data/spec/data/complicated/config/software/omnibus-ctl.rb +0 -34
- data/spec/data/complicated/config/software/openresty.rb +0 -67
- data/spec/data/complicated/config/software/openssl.rb +0 -158
- data/spec/data/complicated/config/software/pcre.rb +0 -42
- data/spec/data/complicated/config/software/perl-extutils-embed.rb +0 -15
- data/spec/data/complicated/config/software/perl-extutils-makemaker.rb +0 -15
- data/spec/data/complicated/config/software/perl.rb +0 -48
- data/spec/data/complicated/config/software/perl_pg_driver.rb +0 -12
- data/spec/data/complicated/config/software/php.rb +0 -41
- data/spec/data/complicated/config/software/pip.rb +0 -30
- data/spec/data/complicated/config/software/pkg-config.rb +0 -66
- data/spec/data/complicated/config/software/popt.rb +0 -47
- data/spec/data/complicated/config/software/postgresql.rb +0 -51
- data/spec/data/complicated/config/software/preparation.rb +0 -30
- data/spec/data/complicated/config/software/pygments.rb +0 -25
- data/spec/data/complicated/config/software/python.rb +0 -49
- data/spec/data/complicated/config/software/rabbitmq.rb +0 -36
- data/spec/data/complicated/config/software/rebar.rb +0 -36
- data/spec/data/complicated/config/software/redis.rb +0 -33
- data/spec/data/complicated/config/software/rsync.rb +0 -48
- data/spec/data/complicated/config/software/ruby-windows-devkit.rb +0 -30
- data/spec/data/complicated/config/software/ruby-windows.rb +0 -30
- data/spec/data/complicated/config/software/ruby.rb +0 -162
- data/spec/data/complicated/config/software/rubygems-customization.rb +0 -57
- data/spec/data/complicated/config/software/rubygems.rb +0 -37
- data/spec/data/complicated/config/software/runit.rb +0 -118
- data/spec/data/complicated/config/software/server-jre.rb +0 -46
- data/spec/data/complicated/config/software/setuptools.rb +0 -30
- data/spec/data/complicated/config/software/spawn-fcgi.rb +0 -40
- data/spec/data/complicated/config/software/sphinx.rb +0 -26
- data/spec/data/complicated/config/software/spidermonkey.rb +0 -60
- data/spec/data/complicated/config/software/sqitch.rb +0 -24
- data/spec/data/complicated/config/software/test-kitchen.rb +0 -39
- data/spec/data/complicated/config/software/unicorn.rb +0 -27
- data/spec/data/complicated/config/software/util-macros.rb +0 -46
- data/spec/data/complicated/config/software/xproto.rb +0 -46
- data/spec/data/complicated/config/software/yajl.rb +0 -30
- data/spec/data/complicated/config/software/zlib.rb +0 -67
- data/spec/data/overrides/bad_line.overrides +0 -3
- data/spec/data/overrides/good.overrides +0 -5
- data/spec/data/overrides/with_dupes.overrides +0 -4
- data/spec/data/projects/chefdk.rb +0 -41
- data/spec/data/projects/sample.rb +0 -13
- data/spec/data/software/erchef.rb +0 -42
- data/spec/data/software/zlib.rb +0 -67
- data/spec/fixtures/sample/files/mac_dmg/Resources/background.png +0 -0
- data/spec/fixtures/sample/files/mac_dmg/Resources/icon.png +0 -0
- data/spec/fixtures/sample/files/mac_pkg/Resources/background.png +0 -0
- data/spec/fixtures/sample/files/mac_pkg/Resources/license.html +0 -1
- data/spec/fixtures/sample/files/mac_pkg/Resources/welcome.html +0 -9
- data/spec/fixtures/sample/files/windows_msi/Resources/assets/LICENSE.rtf +0 -8
- data/spec/fixtures/sample/files/windows_msi/Resources/assets/banner_background.bmp +0 -0
- data/spec/fixtures/sample/files/windows_msi/Resources/assets/dialog_background.bmp +0 -0
- data/spec/fixtures/sample/files/windows_msi/Resources/assets/project.ico +0 -0
- data/spec/fixtures/sample/files/windows_msi/Resources/assets/project_16x16.ico +0 -0
- data/spec/fixtures/sample/files/windows_msi/Resources/assets/project_32x32.ico +0 -0
- data/spec/fixtures/sample/files/windows_msi/Resources/parameters.wxi.erb +0 -9
- data/spec/fixtures/sample/files/windows_msi/Resources/source.wxs +0 -74
- data/spec/integration/packagers/mac_spec.rb +0 -58
- data/spec/integration/packagers/windows_spec.rb +0 -70
- data/spec/unit/packagers/mac_pkg_spec.rb +0 -151
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: dec9872ce88998ffa0792cb936e9f81a5955c5f3
|
4
|
+
data.tar.gz: 114a41ab14dc94359e1efb6a8f1f6e375031438e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e3cf0b1538b35bb9750427bab3c3779d1355c491e55ac889b81f4b970e85657c2053ec0a6872fd9318e82be70561b77cb354added176c59b6e3b11d536a1dc43
|
7
|
+
data.tar.gz: f551ee709ea94e53af2a6b0bc5e09c7e144a686eab51c692fdbc84f74e13b17bd588c4d2c8fc779ec9bf912784583919edadc09d2120f2f94e1554b4e504437f
|
data/.gitignore
CHANGED
@@ -1,12 +1,142 @@
|
|
1
|
+
### OSX ###
|
2
|
+
.DS_Store
|
3
|
+
.AppleDouble
|
4
|
+
.LSOverride
|
5
|
+
|
6
|
+
# Icon must end with two \r
|
7
|
+
Icon
|
8
|
+
|
9
|
+
|
10
|
+
# Thumbnails
|
11
|
+
._*
|
12
|
+
|
13
|
+
# Files that might appear on external disk
|
14
|
+
.Spotlight-V100
|
15
|
+
.Trashes
|
16
|
+
|
17
|
+
# Directories potentially created on remote AFP share
|
18
|
+
.AppleDB
|
19
|
+
.AppleDesktop
|
20
|
+
Network Trash Folder
|
21
|
+
Temporary Items
|
22
|
+
.apdisk
|
23
|
+
|
24
|
+
|
25
|
+
### Windows ###
|
26
|
+
# Windows image file caches
|
27
|
+
Thumbs.db
|
28
|
+
ehthumbs.db
|
29
|
+
|
30
|
+
# Folder config file
|
31
|
+
Desktop.ini
|
32
|
+
|
33
|
+
# Recycle Bin used on file shares
|
34
|
+
$RECYCLE.BIN/
|
35
|
+
|
36
|
+
# Windows Installer files
|
37
|
+
*.cab
|
38
|
+
*.msi
|
39
|
+
*.msm
|
40
|
+
*.msp
|
41
|
+
|
42
|
+
|
43
|
+
### Ruby ###
|
1
44
|
*.gem
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
45
|
+
*.rbc
|
46
|
+
/.config
|
47
|
+
/coverage/
|
48
|
+
/InstalledFiles
|
49
|
+
/pkg/
|
50
|
+
/spec/reports/
|
51
|
+
/test/tmp/
|
52
|
+
/test/version_tmp/
|
53
|
+
/tmp/
|
54
|
+
/spec/tmp
|
55
|
+
|
56
|
+
## Specific to RubyMotion:
|
57
|
+
.dat*
|
58
|
+
.repl_history
|
59
|
+
build/
|
60
|
+
|
61
|
+
## Documentation cache and generated files:
|
62
|
+
/.yardoc/
|
63
|
+
/_yardoc/
|
64
|
+
/doc/
|
65
|
+
/rdoc/
|
66
|
+
|
67
|
+
## Environment normalisation:
|
68
|
+
/.bundle/
|
69
|
+
/lib/bundler/man/
|
70
|
+
|
71
|
+
# for a library or gem, you might want to ignore these files since the code is
|
72
|
+
# intended to run in multiple environments; otherwise, check them in:
|
6
73
|
Gemfile.lock
|
7
|
-
.
|
8
|
-
|
9
|
-
|
10
|
-
.
|
11
|
-
.
|
12
|
-
|
74
|
+
.ruby-version
|
75
|
+
.ruby-gemset
|
76
|
+
|
77
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
78
|
+
.rvmrc
|
79
|
+
|
80
|
+
|
81
|
+
### TextMate ###
|
82
|
+
*.tmproj
|
83
|
+
*.tmproject
|
84
|
+
tmtags
|
85
|
+
|
86
|
+
|
87
|
+
### SublimeText ###
|
88
|
+
# workspace files are user-specific
|
89
|
+
*.sublime-workspace
|
90
|
+
|
91
|
+
# project files should be checked into the repository, unless a significant
|
92
|
+
# proportion of contributors will probably not be using SublimeText
|
93
|
+
# *.sublime-project
|
94
|
+
|
95
|
+
#sftp configuration file
|
96
|
+
sftp-config.json
|
97
|
+
|
98
|
+
|
99
|
+
### Tower ###
|
100
|
+
# Tower.app - http://www.git-tower.com/
|
101
|
+
Icon.png
|
102
|
+
|
103
|
+
|
104
|
+
### vim ###
|
105
|
+
[._]*.s[a-w][a-z]
|
106
|
+
[._]s[a-w][a-z]
|
107
|
+
*.un~
|
108
|
+
Session.vim
|
109
|
+
.netrwhist
|
110
|
+
*~
|
111
|
+
|
112
|
+
|
113
|
+
### Emacs ###
|
114
|
+
# -*- mode: gitignore; -*-
|
115
|
+
*~
|
116
|
+
\#*\#
|
117
|
+
/.emacs.desktop
|
118
|
+
/.emacs.desktop.lock
|
119
|
+
*.elc
|
120
|
+
auto-save-list
|
121
|
+
tramp
|
122
|
+
.\#*
|
123
|
+
|
124
|
+
# Org-mode
|
125
|
+
.org-id-locations
|
126
|
+
*_archive
|
127
|
+
|
128
|
+
# flymake-mode
|
129
|
+
*_flymake.*
|
130
|
+
|
131
|
+
# eshell files
|
132
|
+
/eshell/history
|
133
|
+
/eshell/lastdir
|
134
|
+
|
135
|
+
# elpa packages
|
136
|
+
/elpa/
|
137
|
+
|
138
|
+
# reftex files
|
139
|
+
*.rel
|
140
|
+
|
141
|
+
# AUCTeX auto folder
|
142
|
+
/auto/
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,184 @@
|
|
1
|
-
Omnibus
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
-
|
8
|
-
-
|
1
|
+
Omnibus CHANGELOG
|
2
|
+
=================
|
3
|
+
|
4
|
+
v4.0.0.beta.1 (August 20, 2014)
|
5
|
+
-------------------------------
|
6
|
+
### New Features
|
7
|
+
- Implement packager-specific DSLs. Packagers now define their own custom methods that may be configured using the `package` block in a project file. For more information, please see the README or any of the embedded "Building on X" documents.
|
8
|
+
- Use vendored assets. In previous versions of Omnibus, the generator would create resource assets for DMG, PKG, and MSI packages, regardless of whether you intended to build those packages. This could cause repo bloat and information overload. In Omnibus 4, the default generator does not create these assets, and instead prefers "general" vendored assets. If you are planning to make a resource-intensive package (such as a PKG or MSI), it is encouraged you generate these assets by specifing the `--pkg-assets` flag during project generation. Omnibus will prefer local resources in the `resources/` directory and then fall-back to "sane" defaults which are vendored within Omnibus.
|
9
|
+
- Refactored packagers and remove FPM. Omnibus now builds all packages using Ruby and system tooling. This provides a speed improvement and added control over the way packages are built, while simplifying the DSL.
|
10
|
+
- Refactored fetcher objects that include performance enhancements and better cachability across platforms.
|
11
|
+
- Added `Omnibus.which` to search `ENV['PATH']` for the given executable. This is used internally in Omnibus but is also available inside software definitions.
|
12
|
+
- Lazy load project and software definitions. In previous versions of Omnibus, Omnibus would load **all** software files found on disk. Omnibus 4 will selectively load softwares from the most preferred location.
|
13
|
+
- Expand project and software searching. Omnibus 4 now allows a user to specify a list of local software repos and software gems. Omnibus 4 will search the local repository (config/software), then any local file system specified software repos, then any loaded gems. These search paths and gems can be specified in the Omnibus config.
|
14
|
+
- Extracted template rendering into a helper module. Omnibus now renders templates from this single method, so you always have the same ERB expectations.
|
15
|
+
- Added many new DSL methods for packagers, builders, project, and software. Please see the **DSL Changes** below for detailed information.
|
16
|
+
- Extracted FileSyncer into a top-level class with added test coverage.
|
17
|
+
- Builder DSL method `erb` will search all configured software repos for the template, following the previously described specificity search.
|
18
|
+
- Builder DSL method `patch` will search all configured software repos for the patch file, following the previously described specificity search.
|
19
|
+
- Standardize on a single way for loading projects from disk - `Project.load`. This method is part of the public API and can be used with Omnibus as a library for loading a project from preferred paths on disk.
|
20
|
+
- Standardize on a single way for loading software from disk - `Software.load`. This method is part of the public API and can be used with Omnibus as a library for loading a software from preferred paths on disk.
|
21
|
+
- Added all-new compressor scaffolding and skeleton. Previously, a DMG was considered a "packager", but it is actually a compressor. You can read more about the compressor syntax in the Omnibus 4 release notes or the Omnibus README.
|
22
|
+
- Added a TGZ compressor for post-processing larger packagers into tarballs.
|
23
|
+
- Use Ruby's native `open-uri` in the NetFetcher. This permits users to specify http, https, or ftp URLs.
|
24
|
+
- Include hidden files and folders when calculating a directory digest.
|
25
|
+
- Use the relative path of a file when calculating a directory digest.
|
26
|
+
- Create required directories "as-needed" rather than at the start of a run. This prevents Omnibus from creating a ton of random directories on disk before the build even begins.
|
27
|
+
- Use an Ruby implmentation that behaves like rsync for PathFetcher objects. This removes the implicit dependency on rsync/rubocopy on build systems.
|
28
|
+
- Add support for Ubuntu 14.04 in the build lab
|
29
|
+
- Centralize the algorithm for determining the packager for the current system.
|
30
|
+
- Enhance the `Util` module to include FileSystem methods like `create_directory`.
|
31
|
+
- Always build packages in a temporary, staging directory and then copy the generated asset(s) back into `Config.package_dir`.
|
32
|
+
- Add sanity checking around package name generation (e.g. removing specical characters) and issue a warning when package names might contain invalid characters.
|
33
|
+
- Rewrite AIX BFF packager from scratch.
|
34
|
+
- Rewrite Debian/Ubuntu DEB packager from scratch using `dpkg-deb`.
|
35
|
+
- Rewrite Other Makeself packager from scratch using more in-memory operations (instead of filesystem).
|
36
|
+
- Rewrite Windows MSI packager from scratch and use more flexible default XML templates.
|
37
|
+
- Support installing an MSI package into more than one directory deep (e.g. C:\Program Files\Chef Software\Chef).
|
38
|
+
- Rewrite OS X PKG packager from scratch with templates instead of heredocs for XML/PLists.
|
39
|
+
- Rewrite RedHat/CentOS RPM packager from scratch to use custom spec files and `rpmbuild`.
|
40
|
+
- Rewrite Solaris Solaris packager. This packager is still in need of a major overhaul.
|
41
|
+
- Allow DSL authors to specify a URL may be downloaded using `:unsafe` redirects from HTTPS -> HTTP.
|
42
|
+
- Added a real functional test suite that runs on Travis CI for the Build DSL
|
43
|
+
- Improved test coverage by 280%.
|
44
|
+
- Treat all files as binary. This solves a number of strange encoding issues you may have been experiencing.
|
45
|
+
- Prevent Ruby from automatically ungzipping responses.
|
46
|
+
- Added `Config.workers` key for specifying the maximum number of parallel events to take place.
|
47
|
+
- Added parallel downloads for fetcher objects.
|
48
|
+
- Use `fakeroot` for building DEBs and RPMs.
|
49
|
+
|
50
|
+
### Potentially Breaking Changes
|
51
|
+
- Remove embedded functional tests. Because the functional tests were skipped on CI (and require a system of each type to properly execute), they have been removed. Chef has created the [omnibus-harmony](https://github.com/opscode/omnibus-harmony) pipeline to perform true integration testing using the in-house CI cluster. If you were relying on the integration tests (or the associated Rake tasks), they have been removed.
|
52
|
+
- Move vendored `makeself` and `makeself-header` script from `bin/` to `resources/` folder. Having the `makeself` script inside `bin/` would cause `makeself` to be bundled with the gem and added to `$PATH`. If you were previously relying on Omnibus adding `makeself` to your `$PATH`, this will no longer happen.
|
53
|
+
- Cleanroom now subclasses `Object` instead of `Omnibus`. This could have unintended side-effects if you were accessing Omnibus internals (like `Config`) inside software or project DSL methods. You must now specify the entire namespace (e.g. `Omnibus::Config`).
|
54
|
+
- Builder filesystem DSL methods change directory into `Software#project_dir` before executing.
|
55
|
+
- Builder filesystem DSL methods now accept paths or globs.
|
56
|
+
- Packagers attempt to ignore SCM-based files during packaging.
|
57
|
+
- Move internal cleanroom implementation into a [cleanroom standalone-gem](https://rubygems.org/gems/cleanroom). If you were relying or invoking `Omnibus::Cleanroom`, please see the gem documentation.
|
58
|
+
- `Omnibus.process_configuration` has been removed. This method was actually a noop and entirely unused. If you are using Omnibus as a library, this method does not need to be invoked and the call can safely be removed.
|
59
|
+
- Remove `Config.fetch` and `Config[:key]`. You should use `Config.thing` instead.
|
60
|
+
- Standardize errors on `MissingRequiredAttribute`. In previous versions of Omnibus, you would get a different error depending on _where_ a required attribute was missing. In Config, Omnibus would raise `MissingConfigOption`, in project, Omnibus would raise `MissingProjectConfiguration` and in software, Omnibus would raise `MissingSoftwareConfiguration`. All these error classes have been removed and standardized on `MissingRequiredAttribute`.
|
61
|
+
- Remove many unused error classes.
|
62
|
+
- Remove all implementations of ErrorReporter classes. These classes attempted to read the output of a stacktrace and intelligently display information to the user about the failure. However, these classes proved to hide errors or provide false information more than they were helpful.
|
63
|
+
- Raise `NotImplementedError` (Ruby core) instead of `AbstractMethod` or `AbstractFunction` (Omnibus) errors when a method should be overridden by the child class.
|
64
|
+
- Refactor `GitFetcher`, removing retries and complex error handling. If a git command fails, you will see the error from git instead of an Omnibus-translated error.
|
65
|
+
- Raise a `ChecksumMismatch` exception when a provided md5 does not match the downloaded one.
|
66
|
+
- When extracting tar archives, prefer gtar over tar when gtar is present.
|
67
|
+
- Move `Omnibus::Packager::Metadata` to `Omnibus::Metadata` and improve documentation
|
68
|
+
- Change the airty of `Omnibus::Metadata.generate` to accept [1] the path to the package on disk and [2] the project which created the package.
|
69
|
+
- Selectively load Ohai plugins. Please note: the Ohai that is loaded with Omnibus includes very minimal system information compared to the Ohai that comes with Chef. If you are expecting the data to be the same, you have been warned!
|
70
|
+
- Remove all uses of forwardable delegation.
|
71
|
+
- Cache the loading of projects
|
72
|
+
- Cache the loading of software
|
73
|
+
- When accessing DSL methods for the first time, do not persist the default value onto the instance variable.
|
74
|
+
- Bump the required version of Chef Sugar to `~> 2.2` to pick up new `smartos?` and `omnios?` matchers.
|
75
|
+
- Removed vendor spec fixture data. I do not know why you would be using it, but if you were relying on any of that data, it is now gone and fixtures are constructed manually at test time.
|
76
|
+
- Renamed `Package::MacPkg` to `Packager::PKG`
|
77
|
+
- Renamed `Package::MacDmg` to `Compressor::DMG`
|
78
|
+
- Truncate SLES and other RedHat derivatives platform version.
|
79
|
+
- Refactor logger objects to separate Omnibus internal debugging info with build/compile/configure debugging info.
|
80
|
+
- Improve error and debugging output when an exception is raised while shelling out. Failed shell commands will now raise `Omnibus::CommandFailed` and `Omnibus::CommandTimeout` instead of the `Mixlib::ShellOut` exceptions. If you were previously rescuing the Mixlib exceptions, you should switch to the new ones.
|
81
|
+
|
82
|
+
### Definitely Breaking Changes
|
83
|
+
- Previously deprecated methods have been removed.
|
84
|
+
- `Config#package_tmp` is no longer used. `Dir.mktmpdir` is used to generate an operating-system agnostic temporary directory for packagers to operate in.
|
85
|
+
- `Config#build_dmg` is no longer used. If you wish to build a dmg, you must specify a `compressor` block with the `:dmg` option.
|
86
|
+
- `Config#dmg_window_bounds` is no longer used. If you wish to specify dmg window bounds, you must specify a `compressor` block with the `:dmg` option and specify the `window_bounds` attribute.
|
87
|
+
- `Config#dmg_pkg_position` is no longer used. If you wish to specify dmg package positioning, you must specify a `compressor` block with the `:dmg` option and specify the `pkg_position` attribute.
|
88
|
+
- `Config#sign_pkg` is no longer used. If you specify a signing identity, it is assumed you want to sign the package.
|
89
|
+
- `Config#signing_identity` is no longer used. If you wish to specify package signing identity, you must specify a `package` block with the `:pkg` option and specify the `signing_identity` attribute.
|
90
|
+
- `Config#sign_rpm` is no longer used. If you specify an rpm signing passphrase, it is assumed you want to sign the package.
|
91
|
+
- `Config#rpm_signing_passphrase` is no longer used. If you wish to specify package signing identity, you must specify a `package` block with the `:rpm` option and specify the `signing_passphrase` attribute.
|
92
|
+
- `Project#msi_parameters` has been removed. If you wish to specify msi parameters, you must specify a `package` block with the `:msi` option and specify the `parameters` attribute.
|
93
|
+
- **`Project#msi_parameters[:upgrade_code]` is no longer used!** You must specify an `upgrade_code` in a `package` block with the `:msi` option.
|
94
|
+
- Remove all instances of `NullBuilder`. If you were previously invoking a `NullBuilder`, simply omit a `build` block.
|
95
|
+
- Remove packager `validate` pre-step
|
96
|
+
- Remove packager `cleanup` post-step
|
97
|
+
- **Changed the method arity of `Software#initialize` - this method no longer accepts a list of overrides.**
|
98
|
+
- `Builder#max_build_jobs` has been renamed to `Builder#workers`.
|
99
|
+
|
100
|
+
### Deprecations
|
101
|
+
- `Config#package_tmp` prints a deprecation. There is no replacement for this method.
|
102
|
+
- `Config#build_dmg` prints a deprecation. You should specify a `compressor` block with the `:dmg` option instead.
|
103
|
+
- `Config#dmg_window_bounds` prints a deprecation. You should specify the `window_bounds` inside `compressor :dmg` instead.
|
104
|
+
- `Config#dmg_pkg_position` prints a deprecation. You should specify the `pkg_position` inside `compressor :dmg` instead.
|
105
|
+
- `Config#sign_pkg` prints a deprecation. If you specify a signing identity, it is assumed you want to sign the package.
|
106
|
+
- `Config#signing_identity` prints a deprecation. You should specify the `signing_identity` inside `package :pkg` instead.
|
107
|
+
- `Config#sign_rpm` prints a deprecation. If you specify an rpm signing passphrase, it is assumed you want to sign the package.
|
108
|
+
- `Config#rpm_signing_passphrase` prints a deprecation. You should specify the `signing_passphrase` inside `package :rpm` instead.
|
109
|
+
- Warn the user when invoking the `command` method in a `build` block that should be replaced with a top-level DSL method (like `command "rm -rf thing.rb"` should be replaced with `delete "thing.rb"`).
|
110
|
+
|
111
|
+
### Generator Changes
|
112
|
+
- The generator (`omnibus new NAME`) no longer generates assets (MSI, PKG, DMG, etc). If you need those assets, you can specify the `--thing-assets` (e.g. `--msi-assets`) flag.
|
113
|
+
- The generator does not render ERB files for assets - instead, it just generates the raw ERB files for your modification.
|
114
|
+
- Improve the comments in teh generated project Gemfile
|
115
|
+
- Put "development" gems in a `:development` group in the generated project Gemfile for easy exclusion with `bundle install --without development`.
|
116
|
+
- Update generated `<project>.rb` file to use new APIs
|
117
|
+
- Generate a "real" software example (zlib) that showcases many of the new APIs for learning.
|
118
|
+
- Always generate an `omnibus.rb` configuration file with "secret" values specified using `ENV`.
|
119
|
+
- Remove outdated and `-example.rb` software definitions.
|
120
|
+
|
121
|
+
### DSL Changes
|
122
|
+
#### Project
|
123
|
+
- Removed `Project#msi_parameters`. Please use the packager-specific DSL `parameters` method instead.
|
124
|
+
- Removed `Project#msi_parameters[:upgrade_code]`. You must specify the `upgrade_code` packager-specific DSL method instead.
|
125
|
+
- Removed `Project#package_name`. This value is now calculated by Omnibus and you cannot tune it.
|
126
|
+
- Removed `Project#install_path`. Please use `Project#install_dir` instead.
|
127
|
+
- Removed `Project#files_path`. Please use `Project#resources_path` instead.
|
128
|
+
- Added `Project#resources_path`. Previously called "files", any Omnibus assets, images, or files are now referred to as "resources". The default value is `resources/PROJECT_NAME`.
|
129
|
+
- Removed `Project#replaces`. Please use `Project#replace` and specify a single package. You can specify `Package#replace` multiple times in the same project.
|
130
|
+
- Added `Project#replace` for specifying which existing package this project replaces.
|
131
|
+
- Added `Project#default_root` that uses `/opt` on Unix and `C:/` on Windows for easy cross-platform path-setting.
|
132
|
+
- Added `Project#package` for customizing a specific packager. This is a sub-DSL that is evaluated on the OS-specific packager. This DSL method may be specified in a file multiple times.
|
133
|
+
- Added `Project#compress` for customizing a specific compressor. This is a sub-DSL that is evaluated on the given compressor. This DSL method may be specified in a file multiple times and Omnibus will select the "best" compressor for the given platform. For example, if both DMG and TGZ compressors are given, Omnibus will prefer DMG on OS X systems and fallback to TGZ on others.
|
134
|
+
- Changed `Project#package_user` to default to `root` when no value is given.
|
135
|
+
- Changed `Project#package_group` to default to `Ohai['root_group']` and then `root` when no value is given.
|
136
|
+
- Removed `Project#platform_version`. Use `ohai` instead.
|
137
|
+
- Removed `Project#platform_family`. Use `ohai` instead.
|
138
|
+
- Removed `Project#platform`. Use `ohai` instead.
|
139
|
+
- Removed `Project#machine`. Use `ohai` instead.
|
140
|
+
- Removed `Project#dependencies`. List each dependency using `dependency` instead.
|
141
|
+
- Added `Project#ohai` for quick access to Ohai data.
|
142
|
+
- Removed `Software#override_version`. There is no replacement.
|
143
|
+
- Removed `Software#install_dir`. Please use `Software#install_path` instead.
|
144
|
+
- Removed `Software#platform_version`. Use `ohai` instead.
|
145
|
+
- Removed `Software#platform_family`. Use `ohai` instead.
|
146
|
+
- Removed `Software#platform`. Use `ohai` instead.
|
147
|
+
- Removed `Software#architecture`. Use `ohai` instead or Chef Sugar instead.
|
148
|
+
- Added `Software#ohai` for quick access to Ohai data.
|
149
|
+
- Changed `Software#downloaded_file` to `Software#project_file`.
|
150
|
+
- Removed `Software#source_dir`. You can use `Omnibus::Config.source_dir` instead, but if you need access to this method, it is probably a bug in Omnibus.
|
151
|
+
- Removed `Software#cache_dir`. You can use `Omnibus::Config.cache_dir` instead, but if you need access to this method, it is probably a bug in Omnibus.
|
152
|
+
- Removed `Software#config`. You can use `Omnibus::Config` instead.
|
153
|
+
- Added `Builder#make` for choosing the correct `make` binary on the system. When `gmake` is present, it is preferred. The use of this method also sets the `MAKE` environment variable for consistency. You should change all instances of `command "make ..."` to `make "..."` to ensure true cross-platform building.
|
154
|
+
- Added `Builder#windows_safe_path` for shelling out to the system with the correct path separators.
|
155
|
+
- Added `Buidler#workers` for delegation to the config option.
|
156
|
+
- Removed `Buidler#max_build_jobs` in favor of `Builder#workers`.
|
157
|
+
- Added `Packager::DEB#vendor` for specifying the package vendor.
|
158
|
+
- Added `Packager::DEB#license` for specifying the package license.
|
159
|
+
- Added `Packager::DEB#priority` for specifying the package priority.
|
160
|
+
- Added `Packager::DEB#section` for specifying the package section.
|
161
|
+
- Added `Packager::MSI#upgrade_code` for specifying an upgrade code. You must specify this attribute to make MSI packages.
|
162
|
+
- Added `Packager::MSI#parameters` for specifying arbitrary parameters to be read into the Wix XML.
|
163
|
+
- Added `Packager::MSI#wix_light_extension` for activating arbitrary Wix light extentions.
|
164
|
+
- Added `Packager::MSI#wix_candle_extension` for activating arbitrary Wix candle extentions.
|
165
|
+
- Added `Packager::PKG#identifer` for specifying the identifier of the the Mac OS X PKG. This value is still interpreted if one is not given. Note: the `Config.mac_pkg_identifier` is no longer honored.
|
166
|
+
- Added `Packager::PKG#signing_passphrase` for specifying the signing passphrase. If this value is given, it is assumed you want to sign the package. Note: the `Config.sign_rpm` and `Config.rpm_signing_passphrase` is no longer honored.
|
167
|
+
- Added `Packager::RPM#vendor` for specifying the package vendor.
|
168
|
+
- Added `Packager::RPM#license` for specifying the package license.
|
169
|
+
- Added `Packager::RPM#priority` for specifying the package priority.
|
170
|
+
- Added `Packager::RPM#category` for specifying the package category.
|
171
|
+
|
172
|
+
### Bugfixes
|
173
|
+
- Drastically improve test coverage around packagers.
|
174
|
+
- Improved documentation for Building on OSX.
|
175
|
+
- Improved documentation for Building on Windows.
|
176
|
+
- Improved documentation for Building on RHEL.
|
177
|
+
- Improved documentation for the `Builder` DSL.
|
178
|
+
- Standardized license headers.
|
179
|
+
- Added SSH forwarding as part of the default generated `.kitchen.yml`.
|
180
|
+
- Updated Chef version in generated `.kitchen.yml`.
|
181
|
+
|
9
182
|
|
10
183
|
v3.2.1 (July 26, 2014)
|
11
184
|
----------------------
|
data/README.md
CHANGED
@@ -54,7 +54,11 @@ Omnibus determines the platform for which to build an installer based on **the p
|
|
54
54
|
|
55
55
|
More documentation
|
56
56
|
------------------
|
57
|
-
|
57
|
+
- [Building on Debian](docs/Building on Debian.md)
|
58
|
+
- [Building on OSX](docs/Building on OSX.md)
|
59
|
+
- [Building on RHEL](docs/Building on RHEL.md)
|
60
|
+
- [Building on Windows](docs/Building on Windows.md)
|
61
|
+
- [Build Cache](docs/Build Cache.md)
|
58
62
|
|
59
63
|
|
60
64
|
Configuration DSL
|
@@ -83,7 +87,7 @@ s3_bucket ENV['S3_BUCKET']
|
|
83
87
|
|
84
88
|
For more information, please see the [`Config` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Config).
|
85
89
|
|
86
|
-
You can tell Omnibus to load a
|
90
|
+
You can tell Omnibus to load a different configuration file by passing the `--config` option to any command:
|
87
91
|
|
88
92
|
```shell
|
89
93
|
$ bin/omnibus --config /path/to/config.rb
|
@@ -101,15 +105,15 @@ A Project DSL file defines your actual application; this is the thing you are cr
|
|
101
105
|
All project definitions must be in the `config/projects` directory of your Omnibus repository.
|
102
106
|
|
103
107
|
```ruby
|
104
|
-
name
|
105
|
-
maintainer
|
106
|
-
homepage
|
108
|
+
name "chef-full"
|
109
|
+
maintainer "YOUR NAME"
|
110
|
+
homepage "http://yoursite.com"
|
107
111
|
|
108
|
-
install_dir
|
109
|
-
build_version
|
112
|
+
install_dir "/opt/chef"
|
113
|
+
build_version "0.10.8"
|
110
114
|
build_iteration 4
|
111
115
|
|
112
|
-
dependency
|
116
|
+
dependency "chef"
|
113
117
|
```
|
114
118
|
|
115
119
|
Some DSL methods available include:
|
@@ -121,10 +125,11 @@ Some DSL methods available include:
|
|
121
125
|
| `build_version` | The package version |
|
122
126
|
| `build_iteration` | The package iteration number |
|
123
127
|
| `dependency` | An Omnibus software-defined component to include in this package |
|
128
|
+
| `package` | Invoke a packager-specific DSL |
|
129
|
+
| `compress` | Invoke a compressor-specific DSL |
|
124
130
|
|
125
131
|
For more information, please see the [`Project` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Project).
|
126
132
|
|
127
|
-
|
128
133
|
### Software
|
129
134
|
Omnibus "software" files define individual software components that go into making your overall package. They are the building blocks of your application. The Software DSL provides a way to define where to retrieve the software sources, how to build them, and what dependencies they have. These dependencies are also defined in their own Software DSL files, thus forming the basis for a dependency-aware build ordering.
|
130
135
|
|
@@ -133,21 +138,21 @@ All Software definitions should go in the `config/software` directory of your Om
|
|
133
138
|
Here is an example:
|
134
139
|
|
135
140
|
```ruby
|
136
|
-
name
|
137
|
-
default_version
|
138
|
-
source url:
|
139
|
-
md5:
|
141
|
+
name "ruby"
|
142
|
+
default_version "1.9.2-p290"
|
143
|
+
source url: "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-#{version}.tar.gz",
|
144
|
+
md5: "604da71839a6ae02b5b5b5e1b792d5eb"
|
140
145
|
|
141
|
-
dependency
|
142
|
-
dependency
|
143
|
-
dependency
|
146
|
+
dependency "zlib"
|
147
|
+
dependency "ncurses"
|
148
|
+
dependency "openssl"
|
144
149
|
|
145
150
|
relative_path "ruby-#{version}"
|
146
151
|
|
147
152
|
build do
|
148
|
-
command
|
149
|
-
command
|
150
|
-
command
|
153
|
+
command "./configure"
|
154
|
+
command "make"
|
155
|
+
command "make install"
|
151
156
|
end
|
152
157
|
```
|
153
158
|
|
@@ -161,34 +166,57 @@ Some of the DSL methods available include:
|
|
161
166
|
| `dependency` | An Omnibus software-defined component that this software depends on |
|
162
167
|
| `relative_path` | The relative path of the extracted tarball |
|
163
168
|
| `build` | The build instructions |
|
164
|
-
| `command` | An individual build step |
|
165
169
|
|
170
|
+
For more DSL methods, please consult the [`Software` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Software).
|
171
|
+
|
172
|
+
Additionally, there are a number of DSL methods avaiable inside the `build` block:
|
173
|
+
|
174
|
+
| DSL Method | Description |
|
175
|
+
| :-----------------: | -------------------------------------------|
|
176
|
+
| `command` | Execute a single shell command |
|
177
|
+
| `make` | Run make (with or without args), using gmake when appropriate |
|
178
|
+
| `patch` | Apply a patch from disk |
|
179
|
+
| `workers` | The maximum number of builders |
|
180
|
+
| `windows_safe_path` | Format the path to be safe for shelling out on Windows |
|
181
|
+
| `ruby` | Execute the code as the embedded Ruby |
|
182
|
+
| `gem` | Execute the code as the embedded Rubygems |
|
183
|
+
| `bundle` | Execute the code as the embedded Bundler |
|
184
|
+
| `rake` | Execute the code as the embedded Rake gem |
|
185
|
+
| `block` | Execute Ruby block at build time |
|
186
|
+
| `erb` | Render the given ERB template |
|
187
|
+
| `mkdir` | Create the given directory |
|
188
|
+
| `touch` | Create the given empty file |
|
189
|
+
| `delete` | Remove the given file or directory |
|
190
|
+
| `copy` | Copy a to b |
|
191
|
+
| `move` | Move a to b |
|
192
|
+
| `link` | Link a to b |
|
193
|
+
| `sync` | Copy all files from a to b, removing any union files |
|
194
|
+
|
195
|
+
For more DSL methods, please consult the [`Builder` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Builder).
|
166
196
|
|
167
197
|
You can support building multiple verisons of the same software in the same software definition file using the `version` method and giving a block:
|
168
198
|
|
169
199
|
```ruby
|
170
|
-
name
|
171
|
-
default_version
|
200
|
+
name "ruby"
|
201
|
+
default_version "1.9.2-p290"
|
172
202
|
|
173
|
-
version
|
174
|
-
source url:
|
175
|
-
md5:
|
203
|
+
version "1.9.2-p290" do
|
204
|
+
source url: "http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-#{version}.tar.gz",
|
205
|
+
md5: "604da71839a6ae02b5b5b5e1b792d5eb"
|
176
206
|
end
|
177
207
|
|
178
|
-
version
|
179
|
-
source url:
|
180
|
-
md5:
|
208
|
+
version "2.1.1" do
|
209
|
+
source url: "http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-#{version}.tar.gz",
|
210
|
+
md5: "e57fdbb8ed56e70c43f39c79da1654b2"
|
181
211
|
end
|
182
212
|
```
|
183
213
|
|
184
214
|
Since the software definitions are simply ruby code, you can conditionally execute anything by wrapping it with pure Ruby that tests for the version number.
|
185
215
|
|
186
|
-
For more DSL methods, please consult the [`Software` documentation](http://rubydoc.info/github/opscode/omnibus/Omnibus/Software).
|
187
|
-
|
188
216
|
#### Sharing software definitions
|
189
217
|
The easiest way to share organization-wide software is via bundler and Rubygems. For an example software repository, look at Chef's [omnibus-software](https://github.com/opscode/omnibus-software). For more information, please see the [Rubygems documentation](http://guides.rubygems.org/publishing/).
|
190
218
|
|
191
|
-
It is recommended you use bundler to pull down these gems (as bundler also permits pulling
|
219
|
+
It is recommended you use bundler to pull down these gems (as bundler also permits pulling software directly from GitHub):
|
192
220
|
|
193
221
|
```ruby
|
194
222
|
gem 'my-company-omnibus-software'
|
@@ -227,13 +255,13 @@ Caveats
|
|
227
255
|
The project definitions can override specific software dependencies by passing in `override` to use the correct version:
|
228
256
|
|
229
257
|
```ruby
|
230
|
-
name
|
258
|
+
name "chef-full"
|
231
259
|
# <snip>
|
232
260
|
|
233
261
|
# This will override the default version of "chef"
|
234
|
-
override :chef, version:
|
262
|
+
override :chef, version: "2.1.1"
|
235
263
|
|
236
|
-
dependency
|
264
|
+
dependency "chef"
|
237
265
|
```
|
238
266
|
|
239
267
|
**The overridden version must be defined in the associated software!**
|
@@ -242,7 +270,7 @@ dependency 'chef'
|
|
242
270
|
By default, Omnibus will log at the `warn` level. You can override this by passing the `--log-level` flag to your Omnibus call:
|
243
271
|
|
244
272
|
```shell
|
245
|
-
$ bin/omnibus build <project> --log-level info
|
273
|
+
$ bin/omnibus build <project> --log-level info # or "debug"
|
246
274
|
```
|
247
275
|
|
248
276
|
### Git caching
|