#1097190 libgda5: ftbfs with GCC-15

Package:
src:libgda5
Source:
src:libgda5
Submitter:
Matthias Klose
Date:
2025-09-07 12:27:02 UTC
Severity:
normal
Tags:
#1097190#5
Date:
2025-02-17 17:31:14 UTC
From:
To:
[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/libgda5_5.2.10-5_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
make[3]: Leaving directory '/build/reproducible-path/libgda5-5.2.10/libgda/binreloc'
Making all in sql-parser
make[3]: Entering directory '/build/reproducible-path/libgda5-5.2.10/libgda/sql-parser'
( cd . && glib-mkenums \
                --fhead "#include <sql-parser/gda-sql-parser.h>\n" \
                --fhead "#include <sql-parser/gda-sql-statement.h>\n" \
                --fhead "#include <glib-object.h>" \
		--vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {" 	\
		--vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
		--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
	gda-sql-parser.h gda-sql-statement.h gda-statement-struct-decl.h gda-statement-struct.h gda-statement-struct-compound.h gda-statement-struct-delete.h gda-statement-struct-update.h gda-statement-struct-insert.h gda-statement-struct-parts.h gda-statement-struct-pspec.h gda-statement-struct-select.h gda-statement-struct-trans.h gda-statement-struct-unknown.h gda-statement-struct-util.h) > tmp-gda-enum-types.c \
&& (cmp -s tmp-gda-enum-types.c gda-sql-parser-enum-types.c || cp tmp-gda-enum-types.c gda-sql-parser-enum-types.c ) \
&& rm -f tmp-gda-enum-types.c \
&& echo timestamp > s-enum-types-c
gcc -o gen_def -DSRCDIR=\".\" ./gen_def.c
gcc -o lemon ./lemon.c
( cd . && glib-mkenums \
                --fhead "#ifndef __LIBGDA_SQL_PARSER_ENUM_TYPES_H__\n#define __LIBGDA_SQL_PARSER_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
		--vhead "GType @enum_name@_get_type (void);\n#define GDA_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" 	\
		--ftail "G_END_DECLS\n\n#endif /* __LIBGDA_ENUM_TYPES_H__ */" \
	gda-sql-parser.h gda-sql-statement.h gda-statement-struct-decl.h gda-statement-struct.h gda-statement-struct-compound.h gda-statement-struct-delete.h gda-statement-struct-update.h gda-statement-struct-insert.h gda-statement-struct-parts.h gda-statement-struct-pspec.h gda-statement-struct-select.h gda-statement-struct-trans.h gda-statement-struct-unknown.h gda-statement-struct-util.h) > tmp-gda-enum-types.h \
&& (cmp -s tmp-gda-enum-types.h gda-sql-parser-enum-types.h || cp tmp-gda-enum-types.h gda-sql-parser-enum-types.h ) \
&& rm -f tmp-gda-enum-types.h	\
&& echo timestamp > s-enum-types-h
./lemon.c:652:6: error: conflicting types for ‘FindRulePrecedences’; have ‘void(struct lemon *)’
  652 | void FindRulePrecedences(struct lemon *xp)
      |      ^~~~~~~~~~~~~~~~~~~
./lemon.c:73:6: note: previous declaration of ‘FindRulePrecedences’ with type ‘void(void)’
   73 | void FindRulePrecedences();
      |      ^~~~~~~~~~~~~~~~~~~
./lemon.c:681:6: error: conflicting types for ‘FindFirstSets’; have ‘void(struct lemon *)’
  681 | void FindFirstSets(struct lemon *lemp)
      |      ^~~~~~~~~~~~~
./lemon.c:74:6: note: previous declaration of ‘FindFirstSets’ with type ‘void(void)’
   74 | void FindFirstSets();
      |      ^~~~~~~~~~~~~
./lemon.c:743:6: error: conflicting types for ‘FindStates’; have ‘void(struct lemon *)’
  743 | void FindStates(struct lemon *lemp)
      |      ^~~~~~~~~~
./lemon.c:75:6: note: previous declaration of ‘FindStates’ with type ‘void(void)’
   75 | void FindStates();
      |      ^~~~~~~~~~
./lemon.c:915:6: error: conflicting types for ‘FindLinks’; have ‘void(struct lemon *)’
  915 | void FindLinks(struct lemon *lemp)
      |      ^~~~~~~~~
./lemon.c:76:6: note: previous declaration of ‘FindLinks’ with type ‘void(void)’
   76 | void FindLinks();
      |      ^~~~~~~~~
./lemon.c:950:6: error: conflicting types for ‘FindFollowSets’; have ‘void(struct lemon *)’
  950 | void FindFollowSets(struct lemon *lemp)
      |      ^~~~~~~~~~~~~~
./lemon.c:77:6: note: previous declaration of ‘FindFollowSets’ with type ‘void(void)’
   77 | void FindFollowSets();
      |      ^~~~~~~~~~~~~~
./lemon.c:986:6: error: conflicting types for ‘FindActions’; have ‘void(struct lemon *)’
  986 | void FindActions(struct lemon *lemp)
      |      ^~~~~~~~~~~
./lemon.c:78:6: note: previous declaration of ‘FindActions’ with type ‘void(void)’
   78 | void FindActions();
      |      ^~~~~~~~~~~
make[3]: *** [Makefile:959: lemon] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/build/reproducible-path/libgda5-5.2.10/libgda/sql-parser'
make[2]: *** [Makefile:1276: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/libgda5-5.2.10/libgda'
make[1]: *** [Makefile:747: all-recursive] Error 1
make[1]: Leaving directory '/build/reproducible-path/libgda5-5.2.10'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1097190#18
Date:
2025-09-06 20:19:10 UTC
From:
To:
Hello,

Bug #1097190 in libgda5 reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/gnome-team/libgda5/-/commit/60421e06257087d19712f6b4cf85f13a6ac64873
------------------------------------------------------------------------
Add proposed patch from upstream MR libgda!208 to fix FTBFS with gcc-15

Closes: #1097190
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1097190

#1097190#25
Date:
2025-09-07 12:25:27 UTC
From:
To:
I've applied a patch that was already proposed upstream to fix this
FTBFS, and some janitorial changes to fix Lintian warnings and
<https://lists.debian.org/debian-devel/2025/08/msg00150.html>.

There is also a MR open on Salsa to add CI integration
(<https://salsa.debian.org/gnome-team/libgda5/-/merge_requests/3>) which
could be merged if successful.

I don't intend to upload this package myself since I don't know how best
to smoke-test it. Perhaps the maintainer of one of the three dependent
packages (cc'd) could test and upload?

Thanks,
     smcv