dev-qt/qtwebengine-5.15.10_p20230815 fails to build with: ../../../../qtwebengine-5.15.10_p20230815/src/3rdparty/chromium/gpu/command_buffer/service/program_manager.cc: In member funct ion «std::string gpu::gles2::Program::ProcessLogInfo(const std::string&)»: ../../../../qtwebengine-5.15.10_p20230815/src/3rdparty/chromium/gpu/command_buffer/service/program_manager.cc:623:25: ошибка: «using re2::StringPiece = class absl::string_view» {aka «class absl::string_view»} has not member named «as_string» 623 | return output + input.as_string(); | Looking at upstream sources[1], we see that std::string(input) now. A simple patch fixes this build failure: - return output + input.as_string(); + return output + std::string(input); Refs: [1] https://github.com/qt/qtwebengine-chromium/blame/14780aaa6b0f85a6912878b3874c18e63c99a5d9/chromium/gpu/command_buffer/service/program_manager.cc#L617C19-L617C38
Created attachment 871855 [details] emerge --info
Created attachment 871856 [details] build.log.xz
Created attachment 871857 [details, diff] qtwebengine-5.15.10_p20230815-as_string.patch
And another failure: ../../../../qtwebengine-5.15.10_p20230815/src/3rdparty/chromium/extensions/browser/api/web_request/form_data_parser.cc: In member function «virtual bool extensions::FormDataParserUrlEncoded::SetSource(base::StringPiece)»: ../../../../qtwebengine-5.15.10_p20230815/src/3rdparty/chromium/extensions/browser/api/web_request/form_data_parser.cc:424:11: ошибка: «using re2::StringPiece = class absl::string_view» {aka «class absl::string_view»} не содержит элемента с именем «set» 424 | source_.set(source.data(), source.size()); | ^~~ ../../../../qtwebengine-5.15.10_p20230815/src/3rdparty/chromium/extensions/browser/api/web_request/form_data_parser.cc: In member function «virtual bool extensions::FormDataParserMultipart::SetSource(base::StringPiece)»: ../../../../qtwebengine-5.15.10_p20230815/src/3rdparty/chromium/extensions/browser/api/web_request/form_data_parser.cc:568:11: ошибка: «using re2::StringPiece = class absl::string_view» {aka «class absl::string_view»} не содержит элемента с именем «set» 568 | source_.set(source.data(), source.size()); | ^~~ Patch fix this issue: https://github.com/qt/qtwebengine-chromium/commit/0bfda71ae38597646a21e3141a9b95e74cc95636.patch?diff=unified
Created attachment 871860 [details, diff] qtwebengine-5.15.10_p20230815-re2_StringPiece_set.patch
Are you using a newer version of re2 from an overlay? The plan is to switch to bundled.
(In reply to Sam James from comment #6) > Are you using a newer version of re2 from an overlay? The plan is to switch > to bundled. Oh, I missed that re2 came from my overlay. So yes, I'm using dev-libs/re2-0.2023.06.02, which is not in the tree atm. Anyway, I found that the build fails later on linkage with: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/portage/dev-qt/qtwebengine-5.15.10_p20230815/work/qtwebengine-5.15.10_p20230815_build/src/core/release/obj/gpu/config/config_sources/gpu_control_list.o: в функции «gpu::(anonymous namespace)::StringMismatch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) [clone .part.0]»: gpu_control_list.cc:(.text._ZN3gpu12_GLOBAL__N_114StringMismatchERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc.part.0+0xc6): undefined reference to `re2::RE2::FullMatchN(absl::string_view, re2::RE2 const&, re2::RE2::Arg const* const*, int)' /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/portage/dev-qt/qtwebengine-5.15.10_p20230815/work/qtwebengine-5.15.10_p20230815_build/src/core/release/obj/gpu/config/config_sources/gpu_control_list.o: в функции «gpu::GpuControlList::MachineModelInfo::Contains(gpu::GPUInfo const&) const»: gpu_control_list.cc:(.text._ZNK3gpu14GpuControlList16MachineModelInfo8ContainsERKNS_7GPUInfoE+0xaa): undefined reference to `re2::RE2::FullMatchN(absl::string_view, re2::RE2 const&, re2::RE2::Arg const* const*, int)' I looked into sources in src/3rdparty/chromium/gpu/config/gpu_control_list.cc, I found #include "third_party/re2/src/re2/re2.h", so switching to the bundled version is the best solution for this problem as I see. Thank you for pointing to the right direction. BTW, do you have patch to try build with bundled re2?
(In reply to pva from comment #7) > (In reply to Sam James from comment #6) > > Are you using a newer version of re2 from an overlay? The plan is to switch > > to bundled. > > Oh, I missed that re2 came from my overlay. So yes, I'm using > dev-libs/re2-0.2023.06.02, which is not in the tree atm. > > > Anyway, I found that the build fails later on linkage with: > yeah, that's why we have to switch ;) See the huge discussion in bug 908373 and https://github.com/gentoo/gentoo/pull/31893 and https://github.com/gentoo/gentoo/pull/31388. > [...] > > BTW, do you have patch to try build with bundled re2? Not tried yet, please let me know if you do though.