From 26c0d8f475daef5f1ba60625e7fbdad3f002cc78 Mon Sep 17 00:00:00 2001 From: nibbles 2bits Date: Wed, 20 Jun 2012 11:39:24 -0700 Subject: 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 --- Library/Formula/py2cairo.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'Library') 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 -- cgit v1.2.3