kameleon-builder 2.1.3 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. data/.editorconfig +0 -0
  2. data/.env +2 -6
  3. data/CHANGELOG.rst +74 -1
  4. data/Gemfile +20 -2
  5. data/README.rst +35 -25
  6. data/Thorfile +29 -0
  7. data/contrib/kameleon_bashrc.sh +61 -0
  8. data/contrib/polipo_env.sh +3 -2
  9. data/kameleon-builder.gemspec +3 -10
  10. data/lib/kameleon.rb +10 -14
  11. data/lib/kameleon/cli.rb +92 -105
  12. data/lib/kameleon/context.rb +76 -43
  13. data/lib/kameleon/engine.rb +147 -103
  14. data/lib/kameleon/environment.rb +10 -5
  15. data/lib/kameleon/error.rb +1 -32
  16. data/lib/kameleon/persistent_cache.rb +127 -29
  17. data/lib/kameleon/recipe.rb +63 -106
  18. data/lib/kameleon/shell.rb +32 -17
  19. data/lib/kameleon/step.rb +18 -1
  20. data/lib/kameleon/ui.rb +141 -0
  21. data/lib/kameleon/utils.rb +9 -0
  22. data/templates/{debian7-chroot.yaml → chroot/debian7-amd64.yaml} +29 -21
  23. data/templates/{docker-debian7.yaml → docker/debian7.yaml} +5 -5
  24. data/templates/extend.erb +2 -2
  25. data/templates/{debian7-g5k.yaml → grid5000/debian7.yaml} +1 -1
  26. data/templates/{archlinux-desktop.yaml → qemu/archlinux-desktop-i686.yaml} +2 -2
  27. data/templates/qemu/archlinux-desktop-x86_64.yaml +25 -0
  28. data/templates/qemu/archlinux-i686.yaml +25 -0
  29. data/templates/{archlinux.yaml → qemu/archlinux-x86_64.yaml} +37 -34
  30. data/templates/qemu/centos6.5-x86_64.yaml +113 -0
  31. data/templates/qemu/centos7-x86_64.yaml +119 -0
  32. data/templates/{debian7.yaml → qemu/debian7-amd64.yaml} +45 -40
  33. data/templates/{debian7-desktop.yaml → qemu/debian7-desktop-amd64.yaml} +2 -3
  34. data/templates/{debian7-kameleon.yaml → qemu/debian7-kameleon-amd64.yaml} +3 -6
  35. data/templates/{debian7-oar-dev.yaml → qemu/debian7-oar-amd64.yaml} +2 -2
  36. data/templates/qemu/debian8-amd64.yaml +25 -0
  37. data/templates/{fedora20-desktop.yaml → qemu/fedora20-desktop-x86_64.yaml} +2 -2
  38. data/templates/qemu/fedora20-x86_64.yaml +116 -0
  39. data/templates/{ubuntu-12.04.yaml → qemu/ubuntu-12.04-amd64.yaml} +42 -38
  40. data/templates/{ubuntu-12.04-desktop.yaml → qemu/ubuntu-12.04-desktop-amd64.yaml} +3 -3
  41. data/templates/{ubuntu-14.04.yaml → qemu/ubuntu-14.04-amd64.yaml} +2 -2
  42. data/templates/{ubuntu-14.04-desktop.yaml → qemu/ubuntu-14.04-desktop-amd64.yaml} +2 -2
  43. data/templates/steps/aliases/defaults.yaml +19 -13
  44. data/templates/steps/bootstrap/archlinux/arch_bootstrap.yaml +11 -19
  45. data/templates/steps/bootstrap/debian/debootstrap.yaml +10 -11
  46. data/templates/steps/bootstrap/debian/debootstrap_arm.yaml +11 -19
  47. data/templates/steps/bootstrap/fedora/init_pxeboot.yaml +13 -0
  48. data/templates/steps/bootstrap/fedora/yum_bootstrap.yaml +45 -0
  49. data/templates/steps/bootstrap/initialize_disk.yaml +16 -0
  50. data/templates/steps/bootstrap/initialize_disk_chroot.yaml +10 -14
  51. data/templates/steps/bootstrap/install_requirements.yaml +3 -0
  52. data/templates/steps/bootstrap/prepare_docker.yaml +7 -7
  53. data/templates/steps/bootstrap/prepare_qemu.yaml +20 -26
  54. data/templates/steps/bootstrap/prepare_virtualbox.yaml +63 -0
  55. data/templates/steps/bootstrap/start_chroot.yaml +2 -13
  56. data/templates/steps/bootstrap/start_qemu.yaml +50 -53
  57. data/templates/steps/bootstrap/start_virtualbox.yaml +37 -0
  58. data/templates/steps/bootstrap/switch_context_qemu.yaml +64 -0
  59. data/templates/steps/bootstrap/switch_context_virtualbox.yaml +66 -0
  60. data/templates/steps/breakpoint.yaml +2 -1
  61. data/templates/steps/checkpoints/docker.yaml +14 -11
  62. data/templates/steps/checkpoints/qcow2.yaml +26 -24
  63. data/templates/steps/checkpoints/qemu.yaml +30 -36
  64. data/templates/steps/checkpoints/virtualbox.yaml +21 -0
  65. data/templates/steps/disable_checkpoint.yaml +3 -0
  66. data/templates/steps/enable_checkpoint.yaml +5 -0
  67. data/templates/steps/export/qemu_save_appliance.yaml +52 -0
  68. data/templates/steps/export/virtualbox_save_appliance.yaml +67 -0
  69. data/templates/steps/setup/archlinux/install_bootloader.yaml +23 -0
  70. data/templates/steps/setup/centos/6.5/configure_network.yaml +31 -0
  71. data/templates/steps/setup/centos/6.5/configure_system.yaml +27 -0
  72. data/templates/steps/setup/debian/configure_apt.yaml +1 -6
  73. data/templates/steps/setup/debian/configure_kernel.yaml +0 -5
  74. data/templates/steps/setup/debian/install_bootloader.yaml +36 -0
  75. data/templates/steps/setup/debian/setup_vagrant_box.yaml +48 -18
  76. data/templates/steps/setup/debian/upgrade_system.yaml +2 -7
  77. data/templates/steps/setup/fedora/configure_kernel.yaml +9 -0
  78. data/templates/steps/setup/fedora/configure_keyboard.yaml +12 -0
  79. data/templates/steps/setup/fedora/configure_network.yaml +9 -1
  80. data/templates/steps/setup/fedora/configure_system.yaml +20 -45
  81. data/templates/steps/setup/fedora/install_bootloader.yaml +58 -0
  82. data/templates/steps/setup/fedora/minimal_install.yaml +3 -0
  83. data/templates/steps/setup/fedora/update_system.yaml +13 -5
  84. data/templates/steps/setup/ubuntu/configure_apt.yaml +4 -9
  85. data/templates/vagrant/debian7-amd64.yaml +130 -0
  86. data/templates/virtualbox/archlinux-desktop-i686.yaml +25 -0
  87. data/templates/virtualbox/archlinux-desktop-x86_64.yaml +28 -0
  88. data/templates/virtualbox/archlinux-i686.yaml +28 -0
  89. data/templates/virtualbox/archlinux-x86_64.yaml +109 -0
  90. data/templates/virtualbox/centos6.5-i386.yaml +39 -0
  91. data/templates/virtualbox/centos6.5-x86_64.yaml +111 -0
  92. data/templates/virtualbox/centos7-x86_64.yaml +116 -0
  93. data/{docs/source/debian7.yaml → templates/virtualbox/debian7-amd64.yaml} +53 -52
  94. data/templates/virtualbox/debian7-desktop-amd64.yaml +25 -0
  95. data/templates/{fedora-rawhide.yaml → virtualbox/debian7-i386.yaml} +12 -11
  96. data/templates/virtualbox/debian7-kameleon-amd64.yaml +38 -0
  97. data/templates/virtualbox/debian7-oar-amd64.yaml +51 -0
  98. data/templates/{debian-testing.yaml → virtualbox/debian8-amd64.yaml} +3 -3
  99. data/templates/virtualbox/debian8-i386.yaml +31 -0
  100. data/templates/virtualbox/fedora20-x86_64.yaml +116 -0
  101. data/templates/virtualbox/ubuntu-12.04-amd64.yaml +128 -0
  102. data/templates/virtualbox/ubuntu-12.04-desktop-amd64.yaml +25 -0
  103. data/templates/virtualbox/ubuntu-14.04-amd64.yaml +25 -0
  104. data/templates/virtualbox/ubuntu-14.04-desktop-amd64.yaml +27 -0
  105. data/version.txt +1 -1
  106. metadata +67 -212
  107. data/Rakefile +0 -24
  108. data/docs/.gitignore +0 -1
  109. data/docs/Makefile +0 -181
  110. data/docs/README.md +0 -17
  111. data/docs/make.bat +0 -242
  112. data/docs/source/_static/.gitignore +0 -0
  113. data/docs/source/_static/centos.png +0 -0
  114. data/docs/source/_static/debian.png +0 -0
  115. data/docs/source/_static/kameleon-logo.png +0 -0
  116. data/docs/source/_static/kameleon-logo.xcf +0 -0
  117. data/docs/source/_static/kameleon-long.png +0 -0
  118. data/docs/source/_static/ubuntu.png +0 -0
  119. data/docs/source/_themes/sphinx_rtd_theme/__init__.py +0 -17
  120. data/docs/source/_themes/sphinx_rtd_theme/breadcrumbs.html +0 -19
  121. data/docs/source/_themes/sphinx_rtd_theme/footer.html +0 -32
  122. data/docs/source/_themes/sphinx_rtd_theme/layout.html +0 -160
  123. data/docs/source/_themes/sphinx_rtd_theme/layout_old.html +0 -205
  124. data/docs/source/_themes/sphinx_rtd_theme/search.html +0 -50
  125. data/docs/source/_themes/sphinx_rtd_theme/searchbox.html +0 -7
  126. data/docs/source/_themes/sphinx_rtd_theme/static/css/badge_only.css +0 -1
  127. data/docs/source/_themes/sphinx_rtd_theme/static/css/theme.css +0 -4
  128. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf +0 -0
  129. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot +0 -0
  130. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg +0 -414
  131. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf +0 -0
  132. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff +0 -0
  133. data/docs/source/_themes/sphinx_rtd_theme/static/js/theme.js +0 -47
  134. data/docs/source/_themes/sphinx_rtd_theme/theme.conf +0 -8
  135. data/docs/source/_themes/sphinx_rtd_theme/versions.html +0 -37
  136. data/docs/source/aliases.rst +0 -31
  137. data/docs/source/atlas_debian_g5k.yaml +0 -36
  138. data/docs/source/checkpoint.rst +0 -30
  139. data/docs/source/commands.rst +0 -63
  140. data/docs/source/conf.py +0 -262
  141. data/docs/source/context.rst +0 -47
  142. data/docs/source/debian_customized.yaml +0 -28
  143. data/docs/source/debian_customized_g5k.yaml +0 -21
  144. data/docs/source/faq.rst +0 -43
  145. data/docs/source/getting_started.rst +0 -260
  146. data/docs/source/grid5000_tutorial.rst +0 -525
  147. data/docs/source/index.rst +0 -53
  148. data/docs/source/install_atlas.yaml +0 -25
  149. data/docs/source/install_hpl.yaml +0 -24
  150. data/docs/source/installation.rst +0 -51
  151. data/docs/source/persistent_cache.rst +0 -34
  152. data/docs/source/recipe.rst +0 -177
  153. data/docs/source/tau_install.yaml +0 -19
  154. data/docs/source/tau_install_g5k.yaml +0 -25
  155. data/docs/source/use_cases.rst +0 -93
  156. data/docs/source/workspace.rst +0 -13
  157. data/lib/kameleon/logger.rb +0 -56
  158. data/omnibus/.gitignore +0 -11
  159. data/omnibus/.kitchen.yml +0 -25
  160. data/omnibus/Berksfile +0 -9
  161. data/omnibus/Berksfile.lock +0 -25
  162. data/omnibus/Gemfile +0 -12
  163. data/omnibus/README.md +0 -94
  164. data/omnibus/config/projects/kameleon.rb +0 -23
  165. data/omnibus/config/software/kameleon.rb +0 -24
  166. data/omnibus/config/software/polipo.rb +0 -30
  167. data/omnibus/config/software/ruby.rb +0 -158
  168. data/omnibus/files/mac_dmg/Resources/background.png +0 -0
  169. data/omnibus/files/mac_dmg/Resources/icon.png +0 -0
  170. data/omnibus/files/mac_pkg/Resources/background.png +0 -0
  171. data/omnibus/files/mac_pkg/Resources/license.html +0 -1
  172. data/omnibus/files/mac_pkg/Resources/welcome.html +0 -9
  173. data/omnibus/omnibus.rb +0 -27
  174. data/omnibus/package-scripts/kameleon/makeselfinst +0 -27
  175. data/omnibus/package-scripts/kameleon/postrm +0 -9
  176. data/templates/fedora20.yaml +0 -105
  177. data/templates/steps/bootstrap/archlinux/install_bootloader.yaml +0 -46
  178. data/templates/steps/bootstrap/archlinux/populate_disk.yaml +0 -39
  179. data/templates/steps/bootstrap/fedora/liveos_bootstrap.yaml +0 -123
  180. data/templates/steps/bootstrap/initialize_disk_qemu.yaml +0 -72
  181. data/templates/steps/bootstrap/install_bootloader.yaml +0 -42
  182. data/templates/steps/bootstrap/ubuntu/debootstrap.yaml +0 -27
  183. data/templates/steps/export/save_appliance.yaml +0 -58
  184. data/templates/steps/export/save_vagrant_box.yaml +0 -29
  185. data/templates/vagrant-debian7.yaml +0 -31
@@ -1,13 +0,0 @@
1
- .. _`workspace`:
2
-
3
- ---------
4
- Workspace
5
- ---------
6
-
7
- The workspaces are the folders containing your Kameleon recipes and builds.
8
- When you use ``kameleon new`` the current directory is the workspace. A
9
- workspace may contains several recipes.
10
-
11
- *Be careful*: All the *steps are shared between recipes within a workspace*. So
12
- if you do NOT want to share steps between different recipes you MUST use
13
- different workspace.
@@ -1,56 +0,0 @@
1
- require 'log4r-color'
2
-
3
- module Kameleon
4
- # Custom Log4r formatter for the console
5
- class ConsoleFormatter < Log4r::BasicFormatter
6
- @@basicformat = "%*s"
7
-
8
- def initialize(hash={})
9
- super(hash)
10
- @max_level_length = 11
11
- @on_progress = false
12
- end
13
-
14
- def format(event)
15
- buff = sprintf(@@basicformat, @max_level_length, event.name)
16
- buff << (event.tracer.nil? ? "" : "(#{event.tracer[0]})") + ": "
17
- unless Log4r::LNAMES[event.level].include? "PROGRESS"
18
- @on_progress = false
19
- buff << format_object(event.data) + "\n"
20
- else
21
- if @on_progress
22
- event.data
23
- else
24
- @on_progress = true
25
- buff << format_object(event.data)
26
- end
27
- end
28
- end
29
- end
30
-
31
- # Custom Log4r formatter for files
32
- class FileFormatter < Log4r::BasicFormatter
33
- @@basicformat = "%*s"
34
- def initialize(hash={})
35
- super(hash)
36
- @max_level_length = 11
37
- end
38
-
39
- def format(logevent)
40
- if Log4r::LNAMES[logevent.level].include? "PROGRESS"
41
- # Formats the data as is with no newline, to allow progress bars to be logged.
42
- sprintf("%s", logevent.data.to_s)
43
- else
44
- if logevent.data.kind_of? String
45
- # remove ^M characters
46
- logevent.data.gsub!(/\r/, "")
47
- # Prevent two newlines in the log file
48
- logevent.data.chop! if logevent.data =~ /\n$/
49
- end
50
- tracer = sprintf(@@basicformat, @max_level_length, logevent.name)
51
- tracer << (logevent.tracer.nil? ? "" : "(#{logevent.tracer[0]})") + ": "
52
- sprintf("%s %s\n", tracer, format_object(logevent.data))
53
- end
54
- end
55
- end
56
- end
data/omnibus/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- *.gem
2
- .bundle
3
- .kitchen/
4
- .kitchen.local.yml
5
- vendor/bundle
6
- pkg/*
7
- .vagrant
8
- bin/*
9
- files/**/cache/
10
- vendor/cookbooks
11
- *.out
data/omnibus/.kitchen.yml DELETED
@@ -1,25 +0,0 @@
1
- driver:
2
- name: vagrant
3
- customize:
4
- cpus: 2
5
- memory: 2048
6
- synced_folders:
7
- - ['../../..', '/home/vagrant/kameleon']
8
- - ['../../../pkg/%{instance_name}', '/var/cache/omnibus/pkg', 'create: true']
9
-
10
- provisioner:
11
- require_chef_omnibus: 11.8.0
12
-
13
- platforms:
14
- - name: ubuntu-12.04
15
- run_list: apt::default
16
- - name: centos-5.10
17
-
18
- suites:
19
- - name: default
20
- run_list: omnibus::default
21
- attributes:
22
- omnibus:
23
- build_user: vagrant
24
- build_dir: /home/vagrant/kameleon
25
- install_dir: /opt/kameleon
data/omnibus/Berksfile DELETED
@@ -1,9 +0,0 @@
1
- source 'https://api.berkshelf.com'
2
-
3
- # The apt cookbook is required to bring the apt cache up-to-date on Ubuntu
4
- # systems, since the cache can become stale on older boxes.
5
- cookbook 'apt', '~> 2.0'
6
-
7
- # cookbook 'omnibus'
8
- # Uncomment to use the latest version of the Omnibus cookbook from GitHub
9
- cookbook 'omnibus', github: 'opscode-cookbooks/omnibus'
@@ -1,25 +0,0 @@
1
- DEPENDENCIES
2
- apt (~> 2.0)
3
- omnibus
4
- git: git://github.com/opscode-cookbooks/omnibus.git
5
- branch: master
6
-
7
- GRAPH
8
- 7-zip (1.0.2)
9
- windows (>= 1.2.2)
10
- apt (2.3.8)
11
- build-essential (2.0.0)
12
- chef-sugar (1.2.8)
13
- chef_handler (1.1.5)
14
- homebrew (1.5.4)
15
- omnibus (1.2.5)
16
- 7-zip (~> 1.0)
17
- build-essential (~> 2.0)
18
- chef-sugar (~> 1.1)
19
- homebrew (~> 1.5)
20
- windows (~> 1.30)
21
- wix (~> 1.1)
22
- windows (1.30.2)
23
- chef_handler (>= 0.0.0)
24
- wix (1.1.0)
25
- windows (>= 1.2.2)
data/omnibus/Gemfile DELETED
@@ -1,12 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Use Berkshelf for resolving cookbook dependencies
4
- gem 'berkshelf', '~> 3.0.0.beta'
5
-
6
- # Install omnibus software
7
- gem 'omnibus', '~> 3.0'
8
- gem 'omnibus-software', github: 'opscode/omnibus-software'
9
-
10
- # Use Test Kitchen with Vagrant for convering the build environment
11
- gem 'test-kitchen', '~> 1.2'
12
- gem 'kitchen-vagrant', '~> 0.14'
data/omnibus/README.md DELETED
@@ -1,94 +0,0 @@
1
- kameleon Omnibus project
2
- ========================
3
- This project creates full-stack platform-specific packages for
4
- `kameleon`!
5
-
6
- Installation
7
- ------------
8
- You must have a sane Ruby 1.9+ environment with Bundler installed. Ensure all
9
- the required gems are installed:
10
-
11
- ```shell
12
- $ bundle install --binstubs
13
- ```
14
-
15
- Usage
16
- -----
17
- ### Build
18
-
19
- You create a platform-specific package using the `build project` command:
20
-
21
- ```shell
22
- $ bin/omnibus build project kameleon
23
- ```
24
-
25
- The platform/architecture type of the package created will match the platform
26
- where the `build project` command is invoked. For example, running this command
27
- on a MacBook Pro will generate a Mac OS X package. After the build completes
28
- packages will be available in the `pkg/` folder.
29
-
30
- ### Clean
31
-
32
- You can clean up all temporary files generated during the build process with
33
- the `clean` command:
34
-
35
- ```shell
36
- $ bin/omnibus clean
37
- ```
38
-
39
- Adding the `--purge` purge option removes __ALL__ files generated during the
40
- build including the project install directory (`/opt/kameleon`) and
41
- the package cache directory (`/var/cache/omnibus/pkg`):
42
-
43
- ```shell
44
- $ bin/omnibus clean --purge
45
- ```
46
-
47
- ### Help
48
-
49
- Full help for the Omnibus command line interface can be accessed with the
50
- `help` command:
51
-
52
- ```shell
53
- $ bin/omnibus help
54
- ```
55
-
56
- Kitchen-based Build Environment
57
- -------------------------------
58
- Every Omnibus project ships will a project-specific
59
- [Berksfile](http://berkshelf.com/) and [Vagrantfile](http://www.vagrantup.com/)
60
- that will allow you to build your omnibus projects on all of the projects listed
61
- in the `.kitchen.yml`. You can add/remove additional platforms as needed by
62
- changing the list found in the `.kitchen.yml` `platforms` YAML stanza.
63
-
64
- This build environment is designed to get you up-and-running quickly. However,
65
- there is nothing that restricts you to building on other platforms. Simply use
66
- the [omnibus cookbook](https://github.com/opscode-cookbooks/omnibus) to setup
67
- your desired platform and execute the build steps listed above.
68
-
69
- The default build environment requires Test Kitchen and VirtualBox for local
70
- development. Test Kitchen also exposes the ability to provision instances using
71
- various cloud providers like AWS, DigitalOcean, or OpenStack. For more
72
- information, please see the [Test Kitchen documentation](http://kitchen.ci).
73
-
74
- Once you have tweaked your `.kitchen.yml` (or `.kitchen.local.yml`) to your
75
- liking, you can bring up an individual build environment using the `kitchen`
76
- command.
77
-
78
- ```shell
79
- $ bundle exec kitchen converge ubuntu-12.04
80
- ```
81
-
82
- Then login to the instance and build the project as described in the Usage
83
- section:
84
-
85
- ```shell
86
- $ bundle exec kitchen login ubuntu-12.04
87
- [vagrant@ubuntu...] $ cd kameleon
88
- [vagrant@ubuntu...] $ bundle install
89
- [vagrant@ubuntu...] $ ...
90
- [vagrant@ubuntu...] $ ./bin/omnibus build project kameleon
91
- ```
92
-
93
- For a complete list of all commands and platforms, run `kitchen list` or
94
- `kitchen help`.
@@ -1,23 +0,0 @@
1
-
2
- name 'kameleon'
3
- maintainer 'Oar Team'
4
- homepage 'http://kameleon.readthedocs.org'
5
-
6
- replaces 'kameleon'
7
- install_path '/opt/kameleon'
8
- build_version Omnibus::BuildVersion.new.semver
9
- build_iteration 1
10
-
11
- # creates required build directories
12
- dependency 'preparation'
13
-
14
- # kameleon dependencies/components
15
- dependency "polipo"
16
- dependency "kameleon"
17
-
18
- # version manifest file
19
- dependency "version-manifest"
20
-
21
-
22
- exclude '\.git*'
23
- exclude 'bundler\/git'
@@ -1,24 +0,0 @@
1
- # This is an example software definition for a Ruby project.
2
- #
3
- # Lots of software definitions for popular open source software
4
- # already exist in `opscode-omnibus`:
5
- #
6
- # https://github.com/opscode/omnibus-software/tree/master/config/software
7
- #
8
- name "kameleon"
9
- default_version "2.0.0"
10
-
11
- dependency "ruby"
12
- dependency "bundler"
13
- dependency "rsync"
14
-
15
- source :git => "git://github.com/oar-team/kameleon.git"
16
-
17
- relative_path "kameleon"
18
-
19
- build do
20
- command "git checkout #{default_version}"
21
- bundle "install --path=#{install_dir}/embedded/service/gem"
22
- command "mkdir -p #{install_dir}/embedded/service/kameleon"
23
- command "#{install_dir}/embedded/bin/rsync -a --delete --exclude=.git/*** --exclude=.gitignore ./ #{install_dir}/embedded/service/kameleon/"
24
- end
@@ -1,30 +0,0 @@
1
- # This is an example software definition for a C project.
2
- #
3
- # Lots of software definitions for popular open source software
4
- # already exist in `opscode-omnibus`:
5
- #
6
- # https://github.com/opscode/omnibus-software/tree/master/config/software
7
- #
8
- name "polipo"
9
- default_version "1.0.3"
10
-
11
-
12
- source :url => "http://freehaven.net/~chrisd/polipo/polipo-1.0.3.tar.gz",
13
- :md5 => "a0b00ca01541cf77ff3d725c27cf68bb"
14
-
15
- relative_path 'polipo-1.0.3'
16
-
17
- prefix="#{install_dir}/embedded"
18
- libdir="#{prefix}/lib"
19
-
20
- env = {
21
- "LDFLAGS" => "-L#{libdir} -I#{prefix}/include",
22
- "CFLAGS" => "-L#{libdir} -I#{prefix}/include -fPIC",
23
- "LD_RUN_PATH" => libdir
24
- }
25
-
26
- build do
27
- command "sed -i 's/^LOCAL_ROOT = \/usr\/share\/polipo\/www/LOCAL_ROOT = \$\(PREFIX\)\/usr\/share\/polipo\/www/g' Makefile"
28
- command "make -j #{max_build_jobs} PREFIX=#{prefix} all", :env => env
29
- command "make -j #{max_build_jobs} PREFIX=#{prefix} install", :env => env
30
- end
@@ -1,158 +0,0 @@
1
- #
2
- # Copyright:: Copyright (c) 2012-2014 Chef Software, Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- name "ruby"
19
- default_version "1.9.3-p484"
20
-
21
- dependency "zlib"
22
- dependency "ncurses"
23
- dependency "libedit"
24
- dependency "openssl"
25
- dependency "libyaml"
26
- dependency "libiconv"
27
- dependency "gdbm"
28
- dependency "libgcc" if (platform == "solaris2" and Omnibus.config.solaris_compiler == "gcc")
29
-
30
- version "1.9.3-p484" do
31
- source md5: '8ac0dee72fe12d75c8b2d0ef5d0c2968'
32
- end
33
-
34
- source url: "http://cache.ruby-lang.org/pub/ruby/#{version.match(/^(\d+\.\d+)/)[0]}/ruby-#{version}.tar.gz"
35
-
36
- relative_path "ruby-#{version}"
37
-
38
- env =
39
- case platform
40
- when "mac_os_x"
41
- {
42
- # -Qunused-arguments suppresses "argument unused during compilation"
43
- # warnings. These can be produced if you compile a program that doesn't
44
- # link to anything in a path given with -Lextra-libs. Normally these
45
- # would be harmless, except that autoconf treats any output to stderr as
46
- # a failure when it makes a test program to check your CFLAGS (regardless
47
- # of the actual exit code from the compiler).
48
- "CFLAGS" => "-arch x86_64 -m64 -L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -I#{install_dir}/embedded/include/ncurses -O3 -g -pipe -Qunused-arguments",
49
- "LDFLAGS" => "-arch x86_64 -L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -I#{install_dir}/embedded/include/ncurses"
50
- }
51
- when "solaris2"
52
- {
53
- "CFLAGS" => "-L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -O3 -g -pipe",
54
- "LDFLAGS" => "-R#{install_dir}/embedded/lib -L#{install_dir}/embedded/lib -I#{install_dir}/embedded/include -static-libgcc",
55
- "LD_OPTIONS" => "-R#{install_dir}/embedded/lib"
56
- }
57
- when "aix"
58
- {
59
- # see http://www.ibm.com/developerworks/aix/library/au-gnu.html
60
- #
61
- # specifically:
62
- #
63
- # "To use AIX run-time linking, you should create the shared object
64
- # using gcc -shared -Wl,-G and create executables using the library
65
- # by adding the -Wl,-brtl option to the link line. Technically, you
66
- # can leave off the -shared option, but it does no harm and reduces
67
- # confusion."
68
- #
69
- # AIX also uses -Wl,-blibpath instead of -R or LD_RUN_PATH, but the
70
- # option is not additive, so requires /usr/lib and /lib as well (there
71
- # is a -bsvr4 option to allow ld to take an -R flag in addition
72
- # to turning on -brtl, but it had other side effects I couldn't fix).
73
- #
74
- # If libraries linked with gcc -shared have symbol resolution failures
75
- # then it may be useful to add -bexpfull to export all symbols.
76
- #
77
- # -O2 optimized away some configure test which caused ext libs to fail
78
- #
79
- # We also need prezl's M4 instead of picking up /usr/bin/m4 which
80
- # barfs on ruby.
81
- #
82
- "CC" => "xlc -q64",
83
- "CXX" => "xlC -q64",
84
- "LD" => "ld -b64",
85
- "CFLAGS" => "-q64 -O -qhot -I#{install_dir}/embedded/include",
86
- "CXXFLAGS" => "-q64 -O -qhot -I#{install_dir}/embedded/include",
87
- "LDFLAGS" => "-q64 -L#{install_dir}/embedded/lib -Wl,-brtl -Wl,-blibpath:#{install_dir}/embedded/lib:/usr/lib:/lib",
88
- "OBJECT_MODE" => "64",
89
- "ARFLAGS" => "-X64 cru",
90
- "M4" => "/opt/freeware/bin/m4",
91
- "warnflags" => "-qinfo=por"
92
- }
93
- else
94
- {
95
- "CFLAGS" => "-I#{install_dir}/embedded/include -O3 -g -pipe",
96
- "LDFLAGS" => "-Wl,-rpath,#{install_dir}/embedded/lib -L#{install_dir}/embedded/lib"
97
- }
98
- end
99
-
100
- build do
101
- configure_command = ["./configure",
102
- "--prefix=#{install_dir}/embedded",
103
- "--with-out-ext=fiddle,dbm",
104
- "--enable-shared",
105
- "--enable-libedit",
106
- "--with-ext=psych",
107
- "--disable-install-doc"]
108
-
109
- case platform
110
- when "aix"
111
- patch :source => "ruby-aix-configure.patch", :plevel => 1
112
- patch :source => "ruby_aix_1_9_3_448_ssl_EAGAIN.patch", :plevel => 1
113
- # --with-opt-dir causes ruby to send bogus commands to the AIX linker
114
- when "freebsd"
115
- configure_command << "--without-execinfo"
116
- configure_command << "--with-opt-dir=#{install_dir}/embedded"
117
- when "smartos"
118
- # Opscode patch - someara@opscode.com
119
- # GCC 4.7.0 chokes on mismatched function types between OpenSSL 1.0.1c and Ruby 1.9.3-p286
120
- patch :source => "ruby-openssl-1.0.1c.patch", :plevel => 1
121
-
122
- # Patches taken from RVM.
123
- # http://bugs.ruby-lang.org/issues/5384
124
- # https://www.illumos.org/issues/1587
125
- # https://github.com/wayneeseguin/rvm/issues/719
126
- patch :source => "rvm-cflags.patch", :plevel => 1
127
-
128
- # From RVM forum
129
- # https://github.com/wayneeseguin/rvm/commit/86766534fcc26f4582f23842a4d3789707ce6b96
130
- configure_command << "ac_cv_func_dl_iterate_phdr=no"
131
- configure_command << "--with-opt-dir=#{install_dir}/embedded"
132
- else
133
- configure_command << "--with-opt-dir=#{install_dir}/embedded"
134
- end
135
-
136
- # @todo expose bundle_bust() in the DSL
137
- env.merge!({
138
- "RUBYOPT" => nil,
139
- "BUNDLE_BIN_PATH" => nil,
140
- "BUNDLE_GEMFILE" => nil,
141
- "GEM_PATH" => nil,
142
- "GEM_HOME" => nil
143
- })
144
-
145
- # @todo: move into omnibus-ruby
146
- has_gmake = system("gmake --version")
147
-
148
- if has_gmake
149
- env.merge!({'MAKE' => 'gmake'})
150
- make_binary = 'gmake'
151
- else
152
- make_binary = 'make'
153
- end
154
-
155
- command configure_command.join(" "), :env => env
156
- command "#{make_binary} -j #{max_build_jobs}", :env => env
157
- command "#{make_binary} -j #{max_build_jobs} install", :env => env
158
- end