Bug#1037667: freeorion: ftbfs with GCC-13

Matthias Klose doko at debian.org
Wed Jun 14 10:24:44 BST 2023


Package: src:freeorion
Version: 0.4.10.2-1
Severity: normal
Tags: sid trixie
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-13

[This bug is 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-13/g++-13, but succeeds to build with gcc-12/g++-12. The
severity of this report will be raised before the trixie release.

The full build log can be found at:
http://qa-logs.debian.net/2023/05/22/logs/freeorion_0.4.10.2-1_unstable_gccexp.log
The last lines of the build log are at the end of this report.

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

  apt-get -t=experimental install g++ 

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-13/porting_to.html

[...]
/usr/include/c++/13/bits/std_function.h:469:33: note:   no known conversion for argument 1 from ‘ValueRef::ComplexVariable<double>::Eval(const ScriptingContext&) const::<lambda(const Empire&)>’ to ‘const std::function<const std::map<int, float>&(const Empire&)>&’
  469 |       operator=(const function& __x)
      |                 ~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/std_function.h:487:7: note: candidate: ‘std::function<_Res(_ArgTypes ...)>& std::function<_Res(_ArgTypes ...)>::operator=(std::function<_Res(_ArgTypes ...)>&&) [with _Res = const std::map<int, float>&; _ArgTypes = {const Empire&}]’
  487 |       operator=(function&& __x) noexcept
      |       ^~~~~~~~
/usr/include/c++/13/bits/std_function.h:487:28: note:   no known conversion for argument 1 from ‘ValueRef::ComplexVariable<double>::Eval(const ScriptingContext&) const::<lambda(const Empire&)>’ to ‘std::function<const std::map<int, float>&(const Empire&)>&&’
  487 |       operator=(function&& __x) noexcept
      |                 ~~~~~~~~~~~^~~
/usr/include/c++/13/bits/std_function.h:501:7: note: candidate: ‘std::function<_Res(_ArgTypes ...)>& std::function<_Res(_ArgTypes ...)>::operator=(std::nullptr_t) [with _Res = const std::map<int, float>&; _ArgTypes = {const Empire&}; std::nullptr_t = std::nullptr_t]’
  501 |       operator=(nullptr_t) noexcept
      |       ^~~~~~~~
/usr/include/c++/13/bits/std_function.h:501:17: note:   no known conversion for argument 1 from ‘ValueRef::ComplexVariable<double>::Eval(const ScriptingContext&) const::<lambda(const Empire&)>’ to ‘std::nullptr_t’
  501 |       operator=(nullptr_t) noexcept
      |                 ^~~~~~~~~
/<<PKGBUILDDIR>>/universe/ValueRefs.cpp:1813:125: error: no match for ‘operator=’ (operand types are ‘std::function<const std::map<int, float>&(const Empire&)>’ and ‘ValueRef::ComplexVariable<double>::Eval(const ScriptingContext&) const::<lambda(const Empire&)>’)
 1813 |         empire_property = [](const Empire& empire){ return GetSupplyManager().PropagatedSupplyDistances(empire.EmpireID()); };
      |                                                                                                                             ^
/usr/include/c++/13/bits/std_function.h:531:9: note: candidate: ‘template<class _Functor> std::function<_Res(_ArgTypes ...)>::_Requires<std::function<_Res(_ArgTypes ...)>::_Callable<_Functor>, std::function<_Res(_ArgTypes ...)>&> std::function<_Res(_ArgTypes ...)>::operator=(_Functor&&) [with _Res = const std::map<int, float>&; _ArgTypes = {const Empire&}]’
  531 |         operator=(_Functor&& __f)
      |         ^~~~~~~~
/usr/include/c++/13/bits/std_function.h:531:9: note:   template argument deduction/substitution failed:
/usr/include/c++/13/bits/std_function.h:541:9: note: candidate: ‘template<class _Functor> std::function<_Res(_ArgTypes ...)>& std::function<_Res(_ArgTypes ...)>::operator=(std::reference_wrapper<_Functor>) [with _Res = const std::map<int, float>&; _ArgTypes = {const Empire&}]’
  541 |         operator=(reference_wrapper<_Functor> __f) noexcept
      |         ^~~~~~~~
/usr/include/c++/13/bits/std_function.h:541:9: note:   template argument deduction/substitution failed:
/<<PKGBUILDDIR>>/universe/ValueRefs.cpp:1813:125: note:   ‘ValueRef::ComplexVariable<double>::Eval(const ScriptingContext&) const::<lambda(const Empire&)>’ is not derived from ‘std::reference_wrapper<_Tp>’
 1813 |         empire_property = [](const Empire& empire){ return GetSupplyManager().PropagatedSupplyDistances(empire.EmpireID()); };
      |                                                                                                                             ^
/usr/include/c++/13/bits/std_function.h:469:7: note: candidate: ‘std::function<_Res(_ArgTypes ...)>& std::function<_Res(_ArgTypes ...)>::operator=(const std::function<_Res(_ArgTypes ...)>&) [with _Res = const std::map<int, float>&; _ArgTypes = {const Empire&}]’
  469 |       operator=(const function& __x)
      |       ^~~~~~~~
/usr/include/c++/13/bits/std_function.h:469:33: note:   no known conversion for argument 1 from ‘ValueRef::ComplexVariable<double>::Eval(const ScriptingContext&) const::<lambda(const Empire&)>’ to ‘const std::function<const std::map<int, float>&(const Empire&)>&’
  469 |       operator=(const function& __x)
      |                 ~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/std_function.h:487:7: note: candidate: ‘std::function<_Res(_ArgTypes ...)>& std::function<_Res(_ArgTypes ...)>::operator=(std::function<_Res(_ArgTypes ...)>&&) [with _Res = const std::map<int, float>&; _ArgTypes = {const Empire&}]’
  487 |       operator=(function&& __x) noexcept
      |       ^~~~~~~~
/usr/include/c++/13/bits/std_function.h:487:28: note:   no known conversion for argument 1 from ‘ValueRef::ComplexVariable<double>::Eval(const ScriptingContext&) const::<lambda(const Empire&)>’ to ‘std::function<const std::map<int, float>&(const Empire&)>&&’
  487 |       operator=(function&& __x) noexcept
      |                 ~~~~~~~~~~~^~~
/usr/include/c++/13/bits/std_function.h:501:7: note: candidate: ‘std::function<_Res(_ArgTypes ...)>& std::function<_Res(_ArgTypes ...)>::operator=(std::nullptr_t) [with _Res = const std::map<int, float>&; _ArgTypes = {const Empire&}; std::nullptr_t = std::nullptr_t]’
  501 |       operator=(nullptr_t) noexcept
      |       ^~~~~~~~
/usr/include/c++/13/bits/std_function.h:501:17: note:   no known conversion for argument 1 from ‘ValueRef::ComplexVariable<double>::Eval(const ScriptingContext&) const::<lambda(const Empire&)>’ to ‘std::nullptr_t’
  501 |       operator=(nullptr_t) noexcept
      |                 ^~~~~~~~~
[ 52%] Building CXX object CMakeFiles/freeorioncommon.dir/util/AppInterface.cpp.o
/usr/bin/c++ -DBINPATH=\"/usr/bin\" -DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB -DENABLE_BINRELOC -DFREEORION_BUILD_COMMON -DFREEORION_LINUX -DFREEORION_PYTHON_VERSION=\"3.11\" -DSHAREPATH=\"/usr/share\" -Dfreeorioncommon_EXPORTS -I/<<PKGBUILDDIR>>/GG/Boost::boost -I/<<PKGBUILDDIR>>/GG -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -g -DNDEBUG -fPIC -fvisibility=hidden -Wall -std=c++14 -MD -MT CMakeFiles/freeorioncommon.dir/util/AppInterface.cpp.o -MF CMakeFiles/freeorioncommon.dir/util/AppInterface.cpp.o.d -o CMakeFiles/freeorioncommon.dir/util/AppInterface.cpp.o -c /<<PKGBUILDDIR>>/util/AppInterface.cpp
make[3]: *** [CMakeFiles/freeorioncommon.dir/build.make:709: CMakeFiles/freeorioncommon.dir/universe/ValueRefs.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make  -f CMakeFiles/freeorionparse.dir/build.make CMakeFiles/freeorionparse.dir/depend
make[3]: Entering directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<<PKGBUILDDIR>> /<<PKGBUILDDIR>> /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/CMakeFiles/freeorionparse.dir/DependInfo.cmake --color=
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make  -f CMakeFiles/freeorionparse.dir/build.make CMakeFiles/freeorionparse.dir/build
make[3]: Entering directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
[ 52%] Linking CXX shared library libfreeorionparse.so
/usr/bin/cmake -E cmake_link_script CMakeFiles/freeorionparse.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -g -DNDEBUG -Wl,-z,relro -Wl,--as-needed -shared -Wl,-soname,libfreeorionparse.so -o libfreeorionparse.so CMakeFiles/freeorionparseobj.dir/parse/ArithmeticRules.cpp.o CMakeFiles/freeorionparseobj.dir/parse/BuildingsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/CommonParamsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ConditionParser1.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ConditionParser2.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ConditionParser3.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ConditionParser4.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ConditionParser5.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ConditionParser6.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ConditionParser7.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ConditionParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/DoubleComplexValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/DoubleValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/EffectParser1.cpp.o CMakeFiles/freeorionparseobj.dir/parse/EffectParser2.cpp.o CMakeFiles/freeorionparseobj.dir/parse/EffectParser3.cpp.o CMakeFiles/freeorionparseobj.dir/parse/EffectParser4.cpp.o CMakeFiles/freeorionparseobj.dir/parse/EffectParser5.cpp.o CMakeFiles/freeorionparseobj.dir/parse/EffectParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/EmpireStatsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/EncyclopediaParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/EnumParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/FieldsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/FleetPlansParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/GameRulesParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/IntComplexValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/IntValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ItemsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/Lexer.cpp.o CMakeFiles/freeorionparseobj.dir/parse/MonsterFleetPlansParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/Parse.cpp.o CMakeFiles/freeorionparseobj.dir/parse/PlanetEnvironmentValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/PlanetSizeValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/PlanetTypeValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ReportParseError.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ShipDesignsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ShipHullsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ShipPartsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/SpecialsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/SpeciesParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/StarTypeValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/StringComplexValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/StringValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/TechsParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/UniverseObjectTypeValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/ValueRefParser.cpp.o CMakeFiles/freeorionparseobj.dir/parse/VisibilityValueRefParser.cpp.o  -Wl,-rpath,::::::::::::::::::::::::::::::::::: 
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
[ 52%] Built target freeorionparse
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:523: CMakeFiles/freeorioncommon.dir/all] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:159: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j2 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:21: build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2



More information about the Pkg-games-devel mailing list