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 Homebrew/homebrew#12893 Closes Homebrew/homebrew#12943. Signed-off-by: Jack Nagel <jacknagel@gmail.com>master
parent
ba9091bec2
commit
80caee1fa5
|
@ -8,6 +8,11 @@ class Py2cairo < Formula
|
||||||
depends_on 'cairo'
|
depends_on 'cairo'
|
||||||
depends_on :x11
|
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
|
def options
|
||||||
[['--universal', 'Build universal binaries']]
|
[['--universal', 'Build universal binaries']]
|
||||||
end
|
end
|
||||||
|
@ -22,7 +27,24 @@ class Py2cairo < Formula
|
||||||
end
|
end
|
||||||
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", "configure", "--prefix=#{prefix}", "--nopyc", "--nopyo"
|
||||||
system "./waf", "install"
|
system "./waf", "install"
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Reference in New Issue