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.
- data/.editorconfig +0 -0
- data/.env +2 -6
- data/CHANGELOG.rst +74 -1
- data/Gemfile +20 -2
- data/README.rst +35 -25
- data/Thorfile +29 -0
- data/contrib/kameleon_bashrc.sh +61 -0
- data/contrib/polipo_env.sh +3 -2
- data/kameleon-builder.gemspec +3 -10
- data/lib/kameleon.rb +10 -14
- data/lib/kameleon/cli.rb +92 -105
- data/lib/kameleon/context.rb +76 -43
- data/lib/kameleon/engine.rb +147 -103
- data/lib/kameleon/environment.rb +10 -5
- data/lib/kameleon/error.rb +1 -32
- data/lib/kameleon/persistent_cache.rb +127 -29
- data/lib/kameleon/recipe.rb +63 -106
- data/lib/kameleon/shell.rb +32 -17
- data/lib/kameleon/step.rb +18 -1
- data/lib/kameleon/ui.rb +141 -0
- data/lib/kameleon/utils.rb +9 -0
- data/templates/{debian7-chroot.yaml → chroot/debian7-amd64.yaml} +29 -21
- data/templates/{docker-debian7.yaml → docker/debian7.yaml} +5 -5
- data/templates/extend.erb +2 -2
- data/templates/{debian7-g5k.yaml → grid5000/debian7.yaml} +1 -1
- data/templates/{archlinux-desktop.yaml → qemu/archlinux-desktop-i686.yaml} +2 -2
- data/templates/qemu/archlinux-desktop-x86_64.yaml +25 -0
- data/templates/qemu/archlinux-i686.yaml +25 -0
- data/templates/{archlinux.yaml → qemu/archlinux-x86_64.yaml} +37 -34
- data/templates/qemu/centos6.5-x86_64.yaml +113 -0
- data/templates/qemu/centos7-x86_64.yaml +119 -0
- data/templates/{debian7.yaml → qemu/debian7-amd64.yaml} +45 -40
- data/templates/{debian7-desktop.yaml → qemu/debian7-desktop-amd64.yaml} +2 -3
- data/templates/{debian7-kameleon.yaml → qemu/debian7-kameleon-amd64.yaml} +3 -6
- data/templates/{debian7-oar-dev.yaml → qemu/debian7-oar-amd64.yaml} +2 -2
- data/templates/qemu/debian8-amd64.yaml +25 -0
- data/templates/{fedora20-desktop.yaml → qemu/fedora20-desktop-x86_64.yaml} +2 -2
- data/templates/qemu/fedora20-x86_64.yaml +116 -0
- data/templates/{ubuntu-12.04.yaml → qemu/ubuntu-12.04-amd64.yaml} +42 -38
- data/templates/{ubuntu-12.04-desktop.yaml → qemu/ubuntu-12.04-desktop-amd64.yaml} +3 -3
- data/templates/{ubuntu-14.04.yaml → qemu/ubuntu-14.04-amd64.yaml} +2 -2
- data/templates/{ubuntu-14.04-desktop.yaml → qemu/ubuntu-14.04-desktop-amd64.yaml} +2 -2
- data/templates/steps/aliases/defaults.yaml +19 -13
- data/templates/steps/bootstrap/archlinux/arch_bootstrap.yaml +11 -19
- data/templates/steps/bootstrap/debian/debootstrap.yaml +10 -11
- data/templates/steps/bootstrap/debian/debootstrap_arm.yaml +11 -19
- data/templates/steps/bootstrap/fedora/init_pxeboot.yaml +13 -0
- data/templates/steps/bootstrap/fedora/yum_bootstrap.yaml +45 -0
- data/templates/steps/bootstrap/initialize_disk.yaml +16 -0
- data/templates/steps/bootstrap/initialize_disk_chroot.yaml +10 -14
- data/templates/steps/bootstrap/install_requirements.yaml +3 -0
- data/templates/steps/bootstrap/prepare_docker.yaml +7 -7
- data/templates/steps/bootstrap/prepare_qemu.yaml +20 -26
- data/templates/steps/bootstrap/prepare_virtualbox.yaml +63 -0
- data/templates/steps/bootstrap/start_chroot.yaml +2 -13
- data/templates/steps/bootstrap/start_qemu.yaml +50 -53
- data/templates/steps/bootstrap/start_virtualbox.yaml +37 -0
- data/templates/steps/bootstrap/switch_context_qemu.yaml +64 -0
- data/templates/steps/bootstrap/switch_context_virtualbox.yaml +66 -0
- data/templates/steps/breakpoint.yaml +2 -1
- data/templates/steps/checkpoints/docker.yaml +14 -11
- data/templates/steps/checkpoints/qcow2.yaml +26 -24
- data/templates/steps/checkpoints/qemu.yaml +30 -36
- data/templates/steps/checkpoints/virtualbox.yaml +21 -0
- data/templates/steps/disable_checkpoint.yaml +3 -0
- data/templates/steps/enable_checkpoint.yaml +5 -0
- data/templates/steps/export/qemu_save_appliance.yaml +52 -0
- data/templates/steps/export/virtualbox_save_appliance.yaml +67 -0
- data/templates/steps/setup/archlinux/install_bootloader.yaml +23 -0
- data/templates/steps/setup/centos/6.5/configure_network.yaml +31 -0
- data/templates/steps/setup/centos/6.5/configure_system.yaml +27 -0
- data/templates/steps/setup/debian/configure_apt.yaml +1 -6
- data/templates/steps/setup/debian/configure_kernel.yaml +0 -5
- data/templates/steps/setup/debian/install_bootloader.yaml +36 -0
- data/templates/steps/setup/debian/setup_vagrant_box.yaml +48 -18
- data/templates/steps/setup/debian/upgrade_system.yaml +2 -7
- data/templates/steps/setup/fedora/configure_kernel.yaml +9 -0
- data/templates/steps/setup/fedora/configure_keyboard.yaml +12 -0
- data/templates/steps/setup/fedora/configure_network.yaml +9 -1
- data/templates/steps/setup/fedora/configure_system.yaml +20 -45
- data/templates/steps/setup/fedora/install_bootloader.yaml +58 -0
- data/templates/steps/setup/fedora/minimal_install.yaml +3 -0
- data/templates/steps/setup/fedora/update_system.yaml +13 -5
- data/templates/steps/setup/ubuntu/configure_apt.yaml +4 -9
- data/templates/vagrant/debian7-amd64.yaml +130 -0
- data/templates/virtualbox/archlinux-desktop-i686.yaml +25 -0
- data/templates/virtualbox/archlinux-desktop-x86_64.yaml +28 -0
- data/templates/virtualbox/archlinux-i686.yaml +28 -0
- data/templates/virtualbox/archlinux-x86_64.yaml +109 -0
- data/templates/virtualbox/centos6.5-i386.yaml +39 -0
- data/templates/virtualbox/centos6.5-x86_64.yaml +111 -0
- data/templates/virtualbox/centos7-x86_64.yaml +116 -0
- data/{docs/source/debian7.yaml → templates/virtualbox/debian7-amd64.yaml} +53 -52
- data/templates/virtualbox/debian7-desktop-amd64.yaml +25 -0
- data/templates/{fedora-rawhide.yaml → virtualbox/debian7-i386.yaml} +12 -11
- data/templates/virtualbox/debian7-kameleon-amd64.yaml +38 -0
- data/templates/virtualbox/debian7-oar-amd64.yaml +51 -0
- data/templates/{debian-testing.yaml → virtualbox/debian8-amd64.yaml} +3 -3
- data/templates/virtualbox/debian8-i386.yaml +31 -0
- data/templates/virtualbox/fedora20-x86_64.yaml +116 -0
- data/templates/virtualbox/ubuntu-12.04-amd64.yaml +128 -0
- data/templates/virtualbox/ubuntu-12.04-desktop-amd64.yaml +25 -0
- data/templates/virtualbox/ubuntu-14.04-amd64.yaml +25 -0
- data/templates/virtualbox/ubuntu-14.04-desktop-amd64.yaml +27 -0
- data/version.txt +1 -1
- metadata +67 -212
- data/Rakefile +0 -24
- data/docs/.gitignore +0 -1
- data/docs/Makefile +0 -181
- data/docs/README.md +0 -17
- data/docs/make.bat +0 -242
- data/docs/source/_static/.gitignore +0 -0
- data/docs/source/_static/centos.png +0 -0
- data/docs/source/_static/debian.png +0 -0
- data/docs/source/_static/kameleon-logo.png +0 -0
- data/docs/source/_static/kameleon-logo.xcf +0 -0
- data/docs/source/_static/kameleon-long.png +0 -0
- data/docs/source/_static/ubuntu.png +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/__init__.py +0 -17
- data/docs/source/_themes/sphinx_rtd_theme/breadcrumbs.html +0 -19
- data/docs/source/_themes/sphinx_rtd_theme/footer.html +0 -32
- data/docs/source/_themes/sphinx_rtd_theme/layout.html +0 -160
- data/docs/source/_themes/sphinx_rtd_theme/layout_old.html +0 -205
- data/docs/source/_themes/sphinx_rtd_theme/search.html +0 -50
- data/docs/source/_themes/sphinx_rtd_theme/searchbox.html +0 -7
- data/docs/source/_themes/sphinx_rtd_theme/static/css/badge_only.css +0 -1
- data/docs/source/_themes/sphinx_rtd_theme/static/css/theme.css +0 -4
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg +0 -414
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/static/js/theme.js +0 -47
- data/docs/source/_themes/sphinx_rtd_theme/theme.conf +0 -8
- data/docs/source/_themes/sphinx_rtd_theme/versions.html +0 -37
- data/docs/source/aliases.rst +0 -31
- data/docs/source/atlas_debian_g5k.yaml +0 -36
- data/docs/source/checkpoint.rst +0 -30
- data/docs/source/commands.rst +0 -63
- data/docs/source/conf.py +0 -262
- data/docs/source/context.rst +0 -47
- data/docs/source/debian_customized.yaml +0 -28
- data/docs/source/debian_customized_g5k.yaml +0 -21
- data/docs/source/faq.rst +0 -43
- data/docs/source/getting_started.rst +0 -260
- data/docs/source/grid5000_tutorial.rst +0 -525
- data/docs/source/index.rst +0 -53
- data/docs/source/install_atlas.yaml +0 -25
- data/docs/source/install_hpl.yaml +0 -24
- data/docs/source/installation.rst +0 -51
- data/docs/source/persistent_cache.rst +0 -34
- data/docs/source/recipe.rst +0 -177
- data/docs/source/tau_install.yaml +0 -19
- data/docs/source/tau_install_g5k.yaml +0 -25
- data/docs/source/use_cases.rst +0 -93
- data/docs/source/workspace.rst +0 -13
- data/lib/kameleon/logger.rb +0 -56
- data/omnibus/.gitignore +0 -11
- data/omnibus/.kitchen.yml +0 -25
- data/omnibus/Berksfile +0 -9
- data/omnibus/Berksfile.lock +0 -25
- data/omnibus/Gemfile +0 -12
- data/omnibus/README.md +0 -94
- data/omnibus/config/projects/kameleon.rb +0 -23
- data/omnibus/config/software/kameleon.rb +0 -24
- data/omnibus/config/software/polipo.rb +0 -30
- data/omnibus/config/software/ruby.rb +0 -158
- data/omnibus/files/mac_dmg/Resources/background.png +0 -0
- data/omnibus/files/mac_dmg/Resources/icon.png +0 -0
- data/omnibus/files/mac_pkg/Resources/background.png +0 -0
- data/omnibus/files/mac_pkg/Resources/license.html +0 -1
- data/omnibus/files/mac_pkg/Resources/welcome.html +0 -9
- data/omnibus/omnibus.rb +0 -27
- data/omnibus/package-scripts/kameleon/makeselfinst +0 -27
- data/omnibus/package-scripts/kameleon/postrm +0 -9
- data/templates/fedora20.yaml +0 -105
- data/templates/steps/bootstrap/archlinux/install_bootloader.yaml +0 -46
- data/templates/steps/bootstrap/archlinux/populate_disk.yaml +0 -39
- data/templates/steps/bootstrap/fedora/liveos_bootstrap.yaml +0 -123
- data/templates/steps/bootstrap/initialize_disk_qemu.yaml +0 -72
- data/templates/steps/bootstrap/install_bootloader.yaml +0 -42
- data/templates/steps/bootstrap/ubuntu/debootstrap.yaml +0 -27
- data/templates/steps/export/save_appliance.yaml +0 -58
- data/templates/steps/export/save_vagrant_box.yaml +0 -29
- data/templates/vagrant-debian7.yaml +0 -31
data/docs/source/workspace.rst
DELETED
@@ -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.
|
data/lib/kameleon/logger.rb
DELETED
@@ -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
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'
|
data/omnibus/Berksfile.lock
DELETED
@@ -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
|