[Python-modules-team] Bug#560631: mpmath: FTBFS: /usr/lib/pymodules/python2.5/py/impl/path/local.py:528: EnvironmentError

Lucas Nussbaum lucas at lucas-nussbaum.net
Fri Dec 11 12:24:36 UTC 2009


Source: mpmath
Version: 0.13-1
Severity: serious
User: debian-qa at lists.debian.org
Usertags: qa-ftbfs-20091210 qa-ftbfs
Justification: FTBFS on amd64

Hi,

During a rebuild of all packages in sid, your package failed to build on
amd64.

Relevant part:
>  /usr/bin/fakeroot debian/rules clean
> dh_testdir
> dh_testroot
> [ ! -d build ] || rm -rf build
> python setup.py clean;
> running clean
> rm -rf doc/build
> find . -name '*\.py[co]' -delete
> dh_clean build-stamp patch-stamp
>  dpkg-source -b mpmath-0.13
> dpkg-source: info: using source format `1.0'
> dpkg-source: info: building mpmath using existing mpmath_0.13.orig.tar.gz
> dpkg-source: info: building mpmath in mpmath_0.13-1.diff.gz
> dpkg-source: info: building mpmath in mpmath_0.13-1.dsc
>  debian/rules build
> dh_testdir
> python setup.py build;
> running build
> running build_py
> creating build
> creating build/lib
> creating build/lib/mpmath
> copying mpmath/__init__.py -> build/lib/mpmath
> copying mpmath/visualization.py -> build/lib/mpmath
> copying mpmath/usertools.py -> build/lib/mpmath
> copying mpmath/settings.py -> build/lib/mpmath
> copying mpmath/quadrature.py -> build/lib/mpmath
> copying mpmath/optimization.py -> build/lib/mpmath
> copying mpmath/odes.py -> build/lib/mpmath
> copying mpmath/mptypes.py -> build/lib/mpmath
> copying mpmath/matrices.py -> build/lib/mpmath
> copying mpmath/linalg.py -> build/lib/mpmath
> copying mpmath/libmpi.py -> build/lib/mpmath
> copying mpmath/libmpf.py -> build/lib/mpmath
> copying mpmath/libmpc.py -> build/lib/mpmath
> copying mpmath/libintmath.py -> build/lib/mpmath
> copying mpmath/libhyper.py -> build/lib/mpmath
> copying mpmath/libelefun.py -> build/lib/mpmath
> copying mpmath/identification.py -> build/lib/mpmath
> copying mpmath/gammazeta.py -> build/lib/mpmath
> copying mpmath/function_docs.py -> build/lib/mpmath
> copying mpmath/functions.py -> build/lib/mpmath
> copying mpmath/elliptic.py -> build/lib/mpmath
> copying mpmath/conftest.py -> build/lib/mpmath
> copying mpmath/calculus.py -> build/lib/mpmath
> creating build/lib/mpmath/tests
> copying mpmath/tests/__init__.py -> build/lib/mpmath/tests
> copying mpmath/tests/torture.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_trig.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_summation.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_special.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_rootfinding.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_quad.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_power.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_pickle.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_ode.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_mpmath.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_matrices.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_linalg.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_interval.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_identify.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_hp.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_gammazeta.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_functions2.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_functions.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_elliptic.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_division.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_diff.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_convert.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_compatibility.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_calculus.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_bitwise.py -> build/lib/mpmath/tests
> copying mpmath/tests/test_basic_ops.py -> build/lib/mpmath/tests
> copying mpmath/tests/runtests.py -> build/lib/mpmath/tests
> python mpmath/tests/runtests.py -strict -py -local
> ============================= test session starts =============================
> python: platform linux2 -- Python 2.5.4 -- pytest-1.1.1
> test object 1: /build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13
> 
> build/lib E
> mpmath/tests/test_basic_ops.py ............
> mpmath/tests/test_bitwise.py ..........
> mpmath/tests/test_calculus.py .......
> mpmath/tests/test_compatibility.py ...
> mpmath/tests/test_convert.py .............
> mpmath/tests/test_diff.py ..
> mpmath/tests/test_division.py .......
> mpmath/tests/test_elliptic.py ...........
> mpmath/tests/test_functions.py ...........................................
> mpmath/tests/test_functions2.py .....................................
> mpmath/tests/test_gammazeta.py ...........................
> mpmath/tests/test_hp.py ...
> mpmath/tests/test_identify.py ..
> mpmath/tests/test_interval.py .........
> mpmath/tests/test_linalg.py ..............
> mpmath/tests/test_matrices.py ........
> mpmath/tests/test_mpmath.py ........
> mpmath/tests/test_ode.py .....
> mpmath/tests/test_pickle.py .
> mpmath/tests/test_power.py ...
> mpmath/tests/test_quad.py .............
> mpmath/tests/test_rootfinding.py .......
> mpmath/tests/test_special.py .....
> mpmath/tests/test_summation.py .....
> mpmath/tests/test_trig.py ...
> 
> =================================== ERRORS ====================================
>  ERROR during collection /build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/build/lib 
> 
> collector = <Directory 'lib'>
> 
>     def pytest_make_collect_report(collector):
>         result = excinfo = None
>         try:
> >           result = collector._memocollect()
> 
> /usr/lib/pymodules/python2.5/py/plugin/pytest_runner.py:31: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = <Directory 'lib'>
> 
>     def _memocollect(self):
>         """ internal helper method to cache results of calling collect(). """
> >       return self._memoizedcall('_collected', self.collect)
> 
> /usr/lib/pymodules/python2.5/py/impl/test/collect.py:300: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = <Directory 'lib'>, attrname = '_collected'
> function = <bound method Directory.collect of <Directory 'lib'>>
> 
>     def _memoizedcall(self, attrname, function):
>         exattrname = "_ex_" + attrname
>         failure = getattr(self, exattrname, None)
>         if failure is not None:
>             py.builtin._reraise(failure[0], failure[1], failure[2])
>         if hasattr(self, attrname):
>             return getattr(self, attrname)
>         try:
> >           res = function()
> 
> /usr/lib/pymodules/python2.5/py/impl/test/collect.py:99: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = <Directory 'lib'>
> 
>     def collect(self):
>         l = self._deprecated_collect()
>         if l is not None:
>             return l
>         l = []
>         for path in self.fspath.listdir(sort=True):
> >           res = self.consider(path)
> 
> /usr/lib/pymodules/python2.5/py/impl/test/collect.py:388: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = <Directory 'lib'>
> path = local('/build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/build/lib/mpmath')
> 
>     def consider(self, path):
> >       if self._ignore(path):
> 
> /usr/lib/pymodules/python2.5/py/impl/test/collect.py:406: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = <Directory 'lib'>
> path = local('/build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/build/lib/mpmath')
> 
>     def _ignore(self, path):
> >       ignore_paths = self.config.getconftest_pathlist("collect_ignore", path=path)
> 
> /usr/lib/pymodules/python2.5/py/impl/test/collect.py:397: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = <py.impl.test.config.Config object at 0x2b6fe12c5b50>
> name = 'collect_ignore'
> path = local('/build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/build/lib/mpmath')
> 
>     def getconftest_pathlist(self, name, path=None):
>         """ return a matching value, which needs to be sequence
>                 of filenames that will be returned as a list of Path
>                 objects (they can be relative to the location
>                 where they were found).
>             """
>         try:
> >           mod, relroots = self._conftest.rget_with_confmod(name, path)
> 
> /usr/lib/pymodules/python2.5/py/impl/test/config.py:170: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = <py.impl.test.conftesthandle.Conftest object at 0x2b6fe12c5bd0>
> name = 'collect_ignore'
> path = local('/build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/build/lib/mpmath')
> 
>     def rget_with_confmod(self, name, path=None):
> >       modules = self.getconftestmodules(path)
> 
> /usr/lib/pymodules/python2.5/py/impl/test/conftesthandle.py:60: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = <py.impl.test.conftesthandle.Conftest object at 0x2b6fe12c5bd0>
> path = local('/build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/build/lib/mpmath')
> 
>     def getconftestmodules(self, path):
>         """ return a list of imported conftest modules for the given path.  """
>         try:
>             clist = self._path2confmods[path]
>         except KeyError:
>             if path is None:
>                 raise ValueError("missing default conftest.")
>             dp = path.dirpath()
>             if dp == path:
>                 return [self.importconftest(defaultconftestpath)]
>             clist = self.getconftestmodules(dp)
>             conftestpath = path.join("conftest.py")
>             if conftestpath.check(file=1):
> >               clist.append(self.importconftest(conftestpath))
> 
> /usr/lib/pymodules/python2.5/py/impl/test/conftesthandle.py:49: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = <py.impl.test.conftesthandle.Conftest object at 0x2b6fe12c5bd0>
> conftestpath = local('/build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/build/lib/mpmath/conftest.py')
> 
>     def importconftest(self, conftestpath):
>         # Using caching here looks redundant since ultimately
>         # sys.modules caches already
>         assert conftestpath.check(), conftestpath
>         if not conftestpath.dirpath('__init__.py').check(file=1):
>             # HACK: we don't want any "globally" imported conftest.py,
>             #       prone to conflicts and subtle problems
>             modname = str(conftestpath).replace('.', conftestpath.sep)
>             mod = conftestpath.pyimport(modname=modname)
>         else:
> >           mod = conftestpath.pyimport()
> 
> /usr/lib/pymodules/python2.5/py/impl/test/conftesthandle.py:79: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> 
> self = local('/build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/build/lib/mpmath/conftest.py')
> modname = 'mpmath.conftest', ensuresyspath = True
> 
>     def pyimport(self, modname=None, ensuresyspath=True):
>         """ return path as an imported python module.
>                 if modname is None, look for the containing package
>                 and construct an according module name.
>                 The module will be put/looked up in sys.modules.
>             """
>         if not self.check():
>             raise py.error.ENOENT(self)
>         #print "trying to import", self
>         pkgpath = None
>         if modname is None:
>             pkgpath = self.pypkgpath()
>             if pkgpath is not None:
>                 if ensuresyspath:
>                     self._prependsyspath(pkgpath.dirpath())
>                 pkg = __import__(pkgpath.basename, None, None, [])
>                 names = self.new(ext='').relto(pkgpath.dirpath())
>                 names = names.split(self.sep)
>                 modname = ".".join(names)
>             else:
>                 # no package scope, still make it possible
>                 if ensuresyspath:
>                     self._prependsyspath(self.dirpath())
>                 modname = self.purebasename
>             mod = __import__(modname, None, None, ['__doc__'])
>             modfile = mod.__file__
>             if modfile[-4:] in ('.pyc', '.pyo'):
>                 modfile = modfile[:-1]
>             elif modfile.endswith('$py.class'):
>                 modfile = modfile[:-9] + '.py'
>             if not self.samefile(modfile):
>                 raise EnvironmentError("mismatch:\n"
>                 "imported module %r\n"
>                 "does not stem from %r\n"
> >               "maybe __init__.py files are missing?" % (mod, str(self)))
> E               EnvironmentError: mismatch:
> E               imported module <module 'mpmath.conftest' from '/build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/mpmath/conftest.py'>
> E               does not stem from '/build/user-mpmath_0.13-1-amd64-gCvO3K/mpmath-0.13/build/lib/mpmath/conftest.py'
> E               maybe __init__.py files are missing?
> 
> /usr/lib/pymodules/python2.5/py/impl/path/local.py:528: EnvironmentError
> ==================== 258 passed, 1 error in 43.41 seconds =====================
> make: *** [build-stamp] Error 1

The full build log is available from:
   http://people.debian.org/~lucas/logs/2009/12/10/mpmath_0.13-1_lsid64.buildlog

A list of current common problems and possible solutions is available at 
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

About the archive rebuild: The rebuild was done on about 50 AMD64 nodes
of the Grid'5000 platform, using a clean chroot.  Internet was not
accessible from the build systems.

-- 
| Lucas Nussbaum
| lucas at lucas-nussbaum.net   http://www.lucas-nussbaum.net/ |
| jabber: lucas at nussbaum.fr             GPG: 1024D/023B3F4F |





More information about the Python-modules-team mailing list