Bug 2224366

Summary: MUSIC is not compatible with Cython 3
Product: [Fedora] Fedora Reporter: Ben Beasley <code>
Component: MUSICAssignee: Ankur Sinha (FranciscoD) <sanjay.ankur>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 39CC: neuro-sig, sanjay.ankur
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ben Beasley 2023-07-20 14:41:20 UTC
Description of problem:

MUSIC is not compatible with Cython 3

Version-Release number of selected component (if applicable): 1.1.16-11.20201002git8c6b77a.fc39


How reproducible:


Steps to Reproduce:
1. Ensure the spec file does not upper-bound the Cython version
2. Build the package

Actual results:

[1/1] Cythonizing pybuffer.pyx
make[2]: Leaving directory '/builddir/build/BUILD/MUSIC-8c6b77a5780c0c66191aa7e8f07f9d33614dcc16/MUSIC-8c6b77a5780c0c66191aa7e8f07f9d33614dcc16-mpich/pymusic'
/usr/lib64/python3.12/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /builddir/build/BUILD/MUSIC-8c6b77a5780c0c66191aa7e8f07f9d33614dcc16/MUSIC-8c6b77a5780c0c66191aa7e8f07f9d33614dcc16-mpich/pymusic/pybuffer.pxd
  tree = Parsing.p_module(s, pxd, full_module_name)
warning: pyconfig.pxi:1:0: The 'DEF' statement is deprecated and will be removed in a future Cython version. Consider using global variables, constants, and in-place literals instead. See https://github.com/cython/cython/issues/4310
warning: pybuffer.pxd:8:0: The 'IF' statement is deprecated and will be removed in a future Cython version. Consider using runtime conditions or C macros instead. See https://github.com/cython/cython/issues/4310

Error compiling Cython file:
------------------------------------------------------------
...
            raise TypeError("object does not present buffer interface")

        cdef Py_buffer* pybuf = &self.pybuf
        PyObject_GetBuffer(data, pybuf, bufflags)
        self.dtype = TypeDict[getformat(pybuf)]
        self.items = pybuf.len / pybuf.itemsize
                               ^
------------------------------------------------------------

pybuffer.pyx:63:31: Cannot assign type 'double' to 'Py_ssize_t'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python3.12/site-packages/Cython/Build/Dependencies.py", line 1134, in cythonize
    cythonize_one(*args)
  File "/usr/lib64/python3.12/site-packages/Cython/Build/Dependencies.py", line 1301, in cythonize_one
    raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: pybuffer.pyx


Expected results:

Package builds with Cython 3.

Additional info:

This is probably pretty straightforward to fix. I’m not looking into it right now, though, and I have not attempted to report it upstream. I do not know if this is fixed in the latest release, bug 2224362; I doubt it.

Comment 1 Ben Beasley 2023-07-20 14:46:54 UTC
PR to pin the Cython version and use the compat package for now: https://src.fedoraproject.org/rpms/MUSIC/pull-request/2

Comment 2 Fedora Release Engineering 2023-08-16 07:19:48 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle.
Changing version to 39.