Subject: efl: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 17:11:19 +0000

Package: src:efl
Version: 1.28.0-1
Severity: important
Tags: sid forky
User: [email-masked]
Usertags: ftbfs-gcc-15

[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/efl_1.28.0-1_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

[...]
FAILED: src/lib/emile/libemile.so.1.28.0.p/emile_image.c.o 
In file included from ../src/lib/emile/emile_image.c:16:
../src/static_libs/rg_etc/rg_etc1.h:6:23: error: ‘bool’ cannot be defined via ‘typedef’
    6 | typedef unsigned char bool;
      |                       ^~~~
../src/static_libs/rg_etc/rg_etc1.h:6:23: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
../src/static_libs/rg_etc/rg_etc1.h:6:1: warning: useless type name in empty declaration
    6 | typedef unsigned char bool;
      | ^~~~~~~
../src/lib/emile/emile_cipher_openssl.c: In function ‘emile_cipher_server_listen’:
../src/lib/emile/emile_cipher_openssl.c:346:4: warning: ‘DH_new’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  346 |    dh_params = DH_new();
      |    ^~~~~~~~~
In file included from /usr/include/openssl/dsa.h:31,
                 from /usr/include/openssl/x509.h:37,
                 from /usr/include/openssl/ssl.h:32,
                 from ../src/lib/emile/emile_cipher_openssl.c:9:
/usr/include/openssl/dh.h:210:27: note: declared here
  210 | OSSL_DEPRECATEDIN_3_0 DH *DH_new(void);
      |                           ^~~~~~
../src/lib/emile/emile_cipher_openssl.c:348:4: warning: ‘DH_generate_parameters_ex’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  348 |    if (!DH_generate_parameters_ex(dh_params, 1024, DH_GENERATOR_5, NULL))
      |    ^~
/usr/include/openssl/dh.h:223:27: note: declared here
  223 | OSSL_DEPRECATEDIN_3_0 int DH_generate_parameters_ex(DH *dh, int prime_len,
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/lib/emile/emile_cipher_openssl.c:350:4: warning: ‘DH_check’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  350 |    if (!DH_check(dh_params, &dh))
      |    ^~
/usr/include/openssl/dh.h:231:27: note: declared here
  231 | OSSL_DEPRECATEDIN_3_0 int DH_check(const DH *dh, int *codes);
      |                           ^~~~~~~~
../src/lib/emile/emile_cipher_openssl.c:354:4: warning: ‘DH_generate_key’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  354 |    if (!DH_generate_key(dh_params))
      |    ^~
/usr/include/openssl/dh.h:234:27: note: declared here
  234 | OSSL_DEPRECATEDIN_3_0 int DH_generate_key(DH *dh);
      |                           ^~~~~~~~~~~~~~~
../src/lib/emile/emile_cipher_openssl.c:359:4: warning: ‘DH_free’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  359 |    DH_free(dh_params);
      |    ^~~~~~~
/usr/include/openssl/dh.h:211:28: note: declared here
  211 | OSSL_DEPRECATEDIN_3_0 void DH_free(DH *dh);
      |                            ^~~~~~~
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1
make[1]: *** [debian/rules:68: override_dh_auto_build] Error 25
make[1]: Leaving directory '/build/reproducible-path/efl-1.28.0'
make: *** [debian/rules:34: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2