poise-build-essential 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.kitchen.yml +3 -0
- data/.travis.yml +60 -0
- data/.yardopts +7 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +35 -0
- data/LICENSE +201 -0
- data/README.md +85 -0
- data/Rakefile +17 -0
- data/chef/attributes/default.rb +21 -0
- data/chef/recipes/default.rb +19 -0
- data/lib/poise_build_essential.rb +22 -0
- data/lib/poise_build_essential/build_essential_providers.rb +49 -0
- data/lib/poise_build_essential/build_essential_providers/base.rb +103 -0
- data/lib/poise_build_essential/build_essential_providers/debian.rb +41 -0
- data/lib/poise_build_essential/build_essential_providers/freebsd.rb +46 -0
- data/lib/poise_build_essential/build_essential_providers/mac_os_x.rb +66 -0
- data/lib/poise_build_essential/build_essential_providers/omnios.rb +46 -0
- data/lib/poise_build_essential/build_essential_providers/rhel.rb +46 -0
- data/lib/poise_build_essential/build_essential_providers/smartos.rb +39 -0
- data/lib/poise_build_essential/build_essential_providers/solaris.rb +47 -0
- data/lib/poise_build_essential/build_essential_providers/suse.rb +43 -0
- data/lib/poise_build_essential/build_essential_providers/windows.rb +68 -0
- data/lib/poise_build_essential/cheftie.rb +18 -0
- data/lib/poise_build_essential/resources.rb +26 -0
- data/lib/poise_build_essential/resources/poise_build_essential.rb +48 -0
- data/lib/poise_build_essential/version.rb +20 -0
- data/poise-build-essential.gemspec +42 -0
- data/test/cookbook/attributes/default.rb +17 -0
- data/test/cookbook/metadata.rb +18 -0
- data/test/cookbook/recipes/default.rb +37 -0
- data/test/gemfiles/chef-12.1.gemfile +23 -0
- data/test/gemfiles/chef-12.10.gemfile +23 -0
- data/test/gemfiles/chef-12.11.gemfile +23 -0
- data/test/gemfiles/chef-12.12.gemfile +22 -0
- data/test/gemfiles/chef-12.13.gemfile +22 -0
- data/test/gemfiles/chef-12.14.gemfile +19 -0
- data/test/gemfiles/chef-12.15.gemfile +19 -0
- data/test/gemfiles/chef-12.16.gemfile +19 -0
- data/test/gemfiles/chef-12.17.gemfile +19 -0
- data/test/gemfiles/chef-12.18.gemfile +19 -0
- data/test/gemfiles/chef-12.19.gemfile +19 -0
- data/test/gemfiles/chef-12.2.gemfile +23 -0
- data/test/gemfiles/chef-12.3.gemfile +23 -0
- data/test/gemfiles/chef-12.4.gemfile +24 -0
- data/test/gemfiles/chef-12.5.gemfile +23 -0
- data/test/gemfiles/chef-12.6.gemfile +23 -0
- data/test/gemfiles/chef-12.7.gemfile +23 -0
- data/test/gemfiles/chef-12.8.gemfile +23 -0
- data/test/gemfiles/chef-12.9.gemfile +23 -0
- data/test/gemfiles/chef-12.gemfile +19 -0
- data/test/gemfiles/master.gemfile +26 -0
- data/test/integration/default/serverspec/default_spec.rb +27 -0
- data/test/spec/build_essential_providers/debian_spec.rb +49 -0
- data/test/spec/build_essential_providers/freebsd_spec.rb +68 -0
- data/test/spec/build_essential_providers/mac_os_x_spec.rb +52 -0
- data/test/spec/build_essential_providers/omnios_spec.rb +67 -0
- data/test/spec/build_essential_providers/rhel_spec.rb +54 -0
- data/test/spec/build_essential_providers/smartos_spec.rb +64 -0
- data/test/spec/build_essential_providers/solaris_spec.rb +108 -0
- data/test/spec/build_essential_providers/suse_spec.rb +54 -0
- data/test/spec/recipe_spec.rb +35 -0
- data/test/spec/resources/poise_build_essential_spec.rb +49 -0
- data/test/spec/spec_helper.rb +19 -0
- metadata +210 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2017, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
poise_build_essential 'build_essential' do
|
18
|
+
action node['poise-build-essential']['action'].to_sym
|
19
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2017, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
|
18
|
+
module PoiseBuildEssential
|
19
|
+
autoload :BuildEssentialProviders, 'poise_build_essential/build_essential_providers'
|
20
|
+
autoload :Resources, 'poise_build_essential/resources'
|
21
|
+
autoload :VERSION, 'poise_build_essential/version'
|
22
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2017, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'chef/platform/provider_priority_map'
|
18
|
+
|
19
|
+
require 'poise_build_essential/build_essential_providers/debian'
|
20
|
+
require 'poise_build_essential/build_essential_providers/freebsd'
|
21
|
+
require 'poise_build_essential/build_essential_providers/mac_os_x'
|
22
|
+
require 'poise_build_essential/build_essential_providers/omnios'
|
23
|
+
require 'poise_build_essential/build_essential_providers/rhel'
|
24
|
+
require 'poise_build_essential/build_essential_providers/smartos'
|
25
|
+
require 'poise_build_essential/build_essential_providers/solaris'
|
26
|
+
require 'poise_build_essential/build_essential_providers/suse'
|
27
|
+
# require 'poise_build_essential/build_essential_providers/windows'
|
28
|
+
|
29
|
+
|
30
|
+
module PoiseBuildEssential
|
31
|
+
# Inversion providers for the poise_build_essential resource.
|
32
|
+
#
|
33
|
+
# @since 1.0.0
|
34
|
+
module BuildEssentialProviders
|
35
|
+
# Set up priority maps
|
36
|
+
Chef::Platform::ProviderPriorityMap.instance.priority(:poise_build_essential, [
|
37
|
+
PoiseBuildEssential::BuildEssentialProviders::Debian,
|
38
|
+
PoiseBuildEssential::BuildEssentialProviders::FreeBSD,
|
39
|
+
PoiseBuildEssential::BuildEssentialProviders::MacOSX,
|
40
|
+
PoiseBuildEssential::BuildEssentialProviders::OmniOS,
|
41
|
+
PoiseBuildEssential::BuildEssentialProviders::RHEL,
|
42
|
+
PoiseBuildEssential::BuildEssentialProviders::SmartOS,
|
43
|
+
PoiseBuildEssential::BuildEssentialProviders::Solaris,
|
44
|
+
PoiseBuildEssential::BuildEssentialProviders::SUSE,
|
45
|
+
# PoiseBuildEssential::BuildEssentialProviders::Windows,
|
46
|
+
PoiseBuildEssential::BuildEssentialProviders::Base,
|
47
|
+
])
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2017, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'chef/provider'
|
18
|
+
require 'poise'
|
19
|
+
|
20
|
+
|
21
|
+
module PoiseBuildEssential
|
22
|
+
module BuildEssentialProviders
|
23
|
+
# The provider base class for `poise_build_essential`.
|
24
|
+
#
|
25
|
+
# @see PoiseBuildEssential::Resources::PoiseBuildEssential::Resource
|
26
|
+
# @provides poise_build_essential
|
27
|
+
class Base < Chef::Provider
|
28
|
+
include Poise
|
29
|
+
provides(:poise_build_essential)
|
30
|
+
|
31
|
+
# The `install` action for the `poise_build_essential` resource.
|
32
|
+
#
|
33
|
+
# @return [void]
|
34
|
+
def action_install
|
35
|
+
notifying_block do
|
36
|
+
install_build_essential
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# The `upgrade` action for the `poise_build_essential` resource.
|
41
|
+
#
|
42
|
+
# @return [void]
|
43
|
+
def action_upgrade
|
44
|
+
notifying_block do
|
45
|
+
upgrade_build_essential
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# The `remove` action for the `poise_build_essential` resource.
|
50
|
+
#
|
51
|
+
# @return [void]
|
52
|
+
def action_remove
|
53
|
+
notifying_block do
|
54
|
+
remove_build_essential
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
# Install C compiler and build tools. Must be implemented by subclasses.
|
61
|
+
#
|
62
|
+
# @abstract
|
63
|
+
def install_build_essential
|
64
|
+
unsupported_platform("Unknown platform for poise_build_eseential: #{node['platform']} (#{node['platform_family']})")
|
65
|
+
# Return an array so upgrade/remove also work.
|
66
|
+
[]
|
67
|
+
end
|
68
|
+
|
69
|
+
# Upgrade C compiler and build tools. Must be implemented by subclasses.
|
70
|
+
#
|
71
|
+
# @abstract
|
72
|
+
def upgrade_build_essential
|
73
|
+
install_build_essential.tap do |installed|
|
74
|
+
Array(installed).each {|r| r.action(:upgrade) }
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# Uninstall C compiler and build tools. Must be implemented by subclasses.
|
79
|
+
#
|
80
|
+
# @abstract
|
81
|
+
def remove_build_essential
|
82
|
+
install_build_essential.tap do |installed|
|
83
|
+
Array(installed).each {|r| r.action(:remove) }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
# Helper method for either warning about an unsupported platform or raising
|
88
|
+
# an exception.
|
89
|
+
#
|
90
|
+
# @api private
|
91
|
+
# @param msg [String] Error message to display.
|
92
|
+
# @return [void]
|
93
|
+
def unsupported_platform(msg)
|
94
|
+
if new_resource.allow_unsupported_platform
|
95
|
+
Chef::Log.warn(msg)
|
96
|
+
else
|
97
|
+
raise RuntimeError.new(msg)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2008-2017, Chef Software, Inc.
|
3
|
+
# Copyright 2017, Noah Kantrowitz
|
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
|
+
require 'poise_build_essential/build_essential_providers/base'
|
19
|
+
|
20
|
+
|
21
|
+
module PoiseBuildEssential
|
22
|
+
module BuildEssentialProviders
|
23
|
+
# A provider for `poise_build_essential` to install on Debian platforms.
|
24
|
+
#
|
25
|
+
# @see PoiseBuildEssential::Resources::PoiseBuildEssential::Resource
|
26
|
+
# @provides poise_build_essential
|
27
|
+
class Debian < Base
|
28
|
+
provides(:poise_build_essential, platform_family: 'debian')
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
# (see Base#install_build_essential)
|
33
|
+
def install_build_essential
|
34
|
+
package %w{autoconf binutils-doc bison build-essential flex gettext ncurses-dev}
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2008-2017, Chef Software, Inc.
|
3
|
+
# Copyright 2017, Noah Kantrowitz
|
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
|
+
require 'poise_build_essential/build_essential_providers/base'
|
19
|
+
|
20
|
+
|
21
|
+
module PoiseBuildEssential
|
22
|
+
module BuildEssentialProviders
|
23
|
+
# A provider for `poise_build_essential` to install on FreeBSD platforms.
|
24
|
+
#
|
25
|
+
# @see PoiseBuildEssential::Resources::PoiseBuildEssential::Resource
|
26
|
+
# @provides poise_build_essential
|
27
|
+
class FreeBSD < Base
|
28
|
+
provides(:poise_build_essential, platform_family: 'freebsd')
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
# (see Base#install_build_essential)
|
33
|
+
def install_build_essential
|
34
|
+
pkgs = %w{devel/gmake devel/autoconf devel/m4 devel/gettext}
|
35
|
+
# Only install gcc on freebsd 9.x - 10 uses clang.
|
36
|
+
if node['platform_version'].to_i <= 9
|
37
|
+
pkgs << 'lang/gcc49'
|
38
|
+
end
|
39
|
+
pkgs.map {|name| package name }
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2008-2017, Chef Software, Inc.
|
3
|
+
# Copyright 2017, Noah Kantrowitz
|
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
|
+
require 'poise_build_essential/build_essential_providers/base'
|
19
|
+
|
20
|
+
|
21
|
+
module PoiseBuildEssential
|
22
|
+
module BuildEssentialProviders
|
23
|
+
# A provider for `poise_build_essential` to install on macOS platforms.
|
24
|
+
#
|
25
|
+
# @see PoiseBuildEssential::Resources::PoiseBuildEssential::Resource
|
26
|
+
# @provides poise_build_essential
|
27
|
+
class MacOSX < Base
|
28
|
+
provides(:poise_build_essential, platform_family: 'mac_os_x')
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
# (see Base#install_build_essential)
|
33
|
+
def install_build_essential
|
34
|
+
# This script was graciously borrowed and modified from Tim Sutton's
|
35
|
+
# osx-vm-templates at https://github.com/timsutton/osx-vm-templates/blob/b001475df54a9808d3d56d06e71b8fa3001fff42/scripts/xcode-cli-tools.sh
|
36
|
+
execute 'install XCode Command Line tools' do
|
37
|
+
command <<-EOH
|
38
|
+
# create the placeholder file that's checked by CLI updates' .dist code
|
39
|
+
# in Apple's SUS catalog
|
40
|
+
touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
|
41
|
+
# find the CLI Tools update
|
42
|
+
PROD=$(softwareupdate -l | grep "\*.*Command Line" | head -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | tr -d '\n')
|
43
|
+
# install it
|
44
|
+
softwareupdate -i "$PROD" --verbose
|
45
|
+
# Remove the placeholder to prevent perpetual appearance in the update utility
|
46
|
+
rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
|
47
|
+
EOH
|
48
|
+
not_if 'pkgutil --pkgs=com.apple.pkg.CLTools_Executables'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# (see Base#upgrade_build_essential)
|
53
|
+
def upgrade_build_essential
|
54
|
+
# Make upgrade the same as install on Mac.
|
55
|
+
install_build_essential
|
56
|
+
end
|
57
|
+
|
58
|
+
# (see Base#remove_build_essential)
|
59
|
+
def remove_build_essential
|
60
|
+
# Not sure how to do this, ignoring for now.
|
61
|
+
raise NotImplementedError
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2008-2017, Chef Software, Inc.
|
3
|
+
# Copyright 2017, Noah Kantrowitz
|
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
|
+
require 'poise_build_essential/build_essential_providers/base'
|
19
|
+
|
20
|
+
|
21
|
+
module PoiseBuildEssential
|
22
|
+
module BuildEssentialProviders
|
23
|
+
# A provider for `poise_build_essential` to install on OmniOS platforms.
|
24
|
+
#
|
25
|
+
# @see PoiseBuildEssential::Resources::PoiseBuildEssential::Resource
|
26
|
+
# @provides poise_build_essential
|
27
|
+
class OmniOS < Base
|
28
|
+
provides(:poise_build_essential, platform_family: 'omnios')
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
# (see Base#install_build_essential)
|
33
|
+
def install_build_essential
|
34
|
+
# Per OmniOS documentation, the gcc bin dir isn't in the default
|
35
|
+
# $PATH, so add it to the running process environment.
|
36
|
+
# http://omnios.omniti.com/wiki.php/DevEnv
|
37
|
+
ENV['PATH'] = "#{ENV['PATH']}:/opt/gcc-4.7.2/bin"
|
38
|
+
|
39
|
+
%w{developer/gcc48 developer/object-file developer/linker
|
40
|
+
developer/library/lint developer/build/gnu-make system/header
|
41
|
+
system/library/math/header-math}.map {|name| package name }
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2008-2017, Chef Software, Inc.
|
3
|
+
# Copyright 2017, Noah Kantrowitz
|
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
|
+
require 'poise_build_essential/build_essential_providers/base'
|
19
|
+
|
20
|
+
|
21
|
+
module PoiseBuildEssential
|
22
|
+
module BuildEssentialProviders
|
23
|
+
# A provider for `poise_build_essential` to install on RedHat and Fedora platforms.
|
24
|
+
#
|
25
|
+
# @see PoiseBuildEssential::Resources::PoiseBuildEssential::Resource
|
26
|
+
# @provides poise_build_essential
|
27
|
+
class RHEL < Base
|
28
|
+
provides(:poise_build_essential, platform_family: %w{rhel fedora})
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
# (see Base#install_build_essential)
|
33
|
+
def install_build_essential
|
34
|
+
pkgs = %w{autoconf bison flex gcc gcc-c++ gettext kernel-devel make m4 ncurses-devel patch}
|
35
|
+
# Ensure GCC 4 is available on older pre-6 EL
|
36
|
+
if node['platform_family'] == 'rhel' && node['platform_version'].to_i < 6
|
37
|
+
pkgs += %w{gcc44 gcc44-c++}
|
38
|
+
end
|
39
|
+
package pkgs
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
|