Opened 8 years ago

Closed 7 years ago

#49248 closed defect (fixed)

mvktoolnix @7.9.0 +wxwidgets app.executable mmg does not exist

Reported by: letaage Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.3.4
Keywords: Cc:
Port: mkvtoolnix

Description (last modified by ryandesign (Ryan Carsten Schmidt))

I am having trouble installing mkvtoolnix @7.9.0 under OS X 10.8.

I am using the following command to install mkvtoolnix:

   $ sudo port install mkvtoolnix +wvwidgets
  1. libebml required "port install -s" to build using the correct cxx_stdlib for mkvtoolnix port despite macports.conf being set to always compile from source and to use libc++
  2. mkvtoolnix does not build properly even with libebml compiled using correct version of libc++.

Initially the installation was failing with a "symbol(s) not found for architecture x86_64" error relating to libebml.

I have followed the recommendations in wiki:Migration and in wiki:LibcxxOnOlderSystems

I removed all my ports with:

   $ sudo port clean --all all

I set my macports.conf file with the following options:

   build_arch              x86_64
   universal_archs         x86_64 i386
   cxx_stdlib              libc++
   buildfromsource         always
   delete_la_files         yes

I did a selfupdate then reinstalled all my ports using the restore_ports.tcl script.

   $ sudo ./restore_ports.tcl myports.txt

Even after doing the above migration and libc++ steps, mkvtoolix still failed with the same error relating to libebml:

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

I uninstalled and cleaned libeblm and associated packages:

   $ sudo port uninstall libmatroska libebml
   $ sudo port clean --all libmatroska libebml

I then sucessfully reinstalled libebml etc with the "from source" flag on the command line:

   $ sudo port -s install libmatroska libebml

I attempted to install mkvtoolnix again:

   $ sudo port install mkvtoolnix +wvwidgets

This time it failed with a different error message:

<snip>
/usr/bin/install -c -m 644 po/zh_CN.mo /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_multimedia_mkvtoolnix/mkvtoolnix/work/destroot/opt/local/share/locale/zh_CN/LC_MESSAGES/mkvtoolnix.mo
/usr/bin/install -c -m 644 po/zh_TW.mo /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_multimedia_mkvtoolnix/mkvtoolnix/work/destroot/opt/local/share/locale/zh_TW/LC_MESSAGES/mkvtoolnix.mo
Error: org.macports.destroot for port mkvtoolnix returned: app.executable mmg does not exist
Warning: targets not executed for mkvtoolnix: org.macports.activate org.macports.destroot org.macports.install
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
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port mkvtoolnix failed
bash-3.2$
<end>

This indicates that the mmg application may not have built properly. The log file from this last installation attempt is attached.

It appears that there are two issues:

I am using OS X 10.8 with latest Xcode for 10.8, all OS X updates and macports 2.3.4.

Attachments (1)

main.zip (28.3 KB) - added by letaage 8 years ago.
log file from sudo port install mkvtoolnix +wxwidgets

Download all attachments as: .zip

Change History (7)

Changed 8 years ago by letaage

Attachment: main.zip added

log file from sudo port install mkvtoolnix +wxwidgets

comment:1 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Owner: changed from macports-tickets@… to ryandesign@…

comment:2 in reply to:  description Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)

Don't forget to use WikiFormatting and TracLinks when writing in Trac.

comment:3 in reply to:  description Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to letaage@…:

I have followed the recommendations in wiki:Migration and in wiki:LibcxxOnOlderSystems

I removed all my ports with:

   $ sudo port clean --all all

"sudo port clean --all all" does not remove any installed ports; it just removes their work directories and distfiles. If you want to uninstall all installed ports (and you do need to do that if you've switched from libstdc++ to libc++), you need to run "sudo port uninstall installed".

comment:4 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

(Actually you only need to uninstall ports that use C++, but it might be easier to uninstall all ports than to try to figure out which ports use C++.)

comment:5 in reply to:  4 Changed 8 years ago by letaage

Replying to ryandesign@…:

(Actually you only need to uninstall ports that use C++, but it might be easier to uninstall all ports than to try to figure out which ports use C++.)

I think that at some point I did use

   $ sudo port uninstall installed

Actually I must have because at one point I uninstalled macports per the instructions here: https://guide.macports.org/chunked/installing.macports.uninstalling.html and reinstalled it again, then modified the new macports.conf file for libc++ etc

Last edited 8 years ago by letaage (previous) (diff)

comment:6 Changed 7 years ago by ctreleaven (Craig Treleaven)

Resolution: fixed
Status: newclosed

mkvtoolnix now at 13.0.0 and uses Qt5 instead of wxwidgets. Therefore likely fixed. Please reopen if still a problem.

Note: See TracTickets for help on using tickets.