flamethrower failed to build from source in Fedora rawhide/f38 https://koji.fedoraproject.org/koji/taskinfo?taskID=96326886 For details on the mass rebuild see: https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Please fix flamethrower at your earliest convenience and set the bug's status to ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks, flamethrower will be orphaned. Before branching of Fedora 39, flamethrower will be retired, if it still fails to build. For more details on the FTBFS policy, please visit: https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/
Oh, that seems to be caused by updated uvw, which introduced some incompatibilities. Or maybe some toolchain changes, because it seems on F36 just with updated uvw package it still compiles just fine. On rawhide it does not.
Confirmed it is fixed by small change in uvw package. Just #include <cstdint> anywhere std:uint32_t is used. Added them also to anywhere uintX_t is used.
With version uvw-devel-2.12.1-3.fc38.x86_64, it ends with error: /usr/bin/g++ -DDOH_ENABLE -DUSE_HTTP_PARSER -Dflamecore_EXPORTS -I/usr/include/ldns/ldns -I/usr/include/p11-kit-1 -I/builddir/build/BUILD/flamethrower-0.11.0/3rd/base64url -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -g -std=c++17 -fPIC -Wall -MD -MT CMakeFiles/flamecore.dir/flame/tcptlssession.cpp.o -MF CMakeFiles/flamecore.dir/flame/tcptlssession.cpp.o.d -o CMakeFiles/flamecore.dir/flame/tcptlssession.cpp.o -c /builddir/build/BUILD/flamethrower-0.11.0/flame/tcptlssession.cpp In file included from /usr/include/uvw/emitter.h:13, from /usr/include/uvw/resource.hpp:6, from /usr/include/uvw/handle.hpp:8, from /usr/include/uvw/async.h:5, from /usr/include/uvw.hpp:1, from /builddir/build/BUILD/flamethrower-0.11.0/flame/tcpsession.h:6, from /builddir/build/BUILD/flamethrower-0.11.0/flame/tcptlssession.h:5, from /builddir/build/BUILD/flamethrower-0.11.0/flame/tcptlssession.cpp:5: /usr/include/uvw/type_info.hpp:17:37: error: 'uint32_t' in namespace 'std' does not name a type; did you mean 'wint_t'? 17 | [[nodiscard]] static constexpr std::uint32_t fnv1a(const char *curr) noexcept { | ^~~~~~~~ | wint_t /usr/include/uvw/type_info.hpp:29:34: error: 'uint32_t' in namespace 'std' does not name a type; did you mean 'wint_t'? 29 | [[nodiscard]] static inline std::uint32_t counter() noexcept { | ^~~~~~~~ | wint_t /usr/include/uvw/type_info.hpp:35:27: error: 'uint32_t' in namespace 'std' does not name a type; did you mean 'wint_t'? 35 | [[nodiscard]] static std::uint32_t fake() noexcept { | ^~~~~~~~ | wint_t /usr/include/uvw/type_info.hpp:53:37: error: 'uint32_t' in namespace 'std' does not name a type; did you mean 'wint_t'? 53 | [[nodiscard]] static constexpr std::uint32_t type() noexcept { | ^~~~~~~~ | wint_t /usr/include/uvw/emitter.h:289:29: error: 'uint32_t' is not a member of 'std'; did you mean 'wint_t'? 289 | std::unordered_map<std::uint32_t, std::unique_ptr<BaseHandler>> handlers{}; | ^~~~~~~~ | wint_t /usr/include/uvw/emitter.h:289:66: error: template argument 1 is invalid 289 | std::unordered_map<std::uint32_t, std::unique_ptr<BaseHandler>> handlers{}; | ^~ /usr/include/uvw/emitter.h:289:66: error: template argument 3 is invalid /usr/include/uvw/emitter.h:289:66: error: template argument 4 is invalid /usr/include/uvw/emitter.h:289:66: error: template argument 5 is invalid /usr/include/uvw/emitter.h: In member function 'uvw::Emitter<T>::Handler<E>& uvw::Emitter<T>::handler()': /usr/include/uvw/emitter.h:157:19: error: 'type' was not declared in this scope; did you mean 'wctype'? 157 | auto id = type<E>(); | ^~~~ | wctype /usr/include/uvw/emitter.h:157:25: error: expected primary-expression before '>' token 157 | auto id = type<E>(); | ^ /usr/include/uvw/emitter.h:157:27: error: expected primary-expression before ')' token 157 | auto id = type<E>(); | ^ /usr/include/uvw/emitter.h:159:22: error: request for member 'count' in '((uvw::Emitter<T>*)this)->uvw::Emitter<T>::handlers', which is of non-class type 'int' 159 | if(!handlers.count(id)) { | ^~~~~ /usr/include/uvw/emitter.h:163:52: error: request for member 'at' in '((uvw::Emitter<T>*)this)->uvw::Emitter<T>::handlers', which is of non-class type 'int' 163 | return static_cast<Handler<E> &>(*handlers.at(id)); | ^~ /usr/include/uvw/emitter.h: In member function 'void uvw::Emitter<T>::clear()': /usr/include/uvw/emitter.h:264:32: error: request for member 'begin' in '((uvw::Emitter<T>*)this)->uvw::Emitter<T>::handlers', which is of non-class type 'int' 264 | std::for_each(handlers.begin(), handlers.end(), [](auto &&hdlr) { if(hdlr.second) { hdlr.second->clear(); } }); | ^~~~~ /usr/include/uvw/emitter.h:264:50: error: request for member 'end' in '((uvw::Emitter<T>*)this)->uvw::Emitter<T>::handlers', which is of non-class type 'int' 264 | std::for_each(handlers.begin(), handlers.end(), [](auto &&hdlr) { if(hdlr.second) { hdlr.second->clear(); } }); | ^~~ /usr/include/uvw/emitter.h: In member function 'bool uvw::Emitter<T>::empty() const': /usr/include/uvw/emitter.h:274:19: error: 'type' was not declared in this scope; did you mean 'wctype'? 274 | auto id = type<E>(); | ^~~~ | wctype /usr/include/uvw/emitter.h:274:25: error: expected primary-expression before '>' token 274 | auto id = type<E>(); | ^ /usr/include/uvw/emitter.h:274:27: error: expected primary-expression before ')' token 274 | auto id = type<E>(); | ^ /usr/include/uvw/emitter.h:276:27: error: request for member 'count' in '((const uvw::Emitter<T>*)this)->uvw::Emitter<T>::handlers', which is of non-class type 'const int' 276 | return (!handlers.count(id) || static_cast<Handler<E> &>(*handlers.at(id)).empty()); | ^~~~~ /usr/include/uvw/emitter.h:276:76: error: request for member 'at' in '((const uvw::Emitter<T>*)this)->uvw::Emitter<T>::handlers', which is of non-class type 'const int' 276 | return (!handlers.count(id) || static_cast<Handler<E> &>(*handlers.at(id)).empty()); | ^~ /usr/include/uvw/emitter.h: In member function 'bool uvw::Emitter<T>::empty() const': /usr/include/uvw/emitter.h:285:37: error: request for member 'cbegin' in '((const uvw::Emitter<T>*)this)->uvw::Emitter<T>::handlers', which is of non-class type 'const int' 285 | return std::all_of(handlers.cbegin(), handlers.cend(), [](auto &&hdlr) { return !hdlr.second || hdlr.second->empty(); }); | ^~~~~~ /usr/include/uvw/emitter.h:285:56: error: request for member 'cend' in '((const uvw::Emitter<T>*)this)->uvw::Emitter<T>::handlers', which is of non-class type 'const int' 285 | return std::all_of(handlers.cbegin(), handlers.cend(), [](auto &&hdlr) { return !hdlr.second || hdlr.second->empty(); }); | ^~~~ [ 46%] Building CXX object CMakeFiles/flamecore.dir/flame/utils.cpp.o
With version uvw-2.12.1-4.fc39 it has built again. No other change in flamethrower is needed.