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)

mkvtoolnix_main.log (1.1 MB) - added by tehcog (tehcog) 2 years ago.
main.log

Download all attachments as: .zip

Change History (6)

Changed 2 years ago by tehcog (tehcog)

Attachment: mkvtoolnix_main.log added

main.log

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: newassigned

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: assignedclosed

In 36d233c15a96cfa77b85276e1a12b3d80919077b/macports-ports (master):

libfmt dependents: migrate to libfmt8/libfmt9
See: #65619
Fixes: #65635

Note: See TracTickets for help on using tickets.