From cd62b250a23ad1ede8d16e2b44c612020d68384f Mon Sep 17 00:00:00 2001
From: Alex Mace
Date: Thu, 30 Oct 2014 11:55:59 +0000
Subject: [PATCH 1/3] Added support for --allow-external on pip
---
manifests/pip.pp | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/manifests/pip.pp b/manifests/pip.pp
index bbff572..340d0d9 100644
--- a/manifests/pip.pp
+++ b/manifests/pip.pp
@@ -27,7 +27,8 @@
define python::pip (
$virtualenv,
$ensure = present,
- $proxy = false
+ $proxy = false,
+ $allow_external = false
) {
require python
@@ -46,10 +47,15 @@
default => "^${name}==",
}
+ $allow_external_flag = $allow_external ? {
+ false => '',
+ default => "--allow-external ${name}",
+ }
+
case $ensure {
present: {
exec { "pip_install_${name}":
- command => "${virtualenv}/bin/pip install ${proxy_flag} ${name}",
+ command => "${virtualenv}/bin/pip install ${proxy_flag} ${allow_external_flag} ${name}",
unless => "${virtualenv}/bin/pip freeze | grep -i -e ${grep_regex}",
}
}
From fd186dc6bc24fce114b9977f28722c9498ac0edd Mon Sep 17 00:00:00 2001
From: Alex Mace
Date: Thu, 30 Oct 2014 12:00:37 +0000
Subject: [PATCH 2/3] Added support for --allow-unverified on pip
---
manifests/pip.pp | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/manifests/pip.pp b/manifests/pip.pp
index 340d0d9..eeae501 100644
--- a/manifests/pip.pp
+++ b/manifests/pip.pp
@@ -28,7 +28,8 @@
$virtualenv,
$ensure = present,
$proxy = false,
- $allow_external = false
+ $allow_external = false,
+ $allow_unverified = false,
) {
require python
@@ -52,10 +53,15 @@
default => "--allow-external ${name}",
}
+ $allow_unverified_flag = $allow_unverified ? {
+ false => '',
+ default => "--allow-unverified ${name}",
+ }
+
case $ensure {
present: {
exec { "pip_install_${name}":
- command => "${virtualenv}/bin/pip install ${proxy_flag} ${allow_external_flag} ${name}",
+ command => "${virtualenv}/bin/pip install ${proxy_flag} ${allow_external_flag} ${allow_unverified_flag} ${name}",
unless => "${virtualenv}/bin/pip freeze | grep -i -e ${grep_regex}",
}
}
From b792c641d8fcaf2237a4f5edf4ec8eaebf79b852 Mon Sep 17 00:00:00 2001
From: Alex Mace
Date: Fri, 2 Jan 2015 17:00:00 +0000
Subject: [PATCH 3/3] Updated to Python 2.7.9
---
files/brews/python.rb | 64 +++++++++++--------------------------
manifests/init.pp | 2 +-
spec/classes/python_spec.rb | 2 +-
3 files changed, 21 insertions(+), 47 deletions(-)
diff --git a/files/brews/python.rb b/files/brews/python.rb
index ae893a6..8b1e11d 100644
--- a/files/brews/python.rb
+++ b/files/brews/python.rb
@@ -1,24 +1,25 @@
require "formula"
class Python < Formula
- homepage "http://www.python.org"
- head "http://hg.python.org/cpython", :using => :hg, :branch => "2.7"
- url "http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz"
- sha1 "511960dd78451a06c9df76509635aeec05b2051a"
- version '2.7.8-boxen1'
+ homepage "https://www.python.org"
+ head "https://hg.python.org/cpython", :using => :hg, :branch => "2.7"
+ url "https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz"
+ sha1 "7a191bcccb598ccbf2fa6a0edce24a97df3fc0ad"
+ version '2.7.9-boxen1'
bottle do
- revision 2
- sha1 "f1244c117036a733742f128f8a168dcb0568675d" => :mavericks
- sha1 "41f27fc515410ff728316e994be6f471520e5c90" => :mountain_lion
- sha1 "cab018e86b60e5a8a8115581a2aa3390b18b3080" => :lion
+ revision 7
+ sha1 "a81d7c350cebe4e50cfaa7bcfebec8174fc0d83a" => :yosemite
+ sha1 "f25fcc726f9fee63d9450da2788c71d76a4337b3" => :mavericks
+ sha1 "903b4cd31563b3bbf6beea3ecce95ae35689d5e1" => :mountain_lion
end
+ # Please don't add a wide/ucs4 option as it won't be accepted.
+ # More details in: https://github.com/Homebrew/homebrew/pull/32368
option :universal
option "quicktest", "Run `make quicktest` after the build (for devs; may fail)"
option "with-brewed-tk", "Use Homebrew's Tk (has optional Cocoa and threads support)"
option "with-poll", "Enable select.poll, which is not fully implemented on OS X (http://bugs.python.org/issue5154)"
- option "with-dtrace", "Experimental DTrace support (http://bugs.python.org/issue13405)"
depends_on "pkg-config" => :build
depends_on "readline" => :recommended
@@ -32,13 +33,13 @@ class Python < Formula
skip_clean "bin/easy_install", "bin/easy_install-2.7"
resource "setuptools" do
- url "https://pypi.python.org/packages/source/s/setuptools/setuptools-5.4.2.tar.gz"
- sha1 "a681ba56c30c0eb66528215842d3e3fcb5157614"
+ url "https://pypi.python.org/packages/source/s/setuptools/setuptools-9.1.tar.gz"
+ sha1 "b068a670c84df7b961730c6a0d00cd06c7b767f0"
end
resource "pip" do
- url "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz"
- sha1 "e6cd9e6f2fd8d28c9976313632ef8aa8ac31249e"
+ url "https://pypi.python.org/packages/source/p/pip/pip-6.0.3.tar.gz"
+ sha1 "67d4affd83ee2f3514ac1386bee59f10f672517c"
end
# Patch for pyport.h macro issue
@@ -91,13 +92,8 @@ def install
]
args << "--without-gcc" if ENV.compiler == :clang
- args << "--with-dtrace" if build.with? "dtrace"
- if superenv?
- distutils_fix_superenv(args)
- else
- distutils_fix_stdenv
- end
+ distutils_fix_superenv(args)
if build.universal?
ENV.universal_binary
@@ -234,30 +230,7 @@ def distutils_fix_superenv(args)
# superenv handles that cc finds includes/libs!
inreplace "setup.py",
"do_readline = self.compiler.find_library_file(lib_dirs, 'readline')",
- "do_readline = '#{HOMEBREW_PREFIX}/opt/readline/lib/libhistory.dylib'"
- end
-
- def distutils_fix_stdenv
- # Python scans all "-I" dirs but not "-isysroot", so we add
- # the needed includes with "-I" here to avoid this err:
- # building dbm using ndbm
- # error: /usr/include/zlib.h: No such file or directory
- ENV.append "CPPFLAGS", "-I#{MacOS.sdk_path}/usr/include" unless MacOS::CLT.installed?
-
- # Don't use optimizations other than "-Os" here, because Python's distutils
- # remembers (hint: `python-config --cflags`) and reuses them for C
- # extensions which can break software (such as scipy 0.11 fails when
- # "-msse4" is present.)
- ENV.minimal_optimization
-
- # We need to enable warnings because the configure.in uses -Werror to detect
- # "whether gcc supports ParseTuple" (https://github.com/Homebrew/homebrew/issues/12194)
- ENV.enable_warnings
- if ENV.compiler == :clang
- # http://docs.python.org/devguide/setup.html#id8 suggests to disable some Warnings.
- ENV.append_to_cflags "-Wno-unused-value"
- ENV.append_to_cflags "-Wno-empty-body"
- end
+ "do_readline = '#{Formula["readline"].opt_lib}/libhistory.dylib'"
end
def sitecustomize
@@ -321,7 +294,7 @@ def caveats; <<-EOS.undent
They will install into the site-package directory
#{site_packages}
- See: https://github.com/Homebrew/homebrew/wiki/Homebrew-and-Python
+ See: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Homebrew-and-Python.md
EOS
end
@@ -331,6 +304,7 @@ def caveats; <<-EOS.undent
system "#{bin}/python", "-c", "import sqlite3"
# Check if some other modules import. Then the linked libs are working.
system "#{bin}/python", "-c", "import Tkinter; root = Tkinter.Tk()"
+ system bin/"pip", "list"
end
end
diff --git a/manifests/init.pp b/manifests/init.pp
index dea0931..525d0ee 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -10,7 +10,7 @@
include xquartz
include python::config
- $version = '2.7.8-boxen1'
+ $version = '2.7.9-boxen1'
homebrew::formula { 'python':
before => Package['boxen/brews/python']
diff --git a/spec/classes/python_spec.rb b/spec/classes/python_spec.rb
index e4a8ea0..036fa63 100644
--- a/spec/classes/python_spec.rb
+++ b/spec/classes/python_spec.rb
@@ -15,7 +15,7 @@
should contain_homebrew__formula('python').with(
:before => 'Package[boxen/brews/python]'
)
- should contain_package('boxen/brews/python').with_ensure('2.7.8-boxen1')
+ should contain_package('boxen/brews/python').with_ensure('2.7.9-boxen1')
should contain_file('/opt/boxen/env.d/python.sh').with(
:source => 'puppet:///modules/python/python.sh'