ironport/shrapnel

Python 3.4 / Cython 0.23 build failure (ubuntu-14.04)

Opened this issue · 1 comments

Hey Folks,

I'm having a build issue when trying to compile coro. Pretty sure I've seen this error before in other bug threads, as Mark said it is related to general Python 3 support. What is the progress on that? I'd really like to try shrapnel, but Python 3 is what we're using with all current projects.

vagrant@vagrant-ubuntu-trusty-64:~/shrapnel$ python3 setup.py build
detected NPN-capable OpenSSL
running build
running build_py
file backdoor.py (for module backdoor) not found
file coro_process.py (for module coro_process) not found
file coro_unittest.py (for module coro_unittest) not found
file backdoor.py (for module backdoor) not found
file coro_process.py (for module coro_process) not found
file coro_unittest.py (for module coro_unittest) not found
running build_ext
skipping 'coro/event_queue.cpp' Cython extension (up-to-date)
cythoning coro/_coro.pyx to coro/_coro.c

Error compiling Cython file:
------------------------------------------------------------
...
                    )
            else:
                raise ValueError ("not a valid IPv6 address")

    cdef parse_address_unix (self, bytes address, sockaddr_storage * sa, socklen_t * addr_len, bint resolve):
        cdef sockaddr_un * sun
            ^
------------------------------------------------------------

coro/socket.pyx:858:13: 'sockaddr_un' is not a type identifier

Error compiling Cython file:
------------------------------------------------------------
...

        :raises ValueError: The value could not be parsed.
        """
        cdef sockaddr_in * sin
        cdef sockaddr_in6 *sin6
        cdef sockaddr_un * sun
            ^
------------------------------------------------------------

coro/socket.pyx:888:13: 'sockaddr_un' is not a type identifier

Error compiling Cython file:
------------------------------------------------------------
...
            string for UNIX-domain sockets.  Returns None for unknown socket
            domains.
        """
        cdef sockaddr_in * sin
        cdef sockaddr_in6 *sin6
        cdef sockaddr_un * sun
            ^
------------------------------------------------------------

coro/socket.pyx:912:13: 'sockaddr_un' is not a type identifier

Error compiling Cython file:
------------------------------------------------------------
...
    cdef parse_address_unix (self, bytes address, sockaddr_storage * sa, socklen_t * addr_len, bint resolve):
        cdef sockaddr_un * sun
        # AF_UNIX
        # +1 to grab the NUL char
        l = len (address) + 1
        sun = <sockaddr_un *>sa
              ^
------------------------------------------------------------

coro/socket.pyx:862:15: 'sockaddr_un' is not a type identifier

Error compiling Cython file:
------------------------------------------------------------
...
        sun.sun_family = AF_UNIX
        IF UNAME_SYSNAME == "FreeBSD":
            sun.sun_len = sizeof (sockaddr_un)
        if (l < sizeof (sun.sun_path)):
            memcpy (<void *>sun.sun_path, <void*><char*>address, l)
            addr_len[0] = sizeof (sockaddr_un)
                                            ^
------------------------------------------------------------

coro/socket.pyx:868:45: undeclared name not builtin: sockaddr_un

Error compiling Cython file:
------------------------------------------------------------
...
            return (ascii_buf, ntohs(sin.sin_port))
        elif (<sockaddr_in6 *>sa).sin6_family == AF_INET6:
            sin6 = <sockaddr_in6 *> sa
            inet_ntop (AF_INET6, &(sin6.sin6_addr), ascii_buf, INET6_ADDRSTRLEN)
            return (ascii_buf, ntohs(sin6.sin6_port))
        elif (<sockaddr_un *>sa).sun_family == AF_UNIX:
              ^
------------------------------------------------------------

coro/socket.pyx:923:15: 'sockaddr_un' is not a type identifier

Error compiling Cython file:
------------------------------------------------------------
...
        elif (<sockaddr_in6 *>sa).sin6_family == AF_INET6:
            sin6 = <sockaddr_in6 *> sa
            inet_ntop (AF_INET6, &(sin6.sin6_addr), ascii_buf, INET6_ADDRSTRLEN)
            return (ascii_buf, ntohs(sin6.sin6_port))
        elif (<sockaddr_un *>sa).sun_family == AF_UNIX:
            sun = <sockaddr_un *>sa
                  ^
------------------------------------------------------------

coro/socket.pyx:924:19: 'sockaddr_un' is not a type identifier
building 'coro._coro' extension
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -I/home/vagrant/shrapnel/. -I/home/vagrant/shrapnel/include -I/usr/include/python3.4m -c coro/_coro.c -o build/temp.linux-x86_64-3.4/coro/_coro.o -Wno-unused-function
coro/_coro.c:1:2: error: #error Do not use this file, it is the result of a failed Cython compilation.
 #error Do not use this file, it is the result of a failed Cython compilation.
  ^
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
cjrh commented

Exactly the same error on py35, Cython 0.23, OS X 10.11.4.