jwilk-archive/python-djvulibre

Failed Cython version check on Arch Linux in v0.8

Closed this issue · 4 comments

Trying to build python-djvulibre 0.8 in Arch Linux leads to the following error:

==> Starting build()...
running build
running build_py
running build_ext
cythoning 'djvu.sexpr' extension
generating build/temp.linux-x86_64-2.7/src/sexpr.c from djvu/sexpr.pyx, build/temp.linux-x86_64-2.7/src/config.pxi, djvu/common.pxi, djvu/sexpr.pxd, djvu/decode.pxd
Traceback (most recent call last):
  File "setup.py", line 300, in <module>
    distutils.core.setup(**setup_params)
  File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/lib/python2.7/distutils/command/build.py", line 127, in run
    self.run_command(cmd_name)
  File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "setup.py", line 202, in run
    distutils.command.build_ext.build_ext.run(self)
  File "/usr/lib/python2.7/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
  File "setup.py", line 207, in build_extensions
    ext.sources = list(self.cython_sources(ext))
  File "setup.py", line 233, in cython_sources
    self.make_file(depends, target, build_c, [source, target])
  File "/usr/lib/python2.7/distutils/cmd.py", line 422, in make_file
    self.execute(func, args, exec_msg, level)
  File "/usr/lib/python2.7/distutils/cmd.py", line 349, in execute
    util.execute(func, args, msg, dry_run=self.dry_run)
  File "/usr/lib/python2.7/distutils/util.py", line 309, in execute
    func(*args)
  File "setup.py", line 226, in build_c
    raise RuntimeError('Cython >= {ver} is required'.format(ver=req_cython_version))
RuntimeError: Cython >= 0.19 is required
==> ERROR: A failure occurred in build().
    Aborting...

I have cython and cython2 installed, but it seems that the python module is somehow called cython here:

python2 -m cython --version 
Cython version 0.24.1
python2 -m cython2 --version
/usr/bin/python2: No module named cython2
python -m cython --version 
Cython version 0.24.1
python -m cython2 --version
/usr/bin/python3: No module named cython2
jwilk commented

Very odd.

python -m cython --version
Cython version 0.24.1

This is exactly how the setup script checks for Cython version, so it should work.

Oh wait, I think I know what's going on. In the PKGBUILD I see this line:

  sed -i "s/'cython'/'cython2'/" setup.py

which would change

    cmdline = ['python', '-m', 'cython', '--version']

to

    cmdline = ['python', '-m', 'cython2', '--version']

The latter of course wouldn't work.

Aha, thank you! I've completely missed that line, and wondered, why cython module was named cython2 in other distros.

jwilk commented

Shall we close the bug?

Yes, of course. Sorry for the inconvenience!