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-...@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   nt...@debian.org
From: Niko Tyni <nt...@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_ENOERR = rb_define_class("DepotError_ENOERR", cdepoterror);
diff --git a/ruby/villa/mod_villa.c b/ruby/villa/mod_villa.c
index 80b83a0..5695b36 100644
--- a/ruby/villa/mod_villa.c
+++ b/ruby/villa/mod_villa.c
@@ -102,7 +102,7 @@ static VALUE rbvltranabort(VALUE vself, VALUE vindex);
  *************************************************************************************************/
 
 
-Init_mod_villa(){
+void Init_mod_villa(){
   vlinit();
   cvillaerror = rb_define_class("VillaError", rb_eStandardError);
   cvillaerror_ENOERR = rb_define_class("VillaError_ENOERR", cvillaerror);

Reply via email to