#1096790 guix: ftbfs with GCC-15

Package:
src:guix
Source:
src:guix
Submitter:
Matthias Klose
Date:
2026-10-07 22:25:04 UTC
Severity:
normal
Tags:
#1096790#5
Date:
2025-02-17 17:18:29 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/guix_1.4.0-8_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

[...]
  done; \
else :; fi && \
cd "$am__cwd"; \
if /bin/bash '/build/reproducible-path/guix-1.4.0/build-aux/missing' makeinfo   -I doc -I ./doc \
 -o doc/guix-cookbook.sk.info ./doc/guix-cookbook.sk.texi; \
then \
  rc=0; \
  CDPATH="${ZSH_VERSION+.}:" && cd .; \
else \
  rc=$?; \
  CDPATH="${ZSH_VERSION+.}:" && cd . && \
  $restore $backupdir/* `echo "./doc/guix-cookbook.sk.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
g++ -DHAVE_CONFIG_H -I. -I./nix  -DLOCALEDIR=\"/usr/share/locale\" -I./nix -I./nix/libutil -I./nix -I./nix/libstore -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -std=c++11 -g -O2 -ffile-prefix-map=/build/reproducible-path/guix-1.4.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o nix/nix-daemon/guix_daemon-nix-daemon.o `test -f 'nix/nix-daemon/nix-daemon.cc' || echo './'`nix/nix-daemon/nix-daemon.cc
In file included from ./nix/libstore/local-store.hh:8,
                 from nix/nix-daemon/nix-daemon.cc:3:
./nix/libstore/store-api.hh:92:5: error: ‘uint64_t’ does not name a type
   92 |     uint64_t narSize = 0; // 0 = unknown
      |     ^~~~~~~~
./nix/libstore/store-api.hh:9:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
    8 | #include <memory>
  +++ |+#include <cstdint>
    9 |
./nix/libstore/store-api.hh:93:5: error: ‘uint64_t’ does not name a type
   93 |     uint64_t id; // internal use only
      |     ^~~~~~~~
./nix/libstore/store-api.hh:93:5: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
./nix/libstore/local-store.hh:217:5: error: ‘uint64_t’ does not name a type
  217 |     uint64_t queryValidPathId(const Path & path);
      |     ^~~~~~~~
./nix/libstore/local-store.hh:10:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
    9 | #include "util.hh"
  +++ |+#include <cstdint>
   10 |
./nix/libstore/local-store.hh:219:5: error: ‘uint64_t’ does not name a type
  219 |     uint64_t addValidPath(const ValidPathInfo & info, bool checkOutputs = true);
      |     ^~~~~~~~
./nix/libstore/local-store.hh:219:5: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
./nix/libstore/local-store.hh:221:23: error: ‘uint64_t’ has not been declared
  221 |     void addReference(uint64_t referrer, uint64_t reference);
      |                       ^~~~~~~~
./nix/libstore/local-store.hh:221:23: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
./nix/libstore/local-store.hh:221:42: error: ‘uint64_t’ has not been declared
  221 |     void addReference(uint64_t referrer, uint64_t reference);
      |                                          ^~~~~~~~
./nix/libstore/local-store.hh:221:42: note: ‘uint64_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
nix/nix-daemon/nix-daemon.cc: In function ‘void performOp(bool, unsigned int, nix::Source&, nix::Sink&, unsigned int)’:
nix/nix-daemon/nix-daemon.cc:708:28: error: ‘struct nix::ValidPathInfo’ has no member named ‘narSize’
  708 |         writeLongLong(info.narSize, to);
      |                            ^~~~~~~
nix/nix-daemon/nix-daemon.cc: In function ‘void sigPollHandler(int)’:
nix/nix-daemon/nix-daemon.cc:140:22: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  140 |                 write(STDERR_FILENO, s, strlen(s));
      |                 ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nix/nix-daemon/nix-daemon.cc:144:18: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  144 |             write(STDERR_FILENO, s, strlen(s));
      |             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nix/nix-daemon/nix-daemon.cc:150:14: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  150 |         write(STDERR_FILENO, s.data(), s.size());
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:4730: nix/nix-daemon/guix_daemon-nix-daemon.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/guix-1.4.0'
make[2]: *** [Makefile:5922: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/guix-1.4.0'
make[1]: *** [Makefile:4055: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/guix-1.4.0'
dh_auto_build: error: make -j1 returned exit code 2
make: *** [debian/rules:23: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1096790#10
Date:
2025-04-16 18:42:55 UTC
From:
To:
Control: forwarded 1096790 https://issues.guix.gnu.org/77847

Reported upstream.

live well,
  vagrant

#1096790#21
Date:
2026-10-06 20:43:10 UTC
From:
To:
Hello,

Bug #1096790 in guix reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/debian/guix/-/commit/747273f714b07cd4b2decd053efa9962f250d8e9
------------------------------------------------------------------------
debian/changelog: Fix FTBFS with GCC 15 in 1.5.0 (Closes: #1096790)
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1096790

#1096790#28
Date:
2026-10-07 22:24:42 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
guix, 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 1096790@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Vagrant Cascadian <vagrant@debian.org> (supplier of updated guix 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: Wed, 07 Oct 2026 13:03:54 -0700
Source: guix
Architecture: source
Version: 1.5.0-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Scheme Team <debian-scheme@lists.debian.org>
Changed-By: Vagrant Cascadian <vagrant@debian.org>
Closes: 1096790 1108318 1115303
Changes:
 guix (1.5.0-1) unstable; urgency=medium
 .
   * New upstream release.
     (Closes: #1108318, #1115303, #1096790)
     Fixes: CVE-2025-46415, CVE-2025-46416, CVE-2025-52991, CVE-2025-52992,
     CVE-2025-52993, CVE-2025-59378
   * debian/patches: Move all test related patches to a subdir.
   * debian/control: Update Build-Depends on guile-git to 0.10.0.
   * debian/upstream/signing-key.asc: Add key for Rutherther.
   * debian/patches: Disable tests accessing network or other mysterious failures.
   * debian/patches: Disable more tests.
   * debian/patches: tests/toml.scm: Disable expected failures that passed.
   * debian/watch: Update to format version 5.
   * debian/control: Remove "Priority" field.
   * debian/control: Remove "Rules-Requires-Root" field.
   * debian/control: Update Standards-Version to 4.7.3.
   * debian/control: Update Maintainer to Debian Scheme Team.
   * debian/patches: Fixes to apparmor profiles from upstream.
   * Add Build-Depends on dh-apparmor and call from debian/rules.
   * debian/sysusers.d/guix-daemon.conf: Add "guix-daemon" user, drop
     _guixbuild group and _guixbuilder users.
   * debian/patches: Drop --build-users-group from guix-daemon.service.
   * debian/patches: Refresh use-c-utf8-locale.
   * debian/guix.postinst: Ensure guix-daemon user owns /gnu/store, /var/guix
     and /var/log/guix.
   * debian/control: Add uidmap to Recommends.
   * debian/control: Add slirp4netns to Build-Depends and Recommends.
   * debian/control: Update to Standards-Version 4.7.4.
   * debian/copyright: Update for 1.5.0
Checksums-Sha1:
 8bcaaf4365442af2a90733347092c00318b8b01c 1964 guix_1.5.0-1.dsc
 6fbceccf056d2ee86ce43fd3ba0ef2fada5be5e4 87422418 guix_1.5.0.orig.tar.gz
 e37d23f3bf36083b6c4eff0637b1ef64bc4f22c6 833 guix_1.5.0.orig.tar.gz.asc
 43509e2c9bc166a4a7780f08f3d2b82c7500c03f 74312 guix_1.5.0-1.debian.tar.xz
 cda78301609b1d27fcabc0a5775f19e56f631657 10673 guix_1.5.0-1_amd64.buildinfo
Checksums-Sha256:
 057867b5d8335a53403f07a220737a2a17c06a70da3eb907f4f978e16b6a7af7 1964 guix_1.5.0-1.dsc
 df2102eed00aff0b17275654a42f094c8a1117ec065884eb1ff76005e47415c5 87422418 guix_1.5.0.orig.tar.gz
 4632c379832f2f55dbc02e4b8504f3564d374af08220c6e8bdcf505702e2c7ce 833 guix_1.5.0.orig.tar.gz.asc
 8383eab56717abed832e0bfefd952bf3d727ed07c404352e872dcfa0212b5f31 74312 guix_1.5.0-1.debian.tar.xz
 f2295c494a79348030c084e75999dd019ab120c9db5d719315470e49021d4fa8 10673 guix_1.5.0-1_amd64.buildinfo
Files:
 f60117b7924ef528ecd7679d9976aba7 1964 admin optional guix_1.5.0-1.dsc
 48aa9b7223bc2e6b3e8b6f53121ea932 87422418 admin optional guix_1.5.0.orig.tar.gz
 96f3dd7c223599c7914d5998af65cf8a 833 admin optional guix_1.5.0.orig.tar.gz.asc
 ebd0f5571e6cc3d63e28d2f0152a391f 74312 admin optional guix_1.5.0-1.debian.tar.xz
 79311b504505413c185f0996b72fcec0 10673 admin optional guix_1.5.0-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iIkEARYKADEWIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCasbCJRMcdmFncmFudEBk
ZWJpYW4ub3JnAAoJENxRj8h/lxaq0tMA/Rw5kBSSgiO01KLm8kgH41QwzhHN1wme
CbzVgsiaIbjsAP4oBNIN9Tg9PfgkwhRKtt89TF+eIXS0qkZU4NDLSojZAg==
=G8Zb
-----END PGP SIGNATURE-----