[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: