Subject: enscript: ftbfs with GCC-15

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

Package: src:enscript
Version: 1.6.5.90-3.1
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/enscript_1.6.5.90-3.1_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

[...]
      |            ^~~~~~~~~~~~~~~~~~~
regex.c: In function ‘re_match’:
regex.c:3685:1: warning: old-style function definition [-Wold-style-definition]
 3685 | re_match (bufp, string, size, pos, regs)
      | ^~~~~~~~
regex.c:3691:16: error: too many arguments to function ‘re_match_2_internal’; expected 0, have 8
 3691 |   int result = re_match_2_internal (bufp, NULL, 0, string, size,
      |                ^~~~~~~~~~~~~~~~~~~  ~~~~
regex.c:339:12: note: declared here
  339 | static int re_match_2_internal ();
      |            ^~~~~~~~~~~~~~~~~~~
regex.c: In function ‘re_match_2’:
regex.c:3728:1: warning: old-style function definition [-Wold-style-definition]
 3728 | re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
      | ^~~~~~~~~~
regex.c:3736:16: error: too many arguments to function ‘re_match_2_internal’; expected 0, have 8
 3736 |   int result = re_match_2_internal (bufp, string1, size1, string2, size2,
      |                ^~~~~~~~~~~~~~~~~~~  ~~~~
regex.c:339:12: note: declared here
  339 | static int re_match_2_internal ();
      |            ^~~~~~~~~~~~~~~~~~~
regex.c: In function ‘re_match_2_internal’:
regex.c:3749:1: warning: old-style function definition [-Wold-style-definition]
 3749 | re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
      | ^~~~~~~~~~~~~~~~~~~
regex.c: In function ‘group_match_null_string_p’:
regex.c:5152:1: warning: old-style function definition [-Wold-style-definition]
 5152 | group_match_null_string_p (p, end, reg_info)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
regex.c: In function ‘alt_match_null_string_p’:
regex.c:5261:1: warning: old-style function definition [-Wold-style-definition]
 5261 | alt_match_null_string_p (p, end, reg_info)
      | ^~~~~~~~~~~~~~~~~~~~~~~
regex.c: In function ‘common_op_match_null_string_p’:
regex.c:5298:1: warning: old-style function definition [-Wold-style-definition]
 5298 | common_op_match_null_string_p (p, end, reg_info)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
regex.c: In function ‘bcmp_translate’:
regex.c:5386:1: warning: old-style function definition [-Wold-style-definition]
 5386 | bcmp_translate (s1, s2, len, translate)
      | ^~~~~~~~~~~~~~
regex.c: In function ‘re_compile_pattern’:
regex.c:5413:1: warning: old-style function definition [-Wold-style-definition]
 5413 | re_compile_pattern (pattern, length, bufp)
      | ^~~~~~~~~~~~~~~~~~
regex.c: In function ‘regcomp’:
regex.c:5550:1: warning: old-style function definition [-Wold-style-definition]
 5550 | regcomp (preg, pattern, cflags)
      | ^~~~~~~
regex.c: In function ‘regexec’:
regex.c:5631:1: warning: old-style function definition [-Wold-style-definition]
 5631 | regexec (preg, string, nmatch, pmatch, eflags)
      | ^~~~~~~
regex.c: In function ‘regerror’:
regex.c:5696:1: warning: old-style function definition [-Wold-style-definition]
 5696 | regerror (errcode, preg, errbuf, errbuf_size)
      | ^~~~~~~~
regex.c: In function ‘regfree’:
regex.c:5739:1: warning: old-style function definition [-Wold-style-definition]
 5739 | regfree (preg)
      | ^~~~~~~
make[3]: *** [Makefile:434: regex.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/enscript-1.6.5.90/compat'
make[2]: *** [Makefile:475: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/enscript-1.6.5.90'
make[1]: *** [Makefile:414: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/enscript-1.6.5.90'
dh_auto_build: error: make -j1 returned exit code 2
make: *** [debian/rules:6: binary] Error 255
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2