Problem installing mkvtoolnix

Ryan Schmidt ryandesign at macports.org
Sun Oct 11 22:43:19 PDT 2015


On Oct 11, 2015, at 5:40 PM, Tom Armitage wrote:

> Thanks for the reply Ryan,
> 
> Ok so I've dug a little further back into the log file and found the following:
> 
> <snip>
> :info:build /usr/bin/clang++ -L/opt/local/lib -L/opt/local/lib -Wl,-headerpad_max_install_names -stdlib=libc++ -arch x86_64 -L/opt/local/lib -Llib/avilib-0.6.10 -Llib/librmff -Lsrc/common -Llib/pugixml/src -o src/mkvmerge src/merge/mkvmerge.o -Lsrc/merge -lmtxmerge -Lsrc/input -lmtxinput -Lsrc/output -lmtxoutput -Lsrc/merge -lmtxmerge -lmtxcommon -lmagic -lz -lmatroska -lebml -lz -lpugixml -liconv -lintl -L/opt/local/lib -lcurl -lssl -lcrypto -lssl -lcrypto -lz -lboost_regex-mt -lboost_filesystem-mt -lboost_system-mt -lavi -lrmff -Lsrc/mpegparser -lmpegparser -lFLAC -logg -lm -lvorbis -logg
> :info:build Undefined symbols for architecture x86_64:
> :info:build   "libebml::EbmlString::SetValue(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
> :info:build       render_ebml_head(mm_io_c*) in libmtxmerge.a(output_control.o)
> :info:build       create_next_output_file() in libmtxmerge.a(output_control.o)
> :info:build       parse_simple_chapters(mm_text_io_c*, long long, long long, long long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libmtxcommon.a(chapters.o)
> :info:build       fix_mandatory_chapter_elements(libebml::EbmlElement*) in libmtxcommon.a(chapters.o)
> :info:build       parse_cue_chapters(mm_text_io_c*, long long, long long, long long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::unique_ptr<libmatroska::KaxTags, std::__1::default_delete<libmatroska::KaxTags> >*) in libmtxcommon.a(cue_parser.o)
> :info:build       add_elements_for_cue_entry(cue_parser_args_t&, std::__1::unique_ptr<libmatroska::KaxTags, std::__1::default_delete<libmatroska::KaxTags> >*) in libmtxcommon.a(cue_parser.o)
> :info:build       generic_packetizer_c::set_codec_id(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libmtxmerge.a(generic_packetizer.o)
> :info:build       ...
> :info:build   "libebml::EbmlUnicodeString::SetValueUTF8(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
> :info:build       create_next_output_file() in libmtxmerge.a(output_control.o)
> :info:build       parse_simple_chapters(mm_text_io_c*, long long, long long, long long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libmtxcommon.a(chapters.o)
> :info:build       add_elements_for_cue_entry(cue_parser_args_t&, std::__1::unique_ptr<libmatroska::KaxTags, std::__1::default_delete<libmatroska::KaxTags> >*) in libmtxcommon.a(cue_parser.o)
> :info:build       generic_packetizer_c::set_track_name(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libmtxmerge.a(generic_packetizer.o)
> :info:build       generic_packetizer_c::set_headers() in libmtxmerge.a(generic_packetizer.o)
> :info:build       mtx::xml::ebml_converter_c::parse_ustring(mtx::xml::ebml_converter_c::parser_context_t&) in libmtxcommon.a(ebml_converter.o)
> :info:build       mtx::tags::set_simple_name(libmatroska::KaxTagSimple&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libmtxcommon.a(tags.o)
> :info:build       ...
> :info:build   "libebml::UTFstring::SetUTF8(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
> :info:build       cue_str_internal_to_utf(cue_parser_args_t&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libmtxcommon.a(cue_parser.o)
> :info:build       fix_mandatory_segmentinfo_elements(libebml::EbmlElement*) in libmtxcommon.a(segmentinfo.o)
> :info:build       mtx::tags::find_simple(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, libebml::EbmlMaster&) in libmtxcommon.a(tags.o)
> :info:build   "libebml::EbmlString::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const &() const", referenced from:
> :info:build       mtx::xml::ebml_chapters_converter_c::fix_display(libmatroska::KaxChapterDisplay&) const in libmtxcommon.a(ebml_chapters_converter.o)
> :info:build ld: symbol(s) not found for architecture x86_64
> :info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
> :info:build Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_multimedia_mkvtoolnix/mkvtoolnix/work/mkvtoolnix-7.9.0" && ./drake default -j2 V=1
> :info:build Exit code: 1
> :error:build org.macports.build for port mkvtoolnix returned: command execution failed
> :debug:build Error code: CHILDSTATUS 7901 1
> :debug:build Backtrace: command execution failed
>    while executing
> "system -nice 0 $fullcmdstring"
>    ("eval" body line 1)
>    invoked from within
> "eval system $notty $nice \$fullcmdstring"
>    invoked from within
> "command_exec build"
>    (procedure "portbuild::build_main" line 8)
>    invoked from within
> "portbuild::build_main org.macports.build"
>    ("eval" body line 1)
>    invoked from within
> "eval $procedure $targetname"
> :info:build Warning: targets not executed for mkvtoolnix: org.macports.activate org.macports.build org.macports.destroot org.macports.install
> :notice:build Please see the log file for port mkvtoolnix for details:
>    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_multimedia_mkvtoolnix/mkvtoolnix/main.log
> <end>
> 
> The error messages all seem to mention libebml, does this mean there is a problem with libebml in my installation?

Thanks for the additional info. I agree libebml seems to be relevant, but I don't know if that indicates a problem in your installation. libebml hasn't been updated since April. There have been several new versions of mkvtoolnix, and I've meant to update the port, but have run into some problems the last time I tried.


> I've looked much earlier in the log file for reference to libebml and found this:
> 
> <snip>
> :debug:main epoch: in tree: 0 installed: 0
> :debug:main libebml 1.3.1_0 exists in the ports tree
> :debug:main libebml 1.3.1_0  is the latest installed
> :debug:main libebml 1.3.1_0  is active
> :debug:main Merging existing variants '' into variants
> :debug:main new fully merged portvariants:
> :debug:main Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/textproc/libebml
> :debug:main OS darwin/12.6.0 (Mac OS X 10.8) arch i386
> :debug:main adding the default universal variant
> :debug:main Reading variant descriptions from /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/variant_descriptions.conf
> :debug:main Running callback portconfigure::add_automatic_compiler_dependencies
> :debug:main Finished running callback portconfigure::add_automatic_compiler_dependencies
> :debug:main Running callback portbuild::add_automatic_buildsystem_dependencies
> :debug:main Finished running callback portbuild::add_automatic_buildsystem_dependencies
> :debug:main No need to upgrade! libebml 1.3.1_0 >= libebml 1.3.1_0
> :debug:main epoch: in tree: 0 installed: 0
> <snip>
> :debug:main Searching for dependency: libebml
> :debug:main Found Dependency: receipt exists for libebml
> <snip>
> 
> Does this trace suggest that libebml has been built for i386 not x86_64?  If so how do I fix this? Is this a bug?

No, "arch i386" in this context only means "an Intel Mac" and does not say anything about whether it is 32-bit or 64-bit. This is not a bug and is how MacPorts normally behaves.


> In my /opt/local/etc/macports/macports.conf file I have set build_arch to x86_64 and universal_archs to x86_64 i386.

Good, those are the correct settings for OS X 10.7 and later.


> I am using OS X 10.8 with all the latest updates and the latest version of Xcode for 10.8. I have erased my port installation and reinstalled it again a three or four times following the migration steps but have run into this problem and can't work out how to fix it.
> 
> I can post the entire log file if required, but it is 700kB+ in size so I'll hold off for now.


When the issue tracker is online again you could post it in a ticket there, if one does not already exist for this issue, but in any case the first step should be for me to update the port to the latest version, and I will try to find time to do so and work through the problems I had before. Then we'll see if this error persists.




More information about the macports-users mailing list