#60148 closed update (fixed)
mkvtoolnix: Update to version 45
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)
Attachments (2)
Change History (16)
comment:1 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 5 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 5 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 5 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 5 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 5 years ago by mf2k (Frank Schima)
Summary: | mkvtoolnix: Update to version 43 → mkvtoolnix: Update to version 45 |
---|
comment:7 Changed 5 years ago by mf2k (Frank Schima)
Description: | modified (diff) |
---|
Changed 5 years ago by mf2k (Frank Schima)
Attachment: | Portfile-mkvtoolnix.diff added |
---|
Changed 5 years ago by mf2k (Frank Schima)
Attachment: | patch-Rakefile.diff added |
---|
comment:9 Changed 5 years ago by mf2k (Frank Schima)
I've attached a diff to update to the latest version. It also disables update checking. See #55574. Can I commit this please?
comment:10 Changed 5 years ago by mf2k (Frank Schima)
@ryandesign: BTW, it also did not build on Catalina for me. I had to add a patch which I suspect will work for High Sierra (and below) too.
comment:11 Changed 5 years ago by mf2k (Frank Schima)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:12 Changed 5 years ago by mf2k (Frank Schima)
comment:13 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)
comment:14 Changed 5 years ago by kencu (Ken)
it looks like, on 10.6.8 at least, I should disable the os-based test in __config
--- clearly there the os doesn't match the libc++ version installed.
And this brings up the idea of a general plan for how to install a newer libc++ version on older systems -- replace the existing (easy), or parallel installation (harder, but doable if we can set the dyld_library_path reliably, which we already started to do for gcc libstdc++)...
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.)