[MacPorts] #34806: mkvtoolnix needs boost and icu built with same compiler

MacPorts noreply at macports.org
Sun Apr 21 17:48:18 PDT 2013


#34806: mkvtoolnix needs boost and icu built with same compiler
-------------------------+--------------------------------
  Reporter:  brian@…     |      Owner:  macports-tickets@…
      Type:  defect      |     Status:  new
  Priority:  Normal      |  Milestone:
 Component:  ports       |    Version:  2.1.1
Resolution:              |   Keywords:
      Port:  mkvtoolnix  |
-------------------------+--------------------------------

Comment (by Kona8lend@…):

 Replying to [comment:31 raimue@…]:
 > Replying to [comment:24 Kona8lend@…]:
 > > All 3 ports are aware of and use /opt/local/private/mkvtoolnix/ as a
 private subtree for mkvtoolnix special needs. There are several good
 reasons for this. Firstly, we guarantee that all C++ and C++11 libraries
 for which mkvtoolnix depends on, either directly or indirectly, are built
 with the same compiler, and same c++11 mode flags. Second, this must co-
 exist with all other ports and not impact them negatively. Thirdly,
 mkvtoolnix tracks boost version bumps much faster than other apps, so
 tying them to the same version is not possible without halting mkvtoolnix
 version bumps.
 >
 > I don't understand how you ensure these promised guarantees. The ports
 still have variants to select different compilers as explained below.
 Doesn't this still allow to use different compilers for each of the ports?

 The compilers that are known to work and tested are explicitly supported
 variants. What's the issue you have? Is it legalese? Sorry, but IANAL.

 > If mkvtoolnix is advancing too fast to allow a stable build with our
 toolchains we should just stick with an older, working release.

 That is of course one choice. The reason for which these custom ports were
 created is because I made the other choice: to not wait an indeterminate
 number of years for tools and dependencies of "macports proper" to satisfy
 modern releases of mkvtoolnix.

 > As far as I know no other port uses the `${prefix}/private` namespace,
 which is outside the port hierarchy defined by porthier(7). I don't think
 "private" is exactly what we want here, the libraries should rather live
 in `${prefix}/lib/mkvtoolnix/lib*.dylib`.

 There is also {bin,include,sbin,share} directories for which need to be
 unique, and for each port one or more of said directories. One choice is
 to go your route and mix-in such directories for each custom port into the
 main tree, which I think is too messy. Maybe another name besides
 "private" but if you actually try to convert these ports to your layout,
 it will become very intertwined. Remember, these ports must co-exist with
 existing macports proper.

 > > The positive side is, port:mkvtoolnix.boost has been optimized to
 build on the necessary libraries and takes an order of magnitude less time
 to build than the port:boost .
 >
 > Except you need yet another port installed. boost is binary
 distributable and available as binary archives.

 Boost and ICU as built and distributed via binary archives of "macports
 proper" do not satisfy mkvtoolnix. The dependencies that are custom are
 that way for a reason: to satisfy mkvtoolnix. The c++ mode for which
 "macports proper" boost and icu are built are not likely to satisfy
 mkvtoolnix for quite sometime. This last part is an educated guess based
 on what I've seen with macports, its progress rate, and its complexity. No
 insults or negatives intended. Just the cold reality of incompatibilities.

 Cheers.

-- 
Ticket URL: <https://trac.macports.org/ticket/34806#comment:32>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list