Bug#1061015: pygame-sdl2: FTBFS: Cannot assign type 'Sint64 (SDL_RWops *) except? -1 nogil' to 'Sint64 (*)(SDL_RWops *) noexcept'
Simon McVittie
smcv at debian.org
Thu Jan 25 10:15:51 GMT 2024
Control: affects -1 + src:renpy
On Tue, 16 Jan 2024 at 20:43:34 +0100, Lucas Nussbaum wrote:
> During a rebuild of all packages in sid, your package failed to build
> on amd64.
>
> > src/pygame_sdl2/rwobject.pyx:336:22: Cannot assign type 'Sint64 (SDL_RWops *) except? -1 nogil' to 'Sint64 (*)(SDL_RWops *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'Sint64 (SDL_RWops *) except? -1 nogil'.
This looks like probably a regression with cython 3.x, which has this
in its release notes:
Cython-implemented C functions now propagate exceptions by default,
rather than swallowing them in non-object returning function if the
user forgot to add an except declaration to the signature. This was
a long-standing source of bugs, but can require adding the noexcept
declaration to existing functions if exception propagation is really
undesired. (Github issue #4280)
...
To opt out of the new, safer exception handling behaviour, legacy
code can set the new directive legacy_implicit_noexcept=True for
a transition period to keep the previous, unsafe behaviour. This
directive will eventually be removed in a later release.
References: <https://github.com/cython/cython/issues/4280>,
<https://github.com/cython/cython/pull/5094>.
The changelog for pygame-sdl2 8.1.3-1 says the new upstream release is
compatible with cython3, but that doesn't seem to be the case? But I
also don't understand where these new upstream releases are coming from,
because https://github.com/renpy/pygame_sdl2 only has tags for 8.1.0,
and there don't seem to be any recent commits that are relevant to
cython3 compatibility.
smcv
More information about the Pkg-games-devel
mailing list