gallantlab / cottoncandy

sugar for s3
http://gallantlab.github.io/cottoncandy/
BSD 2-Clause "Simplified" License
33 stars 17 forks source link

pycrypto dependency breaks install on Python >= 3.11 #90

Open kroq-gar78 opened 1 week ago

kroq-gar78 commented 1 week ago

This fails in a fresh Docker python:3.12-bookworm container (with similar errors in 3.11-bookworm):

$ docker run -it --rm python:3.12-bookworm pip3 install cottoncandy

[...]

Building wheels for collected packages: pycrypto, PyDrive
  Building wheel for pycrypto (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for pycrypto (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [71 lines of output]
      [...]
      config.status: creating src/config.h
      In file included from /usr/local/include/python3.12/Python.h:87,
                       from src/_fastmath.c:31:
      /usr/local/include/python3.12/cpython/pytime.h:216:60: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
        216 | PyAPI_FUNC(int) _PyTime_FromTimespec(_PyTime_t *tp, struct timespec *ts);
            |                                                            ^~~~~~~~
      /usr/local/include/python3.12/cpython/pytime.h:221:56: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
        221 | PyAPI_FUNC(int) _PyTime_AsTimespec(_PyTime_t t, struct timespec *ts);
            |                                                        ^~~~~~~~
      /usr/local/include/python3.12/cpython/pytime.h:225:63: warning: ‘struct timespec’ declared inside parameter list will not be visible outside of this definition or declaration
        225 | PyAPI_FUNC(void) _PyTime_AsTimespec_clamp(_PyTime_t t, struct timespec *ts);
            |                                                               ^~~~~~~~
      src/_fastmath.c:33:10: fatal error: longintrepr.h: No such file or directory
         33 | #include <longintrepr.h>                                /* for conversions */
            |          ^~~~~~~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pycrypto

  [...]

PyCrypto's homepage says the package has been unmaintained since 2013 and recommends PyCryptodome as a mostly drop-in replacement.