Bug#1096497: dact: ftbfs with GCC-15
Package: src:dact
Version: 0.8.42-6
Severity: important
Tags: sid forky
User: debian-gcc@lists.debian.org
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/dact_0.8.42-6_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
[...]
dact_common.c:712:17: warning: ignoring return value of ‘read’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
712 | read(src, &version[2], 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
dact_common.c:726:17: warning: ignoring return value of ‘read’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
726 | read(src, &file_opts, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~
dact_common.c:775:25: warning: ignoring return value of ‘read’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
775 | read(src, &ch, 1);
| ^~~~~~~~~~~~~~~~~
dact_common.c:810:49: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
810 | fgets(hdr_buf, 4095, extd_urlfile);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dact_common.c: In function ‘dact_process_other’:
dact_common.c:920:25: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
920 | write(tmpfd, buf, x);
| ^~~~~~~~~~~~~~~~~~~~
make[2]: *** [<builtin>: dact_common.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from dact.c:48:
algorithms.h:21: warning: header guard ‘_ALGORITHMS_H’ followed by ‘#define’ of a different macro [-Wheader-guard]
21 | #ifndef _ALGORITHMS_H
algorithms.h:22: note: ‘_ALOGIRTHMS_H’ is defined here; did you mean ‘_ALGORITHMS_H’?
22 | #define _ALOGIRTHMS_H
dact.c: In function ‘dact_upgrade’:
dact.c:178:23: warning: variable ‘i’ set but not used [-Wunused-but-set-variable]
178 | int status=0, i;
| ^
dact.c: In function ‘main’:
dact.c:505:46: error: assignment to ‘int (*)(void)’ from incompatible pointer type ‘int (*)(int, unsigned char *, unsigned char *, char *, int, int)’ [-Wincompatible-pointer-types]
505 | algorithms[i]=DACT_FAILED_ALGO;
| ^
In file included from dact.h:143,
from dact.c:21:
comp_fail.h:24:5: note: ‘comp_fail_algo’ declared here
24 | int comp_fail_algo(int mode, unsigned char *prev_block, unsigned char *curr_block, char *out_block, int blk_size, int bufsize);
| ^~~~~~~~~~~~~~
dact.c:526:88: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types]
526 | if (ciphers_name[i]!=NULL && ciphers[i]!=DACT_FAILED_ALGO) {
| ^~
dact.c:533:80: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types]
533 | if (ciphers_name[i]!=NULL && ciphers[i]!=DACT_FAILED_ALGO) {
| ^~
dact.c:549:81: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types]
549 | if (algorithms[i]==NULL || algorithms[i]==DACT_FAILED_ALGO) continue;
| ^~
dact.c:564:62: warning: macro ‘__DATE__’ might prevent reproducible builds [-Wdate-time]
564 | printf(" built on %s at %s",__DATE__,__TIME__);
| ^~~~~~~~
dact.c:564:71: warning: macro ‘__TIME__’ might prevent reproducible builds [-Wdate-time]
564 | printf(" built on %s at %s",__DATE__,__TIME__);
| ^~~~~~~~
dact.c: In function ‘dact_upgrade_file’:
dact.c:127:49: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
127 | write(ofd, buf, x);
| ^~~~~~~~~~~~~~~~~~
dact.c: In function ‘dact_upgrade_file_checkver’:
dact.c:158:17: warning: ignoring return value of ‘read’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
158 | read(fd, &verbuf, 9);
| ^~~~~~~~~~~~~~~~~~~~
dact.c: In function ‘dact_upgrade’:
dact.c:221:1: warning: control reaches end of non-void function [-Wreturn-type]
221 | }
| ^
make[2]: *** [<builtin>: dact.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/dact-0.8.42'
make[1]: *** [Makefile:54: static] Error 2
make[1]: Leaving directory '/build/reproducible-path/dact-0.8.42'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
Reply to: