Subject: Bug#1096805: hexcurse: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 17:19:00 +0000

Package: src:hexcurse
Version: 1.58-1.4
Severity: important
Tags: sid forky
User: [email-masked]
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/hexcurse_1.58-1.4_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

[...]
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for unistd.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for unsigned long long int... yes
checking for long long int... yes
checking for intmax_t... yes
checking for off_t... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for _LARGEFILE_SOURCE value needed for large files... no
checking return type of signal handlers... void
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating man/Makefile
config.status: creating config.h
config.status: executing depfiles commands
   dh_auto_build
dh_auto_build: warning: Compatibility levels before 10 are deprecated (level 9 in use)
	make -j1
make[1]: Entering directory '/build/reproducible-path/hexcurse-1.58'
make  all-recursive
make[2]: Entering directory '/build/reproducible-path/hexcurse-1.58'
Making all in src
make[3]: Entering directory '/build/reproducible-path/hexcurse-1.58/src'
gcc -DHAVE_CONFIG_H -I. -I..  -I../include -Wall -Werror -Wextra -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/hexcurse-1.58=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c file.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../include -Wall -Werror -Wextra -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/hexcurse-1.58=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c llist.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../include -Wall -Werror -Wextra -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/hexcurse-1.58=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c screen.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../include -Wall -Werror -Wextra -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/hexcurse-1.58=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c hexcurse.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../include -Wall -Werror -Wextra -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/hexcurse-1.58=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c stack.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../include -Wall -Werror -Wextra -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/hexcurse-1.58=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c getopt.c
getopt.c: In function ‘exchange’:
getopt.c:84:1: error: old-style function definition [-Werror=old-style-definition]
   84 | exchange (argv)
      | ^~~~~~~~
getopt.c: In function ‘getopt_set_posix_option_order’:
getopt.c:108:1: error: old-style function definition [-Werror=old-style-definition]
  108 | getopt_set_posix_option_order (on_or_off)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
getopt.c: In function ‘_getopt_internal’:
getopt.c:118:1: error: old-style function definition [-Werror=old-style-definition]
  118 | _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
      | ^~~~~~~~~~~~~~~~
getopt.c: In function ‘hgetopt’:
getopt.c:460:1: error: old-style function definition [-Werror=old-style-definition]
  460 | hgetopt (argc, argv, optstring)
      | ^~~~~~~
cc1: all warnings being treated as errors
make[3]: *** [Makefile:258: getopt.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/hexcurse-1.58/src'
make[2]: *** [Makefile:266: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/hexcurse-1.58'
make[1]: *** [Makefile:206: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/hexcurse-1.58'
dh_auto_build: error: make -j1 returned exit code 2
make: *** [debian/rules:4: binary] Error 255
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

---

From: "Debian Bug Tracking System" <[email-masked]>
Date: Mon, 17 Feb 2025 17:19:37 +0000

Thank you for filing a new Bug report with Debian.

You can follow progress on this Bug here: 1096805: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1096805.

This is an automatically generated reply to let you know your message
has been received.

Your message has been forwarded to the package maintainers (but not
other interested parties, as you requested) for their attention; they
will reply in due course.

Your message has been sent to the package maintainer(s):
 Gergely Risko <[email-masked]>

If you wish to submit further information on this problem, please
send it to [email-masked].

Please do not send mail to [email-masked] unless you wish
to report a problem with the Bug-tracking system.

-- 
1096805: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1096805
Debian Bug Tracking System
Contact [email-masked] with problems