aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authornibbles 2bits2012-06-20 11:39:24 -0700
committerJack Nagel2012-07-07 02:53:05 -0500
commit26c0d8f475daef5f1ba60625e7fbdad3f002cc78 (patch)
treea6534010cfcd5593858a82d6a5f255046474817a /Library
parente3cbfd8699a33275c8aecd63640cb0627938fd85 (diff)
downloadhomebrew-26c0d8f475daef5f1ba60625e7fbdad3f002cc78.tar.bz2
py2cairo: fix miscompile on Lion. Use LINKFLAG.
waf miscompiles py2cairo on Lion, linking the wrong Python Library when HB Python is installed. So add a LINKFLAG that sets the path to the real python Library as determined by `python-prefix`, where it gets used at link time and fixes the problem where you can't import cairo into Python. Also add a `fails_with :llvm` block to work around a build error where waf tries to optimize with `-march=native` which llvm doesn't accept. https://bugs.freedesktop.org/show_bug.cgi?id=51544 Tested on Lion and SL using system Python, HB framework Python, HB non-framework Python with clang building both native and universal binaries, by importing the cairo module into Python. Rebased on Homebrew 0.9.2 Fixes #12893 Closes #12943. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library')
-rw-r--r--Library/Formula/py2cairo.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/Library/Formula/py2cairo.rb b/Library/Formula/py2cairo.rb
index 93bbdf30c..c7b9e52a3 100644
--- a/Library/Formula/py2cairo.rb
+++ b/Library/Formula/py2cairo.rb
@@ -8,6 +8,11 @@ class Py2cairo < Formula
depends_on 'cairo'
depends_on :x11
+ fails_with :llvm do
+ build 2336
+ cause "The build script will set -march=native which llvm can't accept"
+ end
+
def options
[['--universal', 'Build universal binaries']]
end
@@ -22,7 +27,24 @@ class Py2cairo < Formula
end
end
+ # waf miscompiles py2cairo on Lion, linking the wrong Python Library when
+ # HB Python is installed. So add a LINKFLAG that sets the path to the real
+ # python Library as determined by `python-prefix`, where it gets used at
+ # link time and fixes the problem where you can't import cairo into Python.
+ # https://github.com/mxcl/homebrew/issues/12893
+ # https://bugs.freedesktop.org/show_bug.cgi?id=51544
+ ENV['LINKFLAGS'] = "-L#{%x(python-config --prefix).chomp}/lib"
system "./waf", "configure", "--prefix=#{prefix}", "--nopyc", "--nopyo"
system "./waf", "install"
end
+
+ def caveats; <<-EOS.undent
+ For non-homebrew Python, you need to amend your PYTHONPATH like so:
+ export PYTHONPATH=#{HOMEBREW_PREFIX}/lib/#{which_python}/site-packages:$PYTHONPATH
+ EOS
+ end
+
+ def which_python
+ "python" + `python -c 'import sys;print(sys.version[:3])'`.strip
+ end
end