Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error of building Contour 0.6.0.7452 with boxed-cpp 1.4.3, libunicode 0.6.0, reflection-cpp 0.1.0 #1681

Open
topazus opened this issue Dec 28, 2024 · 3 comments
Labels
bug Something isn't working high priority High Priority Item

Comments

@topazus
Copy link
Contributor

topazus commented Dec 28, 2024

Contour Terminal version

0.6.0.7452

Installer source

GitHub: release page

Operating System

Fedora 42

Architecture

x86-64

Other Software

No response

Steps to reproduce

I first updated boxed-cpp to version 1.4.3, libunicode to 0.6.0, and reflection-cpp to 0.1.0. Then, I used these dependencies to build the latest release of Contour, version 0.6.0.7452.

Expected Behavior

No response

Actual Behavior

/usr/bin/g++ -DCONTOUR_APP_ID=\"org.contourterminal.Contour\" -DCONTOUR_FRONTEND_GUI -DCONTOUR_PROJECT_SOURCE_DIR=\"/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452\" -DCONTOUR_STACKTRACE_ADDR2LINE=1 -DCONTOUR_VERSION_MAJOR=0 -DCONTOUR_VERSION_MINOR=5 -DCONTOUR_VERSION_PATCH=2 -DCONTOUR_VERSION_STRING=\"0.5.2\" -DHAVE_BACKTRACE -DHAVE_BACKTRACE_SYMBOLS -DHAVE_CXXABI_H -DHAVE_DLADDR -DHAVE_DLFCN_H -DHAVE_DLSYM -DHAVE_EXECINFO_H -DHAVE_SYS_SELECT_H -DHAVE_UNWIND_H -DLIBTERMINAL_LOG_TRACE=1 -DQT_CORE5COMPAT_LIB -DQT_CORE_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0x050F00 -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_QMLINTEGRATION_LIB -DQT_QMLMETA_LIB -DQT_QMLMODELS_LIB -DQT_QMLWORKERSCRIPT_LIB -DQT_QML_LIB -DQT_QUICKCONTROLS2_LIB -DQT_QUICK_LIB -DQT_WIDGETS_LIB -DVTPTY_LIBSSH2=1 -I/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/redhat-linux-build/src/contour/contour_autogen/include -I/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/redhat-linux-build/src/contour -I/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib64/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtOpenGL -isystem /usr/include/qt6/QtMultimedia -isystem /usr/include/qt6/QtNetwork -isystem /usr/include/qt6/QtQuick -isystem /usr/include/qt6/QtQml -isystem /usr/include/qt6/QtQmlIntegration -isystem /usr/include/qt6/QtQmlMeta -isystem /usr/include/qt6/QtQmlModels -isystem /usr/include/qt6/QtQmlWorkerScript -isystem /usr/include/qt6/QtQuickControls2 -isystem /usr/include/qt6/QtCore5Compat -isystem /usr/include/qt6/QtWidgets -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 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DNDEBUG -std=c++20 -fdiagnostics-color=always -fdiagnostics-color=always -maes -MD -MT src/contour/CMakeFiles/contour.dir/Config.cpp.o -MF src/contour/CMakeFiles/contour.dir/Config.cpp.o.d -o src/contour/CMakeFiles/contour.dir/Config.cpp.o -c /builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Config.cpp
In file included from /builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/crispy/escape.h:7,
                 from /builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/crispy/utils.h:4,
                 from /builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/crispy/logstore.h:5,
                 from /builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/crispy/assert.h:4,
                 from /builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Actions.h:4,
                 from /builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Config.cpp:2:
/usr/include/c++/14/format: In instantiation of ‘static std::__format::_Arg_store<_Context, _Args>::_Element_t std::__format::_Arg_store<_Context, _Args>::_S_make_elt(_Tp&) [with _Tp = vtpty::Process::ExecInfo; _Context = std::basic_format_context<std::__format::_Sink_iter<char>, char>; _Args = {std::basic_string_view<char, std::char_traits<char> >, std::basic_format_arg<std::basic_format_context<std::__format::_Sink_iter<char>, char> >::handle}; _Element_t = std::__format::_Arg_store<std::basic_format_context<std::__format::_Sink_iter<char>, char>, std::basic_string_view<char, std::char_traits<char> >, std::basic_format_arg<std::basic_format_context<std::__format::_Sink_iter<char>, char> >::handle>::_Element_t]’:
/usr/include/c++/14/format:3755:23:   required from ‘std::__format::_Arg_store<_Context, _Args>::_Arg_store(_Tp& ...) [with _Tp = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vtpty::Process::ExecInfo}; _Context = std::basic_format_context<std::__format::_Sink_iter<char>, char>; _Args = {std::basic_string_view<char, std::char_traits<char> >, std::basic_format_arg<std::basic_format_context<std::__format::_Sink_iter<char>, char> >::handle}]’
 3755 |         : _M_args{_S_make_elt(__a)...}
      |                   ~~~~~~~~~~~^~~~~
/usr/include/c++/14/format:3805:14:   required from ‘auto std::make_format_args(_Args& ...) [with _Context = basic_format_context<__format::_Sink_iter<char>, char>; _Args = {__cxx11::basic_string<char, char_traits<char>, allocator<char> >, vtpty::Process::ExecInfo}]’
 3805 |       return _Store(__fmt_args...);
      |              ^~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Config.h:1047:95:   required from ‘std::string contour::config::Writer::format(std::string_view, T ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vtpty::Process::ExecInfo}; std::string = std::__cxx11::basic_string<char>; std::string_view = std::basic_string_view<char>]’
 1047 |         return std::vformat(replaceCommentPlaceholder(std::string(doc)), std::make_format_args(args...));
      |                                                                          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Config.h:1328:22:   required from ‘std::string contour::config::YAMLConfigWriter::process(std::string_view, T ...) [with T = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vtpty::Process::ExecInfo}; std::string = std::__cxx11::basic_string<char>; std::string_view = std::basic_string_view<char>]’
 1328 |         return format(addOffset(replaceCommentPlaceholder(std::string { doc }), Offset::levels * OneOffset),
      |                ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1329 |                       val...);
      |                       ~~~~~~~
/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Config.cpp:2131:31:   [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/14/type_traits:2666:60:   required from ‘struct std::__result_of_impl<false, false, crispy::overloaded<contour::config::createForProfile<YAMLConfigWriter>(const Config&)::<lambda(auto:233, const contour::config::ConfigEntry<T, contour::config::documentation::DocumentationEntry<configDoc, webDoc> >&)>, contour::config::createForProfile<YAMLConfigWriter>(const Config&)::<lambda(auto:234, const auto:235&)> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, contour::config::ConfigEntry<vtpty::Process::ExecInfo, contour::config::documentation::DocumentationEntry<contour::config::documentation::StringLiteral<453>{"{comment} You can override the process to be started inside the terminal.{comment} If nothing is specified, the users\' default login shell will be used.\012{comment} But you may as well log in to a remote host.\012shell: {}\012arguments: {}\012{comment} Sets initial working directory when spawning a new terminal.\012{comment} A leading ~ is expanded to the user\'s home directory.\012{comment} Default value is the user\'s home directory.\012initial_working_directory: {}\012\012"}, contour::config::documentation::StringLiteral<549>{"configuration section allows you to specify the process to be started inside the terminal. It provides flexibility to override the default login shell and supports logging in to a remote host.\012``` yaml\012profiles:\012  profile_name:\012    shell: \"/bin/bash\"\012    arguments: [\"some\", \"optional\", \"arguments\", \"for\", \"the\", \"shell\"]\012```\012:octicons-horizontal-rule-16: ==arguments== (optional) Allows you to provide additional command-line arguments to the shell executable. These arguments will be passed to the shell when it is started inside the terminal.\012\012"}> > >’
 2666 |       using type = decltype(_S_test<_Functor, _ArgTypes...>(0));
      |                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/14/type_traits:2671:12:   required from ‘struct std::__invoke_result<crispy::overloaded<contour::config::createForProfile<YAMLConfigWriter>(const Config&)::<lambda(auto:233, const contour::config::ConfigEntry<T, contour::config::documentation::DocumentationEntry<configDoc, webDoc> >&)>, contour::config::createForProfile<YAMLConfigWriter>(const Config&)::<lambda(auto:234, const auto:235&)> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, contour::config::ConfigEntry<vtpty::Process::ExecInfo, contour::config::documentation::DocumentationEntry<contour::config::documentation::StringLiteral<453>{"{comment} You can override the process to be started inside the terminal.{comment} If nothing is specified, the users\' default login shell will be used.\012{comment} But you may as well log in to a remote host.\012shell: {}\012arguments: {}\012{comment} Sets initial working directory when spawning a new terminal.\012{comment} A leading ~ is expanded to the user\'s home directory.\012{comment} Default value is the user\'s home directory.\012initial_working_directory: {}\012\012"}, contour::config::documentation::StringLiteral<549>{"configuration section allows you to specify the process to be started inside the terminal. It provides flexibility to override the default login shell and supports logging in to a remote host.\012``` yaml\012profiles:\012  profile_name:\012    shell: \"/bin/bash\"\012    arguments: [\"some\", \"optional\", \"arguments\", \"for\", \"the\", \"shell\"]\012```\012:octicons-horizontal-rule-16: ==arguments== (optional) Allows you to provide additional command-line arguments to the shell executable. These arguments will be passed to the shell when it is started inside the terminal.\012\012"}> > >’
 2671 |     struct __invoke_result
      |            ^~~~~~~~~~~~~~~
/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Config.cpp:2148:60:   recursively required by substitution of ‘template<class Object, class Callable>  requires  same_as<void, typename std::invoke_result<Callable, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, typename std::remove_cvref<decltype((get<0>)(Reflection::ToTuple({})))>::type>::type> void Reflection::CallOnMembers(Object&, Callable&&) [with Object = const contour::config::TerminalProfile; Callable = crispy::overloaded<contour::config::createForProfile<YAMLConfigWriter>(const Config&)::<lambda(auto:233, const contour::config::ConfigEntry<T, contour::config::documentation::DocumentationEntry<configDoc, webDoc> >&)>, contour::config::createForProfile<YAMLConfigWriter>(const Config&)::<lambda(auto:234, const auto:235&)> >&]’
 2148 |             writer.scoped([&]() { Reflection::CallOnMembers(entry, completeOverload); });
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Config.cpp:2148:60:   required from ‘std::string contour::config::createForProfile(const Config&) [with Writer = YAMLConfigWriter; std::string = std::__cxx11::basic_string<char>]’
/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Config.cpp:2336:65:   required from ‘std::string contour::config::createString(const Config&) [with T = YAMLConfigWriter; std::string = std::__cxx11::basic_string<char>]’
 2336 |     return createForGlobal<Writer>(c) + createForProfile<Writer>(c) + createForColorScheme<Writer>(c)
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~~^~~
/builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/contour/Config.cpp:196:42:   required from here
  196 |     return createString<YAMLConfigWriter>(c);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/14/format:3733:25: error: static assertion failed: std::formatter must be specialized for the type of each format arg
 3733 |           static_assert(is_default_constructible_v<formatter<_Tq, _CharT>>,
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/format:3733:25: note: ‘std::is_default_constructible_v<std::formatter<vtpty::Process::ExecInfo, char> >’ evaluates to false
/usr/include/c++/14/format:3744:38: error: no matching function for call to ‘std::basic_format_arg<std::basic_format_context<std::__format::_Sink_iter<char>, char> >::basic_format_arg(vtpty::Process::ExecInfo&)’
 3744 |           basic_format_arg<_Context> __arg(__v);
      |                                      ^~~~~
/usr/include/c++/14/format:3480:9: note: candidate: ‘template<class _Tp>  requires  __formattable_with<_Tp, _Context, typename _Context::formatter_type<typename std::remove_const<_Tp>::type>, std::basic_format_parse_context<typename _Context::char_type> > std::basic_format_arg<_Context>::basic_format_arg(_Tp&) [with _Context = std::basic_format_context<std::__format::_Sink_iter<char>, char>]’
 3480 |         basic_format_arg(_Tp& __v) noexcept
      |         ^~~~~~~~~~~~~~~~
/usr/include/c++/14/format:3480:9: note:   template argument deduction/substitution failed:
/usr/include/c++/14/format:3480:9: note: constraints not satisfied
In file included from /usr/include/c++/14/compare:40,
                 from /usr/include/c++/14/bits/stl_pair.h:65,
                 from /usr/include/c++/14/bits/stl_algobase.h:64,
                 from /usr/include/c++/14/algorithm:60,
                 from /builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/crispy/algorithm.h:4,
                 from /builddir/build/BUILD/contour-terminal-0.6.0.7452-build/contour-0.6.0.7452/src/crispy/logstore.h:4:
/usr/include/c++/14/concepts: In substitution of ‘template<class _Tp>  requires  __formattable_with<_Tp, _Context, typename _Context::formatter_type<typename std::remove_const<_Tp>::type>, std::basic_format_parse_context<typename _Context::char_type> > std::basic_format_arg<std::basic_format_context<std::__format::_Sink_iter<char>, char> >::basic_format_arg(_Tp&) [with _Tp = std::basic_format_context<std::__format::_Sink_iter<char>, char>]’:
/usr/include/c++/14/format:3744:31:   required from ‘static std::__format::_Arg_store<_Context, _Args>::_Element_t std::__format::_Arg_store<_Context, _Args>::_S_make_elt(_Tp&) [with _Tp = vtpty::Process::ExecInfo; _Context = std::basic_format_context<std::__format::_Sink_iter<char>, char>; _Args = {std::basic_string_view<char, std::char_traits<char> >, std::basic_format_arg<std::basic_format_context<std::__format::_Sink_iter<char>, char> >::handle}; _Element_t = std::__format::_Arg_store<std::basic_format_context<std::__format::_Sink_iter<char>, char>, std::basic_string_view<char, std::char_traits<char> >, std::basic_format_arg<std::basic_format_context<std::__format::_Sink_iter<char>, char> >::handle>::_Element_t]’
 3744 |           basic_format_arg<_Context> __arg(__v);
      |                                      ^~~~~
/usr/include/c++/14/format:3755:23:   required from ‘std::__format::_Arg_store<_Context, _Args>::_Arg_store(_Tp& ...) [with _Tp = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, vtpty::Process::ExecInfo}; _Context = std::basic_format_context<std::__format::_Sink_iter<char>, char>; _Args = {std::basic_string_view<char, std::char_traits<char> >, std::basic_format_arg<std::basic_format_context<std::__format::_Sink_iter<char>, char> >::handle}]’
 3755 |         : _M_args{_S_make_elt(__a)...}
      |                   ~~~~~~~~~~~^~~~~
/usr/include/c++/14/format:3805:14:   required from ‘auto std::make_format_args(_Args& ...) [with _Context = basic_format_context<__format::_Sink_iter<char>, char>; _Args = {__cxx11::basic_string<char, char_traits<char>, allocator<char> >, vtpty::Process::ExecInfo}]’
 3805 |       return _Store(__fmt_args...);
      |              ^~~~~~~~~~~~~~~~~~~~~

Ref: https://download.copr.fedorainfracloud.org/results/topazus/test/fedora-rawhide-x86_64/08451857-contour-terminal/builder-live.log.gz

Additional notes

No response

@topazus topazus added the bug Something isn't working label Dec 28, 2024
@Yaraslaut
Copy link
Member

Hi, we pushed a fix into master already, sorry for this @topazus, our CI did not cache this error, we are planning to make one more release soon with the fix of UI scaling and this should not happen there

@Yaraslaut Yaraslaut added the high priority High Priority Item label Dec 28, 2024
@christianparpart christianparpart changed the title Error of building Contour 0.6.0.7452 with boxed-cpp 1.4.3, libunicode 0.6.0, reflection-cpp 0.0.1 Error of building Contour 0.6.0.7452 with boxed-cpp 1.4.3, libunicode 0.6.0, reflection-cpp 0.1.0 Dec 28, 2024
@topazus
Copy link
Contributor Author

topazus commented Dec 28, 2024

Hi, we pushed a fix into master already, sorry for this @topazus, our CI did not cache this error, we are planning to make one more release soon with the fix of UI scaling and this should not happen there

Thanks for the quick response. After applying the patch from the commit of a22c96f, the build was successful. By the way, I will have the time to introduce new dependency of reflection-cpp on Fedora in the coming days, and then update the contour to the latest release.

@christianparpart
Copy link
Member

Thank you very much for this @topazus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working high priority High Priority Item
Projects
None yet
Development

No branches or pull requests

3 participants