Opened 2 years ago
Closed 2 years ago
#65635 closed defect (fixed)
mkvtoolnix 41.0.0_3 < 41.0.0_4 fails to build (upgrade) on mavericks "fatal error: cannot pass object of non-trivial type"
Reported by: | tehcog (tehcog) | Owned by: | mascguy (Christopher Nielsen) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.2 |
Keywords: | Cc: | ryandesign (Ryan Carsten Schmidt), barracuda156 | |
Port: | mkvtoolnix |
Description
please see attached main.log
Attachments (1)
Change History (6)
Changed 2 years ago by tehcog (tehcog)
Attachment: | mkvtoolnix_main.log added |
---|
comment:1 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | barracuda156 mascguy added |
---|
The log says:
In file included from src/input/wav_pcm_demuxer.cpp:1: In file included from src/common/common_pch.h:1: In file included from src/common/common.h:47: In file included from /opt/local/include/fmt/format.h:48: /opt/local/include/fmt/core.h:1711:47: fatal error: cannot pass object of non-trivial type 'translatable_string_c' through variadic method; call will abort at runtime [-Wnon-pod-varargs] const auto& arg = arg_mapper<Context>().map(std::forward<T>(val)); ^ /opt/local/include/fmt/core.h:1753:10: note: in instantiation of function template specialization 'fmt::detail::make_value<fmt::basic_format_context<fmt::appender, char>, translatable_string_c &>' requested here return make_value<Context>(val); ^ /opt/local/include/fmt/core.h:1875:23: note: in instantiation of function template specialization 'fmt::detail::make_arg<true, fmt::basic_format_context<fmt::appender, char>, fmt::detail::type::custom_type, translatable_string_c &, 0>' requested here data_{detail::make_arg< ^ /opt/local/include/fmt/core.h:1894:10: note: in instantiation of function template specialization 'fmt::format_arg_store<fmt::basic_format_context<fmt::appender, char>, translatable_string_c>::format_arg_store<translatable_string_c &>' requested here return {std::forward<Args>(args)...}; ^ /opt/local/include/fmt/core.h:3163:28: note: in instantiation of function template specialization 'fmt::make_format_args<fmt::basic_format_context<fmt::appender, char>, translatable_string_c &>' requested here return vformat(fmt, fmt::make_format_args(args...)); ^ src/input/wav_pcm_demuxer.cpp:42:3: note: in instantiation of function template specialization 'fmt::format<translatable_string_c>' requested here show_packetizer_info(0, m_ptzr); ^ src/merge/generic_reader.h:44:43: note: expanded from macro 'show_packetizer_info' mxinfo_tid(m_ti.m_fname, track_id, fmt::format(Y("Using the output module for the format '{0}'.\n"), packetizer->get_format_name())); ^ 1 error generated.
/opt/local/include/fmt/core.h is provided by the libfmt port and it was updated to version 9.0.0 6 days ago and this mkvtoolnix update was specifically to add a dependency on libfmt. So I may need some help here from those involved with libfmt.
comment:2 Changed 2 years ago by mascguy (Christopher Nielsen)
The addition of dep libfmt
was done for cleanup purposes, as the port was already taking advantage of it. But previously it was pulled in indirectly, via an upstream dep. (So materially there's no difference than previously, except that now we're formally calling out the dep.)
As for the issue, this is likely due to breaking changes in libfmt
, which impacted older versions of mkvtoolnix
. So we may need to patch the code. (The breakages are tracked by issue:65619.)
comment:3 Changed 2 years ago by mascguy (Christopher Nielsen)
Owner: | set to mascguy |
---|---|
Status: | new → assigned |
comment:4 Changed 2 years ago by mascguy (Christopher Nielsen)
Cc: | mascguy removed |
---|
comment:5 Changed 2 years ago by Christopher Nielsen <mascguy@…>
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
main.log