Source: libnss-mysql
Version: 1.6.1-3
Severity: serious
Tags: ftbfs patch
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: mateus.mor...@canonical.com

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
>From ed509ca4ef0db29b281c2b7ac8c8fb47a97fe2d9 Mon Sep 17 00:00:00 2001
From: Mateus Rodrigues de Morais <mateus.mor...@canonical.com>
Date: Tue, 2 Sep 2025 17:10:24 -0300
Subject: [PATCH] d/rules: set std to gnu17

---
 debian/rules | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/debian/rules b/debian/rules
index 8ce9dd3..277224c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,7 +5,7 @@
 
 # extra hardening and stuff
 export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow qa=+bug
-export DEB_CFLAGS_MAINT_APPEND = -Wall
+export DEB_CFLAGS_MAINT_APPEND = -Wall -std=gnu17
 
 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
 
-- 
2.48.1

Reply via email to