Skip to content

Instantly share code, notes, and snippets.

@2bits
Created June 29, 2012 05:30
Show Gist options
  • Save 2bits/3015993 to your computer and use it in GitHub Desktop.
Save 2bits/3015993 to your computer and use it in GitHub Desktop.
py2cairo HEAD links against the wrong python library on OSX 10.7 or 10.8 when using waf
# project py2cairo (1.10.1) configured on Thu Jun 28 22:27:18 2012 by
# waf 1.6.3 (abi 98, python 20703f0 on darwin)
# using ./waf configure --prefix=/usr/local/Cellar/py2cairo/HEAD --nopyc --nopyo
#
----------------------------------------
Setting top to
/private/tmp/homebrew-py2cairo-HEAD-nIeE
----------------------------------------
Setting out to
/private/tmp/homebrew-py2cairo-HEAD-nIeE/build_directory
----------------------------------------
Checking for 'gcc' (c compiler)
find program=['gcc', 'cc'] paths='' var='CC' -> '/usr/bin/clang'
find program=['ar'] paths=['/usr/local/Cellar/cairo/1.10.2/bin', '/usr/local/bin', '/usr/local/sbin', '/usr/local/share/python', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/X11/bin', '/usr/local/Library/Contributions/cmds ', '/usr/bin'] var='AR' -> '/usr/bin/ar'
ok
----------------------------------------
Checking for program python
/usr/local/bin/python
find program=['python'] paths=['/usr/local/Cellar/cairo/1.10.2/bin', '/usr/local/bin', '/usr/local/sbin', '/usr/local/share/python', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/X11/bin', '/usr/local/Library/Contributions/cmds ', '/usr/bin'] var='PYTHON' -> '/usr/local/bin/python'
['/usr/local/bin/python', '-c', 'import sys\nfor x in sys.version_info: print(str(x))']
out: 2
7
3
final
0
['/usr/local/bin/python', '-c', "from distutils.sysconfig import get_config_var, get_python_lib\n\nprint(repr(get_python_lib(standard_lib=0, prefix='/usr/local/Cellar/py2cairo/HEAD')))"]
out: '/usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages'
['/usr/local/bin/python', '-c', "from distutils.sysconfig import get_config_var, get_python_lib\n\nprint(repr(get_python_lib(plat_specific=1, standard_lib=0, prefix='/usr/local/Cellar/py2cairo/HEAD')))"]
out: '/usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages'
----------------------------------------
Checking for python version
(2, 7, 3, 'final', 0)
['/usr/local/bin/python', '-c', "from distutils.sysconfig import get_config_var\n\nprint(repr(get_config_var('prefix')))\nprint(repr(get_config_var('SO')))\nprint(repr(get_config_var('LDFLAGS')))\nprint(repr(get_config_var('LIBDIR')))\nprint(repr(get_config_var('LIBPL')))\nprint(repr(get_config_var('INCLUDEPY')))\nprint(repr(get_config_var('Py_ENABLE_SHARED')))\nprint(repr(get_config_var('MACOSX_DEPLOYMENT_TARGET')))\nprint(repr(get_config_var('LDSHARED')))\nprint(repr(get_config_var('CFLAGS')))"]
out: '/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7'
'.so'
'-L/usr/local/Cellar/readline/6.2.2/lib -arch x86_64'
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib'
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config'
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7'
0
'10.4'
'/usr/bin/clang -bundle -undefined dynamic_lookup -L/usr/local/Cellar/readline/6.2.2/lib -arch x86_64'
'-fno-strict-aliasing -fno-common -dynamic -Os -w -pipe -march=native -Xclang -target-feature -Xclang -aes -Qunused-arguments -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch x86_64'
Configuration returned from ['/usr/local/bin/python']:
"prefix = '/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7'\nSO = '.so'\nLDFLAGS = '-L/usr/local/Cellar/readline/6.2.2/lib -arch x86_64'\nLIBDIR = '/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib'\nLIBPL = '/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config'\nINCLUDEPY = '/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7'\nPy_ENABLE_SHARED = 0\nMACOSX_DEPLOYMENT_TARGET = '10.4'\nLDSHARED = '/usr/bin/clang -bundle -undefined dynamic_lookup -L/usr/local/Cellar/readline/6.2.2/lib -arch x86_64'\nCFLAGS = '-fno-strict-aliasing -fno-common -dynamic -Os -w -pipe -march=native -Xclang -target-feature -Xclang -aes -Qunused-arguments -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch x86_64'"
# Trying default LIBPATH_PYEMBED: ['/usr/local/Cellar/readline/6.2.2/lib']
----------------------------------------
Checking for library python2.7
==>
int main() {
return 0;
}
<==
[1/2] c: build_directory/.conf_check_2ee89c9f2f9167f7add980c11f5ee094/test.c -> build_directory/.conf_check_2ee89c9f2f9167f7add980c11f5ee094/testbuild/test.c.0.o

['/usr/bin/clang', '-I/usr/local/Cellar/cairo/1.10.2/include', '-isystem', '/usr/local/include', '-Os', '-w', '-pipe', '-march=native', '-Xclang', '-target-feature', '-Xclang', '-aes', '-Qunused-arguments', '-mmacosx-version-min=10.7', '-arch', 'x86_64', '-arch', 'x86_64', '-fno-strict-aliasing', '-fno-common', '-dynamic', '-march=native', '-fwrapv', '-fwrapv', '-arch', 'x86_64', '-DPYTHONDIR="/usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages"', '-DPYTHONARCHDIR="[\'/usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages\']"', '-DNDEBUG', '../test.c', '-c', '-o', 'test.c.0.o']
[2/2] cprogram: build_directory/.conf_check_2ee89c9f2f9167f7add980c11f5ee094/testbuild/test.c.0.o -> build_directory/.conf_check_2ee89c9f2f9167f7add980c11f5ee094/testbuild/testprog

['/usr/bin/clang', 'test.c.0.o', '-o', '/private/tmp/homebrew-py2cairo-HEAD-nIeE/build_directory/.conf_check_2ee89c9f2f9167f7add980c11f5ee094/testbuild/testprog', '-L/usr/local/Cellar/readline/6.2.2/lib', '-L/usr/local/Cellar/readline/6.2.2/lib', '-lpython2.7', '-L/usr/local/Cellar/cairo/1.10.2/lib', '-L/usr/local/lib', '-arch', 'x86_64', '-arch', 'x86_64', '-arch', 'x86_64']
yes
----------------------------------------
Checking for program python2.7-config
/usr/local/bin/python2.7-config
find program=['python2.7-config'] paths=['/usr/local/Cellar/cairo/1.10.2/bin', '/usr/local/bin', '/usr/local/sbin', '/usr/local/share/python', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/X11/bin', '/usr/local/Library/Contributions/cmds ', '/usr/bin'] var='PYTHON_CONFIG' -> '/usr/local/bin/python2.7-config'
['/usr/local/bin/python', '/usr/local/bin/python2.7-config', '--includes']
out: -I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7
Include path for Python extensions (found via python-config --includes): ['/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7']
----------------------------------------
Checking for header Python.h
==>
#ifdef __cplusplus
extern "C" {
#endif
void Py_Initialize(void);
void Py_Finalize(void);
#ifdef __cplusplus
}
#endif
int main()
{
Py_Initialize();
Py_Finalize();
return 0;
}
<==
[1/2] c: build_directory/.conf_check_4655f12356c24d5ecc2679a5b579be45/test.c -> build_directory/.conf_check_4655f12356c24d5ecc2679a5b579be45/testbuild/test.c.0.o

['/usr/bin/clang', '-I/usr/local/Cellar/cairo/1.10.2/include', '-isystem', '/usr/local/include', '-Os', '-w', '-pipe', '-march=native', '-Xclang', '-target-feature', '-Xclang', '-aes', '-Qunused-arguments', '-mmacosx-version-min=10.7', '-arch', 'x86_64', '-arch', 'x86_64', '-fno-strict-aliasing', '-fno-common', '-dynamic', '-march=native', '-fwrapv', '-fwrapv', '-arch', 'x86_64', '-fno-strict-aliasing', '-I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7', '-DPYTHONDIR="/usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages"', '-DPYTHONARCHDIR="[\'/usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages\']"', '-DNDEBUG', '../test.c', '-c', '-o', 'test.c.0.o']
[2/2] cprogram: build_directory/.conf_check_4655f12356c24d5ecc2679a5b579be45/testbuild/test.c.0.o -> build_directory/.conf_check_4655f12356c24d5ecc2679a5b579be45/testbuild/testprog

['/usr/bin/clang', 'test.c.0.o', '-o', '/private/tmp/homebrew-py2cairo-HEAD-nIeE/build_directory/.conf_check_4655f12356c24d5ecc2679a5b579be45/testbuild/testprog', '-L/usr/local/Cellar/readline/6.2.2/lib', '-lpython2.7', '-L/usr/local/Cellar/cairo/1.10.2/lib', '-L/usr/local/lib', '-arch', 'x86_64', '-arch', 'x86_64', '-arch', 'x86_64']
yes
----------------------------------------
Checking for program pkg-config
/usr/local/bin/pkg-config
find program=['pkg-config'] paths=['/usr/local/Cellar/cairo/1.10.2/bin', '/usr/local/bin', '/usr/local/sbin', '/usr/local/share/python', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/X11/bin', '/usr/local/Library/Contributions/cmds ', '/usr/bin'] var='PKGCONFIG' -> '/usr/local/bin/pkg-config'
----------------------------------------
Checking for 'cairo' >= 1.10.2
['/usr/local/bin/pkg-config', '--atleast-version=1.10.2', 'cairo']
['/usr/local/bin/pkg-config', 'cairo', '--cflags', '--libs']
out: -I/usr/local/Cellar/cairo/1.10.2/include/cairo -I/usr/local/Cellar/glib/2.32.3/include/glib-2.0 -I/usr/local/Cellar/glib/2.32.3/lib/glib-2.0/include -I/usr/local/Cellar/gettext/0.18.1.1/include -I/usr/local/Cellar/pixman/0.24.4/include/pixman-1 -I/usr/X11/include -I/usr/X11/include/freetype2 -I/usr/X11/include/libpng15 -L/usr/local/Cellar/cairo/1.10.2/lib -lcairo
yes
----------------------------------------
Checking for 'xpyb' >= 1.3
['/usr/local/bin/pkg-config', '--atleast-version=1.3', 'xpyb']
not found
from /private/tmp/homebrew-py2cairo-HEAD-nIeE: The configuration failed
$ brew install -vd --HEAD py2cairo
==> Cloning git://git.cairographics.org/git/py2cairo
Updating /Library/Caches/Homebrew/py2cairo--git
git config remote.origin.url git://git.cairographics.org/git/py2cairo
git config remote.origin.fetch +refs/heads/master:refs/remotes/origin/master
git fetch origin
git reset --hard origin/HEAD
HEAD is now at 2f1f378 Update waf to check for xpyb.
git checkout-index -a -f --prefix=/private/tmp/homebrew-py2cairo-HEAD-m3uV/
==> ./waf configure --prefix=/usr/local/Cellar/py2cairo/HEAD --nopyc --nopyo
./waf configure --prefix=/usr/local/Cellar/py2cairo/HEAD --nopyc --nopyo
./options()
Setting top to : /private/tmp/homebrew-py2cairo-HEAD-m3uV
Setting out to : /private/tmp/homebrew-py2cairo-HEAD-m3uV/build_directory
./configure()
Checking for 'gcc' (c compiler) : ok
Checking for program python : /usr/local/bin/python
python executable '/usr/local/bin/python' different from sys.executable '/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python'
Checking for python version : (2, 7, 3, 'final', 0)
Checking for library python2.7 : yes
Checking for program python2.7-config : /usr/local/bin/python2.7-config
Checking for header Python.h : yes
Checking for program pkg-config : /usr/local/bin/pkg-config
Checking for 'cairo' >= 1.10.2 : yes
Checking for 'xpyb' >= 1.3 : not found
Configuration:
PREFIX : /usr/local/Cellar/py2cairo/HEAD
LIBDIR : /usr/local/Cellar/py2cairo/HEAD/lib
'configure' finished successfully (0.585s)
==> ./waf install
./waf install
./options()
Waf: Entering directory `/private/tmp/homebrew-py2cairo-HEAD-m3uV/build_directory'
./build()
src/build()
[ 1/12] c: src/cairomodule.c -> build_directory/src/cairomodule.c.1.o
[ 2/12] c: src/context.c -> build_directory/src/context.c.1.o
[ 3/12] c: src/font.c -> build_directory/src/font.c.1.o
[ 4/12] c: src/path.c -> build_directory/src/path.c.1.o
[ 5/12] c: src/pattern.c -> build_directory/src/pattern.c.1.o
[ 6/12] c: src/matrix.c -> build_directory/src/matrix.c.1.o
[ 7/12] c: src/surface.c -> build_directory/src/surface.c.1.o
+ install /usr/local/Cellar/py2cairo/HEAD/include/pycairo/pycairo.h (from src/pycairo.h)
[ 9/12] subst: pycairo.pc.in -> build_directory/pycairo.pc
+ install /usr/local/Cellar/py2cairo/HEAD/lib/pkgconfig/pycairo.pc (from build_directory/pycairo.pc)
[11/12] cshlib: build_directory/src/cairomodule.c.1.o build_directory/src/context.c.1.o build_directory/src/font.c.1.o build_directory/src/path.c.1.o build_directory/src/pattern.c.1.o build_directory/src/matrix.c.1.o build_directory/src/surface.c.1.o -> build_directory/src/_cairo.so
+ install /usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages/cairo/_cairo.so (from build_directory/src/_cairo.so)
Waf: Leaving directory `/private/tmp/homebrew-py2cairo-HEAD-m3uV/build_directory'
+ install /usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages/cairo/__init__.py (from src/__init__.py)
'install' finished successfully (0.402s)
==> Caveats
For non-homebrew Python, you need to amend your PYTHONPATH like so:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
==> Finishing up
ln -s ../Cellar/py2cairo/HEAD/include/pycairo pycairo
ln -s ../../../../Cellar/py2cairo/HEAD/lib/python2.7/site-packages/cairo/_cairo.so _cairo.so
ln -s ../../../../Cellar/py2cairo/HEAD/lib/python2.7/site-packages/cairo/__init__.py __init__.py
ln -s ../../Cellar/py2cairo/HEAD/lib/pkgconfig/pycairo.pc pycairo.pc
ln -s ../../Cellar/py2cairo/HEAD py2cairo
==> Summary
/usr/local/Cellar/py2cairo/HEAD: 8 files, 132K, built in 4 seconds
$ otool -L /usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages/cairo/_cairo.so
/usr/local/Cellar/py2cairo/HEAD/lib/python2.7/site-packages/cairo/_cairo.so:
/usr/local/lib/python2.7/site-packages/cairo/_cairo.so (compatibility version 0.0.0, current version 0.0.0)
/usr/local/Cellar/cairo/1.10.2/lib/libcairo.2.dylib (compatibility version 11003.0.0, current version 11003.2.0)
/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.1)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1094.0.0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment