#1098037 unclutter: ftbfs with GCC-15

#1098037#5
Date:
2025-02-17 17:58:26 UTC
From:
To:
[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/unclutter_8-25+nmu1_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

[...]
USER=user42

dpkg-buildpackage
-----------------

Command: dpkg-buildpackage --sanitize-env -us -uc -b
dpkg-buildpackage: info: source package unclutter
dpkg-buildpackage: info: source version 8-25+nmu1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Ian Jackson <ijackson@chiark.greenend.org.uk>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
 debian/rules clean
dh clean
   dh_auto_clean
	make -j8 clean
make[1]: Entering directory '/build/reproducible-path/unclutter-8'
rm -f unclutter
rm -f *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut \#*
make[1]: Leaving directory '/build/reproducible-path/unclutter-8'
   dh_clean
 debian/rules binary
dh binary
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
   dh_auto_build
	make -j8 "INSTALL=install --strip-program=true"
make[1]: Entering directory '/build/reproducible-path/unclutter-8'
gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/unclutter-8=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2  -c -o unclutter.o unclutter.c
In file included from unclutter.c:27:
vroot.h: In function ‘VirtualRootWindow’:
vroot.h:41:1: warning: old-style function definition [-Wold-style-definition]
   41 | VirtualRootWindow(dpy, screen)
      | ^~~~~~~~~~~~~~~~~
unclutter.c: In function ‘pexit’:
unclutter.c:36:1: warning: old-style function definition [-Wold-style-definition]
   36 | pexit(str)char *str;{
      | ^~~~~
unclutter.c: In function ‘errorhandler’:
unclutter.c:82:5: warning: old-style function definition [-Wold-style-definition]
   82 | int errorhandler(display,error)
      |     ^~~~~~~~~~~~
unclutter.c:87:10: error: too many arguments to function ‘defaulthandler’; expected 0, have 2
   87 |         (*defaulthandler)(display,error);
      |         ~^~~~~~~~~~~~~~~~ ~~~~~~~
unclutter.c: In function ‘nameinlist’:
unclutter.c:99:1: warning: old-style function definition [-Wold-style-definition]
   99 | nameinlist(display,window)
      | ^~~~~~~~~~
unclutter.c: In function ‘createnullcursor’:
unclutter.c:138:1: warning: old-style function definition [-Wold-style-definition]
  138 | createnullcursor(display,root)
      | ^~~~~~~~~~~~~~~~
unclutter.c: In function ‘main’:
unclutter.c:163:1: warning: old-style function definition [-Wold-style-definition]
  163 | main(argc,argv)char **argv; int argc;{
      | ^~~~
unclutter.c:255:24: error: assignment to ‘int (*)(void)’ from incompatible pointer type ‘XErrorHandler’ {aka ‘int (*)(Display *, XErrorEvent *)’} [-Wincompatible-pointer-types]
  255 |         defaulthandler = XSetErrorHandler(errorhandler);
      |                        ^
In file included from unclutter.c:23:
/usr/include/X11/Xlib.h:1843:15: note: ‘XErrorHandler’ declared here
 1843 | typedef int (*XErrorHandler) (      /* WARNING, this type not in Xlib spec */
      |               ^~~~~~~~~~~~~
make[1]: *** [<builtin>: unclutter.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/unclutter-8'
dh_auto_build: error: make -j8 "INSTALL=install --strip-program=true" returned exit code 2
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2