• Bug#1075427: qdbm: ftbfs with GCC-14

    From Niko Tyni@21:1/5 to Matthias Klose on Fri Aug 2 20:10:01 2024
    Control: tag -1 patch

    On Wed, Jul 03, 2024 at 12:41:30PM +0000, Matthias Klose wrote:
    Package: src:qdbm
    Version: 1.8.78-12.1
    Severity: important
    Tags: sid trixie
    User: debian-gcc@lists.debian.org
    Usertags: ftbfs-gcc-14

    The actual error here is

    make[1]: Entering directory '/<<PKGBUILDDIR>>/ruby/curia'
    gcc -fdebug-prefix-map=/<<PKGBUILDDIR>>/ruby=. -I. -I/usr/include/x86_64-linux-gnu/ruby-3.1.0 -I/usr/include/ruby-3.1.0/ruby/backward -I/usr/include/ruby-3.1.0 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I. -I../.. -I/nonexistent/include -I/usr/
    local/include -o mod_curia.o -c mod_curia.c
    mod_curia.c:92:1: error: return type defaults to ‘int’ [-Wimplicit-int]
    92 | Init_mod_curia(){
    | ^~~~~~~~~~~~~~
    make[1]: *** [Makefile:253: mod_curia.o] Error 1
    make[1]: Leaving directory '/<<PKGBUILDDIR>>/ruby/curia'

    and it is fixed by declaring the Ruby extension Init_* functions as void.

    Patch attached. The build succeeds for me with this on current sid.
    I have not tested the resulting binaries in any way (but it looked
    like the build includes a test suite of some kind.)

    Hope this helps,
    --
    Niko Tyni ntyni@debian.org

    From: Niko Tyni <ntyni@debian.org>
    Date: Fri, 2 Aug 2024 18:58:34 +0100
    X-Dgit-Generated: 1.8.78-12.1 107c05d8cdc8a28b0d0abd837c0abe4bef8c9f48
    Subject: Mark Ruby init functions as void

    This fixes building with GCC 14.

    mod_curia.c:92:1: error: return type defaults to ‘int’ [-Wimplicit-int]
    92 | Init_mod_curia(){
    | ^~~~~~~~~~~~~~
    make[1]: *** [Makefile:253: mod_curia.o] Error 1

    Bug-Debian: https://bugs.debian.org/1075427

    ---

    diff --git a/ruby/curia/mod_curia.c b/ruby/curia/mod_curia.c
    index 5774ef5..de681eb 100644
    --- a/ruby/curia/mod_curia.c
    +++ b/ruby/curia/mod_curia.c
    @@ -89,7 +89,7 @@ static VALUE rbcrfatalerror(VALUE vself, VALUE vindex);
    *************************************************************************************************/


    -Init_mod_curia(){
    +void Init_mod_curia(){
    crinit();
    ccuriaerror = rb_define_class("CuriaError", rb_eStandardError);
    ccuriaerror_ENOERR = rb_define_class("CuriaError_ENOERR", ccuriaerror);
    diff --git a/ruby/depot/mod_depot.c b/ruby/depot/mod_depot.c
    index b9f46d6..7438e62 100644
    --- a/ruby/depot/mod_depot.c
    +++ b/ruby/depot/mod_depot.c
    @@ -88,7 +88,7 @@ static VALUE rbdpfatalerror(VALUE vself, VALUE vindex);
    *************************************************************************************************/


    -Init_mod_depot(){
    +void Init_mod_depot(){
    dpinit();
    cdepoterror = rb_define_class("DepotError", rb_eStandardError);
    cdepoterror_ENOE