Weidong Shao 486c596323 Replace cookbooks for IceHouse release
Change-Id: Ibb6bdd3ed7795b86f773f9cb6ce1dfffb9b79faf
2014-08-07 08:36:02 +00:00

69 lines
2.5 KiB
Ruby

#
# Author:: Seth Chisamore <schisamo@opscode.com>
# Cookbook Name:: python
# Recipe:: source
#
# Copyright 2011, Opscode, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
include_recipe "build-essential"
configure_options = node['python']['configure_options'].join(" ")
make_options = node['python']['make_options'].join(" ")
packages = value_for_platform_family(
"rhel" => ["openssl-devel","bzip2-devel","zlib-devel","expat-devel","db4-devel","sqlite-devel","ncurses-devel","readline-devel"],
"default" => ["libssl-dev","libbz2-dev","zlib1g-dev","libexpat1-dev","libdb-dev","libsqlite3-dev","libncursesw5-dev","libncurses5-dev","libreadline-dev","libsasl2-dev", "libgdbm-dev"]
)
#
packages.each do |dev_pkg|
package dev_pkg
end
version = node['python']['version']
install_path = "#{node['python']['prefix_dir']}/bin/python#{version.split(/(^\d+\.\d+)/)[1]}"
remote_file "#{Chef::Config[:file_cache_path]}/Python-#{version}.tgz" do
source "#{node['python']['url']}/#{version}/Python-#{version}.tgz"
checksum node['python']['checksum']
mode "0644"
not_if { ::File.exists?(install_path) }
end
bash "build-and-install-python" do
cwd Chef::Config[:file_cache_path]
code <<-EOF
tar -zxvf Python-#{version}.tgz
(cd Python-#{version} && ./configure #{configure_options})
(cd Python-#{version} && make && make #{make_options})
EOF
environment({
"LDFLAGS" => "-L#{node['python']['prefix_dir']} -L/usr/lib",
"CPPFLAGS" => "-I#{node['python']['prefix_dir']} -I/usr/lib",
"CXXFLAGS" => "-I#{node['python']['prefix_dir']} -I/usr/lib",
"CFLAGS" => "-I#{node['python']['prefix_dir']} -I/usr/lib"
}) if platform?("ubuntu") && node['platform_version'].to_f >= 12.04
not_if { ::File.exists?(install_path) }
end
# Link install as the default python, to support Python 3.x
# Otherwise the pip and virtualenv recipes won't work properly
link node['python']['binary'] do
to install_path
not_if { ::File.exists?(node['python']['binary']) }
end