#1097633 polybar: ftbfs with GCC-15

Package:
src:polybar
Source:
src:polybar
Submitter:
Matthias Klose
Date:
2025-09-21 08:25:08 UTC
Severity:
normal
Tags:
#1097633#5
Date:
2025-02-17 17:45:21 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/polybar_3.7.2-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

[...]
   24 |   vector<uint8_t> encode(const type_t type, const vector<uint8_t>& payload) {
      |          ^~~~~~~
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:24:10: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:24:17: error: template argument 1 is invalid
   24 |   vector<uint8_t> encode(const type_t type, const vector<uint8_t>& payload) {
      |                 ^
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:24:17: error: template argument 2 is invalid
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:24:32: error: ‘type_t’ does not name a type; did you mean ‘time_t’?
   24 |   vector<uint8_t> encode(const type_t type, const vector<uint8_t>& payload) {
      |                                ^~~~~~
      |                                time_t
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:24:58: error: ‘uint8_t’ was not declared in this scope
   24 |   vector<uint8_t> encode(const type_t type, const vector<uint8_t>& payload) {
      |                                                          ^~~~~~~
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:24:58: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:24:65: error: template argument 1 is invalid
   24 |   vector<uint8_t> encode(const type_t type, const vector<uint8_t>& payload) {
      |                                                                 ^
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:24:65: error: template argument 2 is invalid
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp: In function ‘int polybar::ipc::encode(int, const int&)’:
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:25:26: error: ‘uint8_t’ was not declared in this scope
   25 |     return encode<vector<uint8_t>>(type, payload);
      |                          ^~~~~~~
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:25:26: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:25:26: error: template argument 1 is invalid
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:25:26: error: template argument 2 is invalid
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:25:35: error: no matching function for call to ‘encode<<expression error> >(const int&, const int&)’
   25 |     return encode<vector<uint8_t>>(type, payload);
      |            ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:25:35: note: there are 3 candidates
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:10:19: note: candidate 1: ‘template<class V> int polybar::ipc::encode(int, const V&)’
   10 |   vector<uint8_t> encode(const type_t type, const V& payload) {
      |                   ^~~~~~
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:10:19: note: template argument deduction/substitution failed:
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:25:35: error: template argument 1 is invalid
   25 |     return encode<vector<uint8_t>>(type, payload);
      |            ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:25:35: note: some candidates omitted; use ‘-fdiagnostics-all-candidates’ to display them
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp: At global scope:
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:28:10: error: ‘uint8_t’ was not declared in this scope
   28 |   vector<uint8_t> encode(const type_t type, const string& payload) {
      |          ^~~~~~~
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:28:10: note: ‘uint8_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:28:17: error: template argument 1 is invalid
   28 |   vector<uint8_t> encode(const type_t type, const string& payload) {
      |                 ^
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:28:17: error: template argument 2 is invalid
/build/reproducible-path/polybar-3.7.2/src/ipc/encoder.cpp:28:32: error: ‘type_t’ does not name a type; did you mean ‘time_t’?
   28 |   vector<uint8_t> encode(const type_t type, const string& payload) {
      |                                ^~~~~~
      |                                time_t
make[3]: *** [bin/CMakeFiles/poly.dir/build.make:404: bin/CMakeFiles/poly.dir/ipc/encoder.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from /build/reproducible-path/polybar-3.7.2/src/ipc/util.cpp:9:
/build/reproducible-path/polybar-3.7.2/include/utils/string.hpp:48:3: error: ‘uint32_t’ does not name a type
   48 |   uint32_t codepoint{0};
      |   ^~~~~~~~
/build/reproducible-path/polybar-3.7.2/include/utils/string.hpp:4:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
    3 | #include <sstream>
  +++ |+#include <cstdint>
    4 |
make[3]: *** [bin/CMakeFiles/poly.dir/build.make:418: bin/CMakeFiles/poly.dir/ipc/util.cpp.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/polybar-3.7.2/build'
make[2]: *** [CMakeFiles/Makefile2:631: bin/CMakeFiles/poly.dir/all] Error 2
make[2]: Leaving directory '/build/reproducible-path/polybar-3.7.2/build'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/polybar-3.7.2/build'
dh_auto_build: error: cd build && make -j8 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:10: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1097633#14
Date:
2025-09-21 08:23:51 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
polybar, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1097633@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Samuel Henrique <samueloph@debian.org> (supplier of updated polybar package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sun, 21 Sep 2025 10:00:15 +0200
Source: polybar
Architecture: source
Version: 3.7.2-2
Distribution: unstable
Urgency: medium
Maintainer: Samuel Henrique <samueloph@debian.org>
Changed-By: Samuel Henrique <samueloph@debian.org>
Closes: 1097633
Changes:
 polybar (3.7.2-2) unstable; urgency=medium
 .
   * d/p/add_missing_cstdint_includes.patch: New patch to support GCC-15
     (closes: #1097633)
Checksums-Sha1:
 bb4025671385b999fed2fa81f4da97e9bef063c6 2271 polybar_3.7.2-2.dsc
 fc8c798af89636c80fac984ca5f20acc4b9dd12a 8604 polybar_3.7.2-2.debian.tar.xz
 6f7b86f9d6384523cf225d00da4715ff8dbd1cfa 13469 polybar_3.7.2-2_amd64.buildinfo
Checksums-Sha256:
 63d40a878c37e1799a047f1821eb840713925fe7546f06e5910b4b03f39ebb98 2271 polybar_3.7.2-2.dsc
 7332d64d796e33a08ce2edbb8029e40c51ab5183f2e8f9b70636c4e2ec96fb55 8604 polybar_3.7.2-2.debian.tar.xz
 44031178f393a658803bf26c48dd77da146f783dad44769be7cc5f37dbf757a6 13469 polybar_3.7.2-2_amd64.buildinfo
Files:
 fc257161d51b653d6e2262e9c34e4d46 2271 x11 optional polybar_3.7.2-2.dsc
 86900b95f26928ae8a477dcddeae529e 8604 x11 optional polybar_3.7.2-2.debian.tar.xz
 cbe9f0f7fc882d7f9fac269913f4df32 13469 x11 optional polybar_3.7.2-2_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEBdtqg34QX0sdAsVfu6n6rcz7RwcFAmjPsUIACgkQu6n6rcz7
RwdmrxAAqd3VdggNaev//KsRXfKMwkR3Wc25CH+NzTky9AzC5SAo4XxR1GPnlKcJ
hWVBZ/Jfenuo5p+/ODb6Rk6wZ41XNDYdV/Qt0rm2YryQsZIvmRbswqfMPhi1fZ5W
u0UQyoBwFfjq2zGmR/6l50lgN3H9Hx4J4WUiCv0biak6192HSCvhtgEECqJzopvl
K7e8jptl0dMHizSQHKxxYZEompm/kb6nsOpxZTQRUhKShM/6As83yBz27gK+E0dm
FVZ7qRVZnytPEFqtC61oZFR56wzaA9ULAgI/gVqWL5L8Gr+CcW8Lgf5bEIf1UnOG
dEqIDwjWxc4JPSUcL9x5jRxC804TJ+pET0wMlJYUAzCc3fMNaKM9hg90owwWkdf5
1u2CaqeZ0HcGnpsRSd2aWiPuYQgN4mKNJYmh4aDZjrxz1WbUf4ujhX+lc777CGex
HcWOg6cBhravq/rXSftbxJpLCDj8UEqiQiIlrWyEwiF0lIFS2SptTDhyk08qJdAU
fvEjdJ3xxDJPtjlJGoap2NktpdGgrnqdw0rWXu12s7exnAxZUXTbyoWwne/DMh2i
pdgqI/QSSMGeXrTm/Tsg8PCUeohXAg9tZ11IvYuZ4YHIpmrw7S7P9deGPrBzgV7n
fFKpabfV6XY7PePixD3xp2HNZscawEottR9Xnpo8kkcIouSKlc8=
=vAAU
-----END PGP SIGNATURE-----