#1132062 amoebax: ftbfs with GCC-16

#1132062#5
Date:
2026-03-27 17:18:03 UTC
From:
To:
Hi,

amoebax fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.

The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/amoebax_arm64.build.xz

The last lines of the build log are at the end of this report.

To build with GCC 16, either set CC=gcc-16 CXX=g++-16 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++

Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html

Please only close this issue after double-checking that the package can be
built correctly.

Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.

[...]


TwoPlayersState.h:144:18: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  144 |             std::auto_ptr<Surface> m_Ready;
      |                  ^~~~~~~~
/usr/include/c++/16/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
TwoPlayersState.h:148:18: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  148 |             std::auto_ptr<IPlayer> m_RightPlayer;
      |                  ^~~~~~~~
/usr/include/c++/16/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
TwoPlayersState.h:150:18: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  150 |             std::auto_ptr<Font> m_ScoreFont;
      |                  ^~~~~~~~
/usr/include/c++/16/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
TwoPlayersState.h:154:18: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  154 |             std::auto_ptr<Surface> m_Silhouettes;
      |                  ^~~~~~~~
/usr/include/c++/16/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
TwoPlayersState.h:158:18: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  158 |             std::auto_ptr<Surface> m_YouLose;
      |                  ^~~~~~~~
/usr/include/c++/16/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
TwoPlayersState.h:160:18: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  160 |             std::auto_ptr<Surface> m_YouWin;
      |                  ^~~~~~~~
/usr/include/c++/16/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from TournamentState.cxx:32:
VersusState.h:59:18: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   59 |             std::auto_ptr<Surface> m_Background;
      |                  ^~~~~~~~
/usr/include/c++/16/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
VersusState.h:61:18: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
   61 |             std::auto_ptr<Music> m_BackgroundMusic;
      |                  ^~~~~~~~
/usr/include/c++/16/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
TournamentState.cxx: In member function ‘void Amoebax::TournamentState::loadGraphicResources()’:
TournamentState.cxx:436:14: warning: ‘template<class> class std::auto_ptr’ is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
  436 |         std::auto_ptr<Surface> grid (
      |              ^~~~~~~~
/usr/include/c++/16/bits/unique_ptr.h:58:28: note: declared here
   58 |   template<typename> class auto_ptr;
      |                            ^~~~~~~~
In file included from main.cxx:29:
System.h:49:31: warning: ‘template<class _Arg, class _Result> struct std::unary_function’ is deprecated [-Wdeprecated-declarations]
   49 |     struct DeleteObject: std::unary_function <T, void>
      |                               ^~~~~~~~~~~~~~
/usr/include/c++/16/bits/stl_function.h:120:12: note: declared here
  120 |     struct unary_function
      |            ^~~~~~~~~~~~~~
make[3]: Leaving directory '/build/reproducible-path/amoebax-0.2.1+dfsg/src'
make[2]: *** [Makefile:255: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/amoebax-0.2.1+dfsg'
make[1]: *** [Makefile:194: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/amoebax-0.2.1+dfsg'
dh_auto_build: error: make -j128 returned exit code 2
make: *** [debian/rules:5: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2

#1132062#10
Date:
2026-03-27 17:58:19 UTC
From:
To:
/usr/include/c++/16/bits/stl_numeric.h: In instantiation of ‘constexpr _Tp std::accumulate(_InputIterator, _InputIterator, _Tp, _BinaryOperation) [with _InputIterator = __gnu_cxx::__normal_iterator<const char*, __cxx11::basic_string<char> >; _Tp = short unsigned int; _BinaryOperation = Amoebax::Font::TextWidth]’:
Font.cxx:71:28:   required from here
    71 |     return std::accumulate (text.begin (), text.end (),
       |            ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    72 |                             static_cast<uint16_t>(0), TextWidth (this));
       |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/16/bits/stl_numeric.h:169:29: error: no match for call to ‘(Amoebax::Font::TextWidth) (std::remove_reference<short unsigned int&>::type, const char&)’
   169 |         __init = __binary_op(_GLIBCXX_MOVE_IF_20(__init), *__first);
       |                  ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   • there is 1 candidate
     Font.h:67:20:
        67 |             struct TextWidth:
           |                    ^~~~~~~~~
     • candidate 1: ‘uint16_t Amoebax::Font::TextWidth::operator()(uint16_t&, const char&)’ (near match)
       Font.h:98:17:
          98 |                 operator() (uint16_t &widthSoFar, const char ¤tCharacter)
             |                 ^~~~~~~~
       • conversion of argument 1 would be ill-formed:
       • error: cannot bind non-const lvalue reference of type ‘uint16_t&’ {aka ‘short unsigned int&’} to an rvalue of type ‘std::remove_reference<short unsigned int&>::type’ {aka ‘short unsigned int’}

(Someone who is better at C++ than me will have to solve this, sorry)

     smcv

#1132062#15
Date:
2026-04-21 22:16:59 UTC
From:
To:
tags 1132062 + patch
user debian-release@lists.debian.org
usertags 1132062 + bsp-2026-04-br-campinas
thanks

Thanks, Simon. I've proposed a patch to fix the issue with GCC 16 [1].
From what I tested, the build works with both C++17 and C++20.

I'm adding Jordi Fita in CC, since they are referenced as author in the
project webpage [2]. I will see if the e-mail can be successfully
delivered and then annotate the bug as forwarded accordingly if so.

[1] https://salsa.debian.org/games-team/amoebax/-/merge_requests/4
[2] https://www.emma-soft.com/games/amoebax/index.html

#1132062#24
Date:
2026-08-09 12:48:58 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
amoebax, 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 1132062@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Alexandre Detiste <tchet@debian.org> (supplier of updated amoebax 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, 09 Aug 2026 13:48:28 +0200
Source: amoebax
Architecture: source
Version: 0.2.1+dfsg-8
Distribution: unstable
Urgency: medium
Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Changed-By: Alexandre Detiste <tchet@debian.org>
Closes: 1132062
Changes:
 amoebax (0.2.1+dfsg-8) unstable; urgency=medium
 .
   * Team Upload
   * Add debian/salsa-ci.yml
   * Bump Standards-Version to 4.7.4, drop Priority: tag
 .
   [ Henrique F. Simoes ]
   * Fix FTBFS with GCC 16 (Closes: #1132062)
Checksums-Sha1:
 9671b54f49cf8be952afad0c237f513f2e4b9241 2091 amoebax_0.2.1+dfsg-8.dsc
 812f6ed6c9547b3d0ba270fe3c5af765a2f22aed 8332 amoebax_0.2.1+dfsg-8.debian.tar.xz
 072734ab542ac5907cae228885812af0c1537809 13179 amoebax_0.2.1+dfsg-8_source.buildinfo
Checksums-Sha256:
 99f0a7b90d0afe0321824ed83e48b0c37b343d6f57fdad9b96f7f9cd8d27d92c 2091 amoebax_0.2.1+dfsg-8.dsc
 427a75676fb30bb81541aa409cdcb972e8999b5dfe61b101666ae2d7a41b663c 8332 amoebax_0.2.1+dfsg-8.debian.tar.xz
 ba42251f8b05b4314c6546fdd30f9756bf1d198517bf140e010748102a751e30 13179 amoebax_0.2.1+dfsg-8_source.buildinfo
Files:
 5242c909b99b4cb3c78b7392fba8843a 2091 games optional amoebax_0.2.1+dfsg-8.dsc
 f9a0b36531155038c1a92aa2df8b3d24 8332 games optional amoebax_0.2.1+dfsg-8.debian.tar.xz
 c4719d6dfa19ea37632dc6f5bed4a99a 13179 games optional amoebax_0.2.1+dfsg-8_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEEj23hBDd/OxHnQXSHMfMURUShdBoFAmp4clERHHRjaGV0QGRl
Ymlhbi5vcmcACgkQMfMURUShdBrGAhAAhW52LsZUsq4z374SinSQXhKxsBXfbHok
aV5/DgVkldVdvmtn/pJxOGzdlDyN+UAnLZ6h3/iQAkwhei4FQlj5KEZqY5VErxP6
dWNb9xeEd3OjJaLr5sXRwaUHK5FfFQheg2GLbdu5n8uKwlkbaATnCgwlnDgpoeWy
Jz1Er1lTdesplAgbiqnTkd4nBYaHmfQmZh0858YcZKyzIauocuVyvq14G3OBIz+y
rV1fXgH+6l1p5yR5S5TlpWjmWCU2WJDQQw0pIvsXeRNtVAzneiPj/ZrRZLON+ujQ
u4g72TUmJGSDZUXclGZHuubCgJL0mCabqlFDB3RX0DUnk1+7iBSwqPYKG78GD/BJ
SMskWuEKuuMyU8i1+yxFz3Wooj/oUcQ182zE8mjTenUE4r3zBZomryZ0Tk3yK9eB
Os2+NDRGen0BjywrezXW59v3cJ6lPcHTaMRkF583LgsKo7LA2dk/n/fZK4qYB/ep
vTPHBzr8eRFtSNFAHlx2cQsKy77m8waQOCHxqqNHOYjIAH3BChjyL24URusfud1P
assuTU4oGpXj3e/LyH+tBiryT6WdNrVQ09GMAK4vqAdsMAcUBrOtvMn+RA9UdhBV
i9nV+vcwWVLWk1CnZBNTxEeF43TPOZmzexA0Xw83fTtpVpik5V7R8I+QOxo6PktL
NVNoVpkTGC8=
=0euR
-----END PGP SIGNATURE-----