omnibus 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
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(.+)$/