Summary: | [regression] build failure using python 3.4.0m | ||
---|---|---|---|
Product: | pycairo | Reporter: | David Ronis <David.Ronis> |
Component: | general | Assignee: | Steve Chaplin <d74n5pohf9> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | medium | CC: | barry, dhgutteridge, me, vcunat, wrobell |
Version: | unspecified | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
David Ronis
2014-03-28 19:46:22 UTC
We're getting the same on x86-64. http://hydra.nixos.org/build/11113443/nixlog/1/tail-reload Exactly the same build works with python-3.3.5. Ah, LFS patches solved that for me. http://www.linuxfromscratch.org/blfs/view/svn/general/python-modules.html#pycairo We're getting exactly this crash now when trying to build py3cairo on Ubuntu. I filed https://bugs.freedesktop.org/show_bug.cgi?id=91561 which seemed to fix the problem at first, but it's back now, and unless the patches linked in comment 2 have changed or I'm looking in the wrong place, they do not fix the problem (I also have a hard time seeing how they could, but waflib is a mystery to me atm). I've also recently encountered this problem on NetBSD 7.0/i386 with Python 3.5 (3.4 didn't exhibit this issue for me): File "/home/disciple/pkgsrc/graphics/py-cairo3/work/pycairo-1.10.0/.waf3-1.6.4-e3c1e08604b18a10567cfcd2d02eb6e6/waflib/Build.py", line 164, in store cPickle.dump(data,f) AttributeError: Can't pickle local object 'Context.__init__.<locals>.node_class' Checking for library python3.5 in LIBPATH_PYEMBED : *** Error code 2 While it doesn't address the underlying cause, my workaround to get it to build was this: --- .waf3-1.6.4-e3c1e08604b18a10567cfcd2d02eb6e6/waflib/Build.py.orig 2011-03-29 10:52:54.000000000 -0400 +++ .waf3-1.6.4-e3c1e08604b18a10567cfcd2d02eb6e6/waflib/Build.py @@ -162,6 +162,8 @@ try: f=open(db+'.tmp','wb') cPickle.dump(data,f) + except AttributeError as err: + print(format(err)) finally: if f: f.close() This allows the build to complete, while still exposing that there's something quirky happening in the dependent waf code. A comparison of output from 3.4 (no pre-existing issue) and 3.5 (after my patch) shows that the build process is still able to determine what it needs to in order to continue despite the multiple exceptions thrown. Python 3.4.3: ./configure() Checking for 'gcc' (c compiler) : ok Checking for program python : /usr/pkg/bin/python3.4 Checking for python version : (3, 4, 3, 'final', 0) Checking for library python3.4 in LIBPATH_PYEMBED : yes Checking for program python3.4-config : /usr/pkg/bin/python3.4-config Checking for header Python.h : yes Checking for program pkg-config : /home/disciple/pkgsrc/graphics/py-cairo3/work/.tools/bin/pkg-config Checking for 'cairo' >= 1.10.0 : yes Configuration: PREFIX : /usr/pkg LIBDIR : /usr/pkg/lib 'configure' finished successfully (7.213s) Python 3.5.1: ./configure() Checking for 'gcc' (c compiler) : ok Checking for program python : /usr/pkg/bin/python3.5 Checking for python version : (3, 5, 1, 'final', 0) Can't pickle local object 'Context.__init__.<locals>.node_class' Checking for library python3.5 in LIBPATH_PYEMBED : yes Checking for program python3.5-config : /usr/pkg/bin/python3.5-config Can't pickle local object 'Context.__init__.<locals>.node_class' Checking for header Python.h : yes Checking for program pkg-config : /home/disciple/pkgsrc/graphics/py-cairo3/work/.tools/bin/pkg-config Checking for 'cairo' >= 1.10.0 : yes Configuration: PREFIX : /usr/pkg LIBDIR : /usr/pkg/lib 'configure' finished successfully (7.036s) The basic test suite passes for me after building. ======================================================== test session starts ========================================================= platform netbsd7 -- Python 3.5.1, pytest-2.8.3, py-1.4.30, pluggy-0.3.1 rootdir: /home/disciple/pkgsrc/graphics/py-cairo3/work/pycairo-1.10.0/test, inifile: collected 7 items api_test.py ...... examples_test.py . ====================================================== 7 passed in 3.72 seconds ====================================================== So while it's not the most elegant solution, I can get it to build. Whether this workaround would address everyone else's problems I don't know. Someone's just pointed out to me that FreeBSD handled this problem a bit differently, by simply disabling the entire function that's an issue. https://svnweb.freebsd.org/ports/head/graphics/py3-cairo/files/pycairo-1.10.0-waf-py3_5.patch?revision=401900&view=markup (To each their own.) Since 1.11 pycairo uses distutils for building. If there are any problems with the new system please file a bug: https://github.com/pygobject/pycairo/issues |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.