Opened 9 years ago
Closed 9 years ago
#47578 closed update (fixed)
mkvtoolnix: upgrade to 7.8.0
Reported by: | mojca (Mojca Miklavec) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | haspatch | Cc: | |
Port: | mkvtoolnix |
Description
I'm attaching a patch for upgrading mkvtoolnix
to 7.8.0. I would appreciate if someone on 10.9 or later could test it. (We should probably replace the ruby patches with some reinplace
.)
I wasn't even able to build it with gcc because of
In file included from src/common/utf8_codecvt_facet.cpp:22:0: src/common/../../lib/boost/utf8_codecvt_facet/utf8_codecvt_facet.cpp:174:5: error: 'int mtx::utf8_codecvt_facet::do_length' is not a static member of 'struct mtx::utf8_codecvt_facet' BOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &, ^ compilation terminated due to -Wfatal-errors.
I'll try a libc++
MP installation next.
Please also see #40231. It's not entirely clear to me what's still needed to close that ticket (migrating libstdc++
users to libc++
or building against a different instance of boost
and icu
is a different issue from fixing clang
build issues per se).
Attachments (1)
Change History (7)
Changed 9 years ago by mojca (Mojca Miklavec)
Attachment: | mkvtoolnix-7.8.0.diff added |
---|
comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
BOOST_CODECVT_DO_LENGTH_CONST
was defined in utf8_codecvt_facet.hpp in boost 1.57.0 but this macro was eliminated for boost 1.58.0.
comment:3 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Here is the upstream bug report and the rather larger than expected commit that fixed it in which they (surprisingly!) decided to include a copy of the old utf8_codecvt_facet.hpp in the mkvtoolnix codebase rather than adapt to the new way.
comment:4 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Having incorporated a cleaned-up version of that patch without the extraneous whitespace changes into the port, it then fails with missing libmatroska symbols:
Undefined symbols for architecture x86_64: "libmatroska::KaxCodecDelay::ClassInfos", referenced from: kax_reader_c::read_headers_tracks(mm_io_c*, libebml::EbmlElement*, long long) in libmtxinput.a(r_matroska.o) generic_packetizer_c::set_codec_delay(basic_timecode_c<long long> const&) in libmtxmerge.a(generic_packetizer.o) generic_packetizer_c::set_headers() in libmtxmerge.a(generic_packetizer.o) "libmatroska::KaxSeekPreRoll::ClassInfos", referenced from: kax_reader_c::read_headers_tracks(mm_io_c*, libebml::EbmlElement*, long long) in libmtxinput.a(r_matroska.o) generic_packetizer_c::set_track_seek_pre_roll(basic_timecode_c<long long> const&) in libmtxmerge.a(generic_packetizer.o) generic_packetizer_c::set_headers() in libmtxmerge.a(generic_packetizer.o) "libmatroska::KaxDiscardPadding::ClassInfos", referenced from: cluster_helper_c::render() in libmtxmerge.a(cluster_helper.o) kax_reader_c::process_block_group_common(libmatroska::KaxBlockGroup*, packet_t*) in libmtxinput.a(r_matroska.o) ld: symbol(s) not found for architecture x86_64
I'll see if updating libmatroska will help.
comment:5 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | haspatch added |
---|---|
Owner: | changed from macports-tickets@… to ryandesign@… |
Status: | new → assigned |
Yes, these symbols were added in libmatroska 1.4.1; we had 1.4.0 in MacPorts. Updated libmatroska to 1.4.1 in r135607. Reported this issue to the developers of mkvtoolnix in https://github.com/mbunkus/mkvtoolnix/issues/1177. I will still update libmatroska to 1.4.2 before updating mkvtoolnix, but libmatroska 1.4.2 uses a different build system so I need to investigate that first.
comment:6 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… removed |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
Replying to mojca@…:
It fails on 10.10:
I don't see any occurrences of
BOOST_CODECVT_DO_LENGTH_CONST
in the boost port. Maybe this was removed from boost at some point.