[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/samhain_4.1.4-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
[...]
181 | char * sh_util_safe_name (const char * name) SH_GNUC_MALLOC SH_GNUC_PURE;
| ^~~~
./include/sh_utils.h:183:1: warning: ignoring attribute ‘pure’ because it conflicts with attribute ‘malloc’ [-Wattributes]
183 | char * sh_util_safe_name_keepspace (const char * name) SH_GNUC_MALLOC SH_GNUC_PURE;
| ^~~~
./encode 0 ./src/sh_mem.c --> x_sh_mem.c
x86_64-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I./include -DUSE_MALLOC_LOCK=1 -Wl,-z,relro -fstack-protector-strong -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/samhain-4.1.4=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DUSE_MALLOC_LOCK=1 -fPIE -Wall -W -fno-strength-reduce -fno-omit-frame-pointer -Wno-empty-body -DSH_STANDALONE -o sh_mem.o -c x_sh_mem.c
In file included from x_sh_mem.c:41:
./include/sh_utils.h:181:1: warning: ignoring attribute ‘pure’ because it conflicts with attribute ‘malloc’ [-Wattributes]
181 | char * sh_util_safe_name (const char * name) SH_GNUC_MALLOC SH_GNUC_PURE;
| ^~~~
./include/sh_utils.h:183:1: warning: ignoring attribute ‘pure’ because it conflicts with attribute ‘malloc’ [-Wattributes]
183 | char * sh_util_safe_name_keepspace (const char * name) SH_GNUC_MALLOC SH_GNUC_PURE;
| ^~~~
./encode 0 ./src/sh_login_track.c --> x_sh_login_track.c
x86_64-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I./include -DUSE_MALLOC_LOCK=1 -Wl,-z,relro -fstack-protector-strong -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/samhain-4.1.4=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DUSE_MALLOC_LOCK=1 -fPIE -Wall -W -fno-strength-reduce -fno-omit-frame-pointer -Wno-empty-body -DSH_STANDALONE -o sh_login_track.o -c x_sh_login_track.c
In file included from x_sh_login_track.c:31:
./include/sh_utils.h:181:1: warning: ignoring attribute ‘pure’ because it conflicts with attribute ‘malloc’ [-Wattributes]
181 | char * sh_util_safe_name (const char * name) SH_GNUC_MALLOC SH_GNUC_PURE;
| ^~~~
./include/sh_utils.h:183:1: warning: ignoring attribute ‘pure’ because it conflicts with attribute ‘malloc’ [-Wattributes]
183 | char * sh_util_safe_name_keepspace (const char * name) SH_GNUC_MALLOC SH_GNUC_PURE;
| ^~~~
x_sh_login_track.c: In function ‘get_bool’:
x_sh_login_track.c:177:7: error: ‘bool’ cannot be used here
177 | int bool;
| ^~~~
x_sh_login_track.c:177:7: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
x_sh_login_track.c:177:3: warning: useless type name in empty declaration
177 | int bool;
| ^~~
x_sh_login_track.c:180:8: error: expected identifier or ‘(’ before ‘=’ token
180 | bool = (*bitarray & (1 << (index % 8)));
| ^
x_sh_login_track.c:182:10: error: expected expression before ‘bool’
182 | return bool;
| ^~~~
x_sh_login_track.c: At top level:
x_sh_login_track.c:185:62: error: ‘bool’ cannot be used here
185 | static void set_bool(char *bitarray, unsigned int index, int bool)
| ^~~~
x_sh_login_track.c:185:62: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
x_sh_login_track.c: In function ‘set_bool’:
x_sh_login_track.c:188:11: error: expected identifier or ‘(’ before ‘)’ token
188 | if (bool)
| ^
x_sh_login_track.c:188:7: error: declaration in the controlling expression must have an initializer
188 | if (bool)
| ^~~~
x_sh_login_track.c: In function ‘get_bool’:
x_sh_login_track.c:183:1: warning: control reaches end of non-void function [-Wreturn-type]
183 | }
| ^
make[1]: *** [Makefile:1114: sh_login_track.o] Error 1
make[1]: *** Waiting for unfinished jobs....
x_sh_files.c: In function ‘sh_files_checkdir’:
x_sh_files.c:2058:22: warning: variable ‘dirlist’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
2058 | struct sh_dirent * dirlist;
| ^~~~~~~
x_sh_unix.c: In function ‘sh_unix_getinfo’:
x_sh_unix.c:3812:17: warning: variable ‘tmp’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
3812 | char * tmp;
| ^~~
x_sh_unix.c:3815:17: warning: variable ‘linknamebuf’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
3815 | char * linknamebuf;
| ^~~~~~~~~~~
make[1]: Leaving directory '/build/reproducible-path/samhain-4.1.4'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:41: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2