Opened 4 years ago

Last modified 4 years ago

#60148 closed update

mkvtoolnix: Update to version 45 — at Version 7

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

Description (last modified by mf2k (Frank Schima))

$ port livecheck mkvtoolnix
mkvtoolnix seems to have been updated (port version: 41.0.0, new version: 45.0.0)

Change History (7)

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

When I tried to update to 42 or newer, it would not compile on High Sierra anymore. Since that is still a recent OS, I would like to have the port continue to use the old version on High Sierra and older. (Or, if you know how to fix the build failure on High Sierra, that would be even better.)

comment:2 Changed 4 years ago by mf2k (Frank Schima)

I don't run older versions of macOS and have no interest in them. Please add a sub-port for the current version for older OSes and update to the latest.

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

Instead of adding a subport, I would rather the port just install the latest version that's compatible with whatever OS the user has. But I'm not working on updating this port right now. If someone else wants to do the work that's great.

comment:4 Changed 4 years ago by kencu (Ken)

I have not yet worked out what the full deal is here, but the configuration fails during c++17 feature tests. In particular, it failed looking for a value operator. Digging in on that a bit, that is marked as being unavailable on macOS prior to 10.14 in the optional include file, and that is driven by this:

/opt/local/libexec/llvm-9.0/include/c++/v1/__config

down around line 1172, that macOS availability functionality can be disabled like this:

#  ifdef __APPLE__
//#    define _LIBCPP_USE_AVAILABILITY_APPLE
#  endif

and that turns off the entire libcpp availability macro infrastructure.

I assume this infrastructure is looking at the libc++ versions that are included by default with various versions of macOS, and using availability macros based on that default libc++.

10.6.8 with MacPort's libcxx has a libc++ that corresponds to clang-5.0 at present (it could be clang-7.0's pretty easily) -- I'm not 100% sure where 10.13 and 10.14 fall into that mixture. Disabling those availability tests might cause troubles on systems that have default libc++.dylibs installed perhaps.

The mkvtoolnix applications then build through it seems, but the install phase fails with some kind of an error generating the docs I think:

runtime error: file /opt/local/share/xsl/docbook-xsl-nons/lib/lib.xsl line 57 element call-template
xsltApplySequenceConstructor: A potential infinite template recursion was detected.
You can adjust xsltMaxDepth (--maxdepth) in order to raise the maximum number of nested template calls and variables/params (currently set to 3000).

and I don't as yet know how to fix that.

comment:5 Changed 4 years ago by kencu (Ken)

Ah, not so hard to do, in the end:

$ port -v installed mkvtoolnix
The following ports are currently installed:
  mkvtoolnix @43.0.0_0 (active) platform='darwin 10' archs='x86_64' date='2020-03-02T20:24:51-0800'

just had to bump up the maximum recursion a bit by modifying the Rakefile to add the "--maxdepth 5000":

  runq "xsltproc", t.source, "#{c(:XSLTPROC)} #{c(:XSLTPROC_FLAGS)} --maxdepth 5000 -o #{t.name} #{stylesheet} #{t.sources.join(" ")}", :filter_output => filter

comment:6 Changed 4 years ago by mf2k (Frank Schima)

Summary: mkvtoolnix: Update to version 43mkvtoolnix: Update to version 45

comment:7 Changed 4 years ago by mf2k (Frank Schima)

Description: modified (diff)
Note: See TracTickets for help on using tickets.