Bug 2171487
Summary: | fastnetmon: FTBFS in Fedora rawhide/f38 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Fedora Release Engineering <releng> | ||||||||
Component: | fastnetmon | Assignee: | Pavel Odintsov <pavel.odintsov> | ||||||||
Status: | CLOSED ERRATA | QA Contact: | |||||||||
Severity: | unspecified | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | 39 | CC: | code, pavel.odintsov | ||||||||
Target Milestone: | --- | ||||||||||
Target Release: | --- | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | fastnetmon-1.2.1-11.20220528git420e7b8.fc39 | Doc Type: | If docs needed, set a value | ||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2023-09-15 18:55:14 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: | 2172252 | ||||||||||
Bug Blocks: | 2117176, 2172690 | ||||||||||
Attachments: |
|
Description
Fedora Release Engineering
2023-02-20 11:47:42 UTC
In file included from /usr/include/capnp/layout.h:34, from /usr/include/capnp/generated-header-support.h:27, from /builddir/build/BUILD/fastnetmon-420e7b873253fdc1b52b517d9c28db39bf384427/src/simple_packet_capnp/simple_packet.capnp.h:6, from /builddir/build/BUILD/fastnetmon-420e7b873253fdc1b52b517d9c28db39bf384427/src/simple_packet_capnp/simple_packet.capnp.c++:4: /usr/include/capnp/blob.h: In function 'bool capnp::operator==(const char*, const Text::Builder&)': /usr/include/capnp/blob.h:176:74: error: no match for 'operator==' (operand types are 'const char*' and 'kj::StringPtr') 176 | inline bool operator==(const char* a, const Text::Builder& b) { return a == b.asString(); } | ~ ^~ ~~~~~~~~~~~~ | | | | const char* kj::StringPtr /usr/bin/cmake -P CMakeFiles/fastnetmon_pcap_format.dir/cmake_clean_target.cmake In file included from /usr/include/kj/memory.h:24, from /usr/include/kj/array.h:24, from /usr/include/kj/string.h:25, from /usr/include/capnp/common.h:29, from /usr/include/capnp/raw-schema.h:24, from /usr/include/capnp/generated-header-support.h:26: /usr/include/kj/common.h:756:13: note: candidate: 'template<class T> bool kj::operator==(T, MaxValue_)' (reversed) 756 | inline bool operator==(T t, MaxValue_) { return t == Decay<T>(maxValue); } | ^~~~~~~~ /usr/include/kj/common.h:756:13: note: template argument deduction/substitution failed: /usr/include/capnp/blob.h:176:72: note: cannot convert 'a' (type 'const char*') to type 'kj::MaxValue_' 176 | inline bool operator==(const char* a, const Text::Builder& b) { return a == b.asString(); } | ^ /usr/include/kj/common.h:758:13: note: candidate: 'template<class T> bool kj::operator==(T, MinValue_)' (reversed) 758 | inline bool operator==(T t, MinValue_) { return t == Decay<T>(minValue); } | ^~~~~~~~ /usr/include/kj/common.h:758:13: note: template argument deduction/substitution failed: /usr/include/capnp/blob.h:176:72: note: cannot convert 'a' (type 'const char*') to type 'kj::MinValue_' 176 | inline bool operator==(const char* a, const Text::Builder& b) { return a == b.asString(); } | ^ /usr/include/capnp/blob.h:176:13: note: candidate: 'bool capnp::operator==(const char*, const Text::Builder&)' (reversed) 176 | inline bool operator==(const char* a, const Text::Builder& b) { return a == b.asString(); } | ^~~~~~~~ /usr/include/capnp/blob.h:176:36: note: no known conversion for argument 1 from 'kj::StringPtr' to 'const char*' 176 | inline bool operator==(const char* a, const Text::Builder& b) { return a == b.asString(); } | ~~~~~~~~~~~~^ /usr/include/capnp/blob.h: In function 'bool capnp::operator!=(const char*, const Text::Builder&)': /usr/include/capnp/blob.h:177:74: error: no match for 'operator!=' (operand types are 'const char*' and 'kj::StringPtr') 177 | inline bool operator!=(const char* a, const Text::Builder& b) { return a != b.asString(); } | ~ ^~ ~~~~~~~~~~~~ | | | | const char* kj::StringPtr /usr/include/kj/common.h:756:13: note: candidate: 'template<class T> bool kj::operator==(T, MaxValue_)' (reversed) 756 | inline bool operator==(T t, MaxValue_) { return t == Decay<T>(maxValue); } | ^~~~~~~~ /usr/include/kj/common.h:756:13: note: template argument deduction/substitution failed: /usr/include/capnp/blob.h:177:72: note: cannot convert 'a' (type 'const char*') to type 'kj::MaxValue_' 177 | inline bool operator!=(const char* a, const Text::Builder& b) { return a != b.asString(); } | ^ /usr/include/kj/common.h:758:13: note: candidate: 'template<class T> bool kj::operator==(T, MinValue_)' (reversed) 758 | inline bool operator==(T t, MinValue_) { return t == Decay<T>(minValue); } | ^~~~~~~~ /usr/include/kj/common.h:758:13: note: template argument deduction/substitution failed: /usr/include/capnp/blob.h:177:72: note: cannot convert 'a' (type 'const char*') to type 'kj::MinValue_' 177 | inline bool operator!=(const char* a, const Text::Builder& b) { return a != b.asString(); } | ^ /usr/include/capnp/blob.h:176:13: note: candidate: 'bool capnp::operator==(const char*, const Text::Builder&)' (reversed) 176 | inline bool operator==(const char* a, const Text::Builder& b) { return a == b.asString(); } | ^~~~~~~~ /usr/include/capnp/blob.h:176:36: note: no known conversion for argument 1 from 'kj::StringPtr' to 'const char*' 176 | inline bool operator==(const char* a, const Text::Builder& b) { return a == b.asString(); } | ~~~~~~~~~~~~^ /usr/include/capnp/blob.h:177:13: note: candidate: 'bool capnp::operator!=(const char*, const Text::Builder&)' 177 | inline bool operator!=(const char* a, const Text::Builder& b) { return a != b.asString(); } | ^~~~~~~~ /usr/include/capnp/blob.h:177:60: note: no known conversion for argument 2 from 'kj::StringPtr' to 'const capnp::Text::Builder&' 177 | inline bool operator!=(const char* a, const Text::Builder& b) { return a != b.asString(); } | ~~~~~~~~~~~~~~~~~~~~~^ This was reported upstream 2023-01-22. There has so far been no response. https://github.com/pavel-odintsov/fastnetmon/issues/965 Hello! Thank you for reporting it. I think this issue is coming from upstream: https://github.com/capnproto/capnproto/issues/1622 it looks extremely similar to what we observe. Compilation fails in capnp's headers and not caused in any way by our own code. We can drop capnp support but I think it will be better to fix capnp package. Hello! I confirmed that issue it coming from capnproto upstream and put all the details and my findings here: https://github.com/capnproto/capnproto/issues/1622 It can be easily fixed with this patch for 0.10.3-1: diff -u string.original string.h --- string.original 2023-02-21 17:35:30.424977256 +0000 +++ string.h 2023-02-21 17:38:17.000687845 +0000 @@ -122,10 +122,15 @@ inline constexpr const char* end() const { return content.end() - 1; } inline constexpr bool operator==(decltype(nullptr)) const { return content.size() <= 1; } +#if !__cpp_impl_three_way_comparison inline constexpr bool operator!=(decltype(nullptr)) const { return content.size() > 1; } +#endif inline bool operator==(const StringPtr& other) const; +#if !__cpp_impl_three_way_comparison inline bool operator!=(const StringPtr& other) const { return !(*this == other); } +#endif + inline bool operator< (const StringPtr& other) const; inline bool operator> (const StringPtr& other) const { return other < *this; } inline bool operator<=(const StringPtr& other) const { return !(other < *this); } Created attachment 1945580 [details]
Patched string.h
Created attachment 1945581 [details]
Original string.h
Created attachment 1945582 [details]
Proposed patch
I attached original and patches string.h for capproto library and patch itself. I created follow up bug report for capnproto project and attached patches to it: https://bugzilla.redhat.com/show_bug.cgi?id=2172252 After fix in upstream build of our package will be fixed automatically. FEDORA-2023-0a2f5eea88 has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2023-0a2f5eea88 FEDORA-2023-0a2f5eea88 has been pushed to the Fedora 38 testing repository. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-0a2f5eea88 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2023-0a2f5eea88 has been pushed to the Fedora 38 stable repository. If problem still persists, please make note of it in this bug report. This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle. Changing version to 39. FEDORA-2023-4543b659d6 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-4543b659d6 FEDORA-2023-4543b659d6 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-4543b659d6 FEDORA-2023-4543b659d6 has been pushed to the Fedora 39 stable repository. If problem still persists, please make note of it in this bug report. |