[Debian-astro-maintainers] Bug#905615: healpy: FTBFS with python 3.7

Aurelien Jarno aurel32 at debian.org
Tue Aug 7 09:11:24 BST 2018


Source: healpy
Version: 1.11.0-1
Severity: serious
Justification: fails to build from source (but built successfully in the past)

healpy fails to build in the python 3.7 build. From the build log:

...

| x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -flto -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/healpix_cxx -I/usr/include/python3.7m -I/usr/lib/python3/dist-packages/numpy/core/include -c healpy/src/_query_disc.cpp -o build/temp.linux-amd64-3.7/healpy/src/_query_disc.o -fopenmp
| In file included from /usr/include/python3.7m/numpy/ndarraytypes.h:1816:0,
|                  from /usr/include/python3.7m/numpy/ndarrayobject.h:18,
|                  from /usr/include/python3.7m/numpy/arrayobject.h:4,
|                  from healpy/src/_query_disc.cpp:449:
| /usr/include/python3.7m/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
|  #warning "Using deprecated NumPy API, disable it by " \
|   ^~~~~~~
| healpy/src/_query_disc.cpp: In function 'PyObject* __Pyx_PyCFunction_FastCall(PyObject*, PyObject**, Py_ssize_t)':
| healpy/src/_query_disc.cpp:9364:69: error: too many arguments to function
|      return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
|                                                                      ^
| healpy/src/_query_disc.cpp: In function 'void __Pyx__ExceptionSave(PyThreadState*, PyObject**, PyObject**, PyObject**)':
| healpy/src/_query_disc.cpp:9676:21: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
|      *type = tstate->exc_type;
|                      ^~~~~~~~
|                      curexc_type
| healpy/src/_query_disc.cpp:9677:22: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
|      *value = tstate->exc_value;
|                       ^~~~~~~~~
|                       curexc_value
| healpy/src/_query_disc.cpp:9678:19: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
|      *tb = tstate->exc_traceback;
|                    ^~~~~~~~~~~~~
|                    curexc_traceback
| healpy/src/_query_disc.cpp: In function 'void __Pyx__ExceptionReset(PyThreadState*, PyObject*, PyObject*, PyObject*)':
| healpy/src/_query_disc.cpp:9685:24: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
|      tmp_type = tstate->exc_type;
|                         ^~~~~~~~
|                         curexc_type
| healpy/src/_query_disc.cpp:9686:25: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
|      tmp_value = tstate->exc_value;
|                          ^~~~~~~~~
|                          curexc_value
| healpy/src/_query_disc.cpp:9687:22: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
|      tmp_tb = tstate->exc_traceback;
|                       ^~~~~~~~~~~~~
|                       curexc_traceback
| healpy/src/_query_disc.cpp:9688:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
|      tstate->exc_type = type;
|              ^~~~~~~~
|              curexc_type
| healpy/src/_query_disc.cpp:9689:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
|      tstate->exc_value = value;
|              ^~~~~~~~~
|              curexc_value
| healpy/src/_query_disc.cpp:9690:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
|      tstate->exc_traceback = tb;
|              ^~~~~~~~~~~~~
|              curexc_traceback
| healpy/src/_query_disc.cpp: In function 'int __Pyx__GetException(PyThreadState*, PyObject**, PyObject**, PyObject**)':
| healpy/src/_query_disc.cpp:9745:24: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
|      tmp_type = tstate->exc_type;
|                         ^~~~~~~~
|                         curexc_type
| healpy/src/_query_disc.cpp:9746:25: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
|      tmp_value = tstate->exc_value;
|                          ^~~~~~~~~
|                          curexc_value
| healpy/src/_query_disc.cpp:9747:22: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
|      tmp_tb = tstate->exc_traceback;
|                       ^~~~~~~~~~~~~
|                       curexc_traceback
| healpy/src/_query_disc.cpp:9748:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_type'; did you mean 'curexc_type'?
|      tstate->exc_type = local_type;
|              ^~~~~~~~
|              curexc_type
| healpy/src/_query_disc.cpp:9749:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_value'; did you mean 'curexc_value'?
|      tstate->exc_value = local_value;
|              ^~~~~~~~~
|              curexc_value
| healpy/src/_query_disc.cpp:9750:13: error: 'PyThreadState {aka struct _ts}' has no member named 'exc_traceback'; did you mean 'curexc_traceback'?
|      tstate->exc_traceback = local_tb;
|              ^~~~~~~~~~~~~
|              curexc_traceback
| /usr/lib/python3.7/distutils/extension.py:131: UserWarning: Unknown Extension options: 'cython_directives'
|   warnings.warn(msg)
| error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
| E: pybuild pybuild:336: build: plugin distutils failed with: exit code=1: /usr/bin/python3.7 setup.py build 
| dh_auto_build: pybuild --build --test-pytest -i python{version} -p "3.7 3.6" returned exit code 13
| make: *** [debian/rules:27: build] Error 25
| dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

A full build log is available there:
https://tests.reproducible-builds.org/debian/rbuild/unstable/amd64/healpy_1.11.0-1.rbuild.log.gz

It seems that the issue is due to an incompatibility of the cython code
with Python 3.7: https://github.com/cython/cython/issues/1955

The package should probably build-depends on cython and cython3 and
regenerate all cython generated files during the build.

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.17.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE= (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled



More information about the Debian-astro-maintainers mailing list