From: Ian T. <ian...@gm...> - 2013-10-28 15:49:45
|
On 26 October 2013 09:02, Nils Wagner <ni...@go...> wrote: > The problem persists in master. > > > > On Fri, Aug 30, 2013 at 7:39 PM, Nils Wagner <ni...@go...>wrote: > >> You are right. >> The first one fails, the second works for me. >> >> >> Nils >> >> >> >> On Fri, Aug 30, 2013 at 7:20 PM, Michael Droettboom <md...@st...>wrote: >> >>> I wonder if it's commit 6b827cbf. >>> >>> Can you do: >>> >>> git checkout 6b827cbf >>> python setup.py build >>> # confirm it fails >>> >>> git checkout 6b827cbf^ >>> python setup.py build >>> # Does this work? >>> >>> Mike >>> >>> >>> On 08/30/2013 01:06 PM, Nils Wagner wrote: >>> >>> Hi Michael, >>> >>> Thank you for your note. >>> If I remember correctly I was able to build matplotlib a week ago. >>> I am using opensuse12.3 >>> >>> Nils >>> >>> rpm -qi python-cxx >>> Name : python-cxx >>> Version : 6.2.3 >>> Release : 2.2 >>> Architecture: noarch >>> Install Date: Sa 27 Jul 2013 15:48:45 CEST >>> Group : Development/Languages/Python >>> Size : 9783 >>> License : GPL >>> Signature : RSA/SHA1, Mo 22 Jul 2013 20:26:22 CEST, Key ID >>> 45a1d0671abd1afb >>> Source RPM : python-cxx-6.2.3-2.2.src.rpm >>> Build Date : Mo 22 Jul 2013 15:27:08 CEST >>> Build Host : swkj07 >>> Relocations : (not relocatable) >>> Packager : pa...@li... >>> Vendor : http://packman.links2linux.de >>> URL : http://CXX.sourceforge.net/ >>> Summary : Write Python extensions in C++ >>> Description : >>> PyCXX is a set of classes to help create extensions of Python in the C >>> language. The first part encapsulates the Python C API taking care of >>> exceptions and ref counting. The second part supports the building of >>> Python >>> extension modules in C++. >>> Distribution: Extra / openSUSE_12.3 >>> >>> >>> >>> On Fri, Aug 30, 2013 at 6:46 PM, Michael Droettboom <md...@st...>wrote: >>> >>>> It looks like a version mismatch with PyCXX. Was it recently updated >>>> or changed? What version of PyCXX do you have? What was the last version >>>> of matplotlib that worked for you? >>>> >>>> You can force matplotlib to use its local copy of PyCXX by uninstalling >>>> PyCXX, or adding the following lines to the top of PyCXX::check in >>>> setupext.py: >>>> >>>> self.__class__.found_external = False >>>> return "Couldn't import. Using local copy." >>>> >>>> (But really, we should update setupext so users can specify the local >>>> override in setup.cfg). >>>> >>>> Mike >>>> >>>> >>>> On 08/30/2013 12:35 PM, Nils Wagner wrote: >>>> >>>> Hi all, >>>> >>>> I cannot build the latest matplotlib from git. The build log is >>>> attached. >>>> >>>> Nils >>>> >>>> I have had a quick look at this and it seems the problem lies in setupext.py. CXX.check() contains return self._check_for_pkg_config('PyCXX', 'CXX/Extensions.hxx', min_version='6.2.4') which requires version 6.2.4 or later of CXX. Nils has 6.2.3 and so this check should fail and matplotlib should fall back to using the local copy of CXX. SetupPackage._check_for_pkg_config() does check min_version if CXX is installed using pkg-config, but if it is not then min_version is ignored as the function raises a CheckFailed error before min_version is considered. CXX.check() catches this error and uses the system-installed CXX regardless of its version. To check the CXX version we probably need to look in CXX/Version.hxx. I am not sure how to proceed; do you have any ideas Mike? Nils, as a stopgap you could either remove your python-cxx and python-cxx-devel rpms if you don't need them for anything else, or upgrade them to 6.2.4. There is a 6.2.4 on rpm.pbone.net even though there isn't one on packman.links2linux.de. Ian |