i'm not sure how this was ever marked for python 3 support. the code base is full of <=python-2.5 exception style: Cython/TestUtils.py: except exc_type, e: Cython/Build/Dependencies.py: except (EnvironmentError, PyrexError), e: Cython/Plex/Lexicons.py: except Errors.PlexError, e: Cython/Compiler/ExprNodes.py: except Exception, e: Cython/Compiler/Main.py: except UnicodeDecodeError, e: <lots more snipped> and indeed, building it w/python-3.3 fails: [ebuild U ] dev-python/cython-0.21 [0.20.1] USE="-doc {-test}" PYTHON_TARGETS="python2_7 python3_3 -pypy% (-python3_2) -python3_4% (-pypy2_0%) (-python2_6%)" 0 KiB ... running build_ext Traceback (most recent call last): File "setup.py", line 337, in <module> **setup_args File "/usr/lib64/python3.3/distutils/core.py", line 148, in setup dist.run_commands() File "/usr/lib64/python3.3/distutils/dist.py", line 930, in run_commands self.run_command(cmd) File "/usr/lib64/python3.3/distutils/dist.py", line 949, in run_command cmd_obj.run() File "/usr/lib64/python3.3/distutils/command/build.py", line 126, in run self.run_command(cmd_name) File "/usr/lib64/python3.3/distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/usr/lib64/python3.3/distutils/dist.py", line 949, in run_command cmd_obj.run() File "/var/tmp/portage/dev-python/cython-0.21/work/Cython-0.21/Cython/Distutils/build_ext.py", line 163, in run _build_ext.build_ext.run(self) File "/usr/lib64/python3.3/distutils/command/build_ext.py", line 353, in run self.build_extensions() File "setup.py", line 169, in build_extensions build_ext_orig.build_extensions(self) File "/var/tmp/portage/dev-python/cython-0.21/work/Cython-0.21/Cython/Distutils/build_ext.py", line 170, in build_extensions ext.sources = self.cython_sources(ext.sources, ext) File "/var/tmp/portage/dev-python/cython-0.21/work/Cython-0.21/Cython/Distutils/build_ext.py", line 181, in cython_sources from Cython.Compiler.Main \ File "/var/tmp/portage/dev-python/cython-0.21/work/Cython-0.21/Cython/Compiler/Main.py", line 309 except UnicodeDecodeError, e: ^ SyntaxError: invalid syntax
setup.py runs 2to3 on the sources. I'm sure this worked at some point, but I can confirm that it is broken at the moment.
This is actually caused by a change in behavior in bash-4.3. http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00003.html
+ 17 Oct 2014; Mike Gilbert <floppym@gentoo.org> -cython-0.16.ebuild, + -cython-0.17.1.ebuild, -cython-0.17.2.ebuild, -cython-0.17.4.ebuild, + -cython-0.18-r1.ebuild, -cython-0.18.ebuild, -cython-0.19.2.ebuild, + -cython-0.20.1.ebuild, -cython-0.20.2.ebuild, -cython-0.20.ebuild, + -files/0.15.1-test.patch, cython-0.19.1-r1.ebuild, cython-0.19.1.ebuild, + cython-0.21.ebuild: + Work around bug in 'local' built-in for bash-4.3, bug 525608. Remove old + ebuilds.