Fwd: mkvtoolnix 5.1.0: special requirements

KonaBlend kona8lend at gmail.com
Tue Nov 29 23:49:57 PST 2011


Upstream mkvtoolnix 5.1.0 has introduced a requirement for various c++11 features which at this time are available via gcc 4.6 or higher. clang top-of-trunk is not yet there; specifically initializer lists and lambda support are absent. Also note since the upstream author does not use OSX, it's very likely that as clang catches up on these features, mkvtoolnix will expand its c++11 feature usage dictated by gcc.

Given the undefined (unreliable and risky) nature of mixing 3rd-party c++, standard c++, and low-level c++ runtime libraries, going forward the safest way to build this port is to guarantee a consistent compiler and standard c++ library is used for building:

a. mkvtoolnix
b. libboost*.dylib
c. libstdc++.dylib
d. libgcc_s.dylib

Here is an outline to a solution I'm thinking of:

1. new port:mkvtoolnix-gcc46 and install to mkvtoolnix private subtree.
2. new port:mkvtoolnix-boost and install to mkvtoolnix private subtree.
3. modify port:mkvtoolnix to depend on port:mkvtoolnix-gcc46 and port:mkvtoolnix-boost and install to mkvtoolnix private subtree.
4. make mkv executables available to /opt/local/bin via symlinks

This solution, while duping gcc46 and boost, does continue to significantly benefit from and use the macports tree to the tune of at least 15 other dynamic libraries. In the future as mkvtoolnix requirements become aligned with the general shared macports tree, things can be simplified again.

Thoughts?

--kb


More information about the macports-dev mailing list