Bug 2171490
| Summary: | flamethrower: FTBFS in Fedora rawhide/f38 | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Fedora Release Engineering <releng> |
| Component: | flamethrower | Assignee: | Petr Menšík <pemensik> |
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | dns-sig, pemensik |
| Target Milestone: | --- | Keywords: | Regression |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | flamethrower-0.11.0-14.fc39 uvw-2.12.1-4.fc39 flamethrower-0.11.0-14.fc38 | Doc Type: | No Doc Update |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2023-02-20 18:50:33 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 2113750 | ||
| Bug Blocks: | 2117176 | ||
|
Description
Fedora Release Engineering
2023-02-20 11:47:56 UTC
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. |