#1113802 libnss-mysql: FTBFS on GCC-15

Package:
src:libnss-mysql
Source:
src:libnss-mysql
Submitter:
Mateus Rodrigues de Morais
Date:
2025-09-02 20:15:02 UTC
Severity:
normal
Tags:
#1113802#5
Date:
2025-09-02 20:13:08 UTC
From:
To:
libnss-mysql ftbfs on GCC 15. Setting '-std=gnu17' fixes the issue per the patch attached.

Failure log:

[...]
nss_main.c: In function '_nss_mysql_atfork_prepare':
nss_main.c:123:11: error: assignment to 'int (*)(void)' from incompatible pointer type 'int (*)(int)' [-Wincompatible-pointer-types]
  123 |   trylock = (int (*)(int))dlsym (RTLD_DEFAULT, "pthread_mutex_trylock");
      |           ^
nss_main.c:125:10: error: too many arguments to function 'trylock'; expected 0, have 1
  125 |     if ((*trylock) (&lock) == 0)
      |         ~^~~~~~~~~  ~~~~~
nss_main.c: In function '_nss_mysql_pthread_once_init':
nss_main.c:174:18: error: assignment to 'int (*)(void)' from incompatible pointer type 'int (*)(int)' [-Wincompatible-pointer-types]
  174 |   pthread_atfork = (int (*)(int))dlsym (RTLD_DEFAULT, "pthread_atfork");
      |                  ^
nss_main.c:176:6: error: too many arguments to function 'pthread_atfork'; expected 0, have 3
  176 |     (*pthread_atfork) (_nss_mysql_atfork_prepare, _nss_mysql_atfork_parent,
      |     ~^~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~~
nss_main.c: In function '_nss_mysql_init':
nss_main.c:228:16: error: assignment to 'int (*)(void)' from incompatible pointer type 'int (*)(int)' [-Wincompatible-pointer-types]
  228 |   pthread_once = (int (*)(int))dlsym (RTLD_DEFAULT, "pthread_once");
      |                ^
nss_main.c:230:6: error: too many arguments to function 'pthread_once'; expected 0, have 2
  230 |     (*pthread_once) (&_nss_mysql_once_control, _nss_mysql_pthread_once_init);
      |     ~^~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~
mysql.c: In function '_nss_mysql_connect_sql':
mysql.c:221:7: warning: the comparison will always evaluate as 'true' for the address of 'port' will never be NULL [-Waddress]
  221 |   if (server->port)
      |       ^~~~~~
In file included from mysql.c:24:
nss_mysql.h:212:8: note: 'port' declared here
  212 |   char port[MAX_VAL_SIZE];      /* SQL port to connect to */
      |        ^~~~
make[3]: *** [Makefile:500: nss_main.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
nss_config.c: In function '_nss_mysql_load_config_file':
nss_config.c:85:11: warning: 'strncpy' output may be truncated copying 128 bytes from a string of length 1023 [-Wstringop-truncation]
   85 |           strncpy (key, cur, key_size);
      |           ^
make[3]: Leaving directory '/<<PKGBUILDDIR>>/src'
make[2]: *** [Makefile:438: all-recursive] Error 1