Opened 10 years ago
Closed 10 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 10 years ago by mojca (Mojca Miklavec)
Attachment: | mkvtoolnix-7.8.0.diff added |
---|
comment:1 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 10 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 10 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 10 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 10 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 10 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.