Xpra: Ticket #1564: Cython 0.26 compatibility

r16176 added the latest 0.26b0 to the rpm specfile. Problem is that all versions now fail to build, the bug has been reported upstream: carray_from_* unused-function warnings with 0.26b0



Tue, 04 Jul 2017 02:08:45 GMT - Antoine Martin: status changed

r16177 detects the cython version and turns the error back into a warning. Hopefully the upstream bug will be fixed, or we will be told how to change our code to not trigger the warning. If not, then r16177 will need to be backported.


Tue, 04 Jul 2017 07:46:41 GMT - Antoine Martin:

Fixed in r16179 by disabling the auto_pickle feature, which we do not use.


Tue, 04 Jul 2017 07:46:45 GMT - Antoine Martin: status changed; resolution set


Tue, 04 Jul 2017 11:45:28 GMT - Antoine Martin: status changed; resolution deleted

New problem: we cannot build older branches... first we have to backport r16179 and then we hit this one with the nvenc module:

Compiling xpra/codecs/nvenc7/encoder.pyx because it changed.
[1/1] Cythonizing xpra/codecs/nvenc7/encoder.pyx
Traceback (most recent call last):
  File "./setup.py", line 2484, in <module>
    setup_options["ext_modules"] = cythonize(ext_modules, gdb_debug=False)
  File "/usr/lib64/python2.7/site-packages/Cython/Build/Dependencies.py", line 1016, in cythonize
    cythonize_one(*args)
  File "/usr/lib64/python2.7/site-packages/Cython/Build/Dependencies.py", line 1121, in cythonize_one
    result = compile([pyx_file], options)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Main.py", line 690, in compile
    return compile_multiple(source, options)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Main.py", line 668, in compile_multiple
    result = run_pipeline(source, options, context=context)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Main.py", line 494, in run_pipeline
    err, enddata = Pipeline.run_pipeline(pipeline, source)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Pipeline.py", line 341, in run_pipeline
    data = phase(data)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Pipeline.py", line 53, in generate_pyx_code_stage
    module_node.process_implementation(options, result)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/ModuleNode.py", line 141, in process_implementation
    self.generate_c_code(env, options, result)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/ModuleNode.py", line 369, in generate_c_code
    self.body.generate_function_definitions(env, code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 419, in generate_function_definitions
    stat.generate_function_definitions(env, code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 419, in generate_function_definitions
    stat.generate_function_definitions(env, code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 4668, in generate_function_definitions
    self.body.generate_function_definitions(self.scope, code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 419, in generate_function_definitions
    stat.generate_function_definitions(env, code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 3073, in generate_function_definitions
    FuncDefNode.generate_function_definitions(self, env, code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 1923, in generate_function_definitions
    self.generate_function_body(env, code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 1686, in generate_function_body
    self.body.generate_execution_code(code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 425, in generate_execution_code
    stat.generate_execution_code(code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 5887, in generate_execution_code
    if_clause.generate_execution_code(code, end_label, is_last=i == last)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 5930, in generate_execution_code
    self.body.generate_execution_code(code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 425, in generate_execution_code
    stat.generate_execution_code(code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 7053, in generate_execution_code
    fresh_finally_clause().generate_execution_code(code)
  File "/usr/lib64/python2.7/site-packages/Cython/Compiler/Nodes.py", line 7041, in fresh_finally_clause
    node_copy = copy.deepcopy(node)
  File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy
    y = _reconstruct(x, rv, 1, memo)
  File "/usr/lib64/python2.7/copy.py", line 334, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy
    y = copier(x, memo)
  File "/usr/lib64/python2.7/copy.py", line 257, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy
(...)
  File "/usr/lib64/python2.7/copy.py", line 166, in deepcopy
    issc = issubclass(cls, type)
RuntimeError: maximum recursion depth exceeded while calling a Python object

Tue, 04 Jul 2017 12:01:18 GMT - Antoine Martin: priority changed

This looks very similar to #947.


Thu, 06 Jul 2017 06:47:34 GMT - Antoine Martin:

Reported upstream: "maximum recursion depth exceeded" in deepcopy() in fresh_finally_clause().


Mon, 10 Jul 2017 12:46:28 GMT - Antoine Martin: status changed; resolution set

The "recursion depth" issue has been fixed:

https://github.com/cython/cython/commit/114fe16bdaa527bb5024c975a8accfc1e052ab68 and will be included in the 0.26 release.


Tue, 11 Jul 2017 02:15:35 GMT - Antoine Martin: status changed; resolution deleted

And a new issue popped up with the latest beta build (bumped spec file to 0.26b2 in r16282): attribute ‘fallthrough’ not preceding a case label or default label


Tue, 11 Jul 2017 10:47:09 GMT - Antoine Martin: status changed; resolution set

Re-fixed in https://github.com/cython/cython/commit/c824a3822c8b37dc49e23d9ed82036a5565075c1, patch applied to rpmbuild in r16285.


Sat, 23 Jan 2021 05:27:49 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1564