are the function as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions. 2. Use an 'int' return type on the function to allow an error code to be returned. Error compiling Cython file: ------------------------------------------------------------ ... """ if self._callback: self.cancel_callback() self._callback = (func, data) self.thisptr.setCallback(&_cb_func, self._callback) ^ ------------------------------------------------------------ src/_rtmidi.pyx:907:33: Cannot assign type 'void (*)(double, vector[unsigned char] *, void *) except * nogil' to 'RtMidiCallback'. Exception values are incompatible. Suggest adding 'noexcept' to type 'void (double, vector[unsigned char] *, void *) except * nogil'. Detected JACK version 1.9.22. JACK version is recent enough to have 'jack_port_rename' function. Compiling src/_rtmidi.pyx because it changed. [1/1] Cythonizing src/_rtmidi.pyx Traceback (most recent call last): File "/builddir/build/BUILD/python-rtmidi-1.3.1/setup.py", line 191, in ext_modules=cythonize(extensions), ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize cythonize_one(*args) File "/usr/lib64/python3.12/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one raise CompileError(None, pyx_file) Cython.Compiler.Errors.CompileError: src/_rtmidi.pyx error: Bad exit status from /var/tmp/rpm-tmp.gBQmX2 (%build) Bad exit status from /var/tmp/rpm-tmp.gBQmX2 (%build) RPM build errors: Child return code was: 1 EXCEPTION: [Error('Command failed: \n # /usr/bin/systemd-nspawn -q -M 2329a4ab6b6647b1bc746c0c63665261 -D /var/lib/mock/f40-build-800362-142892/root -a -u mockbuild --capability=cap_ipc_lock --bind=/tmp/mock-resolv.yc6t3p07:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin --setenv=PROMPT_COMMAND=printf "\\033]0;\\007" --setenv=PS1= \\s-\\v\\$ --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c /usr/bin/rpmbuild -bb --noclean --target riscv64 --nodeps /builddir/build/SPECS/python-rtmidi.spec\n', 1)] Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/mockbuild/trace_decorator.py", line 93, in trace result = func(*args, **kw) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/mockbuild/util.py", line 597, in do_with_status raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode) mockbuild.exception.Error: Command failed: # /usr/bin/systemd-nspawn -q -M 2329a4ab6b6647b1bc746c0c63665261 -D /var/lib/mock/f40-build-800362-142892/root -a -u mockbuild --capability=cap_ipc_lock --bind=/tmp/mock-resolv.yc6t3p07:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin --setenv=PROMPT_COMMAND=printf "\033]0;\007" --setenv=PS1= \s-\v\$ --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c /usr/bin/rpmbuild -bb --noclean --target riscv64 --nodeps /builddir/build/SPECS/python-rtmidi.spec