omnibus 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +17 -1
  3. data/.travis.yml +11 -3
  4. data/CHANGELOG.md +39 -1
  5. data/Gemfile +0 -4
  6. data/README.md +10 -8
  7. data/Rakefile +18 -7
  8. data/bin/omnibus +3 -3
  9. data/docs/Building on Windows.md +98 -0
  10. data/features/commands/_deprecated.feature +46 -0
  11. data/features/commands/build.feature +9 -0
  12. data/features/commands/clean.feature +21 -0
  13. data/features/commands/list.feature +16 -0
  14. data/features/commands/new.feature +8 -0
  15. data/features/commands/version.feature +12 -0
  16. data/features/step_definitions/generator_steps.rb +28 -0
  17. data/features/support/env.rb +13 -0
  18. data/lib/omnibus.rb +319 -240
  19. data/lib/omnibus/artifact.rb +16 -0
  20. data/lib/omnibus/build_version.rb +39 -20
  21. data/lib/omnibus/build_version_dsl.rb +136 -0
  22. data/lib/omnibus/builder.rb +28 -23
  23. data/lib/omnibus/cleaner.rb +72 -0
  24. data/lib/omnibus/cli.rb +115 -11
  25. data/lib/omnibus/cli/base.rb +82 -81
  26. data/lib/omnibus/cli/cache.rb +80 -32
  27. data/lib/omnibus/cli/deprecated.rb +79 -0
  28. data/lib/omnibus/cli/release.rb +17 -21
  29. data/lib/omnibus/config.rb +38 -13
  30. data/lib/omnibus/exceptions.rb +70 -18
  31. data/lib/omnibus/fetcher.rb +18 -11
  32. data/lib/omnibus/fetchers/git_fetcher.rb +48 -53
  33. data/lib/omnibus/fetchers/net_fetcher.rb +29 -27
  34. data/lib/omnibus/fetchers/path_fetcher.rb +9 -12
  35. data/lib/omnibus/fetchers/s3_cache_fetcher.rb +5 -8
  36. data/lib/omnibus/generator.rb +131 -0
  37. data/lib/omnibus/{templates → generator_files}/.kitchen.local.yml.erb +0 -0
  38. data/lib/omnibus/{templates → generator_files}/.kitchen.yml.erb +0 -0
  39. data/lib/omnibus/{templates → generator_files}/Berksfile.erb +0 -0
  40. data/lib/omnibus/{templates → generator_files}/Gemfile.erb +2 -2
  41. data/lib/omnibus/{templates → generator_files}/README.md.erb +6 -7
  42. data/lib/omnibus/{templates → generator_files}/Vagrantfile.erb +0 -0
  43. data/lib/omnibus/{templates → generator_files}/gitignore.erb +0 -0
  44. data/lib/omnibus/{templates → generator_files}/mac_dmg/background.png +0 -0
  45. data/lib/omnibus/{templates → generator_files}/mac_dmg/icon.png +0 -0
  46. data/lib/omnibus/{templates → generator_files}/mac_pkg/background.png +0 -0
  47. data/lib/omnibus/{templates → generator_files}/mac_pkg/license.html.erb +0 -0
  48. data/lib/omnibus/{templates → generator_files}/mac_pkg/welcome.html.erb +0 -0
  49. data/lib/omnibus/{templates → generator_files}/omnibus.rb.example.erb +0 -0
  50. data/lib/omnibus/{templates → generator_files}/package_scripts/makeselfinst.erb +0 -0
  51. data/lib/omnibus/{templates → generator_files}/package_scripts/postinst.erb +0 -0
  52. data/lib/omnibus/{templates → generator_files}/package_scripts/postrm.erb +0 -0
  53. data/lib/omnibus/{templates → generator_files}/package_scripts/preinst.erb +0 -0
  54. data/lib/omnibus/{templates → generator_files}/package_scripts/prerm.erb +0 -0
  55. data/lib/omnibus/{templates → generator_files}/project.rb.erb +0 -1
  56. data/lib/omnibus/{templates → generator_files}/software/c-example.rb.erb +0 -0
  57. data/lib/omnibus/{templates → generator_files}/software/erlang-example.rb.erb +0 -0
  58. data/lib/omnibus/{templates → generator_files}/software/ruby-example.rb.erb +0 -0
  59. data/lib/omnibus/generator_files/windows_msi/assets/LICENSE.rtf +8 -0
  60. data/lib/omnibus/generator_files/windows_msi/assets/banner_background.bmp +0 -0
  61. data/lib/omnibus/generator_files/windows_msi/assets/dialog_background.bmp +0 -0
  62. data/lib/omnibus/generator_files/windows_msi/assets/project.ico +0 -0
  63. data/lib/omnibus/generator_files/windows_msi/assets/project_16x16.ico +0 -0
  64. data/lib/omnibus/generator_files/windows_msi/assets/project_32x32.ico +0 -0
  65. data/lib/omnibus/generator_files/windows_msi/localization-en-us.wxl.erb +20 -0
  66. data/lib/omnibus/generator_files/windows_msi/parameters.wxi.erb +9 -0
  67. data/lib/omnibus/generator_files/windows_msi/source.wxs.erb +74 -0
  68. data/lib/omnibus/health_check.rb +80 -40
  69. data/lib/omnibus/install_path_cache.rb +11 -12
  70. data/lib/omnibus/library.rb +30 -3
  71. data/lib/omnibus/logger.rb +47 -0
  72. data/lib/omnibus/logging.rb +60 -0
  73. data/lib/omnibus/null_builder.rb +23 -0
  74. data/lib/omnibus/ohai.rb +70 -0
  75. data/lib/omnibus/overrides.rb +69 -48
  76. data/lib/omnibus/package_release.rb +7 -14
  77. data/lib/omnibus/packagers/base.rb +66 -13
  78. data/lib/omnibus/packagers/mac_dmg.rb +23 -3
  79. data/lib/omnibus/packagers/mac_pkg.rb +20 -10
  80. data/lib/omnibus/packagers/windows_msi.rb +109 -0
  81. data/lib/omnibus/project.rb +136 -79
  82. data/lib/omnibus/reports.rb +1 -2
  83. data/lib/omnibus/{s3_cacher.rb → s3_cache.rb} +15 -37
  84. data/lib/omnibus/software.rb +77 -27
  85. data/lib/omnibus/software_s3_urls.rb +50 -0
  86. data/lib/omnibus/sugar.rb +1 -3
  87. data/lib/omnibus/util.rb +45 -18
  88. data/lib/omnibus/version.rb +2 -3
  89. data/omnibus.gemspec +5 -3
  90. data/spec/data/complicated/config/patches/bzip2/makefile_take_env_vars.patch +15 -0
  91. data/spec/data/complicated/config/patches/couchdb/patch_for_couchjs_stack.patch +19 -0
  92. data/spec/data/complicated/config/patches/gd/gd-2.0.33-configure-libpng.patch +100 -0
  93. data/spec/data/complicated/config/patches/keepalived/keepalived-1.2.9_opscode_centos_5.patch +15 -0
  94. data/spec/data/complicated/config/patches/libedit/freebsd-vi-fix.patch +24 -0
  95. data/spec/data/complicated/config/patches/libiconv/libiconv-1.14_srclib_stdio.in.h-remove-gets-declarations.patch +29 -0
  96. data/spec/data/complicated/config/patches/libwrap/tcp_wrappers-7.6-makefile-dest-fix.patch +35 -0
  97. data/spec/data/complicated/config/patches/libwrap/tcp_wrappers-7.6-malloc-fix.patch +13 -0
  98. data/spec/data/complicated/config/patches/libwrap/tcp_wrappers-7.6-shared_lib_plus_plus-1.patch +1035 -0
  99. data/spec/data/complicated/config/patches/logrotate/logrotate_basedir_override.patch +12 -0
  100. data/spec/data/complicated/config/patches/ncurses/ncurses-5.9-solaris-xopen_source_extended-detection.patch +11 -0
  101. data/spec/data/complicated/config/patches/ncurses/ncurses-clang.patch +42 -0
  102. data/spec/data/complicated/config/patches/ncurses/patch-aa +23 -0
  103. data/spec/data/complicated/config/patches/ncurses/patch-ab +44 -0
  104. data/spec/data/complicated/config/patches/ncurses/patch-ac +40 -0
  105. data/spec/data/complicated/config/patches/ncurses/patch-ad +12 -0
  106. data/spec/data/complicated/config/patches/ncurses/patch-aix-configure +23 -0
  107. data/spec/data/complicated/config/patches/ncurses/patch-cxx_cursesf.h +22 -0
  108. data/spec/data/complicated/config/patches/ncurses/patch-cxx_cursesm.h +22 -0
  109. data/spec/data/complicated/config/patches/nrpe/fix_for_runit.patch +64 -0
  110. data/spec/data/complicated/config/patches/openssl/openssl-1.0.1f-do-not-build-docs.patch +101 -0
  111. data/spec/data/complicated/config/patches/postgresql/postgresql-9.1.2-configure-ncurses-fix.patch +12 -0
  112. data/spec/data/complicated/config/patches/ruby/patch-configure +103 -0
  113. data/spec/data/complicated/config/patches/ruby/ruby-aix-configure.patch +10 -0
  114. data/spec/data/complicated/config/patches/ruby/ruby-openssl-1.0.1c.patch +42 -0
  115. data/spec/data/complicated/config/patches/ruby/ruby_aix_1_9_3_448_ssl_EAGAIN.patch +57 -0
  116. data/spec/data/complicated/config/patches/ruby/rvm-cflags.patch +27 -0
  117. data/spec/data/complicated/config/projects/angrychef.rb +32 -0
  118. data/spec/data/complicated/config/projects/chef-windows.rb +32 -0
  119. data/spec/data/complicated/config/projects/chef.rb +32 -0
  120. data/spec/data/complicated/config/projects/chefdk-windows.rb +41 -0
  121. data/spec/data/complicated/config/projects/chefdk.rb +44 -0
  122. data/spec/data/complicated/config/software/appbundler.rb +25 -0
  123. data/spec/data/complicated/config/software/autoconf.rb +35 -0
  124. data/spec/data/complicated/config/software/automake.rb +39 -0
  125. data/spec/data/complicated/config/software/berkshelf.rb +44 -0
  126. data/{lib/omnibus/fetchers.rb → spec/data/complicated/config/software/bundler.rb} +8 -5
  127. data/spec/data/complicated/config/software/bzip2.rb +46 -0
  128. data/spec/data/complicated/config/software/cacerts.rb +44 -0
  129. data/spec/data/complicated/config/software/chef-client-msi.rb +88 -0
  130. data/spec/data/complicated/config/software/chef-gem.rb +26 -0
  131. data/spec/data/complicated/config/software/chef-vault.rb +43 -0
  132. data/spec/data/complicated/config/software/chef-windows.rb +158 -0
  133. data/spec/data/complicated/config/software/chef.rb +170 -0
  134. data/spec/data/complicated/config/software/chefdk.rb +103 -0
  135. data/spec/data/complicated/config/software/couchdb.rb +53 -0
  136. data/spec/data/complicated/config/software/curl.rb +48 -0
  137. data/spec/data/complicated/config/software/erlang.rb +65 -0
  138. data/spec/data/complicated/config/software/expat.rb +21 -0
  139. data/spec/data/complicated/config/software/fcgi.rb +56 -0
  140. data/spec/data/complicated/config/software/fcgiwrap.rb +41 -0
  141. data/spec/data/complicated/config/software/gd.rb +56 -0
  142. data/spec/data/complicated/config/software/gdbm.rb +40 -0
  143. data/spec/data/complicated/config/software/gecode.rb +48 -0
  144. data/spec/data/complicated/config/software/git.rb +40 -0
  145. data/spec/data/complicated/config/software/help2man.rb +30 -0
  146. data/spec/data/complicated/config/software/icu.rb +40 -0
  147. data/spec/data/complicated/config/software/jre.rb +48 -0
  148. data/spec/data/complicated/config/software/keepalived.rb +43 -0
  149. data/spec/data/complicated/config/software/libarchive.rb +50 -0
  150. data/spec/data/complicated/config/software/libedit.rb +69 -0
  151. data/spec/data/complicated/config/software/libffi.rb +71 -0
  152. data/spec/data/complicated/config/software/libgcc.rb +39 -0
  153. data/spec/data/complicated/config/software/libiconv.rb +66 -0
  154. data/spec/data/complicated/config/software/libjpeg.rb +39 -0
  155. data/spec/data/complicated/config/software/libpng.rb +38 -0
  156. data/spec/data/complicated/config/software/libtool.rb +52 -0
  157. data/spec/data/complicated/config/software/libwrap.rb +50 -0
  158. data/spec/data/complicated/config/software/libxml2.rb +51 -0
  159. data/spec/data/complicated/config/software/libxslt.rb +52 -0
  160. data/spec/data/complicated/config/software/libyaml-windows.rb +43 -0
  161. data/spec/data/complicated/config/software/libyaml.rb +62 -0
  162. data/spec/data/complicated/config/software/logrotate.rb +41 -0
  163. data/spec/data/complicated/config/software/makedepend.rb +73 -0
  164. data/spec/data/complicated/config/software/mysql2.rb +42 -0
  165. data/spec/data/complicated/config/software/nagios-plugins.rb +53 -0
  166. data/spec/data/complicated/config/software/nagios.rb +66 -0
  167. data/spec/data/complicated/config/software/ncurses.rb +149 -0
  168. data/spec/data/complicated/config/software/nginx.rb +40 -0
  169. data/spec/data/complicated/config/software/nodejs.rb +44 -0
  170. data/spec/data/complicated/config/software/nokogiri.rb +55 -0
  171. data/spec/data/complicated/config/software/nrpe.rb +61 -0
  172. data/spec/data/complicated/config/software/ohai.rb +64 -0
  173. data/spec/data/complicated/config/software/omnibus-ctl.rb +34 -0
  174. data/spec/data/complicated/config/software/openresty.rb +67 -0
  175. data/spec/data/complicated/config/software/openssl.rb +158 -0
  176. data/spec/data/complicated/config/software/pcre.rb +42 -0
  177. data/spec/data/complicated/config/software/perl-extutils-embed.rb +15 -0
  178. data/spec/data/complicated/config/software/perl-extutils-makemaker.rb +15 -0
  179. data/spec/data/complicated/config/software/perl.rb +48 -0
  180. data/spec/data/complicated/config/software/perl_pg_driver.rb +12 -0
  181. data/spec/data/complicated/config/software/php.rb +41 -0
  182. data/spec/data/complicated/config/software/pip.rb +30 -0
  183. data/spec/data/complicated/config/software/pkg-config.rb +66 -0
  184. data/spec/data/complicated/config/software/popt.rb +47 -0
  185. data/spec/data/complicated/config/software/postgresql.rb +51 -0
  186. data/spec/data/complicated/config/software/preparation.rb +30 -0
  187. data/spec/data/complicated/config/software/pygments.rb +25 -0
  188. data/spec/data/complicated/config/software/python.rb +49 -0
  189. data/spec/data/complicated/config/software/rabbitmq.rb +36 -0
  190. data/spec/data/complicated/config/software/rebar.rb +36 -0
  191. data/spec/data/complicated/config/software/redis.rb +33 -0
  192. data/spec/data/complicated/config/software/rsync.rb +48 -0
  193. data/spec/data/complicated/config/software/ruby-windows-devkit.rb +30 -0
  194. data/spec/data/complicated/config/software/ruby-windows.rb +30 -0
  195. data/spec/data/complicated/config/software/ruby.rb +162 -0
  196. data/spec/data/complicated/config/software/rubygems-customization.rb +57 -0
  197. data/spec/data/complicated/config/software/rubygems.rb +37 -0
  198. data/spec/data/complicated/config/software/runit.rb +118 -0
  199. data/spec/data/complicated/config/software/server-jre.rb +46 -0
  200. data/spec/data/complicated/config/software/setuptools.rb +30 -0
  201. data/spec/data/complicated/config/software/spawn-fcgi.rb +40 -0
  202. data/spec/data/complicated/config/software/sphinx.rb +26 -0
  203. data/spec/data/complicated/config/software/spidermonkey.rb +60 -0
  204. data/spec/data/complicated/config/software/sqitch.rb +24 -0
  205. data/spec/data/complicated/config/software/test-kitchen.rb +39 -0
  206. data/spec/data/complicated/config/software/unicorn.rb +27 -0
  207. data/spec/data/complicated/config/software/util-macros.rb +46 -0
  208. data/spec/data/complicated/config/software/version-manifest.rb +32 -0
  209. data/spec/data/complicated/config/software/xproto.rb +46 -0
  210. data/spec/data/complicated/config/software/yajl.rb +30 -0
  211. data/spec/data/complicated/config/software/zlib.rb +67 -0
  212. data/spec/data/projects/chefdk.rb +4 -4
  213. data/spec/data/projects/sample.rb +3 -0
  214. data/spec/data/software/erchef.rb +1 -1
  215. data/spec/fixtures/sample/files/windows_msi/Resources/assets/LICENSE.rtf +8 -0
  216. data/spec/fixtures/sample/files/windows_msi/Resources/assets/banner_background.bmp +0 -0
  217. data/spec/fixtures/sample/files/windows_msi/Resources/assets/dialog_background.bmp +0 -0
  218. data/spec/fixtures/sample/files/windows_msi/Resources/assets/project.ico +0 -0
  219. data/spec/fixtures/sample/files/windows_msi/Resources/assets/project_16x16.ico +0 -0
  220. data/spec/fixtures/sample/files/windows_msi/Resources/assets/project_32x32.ico +0 -0
  221. data/spec/fixtures/sample/files/windows_msi/Resources/localization-en-us.wxl +20 -0
  222. data/spec/fixtures/sample/files/windows_msi/Resources/parameters.wxi.erb +9 -0
  223. data/spec/fixtures/sample/files/windows_msi/Resources/source.wxs +74 -0
  224. data/spec/functional/packagers/mac_spec.rb +3 -20
  225. data/spec/functional/packagers/windows_spec.rb +69 -0
  226. data/spec/spec_helper.rb +79 -1
  227. data/spec/unit/artifact_spec.rb +0 -18
  228. data/spec/unit/build_version_dsl_spec.rb +136 -0
  229. data/spec/unit/build_version_spec.rb +185 -198
  230. data/spec/unit/config_spec.rb +18 -1
  231. data/spec/unit/fetchers/git_fetcher_spec.rb +55 -80
  232. data/spec/unit/fetchers/net_fetcher_spec.rb +11 -21
  233. data/spec/unit/install_path_cache_spec.rb +164 -136
  234. data/spec/unit/library_spec.rb +125 -5
  235. data/spec/unit/omnibus_spec.rb +25 -9
  236. data/spec/unit/overrides_spec.rb +2 -14
  237. data/spec/unit/package_release_spec.rb +0 -18
  238. data/spec/unit/packagers/base_spec.rb +84 -21
  239. data/spec/unit/packagers/mac_pkg_spec.rb +34 -24
  240. data/spec/unit/project_spec.rb +100 -102
  241. data/spec/unit/s3_cacher_spec.rb +0 -18
  242. data/spec/unit/software_spec.rb +152 -6
  243. data/spec/{sugar_spec.rb → unit/sugar_spec.rb} +0 -3
  244. metadata +365 -38
  245. data/lib/omnibus/cli/application.rb +0 -147
  246. data/lib/omnibus/cli/build.rb +0 -64
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6427537f543b5620032efc95fa829432edf0456d
4
- data.tar.gz: d4a4c594566f3eecc07a16e101b8dbe9470b3a3d
3
+ metadata.gz: 6f254e32b62632576547008173adf8f36379a0e5
4
+ data.tar.gz: b70de72741324c2e54d43ec75b96ffac86d87ae1
5
5
  SHA512:
6
- metadata.gz: 2e858eb5ac89e4afbaac538092d8c156880d7b2229a3b5a529abec7a6216d06110bbe6891a3621aee3d7eb7e3e8877f0afdaafaadffce4c85f7defa698c4b0cb
7
- data.tar.gz: e2b5b330bd7fcad489db76806f5855a22b337f7fa467e3ad587d0c98796eae3d7d026300b410771efd838fa0fabca3196e816ae110b0e29c2f82d5e73a20f9c2
6
+ metadata.gz: caafe9673d611c76b973ef63fffc557cc103d28881207b971a31fd7db59e15e3056df5e188b5010a334a1a3d9901ac7ac893803cfd9e9638b6eea69f65fc81a5
7
+ data.tar.gz: e16d7149c5e098e47ee46791590f94fd7b3e510e8bec736aa4d89b0cfbd24fe00fb29a4aa29ede52aef2b99b91c950f38b4314a138fd4e8408b78475427d2391
@@ -1,11 +1,19 @@
1
- ClassAndModuleChildren:
1
+ AllCops:
2
+ Exclude:
3
+ - spec/data/**/*
4
+
5
+ AlignParameters:
2
6
  Enabled: false
3
7
  ClassLength:
4
8
  Enabled: false
9
+ ClassAndModuleChildren:
10
+ Enabled: false
5
11
  CyclomaticComplexity:
6
12
  Max: 20
7
13
  Documentation:
8
14
  Enabled: false
15
+ DoubleNegation:
16
+ Enabled: false
9
17
  GlobalVars:
10
18
  Enabled: false
11
19
  Encoding:
@@ -24,9 +32,17 @@ ParameterLists:
24
32
  Max: 6
25
33
  RaiseArgs:
26
34
  Enabled: false
35
+ RedundantSelf:
36
+ Enabled: false
27
37
  RescueException:
28
38
  Enabled: false
39
+ SignalException:
40
+ EnforcedStyle: only_raise
41
+ SpecialGlobalVars:
42
+ Enabled: false
29
43
  TrailingComma:
30
44
  EnforcedStyleForMultiline: comma
31
45
  TrivialAccessors:
32
46
  Enabled: false
47
+ StringLiterals:
48
+ Enabled: false
@@ -1,7 +1,9 @@
1
1
  rvm:
2
2
  - 1.9.3
3
+ - 2.0.0
4
+ - 2.1
3
5
 
4
- bundler_args: --jobs 7 --without docs
6
+ bundler_args: --jobs 7 --without docs local
5
7
 
6
8
  branches:
7
9
  only:
@@ -11,6 +13,12 @@ script: bundle exec rake travis:ci
11
13
 
12
14
  notifications:
13
15
  hipchat:
16
+ on_change: true
17
+ on_failure: true
18
+ on_success: false
19
+ on_pull_requests: false
14
20
  rooms:
15
- - secure: JdLOITSPHW5xk8eoFOmH1Js5PT6iFgswUG8fIqNq69ie2Qws2K58hPDR6HW2NBEsBb7dW1S5jT6V9RHhm0ykekvEJVa5AjebO3EsZa+Cu/VahFMg4DL+SGYgKlKrZQosd+EgVQQ3C9gj0dApGtKqf2Ej7RNESwCPY8SOduTC6d8= # Build Statuses
16
- - secure: PmOaqp2DFyy79VpCuvSYILblK6tP0eDa9fDG9X2j+wggoosBkmlGfnSxp3A2TXlUyK62mr6/B89dRkL2aDWTJ/gqaZ34Elx2rV5S2A5YJIx9stA2+4iXeSlOF2YMNKGwBVmF/kp/nNoG2FqUkUBrRurWAOXZnwxKIhQ7+kLVb/0= # Release Engineering
21
+ # Build Statuses
22
+ - secure: JdLOITSPHW5xk8eoFOmH1Js5PT6iFgswUG8fIqNq69ie2Qws2K58hPDR6HW2NBEsBb7dW1S5jT6V9RHhm0ykekvEJVa5AjebO3EsZa+Cu/VahFMg4DL+SGYgKlKrZQosd+EgVQQ3C9gj0dApGtKqf2Ej7RNESwCPY8SOduTC6d8=
23
+ # Release Engineering
24
+ - secure: PmOaqp2DFyy79VpCuvSYILblK6tP0eDa9fDG9X2j+wggoosBkmlGfnSxp3A2TXlUyK62mr6/B89dRkL2aDWTJ/gqaZ34Elx2rV5S2A5YJIx9stA2+4iXeSlOF2YMNKGwBVmF/kp/nNoG2FqUkUBrRurWAOXZnwxKIhQ7+kLVb/0=
@@ -1,7 +1,45 @@
1
1
  Omnibus Ruby CHANGELOG
2
2
  ======================
3
3
 
4
- v3.0.0 (TBD)
4
+ v3.1.0 (May 14, 2014)
5
+ -------------------------
6
+ ### New Features
7
+ - `friendly_name` is added to project DSL to be able to configure the name on packagers.
8
+ - `resources_path` is added to project DSL to be able to specify project specific resource files for packagers.
9
+ - Add the ability to "sign" OSX packages
10
+ - Allow packagers to have project-specific resources
11
+ - MSI packager for windows
12
+ - Added helpers for generating platform-specific paths
13
+ - New build_version DSL
14
+ - All new CLI that uses LazyLoading and a much nicer interface (BC-compat)
15
+ - Create a real logger object - Omnibus now supports --log-level
16
+ - Warn when incorrectly using `replaces` in a project
17
+
18
+ ### Bug fixes
19
+ - Fix Windows bugs in the new git caching feature
20
+ - Use the git sha in the git caching so that the software matches "master"
21
+ - Force the detaching of all disks before building an OSX DMG
22
+ - Remove references to now non-existent Vagrantfile
23
+ - Fix an issue where softwares that are both top-level and transitive dependencies were built in the wrong order (see #140 for more information)
24
+ - Use `source` when creating software uris and checksums
25
+ - Fix invalid cache operations by ensuring the bucket exists
26
+ - Add tag output git describe to include lightweight tags
27
+ - Remove explicit instance_eval from line 0
28
+ - Remove libz and libgcc_s from the health check whitelist
29
+
30
+ ### Miscellaneous Changes
31
+ - Add CoreServices to OSX whitelist for healthcheck
32
+ - Bump the version of the generated Gemfile to Berkshelf ~> 3.0
33
+ - Add test coverage for overridding software source
34
+ - Improved test coverage for Omnibus project/software loading
35
+ - Refactor and updated Thor
36
+ - Add cucumber/aruba for testing the CLI
37
+ - Lazy load Ohai and Mixlib::Config default values
38
+ - Consistent deprecation warnings
39
+ - Updated README badges
40
+
41
+
42
+ v3.0.0 (March 27, 2014)
5
43
  ------------
6
44
  ### New Features
7
45
 
data/Gemfile CHANGED
@@ -7,10 +7,6 @@ group :docs do
7
7
  gem 'github-markup', '~> 0.7'
8
8
  end
9
9
 
10
- group :test do
11
- gem 'fauxhai'
12
- end
13
-
14
10
  group :local do
15
11
  gem 'guard'
16
12
  gem 'guard-rspec'
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  ![Omnibus Icon](lib/omnibus/assets/README-logo.png) Omnibus
2
2
  ===========================================================
3
- [![Build Status](https://travis-ci.org/opscode/omnibus-ruby.png?branch=master)](https://travis-ci.org/opscode/omnibus-ruby)
3
+ [![Gem Version](http://img.shields.io/gem/v/omnibus.svg)][gem]
4
+ [![Build Status](http://img.shields.io/travis/opscode/omnibus-ruby.svg)][travis]
5
+
6
+ [gem]: https://rubygems.org/gems/omnibus
7
+ [travis]: http://travis-ci.org/opscode/omnibus-ruby
4
8
 
5
9
  Easily create full-stack installers for your project across a variety of platforms.
6
10
 
@@ -32,17 +36,15 @@ $ gem install omnibus
32
36
  You can now create an Omnibus project in your current directory by using the project generator feature.
33
37
 
34
38
  ```bash
35
- $ omnibus project $MY_PROJECT_NAME
39
+ $ omnibus new $MY_PROJECT_NAME
36
40
  ```
37
41
 
38
- This will generate a complete project skeleton in the directory `omnibus-$MY_PROJECT_NAME`
39
-
40
- This minimal project will actually build.
42
+ This will generate a complete project skeleton in the directory `$MY_PROJECT_NAME`
41
43
 
42
44
  ```bash
43
- $ cd omnibus-$MY_PROJECT_NAME
45
+ $ cd $MY_PROJECT_NAME
44
46
  $ bundle install --binstubs
45
- $ bin/omnibus build project $MY_PROJECT_NAME
47
+ $ bin/omnibus build $MY_PROJECT_NAME
46
48
  ```
47
49
 
48
50
  More details can be found in the generated project README file.
@@ -50,7 +52,7 @@ More details can be found in the generated project README file.
50
52
 
51
53
  More documentation
52
54
  ------------------
53
- If you are creating OSX packages, please see the [OSX-specifc documentation](docs/Building on OSX.md).
55
+ If you are creating OSX packages, please see the [OSX-specific documentation](docs/Building on OSX.md).
54
56
 
55
57
 
56
58
  Configuration DSL
data/Rakefile CHANGED
@@ -1,12 +1,23 @@
1
- require 'bundler/setup'
2
1
  require 'bundler/gem_tasks'
3
2
 
4
3
  require 'rspec/core/rake_task'
5
- RSpec::Core::RakeTask.new(:unit) do |t|
6
- t.pattern = 'spec/unit/**/*_spec.rb'
4
+ [:unit, :functional].each do |type|
5
+ RSpec::Core::RakeTask.new(type) do |t|
6
+ t.pattern = "spec/#{type}/**/*_spec.rb"
7
+ t.rspec_opts = [].tap do |a|
8
+ a.push('--color')
9
+ a.push('--format progress')
10
+ end.join(' ')
11
+ end
7
12
  end
8
- RSpec::Core::RakeTask.new(:functional) do |t|
9
- t.pattern = 'spec/functional/**/*_spec.rb'
13
+
14
+ require 'cucumber/rake/task'
15
+ Cucumber::Rake::Task.new(:acceptance) do |t|
16
+ t.cucumber_opts = [].tap do |a|
17
+ a.push('--color')
18
+ a.push('--format progress')
19
+ a.push('--strict')
20
+ end.join(' ')
10
21
  end
11
22
 
12
23
  require 'rubocop/rake_task'
@@ -15,7 +26,7 @@ Rubocop::RakeTask.new(:style)
15
26
 
16
27
  namespace :travis do
17
28
  desc 'Run tests on Travis'
18
- task ci: ['unit', 'style']
29
+ task ci: %w(unit acceptance style)
19
30
  end
20
31
 
21
- task default: ['travis:ci']
32
+ task default: %w(travis:ci)
@@ -4,8 +4,8 @@
4
4
  # https://twitter.com/mitchellh/status/283014103189053442
5
5
  Signal.trap('INT') { exit 1 }
6
6
 
7
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
7
+ $:.push File.expand_path('../../lib', __FILE__)
8
+ $stdout.sync = true
8
9
 
9
10
  require 'omnibus/cli'
10
-
11
- Omnibus::CLI::Application.start
11
+ Omnibus::CLI::Runner.new(ARGV.dup).execute!
@@ -0,0 +1,98 @@
1
+ Building Omnibus Packages for Windows
2
+ =====================================
3
+ This document describes the requirements and configurables for building
4
+ omnibus packages on Windows. Omnibus builds MSI packages on Windows systems.
5
+
6
+ Requirements
7
+ ------------
8
+ In order to build an omnibus package on Windows you need:
9
+
10
+ * Open Source Windows Installer Toolset: [WIX](http://wixtoolset.org/)
11
+ * In order to use built in semantic versioning:
12
+ [Git for Windows](http://msysgit.github.io/)
13
+
14
+ MSI Source Files
15
+ ----------------
16
+ In order to create an MSI package, we will need to have some source files that
17
+ can be used by WIX toolset to be able to build the MSI. Omnibus creates some
18
+ skeletal MSI source files for you to help you get started.
19
+
20
+ When you execute `omnibus project <<project_name>>` these files will be created
21
+ to be able to build MSIs:
22
+
23
+ ```
24
+ C:\> omnibus project demo
25
+ ...
26
+ create omnibus-demo/files/windows_msi/Resources/localization-en-us.wxl.erb
27
+ create omnibus-demo/files/windows_msi/Resources/parameters.wxi.erb
28
+ create omnibus-demo/files/windows_msi/Resources/source.wxs
29
+ create omnibus-demo/files/windows_msi/Resources/assets/LICENSE.rtf
30
+ create omnibus-demo/files/windows_msi/Resources/assets/banner_background.bmp
31
+ create omnibus-demo/files/windows_msi/Resources/assets/dialog_background.bmp
32
+ create omnibus-demo/files/windows_msi/Resources/assets/project.ico
33
+ create omnibus-demo/files/windows_msi/Resources/assets/project_16x16.ico
34
+ create omnibus-demo/files/windows_msi/Resources/assets/project_32x32.ico
35
+ ...
36
+ ```
37
+ - `localization-en-us.wxl.erb` => File that contains the strings that are being
38
+ used in the MSI user interface.
39
+ - `parameters.wxi.erb` => File that contains the dynamic information needed for
40
+ the MSI e.g. version numbers.
41
+ - `assets/LICENSE.rtf` => License text in Rich Text Format that is displayed
42
+ during MSI installation.
43
+ - `assets/*.bmp` => Bitmaps that are displayed during installation.
44
+ - `assets/*.ico` => Icons that are used in the system for your application.
45
+
46
+ Omnibus requires `wxl`, `wxs` and `wxi` files to be present on the system in
47
+ order to build an MSI. You can also create these files as erb templates and
48
+ omnibus will render them before starting building the MSI.
49
+
50
+ These files are XML files that are created based on Windows WIX Schema. By
51
+ default they will package the files under configured `install_dir` and present
52
+ a UI that lets users to choose an installation location for the packaged files.
53
+ You can modify these XML files based on the documentation
54
+ [here](http://wixtoolset.org/documentation/manual/v3/xsd/).
55
+
56
+ Configurables
57
+ -------------
58
+ You can use `msi_parameters` DSL option in your Omnibus project files to pass
59
+ dynamic information to your MSI source templates. You can specify a hash or a
60
+ block for this option. When block is specified, it is executed at the time of
61
+ rendering and it is expected to return a hash. Here is an example:
62
+
63
+ ```ruby
64
+ # config/projects/my_project.rb
65
+ name 'my_project'
66
+
67
+ ...
68
+
69
+ msi_parameters do
70
+ # Set the upgrade code dynamically
71
+ params = { }
72
+ params[:upgrade_code] = determine_upgrade_code()
73
+ params
74
+ end
75
+ ```
76
+
77
+ ```xml
78
+ <!-- files/windows_msi/Resources/parameters.wxi.erb -->
79
+
80
+ <?xml version="1.0" encoding="utf-8"?>
81
+ <Include>
82
+ <!--
83
+ Versioning. These have to be changed for upgrades.
84
+ -->
85
+ <?define VersionNumber="<%= @msi_version %>" ?>
86
+ <?define DisplayVersionNumber="<%= @msi_display_version %>" ?>
87
+
88
+ <?define UpgradeCode="<%= msi_parameters[:upgrade_code] %>" ?>
89
+ </Include>
90
+ ```
91
+
92
+ MSI Creation
93
+ ------------
94
+ To create an MSI you would normally run:
95
+
96
+ ```
97
+ C:\> omnibus build project <name>
98
+ ```
@@ -0,0 +1,46 @@
1
+ Feature: Backwards-compatible deprecated commands
2
+ Background:
3
+ * I have an omnibus project named "hamlet"
4
+
5
+ Scenario: When "build project" is given
6
+ * I run `omnibus build project hamlet`
7
+ * the output should contain:
8
+ """
9
+ The interface for building a project has changed. Please use 'omnibus build hamlet' instead.
10
+ """
11
+
12
+ Scenario: When "build software" is given
13
+ * I run `omnibus build software preparation`
14
+ * the output should contain:
15
+ """
16
+ Building individual software definitions is no longer supported!
17
+ """
18
+ * the exit status should not be 0
19
+
20
+ Scenario: When --timestamp is given
21
+ * I run `omnibus build hamlet --timestamp`
22
+ * the output should contain:
23
+ """
24
+ The '--timestamp' option has been deprecated! Please use '--override append_timestamp:true' instead.
25
+ """
26
+
27
+ Scenario: When -t is given
28
+ * I run `omnibus build hamlet -t`
29
+ * the output should contain:
30
+ """
31
+ The '--timestamp' option has been deprecated! Please use '--override append_timestamp:true' instead.
32
+ """
33
+
34
+ Scenario: When --no-timestamp is given
35
+ * I run `omnibus build hamlet --no-timestamp`
36
+ * the output should contain:
37
+ """
38
+ The '--no-timestamp' option has been deprecated! Please use '--override append_timestamp:false' instead.
39
+ """
40
+
41
+ Scenario: When "project PROJECT" is given
42
+ * I run `omnibus project hamlet`
43
+ * the output should contain:
44
+ """
45
+ The project generator has been renamed to 'omnibus new'. Please use 'omnibus new' in the future.
46
+ """
@@ -0,0 +1,9 @@
1
+ Feature: omnibus build
2
+ Scenario: When the project does not exist
3
+ * I have an omnibus project named "hamlet"
4
+ * I run `omnibus build bacon`
5
+ * the output should contain:
6
+ """
7
+ I could not find an Omnibus project named 'bacon'! Valid projects are:
8
+ * hamlet
9
+ """
@@ -0,0 +1,21 @@
1
+ Feature: omnibus clean
2
+ Scenario: When a bad name is given
3
+ * I run `omnibus clean hamlet`
4
+ * the output should contain:
5
+ """
6
+ I could not find an Omnibus project named 'hamlet'!
7
+ """
8
+ * the exit status should not be 0
9
+
10
+ Scenario: When the --purge option is given
11
+ * I have an omnibus project named "hamlet"
12
+ * I successfully run `omnibus clean hamlet --purge`
13
+ * the output should contain "remove local/build/hamlet"
14
+
15
+ Scenario: When no options are given
16
+ * I have an omnibus project named "hamlet"
17
+ * I successfully run `omnibus clean hamlet`
18
+ * the output should not contain:
19
+ """
20
+ remove local/build/hamlet
21
+ """
@@ -0,0 +1,16 @@
1
+ Feature: omnibus list
2
+ Scenario: When there are Omnibus projects
3
+ * I have an omnibus project named "hamlet"
4
+ * I successfully run `omnibus list`
5
+ * the output should contain:
6
+ """
7
+ Omnibus projects:
8
+ * hamlet (1.0.0)
9
+ """
10
+
11
+ Scenario: When there are no Omnibus projects
12
+ * I successfully run `omnibus list`
13
+ * the output should contain:
14
+ """
15
+ There are no Omnibus projects!
16
+ """
@@ -0,0 +1,8 @@
1
+ Feature: omnibus new
2
+ Scenario: When the --path option is given
3
+ * I successfully run `omnibus new hamlet --path nested/path`
4
+ * a file named "nested/path/omnibus-hamlet/config/projects/hamlet.rb" should exist
5
+
6
+ Scenario: When no options are given
7
+ * I successfully run `omnibus new hamlet`
8
+ * a file named "omnibus-hamlet/config/projects/hamlet.rb" should exist
@@ -0,0 +1,12 @@
1
+ Feature: omnibus version
2
+ Scenario: When the -v flag is specified
3
+ * I successfully run `omnibus -v`
4
+ * the output should match /^Omnibus v(.+)$/
5
+
6
+ Scenario: When the --version flag is specified
7
+ * I successfully run `omnibus --version`
8
+ * the output should match /^Omnibus v(.+)$/
9
+
10
+ Scenario: When the version command is given
11
+ * I successfully run `omnibus version`
12
+ * the output should match /^Omnibus v(.+)$/