• Bug#1061015: pygame-sdl2: FTBFS: make: *** [debian/rules:6: binary] Err

    From Lucas Nussbaum@21:1/5 to All on Tue Jan 16 21:00:24 2024
    Source: pygame-sdl2
    Version: 8.1.3-1
    Severity: serious
    Justification: FTBFS
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-20240115 ftbfs-trixie

    Hi,

    During a rebuild of all packages in sid, your package failed to build
    on amd64.


    Relevant part (hopefully):
    debian/rules binary
    dh binary --buildsystem=pybuild
    dh_update_autotools_config -O--buildsystem=pybuild
    dh_autoreconf -O--buildsystem=pybuild
    dh_auto_configure -O--buildsystem=pybuild
    I: pybuild base:305: python3.12 setup.py config /<<PKGBUILDDIR>>/setuplib.py:269: SyntaxWarning: invalid escape sequence '\('
    ccode = re.sub('Py_InitModule4\("([^"]+)"', 'Py_InitModule4("' + parent_module + '.\\1"', ccode) # Py2

    Error compiling Cython file: ------------------------------------------------------------
    ...
    sf.base = base
    sf.length = length
    sf.tell = 0

    rv = SDL_AllocRW()
    rv.size = subfile_size
    ^ ------------------------------------------------------------

    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'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    sf.length = length
    sf.tell = 0

    rv = SDL_AllocRW()
    rv.size = subfile_size
    rv.seek = subfile_seek
    ^ ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:337:22: Cannot assign type 'Sint64 (SDL_RWops *, Sint64, int) except? -1 nogil' to 'Sint64 (*)(SDL_RWops *, Sint64, int) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'Sint64 (SDL_RWops *,
    Sint64, int) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    sf.tell = 0

    rv = SDL_AllocRW()
    rv.size = subfile_size
    rv.seek = subfile_seek
    rv.read = subfile_read
    ^ ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:338:22: Cannot assign type 'size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil' to 'size_t (*)(SDL_RWops *, void *, size_t, size_t) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type '
    size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    rv = SDL_AllocRW()
    rv.size = subfile_size
    rv.seek = subfile_seek
    rv.read = subfile_read
    rv.write = NULL
    rv.close = subfile_close
    ^ ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:340:23: Cannot assign type 'int (SDL_RWops *) except? -1 nogil' to 'int (*)(SDL_RWops *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'int (SDL_RWops *) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    raise IOError("{!r} is not a filename or file-like object.".format(filelike))

    Py_INCREF(filelike)

    rv = SDL_AllocRW()
    rv.size = python_size
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:367:14: 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'.

    Error compiling Cython file: ------------------------------------------------------------
    ...

    Py_INCREF(filelike)

    rv = SDL_AllocRW()
    rv.size = python_size
    rv.seek = python_seek
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:368:14: Cannot assign type 'Sint64 (SDL_RWops *, Sint64, int) except? -1 nogil' to 'Sint64 (*)(SDL_RWops *, Sint64, int) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'Sint64 (SDL_RWops *,
    Sint64, int) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    Py_INCREF(filelike)

    rv = SDL_AllocRW()
    rv.size = python_size
    rv.seek = python_seek
    rv.read = python_read
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:369:14: Cannot assign type 'size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil' to 'size_t (*)(SDL_RWops *, void *, size_t, size_t) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type '
    size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...

    rv = SDL_AllocRW()
    rv.size = python_size
    rv.seek = python_seek
    rv.read = python_read
    rv.write = python_write
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:370:15: Cannot assign type 'size_t (SDL_RWops *, const void *, size_t, size_t) except? -1 nogil' to 'size_t (*)(SDL_RWops *, const void *, size_t, size_t) noexcept'. Exception values are incompatible. Suggest adding '
    noexcept' to type 'size_t (SDL_RWops *, const void *, size_t, size_t) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    rv = SDL_AllocRW()
    rv.size = python_size
    rv.seek = python_seek
    rv.read = python_read
    rv.write = python_write
    rv.close = python_close
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:371:15: Cannot assign type 'int (SDL_RWops *) except? -1 nogil' to 'int (*)(SDL_RWops *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'int (SDL_RWops *) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    if not isinstance(rw_in_object, RWops):
    return False
    rw_in = (<RWopsImpl>rw_in_object._holder).get_rwops()
    if rw_in == NULL:
    return False
    return rw_in.read == python_read
    ^ ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:590:22: Invalid types for '==' (size_t (*)(SDL_RWops *, void *, size_t, size_t) noexcept, size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil)

    Error compiling Cython file: ------------------------------------------------------------
    ...
    bf.base = <Uint8 *>view.buf
    bf.here = bf.base
    bf.stop = bf.base + view.len

    rw = SDL_AllocRW()
    rw.size = buffile_size
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:607:14: 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'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    bf.here = bf.base
    bf.stop = bf.base + view.len

    rw = SDL_AllocRW()
    rw.size = buffile_size
    rw.seek = buffile_seek
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:608:14: Cannot assign type 'Sint64 (SDL_RWops *, Sint64, int) except? -1 nogil' to 'Sint64 (*)(SDL_RWops *, Sint64, int) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'Sint64 (SDL_RWops *,
    Sint64, int) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    bf.stop = bf.base + view.len

    rw = SDL_AllocRW()
    rw.size = buffile_size
    rw.seek = buffile_seek
    rw.read = buffile_read
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:609:14: Cannot assign type 'size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil' to 'size_t (*)(SDL_RWops *, void *, size_t, size_t) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type '
    size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...

    rw = SDL_AllocRW()
    rw.size = buffile_size
    rw.seek = buffile_seek
    rw.read = buffile_read
    rw.write = buffile_write
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:610:15: Cannot assign type 'size_t (SDL_RWops *, const void *, size_t, size_t) except? -1 nogil' to 'size_t (*)(SDL_RWops *, const void *, size_t, size_t) noexcept'. Exception values are incompatible. Suggest adding '
    noexcept' to type 'size_t (SDL_RWops *, const void *, size_t, size_t) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    rw = SDL_AllocRW()
    rw.size = buffile_size
    rw.seek = buffile_seek
    rw.read = buffile_read
    rw.write = buffile_write
    rw.close = buffile_close
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:611:15: Cannot assign type 'int (SDL_RWops *) except? -1 nogil' to 'int (*)(SDL_RWops *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'int (SDL_RWops *) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    if not isinstance(rw_in_object, RWops):
    return False
    rw_in = (<RWopsImpl>rw_in_object._holder).get_rwops()
    if rw_in == NULL:
    return False
    return rw_in.read == buffile_read
    ^ ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:630:22: Invalid types for '==' (size_t (*)(SDL_RWops *, void *, size_t, size_t) noexcept, size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil)

    Error compiling Cython file: ------------------------------------------------------------
    ...
    sf.base = base
    sf.length = length
    sf.tell = 0

    rw = SDL_AllocRW()
    rw.size = subfile_size
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:653:14: 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'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    sf.length = length
    sf.tell = 0

    rw = SDL_AllocRW()
    rw.size = subfile_size
    rw.seek = subfile_seek
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:654:14: Cannot assign type 'Sint64 (SDL_RWops *, Sint64, int) except? -1 nogil' to 'Sint64 (*)(SDL_RWops *, Sint64, int) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'Sint64 (SDL_RWops *,
    Sint64, int) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    sf.tell = 0

    rw = SDL_AllocRW()
    rw.size = subfile_size
    rw.seek = subfile_seek
    rw.read = subfile_read
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:655:14: Cannot assign type 'size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil' to 'size_t (*)(SDL_RWops *, void *, size_t, size_t) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type '
    size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    rw = SDL_AllocRW()
    rw.size = subfile_size
    rw.seek = subfile_seek
    rw.read = subfile_read
    rw.write = NULL
    rw.close = subfile_close
    ^
    ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:657:15: Cannot assign type 'int (SDL_RWops *) except? -1 nogil' to 'int (*)(SDL_RWops *) noexcept'. Exception values are incompatible. Suggest adding 'noexcept' to type 'int (SDL_RWops *) except? -1 nogil'.

    Error compiling Cython file: ------------------------------------------------------------
    ...
    if not isinstance(rw_in_object, RWops):
    return False
    rw_in = (<RWopsImpl>rw_in_object._holder).get_rwops()
    if rw_in == NULL:
    return False
    return rw_in.read == subfile_read
    ^ ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:676:22: Invalid types for '==' (size_t (*)(SDL_RWops *, void *, size_t, size_t) noexcept, size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil)

    Error compiling Cython file: ------------------------------------------------------------
    ...
    if not isinstance(rw_in_object, RWops):
    raise ValueError("Passed in object should be RWops")
    rw_in = (<RWopsImpl>rw_in_object._holder).get_rwops()
    if rw_in == NULL:
    raise ValueError("Passed in RWops object is closed")
    if rw_in.read != subfile_read:
    ^ ------------------------------------------------------------

    src/pygame_sdl2/rwobject.pyx:689:18: Invalid types for '!=' (size_t (*)(SDL_RWops *, void *, size_t, size_t) noexcept, size_t (SDL_RWops *, void *, size_t, size_t) except? -1 nogil)
    pygame_sdl2.error is out of date.
    pygame_sdl2.color is out of date.
    pygame_sdl2.controller is out of date.
    pygame_sdl2.rect is out of date.
    pygame_sdl2.rwobject is out of date.

    Command '['cython3', '--3str', '-X', 'profile=False', '-X', 'embedsignature=True', '-Iinclude', '-Igen3', '-a', 'src/pygame_sdl2/rwobject.pyx', '-o', 'gen3/pygame_sdl2.rwobject.c']' returned non-zero exit status 1.

    E: pybuild pybuild:391: configure: plugin distutils failed with: exit code=255: python3.12 setup.py config
    dh_auto_configure: error: pybuild --configure -i python{version} -p "3.12 3.11" returned exit code 13
    make: *** [debian/rules:6: binary] Error 25


    The full build log is available from: http://qa-logs.debian.net/2024/01/15/pygame-sdl2_8.1.3-1_unstable.log

    All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240115;users=lucas@debian.org
    or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240115&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

    A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

    If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects

    If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon McVittie@21:1/5 to Lucas Nussbaum on Thu Jan 25 11:20:01 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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Debian Bug Tracking System@21:1/5 to All on Thu Jan 25 11:20:01 2024
    Processing control commands:

    affects -1 + src:renpy
    Bug #1061015 [src:pygame-sdl2] pygame-sdl2: FTBFS: Cannot assign type 'Sint64 (SDL_RWops *) except? -1 nogil' to 'Sint64 (*)(SDL_RWops *) noexcept'
    Added indication that 1061015 affects src:renpy

    --
    1061015: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1061015
    Debian Bug Tracking System
    Contact owner@bugs.debian.org with problems

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon McVittie@21:1/5 to Alexandre Detiste on Mon Jan 29 01:40:01 2024
    On Sun, 28 Jan 2024 at 22:49:37 +0100, Alexandre Detiste wrote:
    Le jeu. 25 janv. 2024 à 11:15, Simon McVittie <smcv@debian.org> a écrit :
    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.

    The release are coming from here.
    https://www.renpy.org/latest.html

    Oh, do those tarball code-drops have changes that are newer than what's
    in https://github.com/renpy/pygame_sdl2 git?

    pygame-sdl2 state (which is a very old fork of pygame) is in limbo,
    upstream is considering vendoring it inside the main tarball
    it is maybe already maintained in the main git three.

    I see. Do I understand correctly that we would consider it to be a bug
    for anything other than renpy to use pygame-sdl2?

    If so, I think if I was the Debian maintainer of these packages,
    I'd be very tempted to vendor pygame-sdl2 into renpy (using dpkg's multiple-.orig-tarballs feature if upstream have not done similar
    vendoring) so that there's only one Debian source package to keep track
    of, and no possibility of version skew between renpy and its pygame fork.

    smcv

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Debian Bug Tracking System@21:1/5 to All on Wed Apr 24 21:10:01 2024
    This is a multi-part message in MIME format...

    Your message dated Wed, 24 Apr 2024 19:07:16 +0000
    with message-id <E1rzhxc-00Fhyz-Dl@fasolo.debian.org>
    and subject line Bug#1061015: fixed in pygame-sdl2 8.2.1-1
    has caused the Debian Bug report #1061015,
    regarding pygame-sdl2: FTBFS: Cannot assign type 'Sint64 (SDL_RWops *) except? -1 nogil' to 'Sint64 (*)(SDL_RWops *) noexcept'
    to be marked as done.

    This means that you claim that the problem has been dealt with.
    If this is not the case it is now your responsibility to reopen the
    Bug report if necessary, and/or fix the problem forthwith.

    (NB: If you are a system administrator and have no idea what this
    message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org
    immediately.)


    --
    1061015: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1061015
    Debian Bug Tracking System
    Contact owner@bugs.debian.org with problems

    Received: (at submit) by bugs.debian.org; 16 Jan 2024 19:45:22 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.6-bugs.debian.org_2005_01_02
    (2021-04-09) on buxtehude.debian.org
    X-Spam-Level:
    X-Spam-Status: No, score=-106.9 required=4.0 tests=BAYES_00,DKIMWL_WL_HIGH,
    DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FOURLA,
    FROMDEVELOPER,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,
    UNPARSEABLE_RELAY,USER_IN_DKIM_WELCOMELIST,USER_IN_DKIM_WHITELIST
    autolearn=ham autolearn_force=no
    version=3.4.6-bugs.debian.org_2005_01_02
    X-Spam-Bayes: score:0.0000 Tokens: new, 116; hammy, 150; neutral, 220; spammy,
    0. spammytokens:
    hammytokens:0.000-+--Hx-spam-relays-external:sk:stravin,
    0.000-+--H*RT:sk:stravin, 0.000-+--Hx-spam-relays-external:311,
    0.000-+--H*RT:108, 0.000-+--H*RT:311
    Return-path: <lucas@debian.org>
    Received: from stravinsky.debian.org ([2