<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/799e13d755088c872e7cb46b2aff978a907d5260">https://github.com/macports/macports-ports/commit/799e13d755088c872e7cb46b2aff978a907d5260</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 799e13d755088c872e7cb46b2aff978a907d5260
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Wed Dec 22 07:03:42 2021 -0600
<span style='display:block; white-space:pre;color:#404040;'> mp4v2: Revert to 4.1.3
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Revert to version 4.1.3 plus patches to fix issues that were fixed in
</span><span style='display:block; white-space:pre;color:#404040;'> later versions.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> 4.1.4 changed the signature of the MP4Read function to have a second
</span><span style='display:block; white-space:pre;color:#404040;'> argument and used a C++ default value feature in doing so, thus breaking
</span><span style='display:block; white-space:pre;color:#404040;'> all the ports that want to use this library from C code. Those other
</span><span style='display:block; white-space:pre;color:#404040;'> ports either fail to build or fail to detect that mp4v2 is installed and
</span><span style='display:block; white-space:pre;color:#404040;'> build themselves without mp4v2 support.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/63297
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> A solution to fix the API breakage was proposed to MacPorts but we
</span><span style='display:block; white-space:pre;color:#404040;'> should not attempt to declare ourselves the owners of this software. We
</span><span style='display:block; white-space:pre;color:#404040;'> should not introduce yet another different version of this software that
</span><span style='display:block; white-space:pre;color:#404040;'> is unlike what other distros ship. The fix should be proposed to the
</span><span style='display:block; white-space:pre;color:#404040;'> developers of this software and they can decide (or not) what to do. In
</span><span style='display:block; white-space:pre;color:#404040;'> anticipation of the developers not responding to such a proposal, like
</span><span style='display:block; white-space:pre;color:#404040;'> they have already failed for one year to respond to the bug report about
</span><span style='display:block; white-space:pre;color:#404040;'> the breakage, let us stay on the last unbroken version and backport any
</span><span style='display:block; white-space:pre;color:#404040;'> needed bugfixes until such a time as the current developers begin
</span><span style='display:block; white-space:pre;color:#404040;'> addressing bug reports or a better-maintained fork emerges.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: #11781
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Before, with mp4v2 @5.0.1_0:
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> cmus @2.9.1_0+aac:
</span><span style='display:block; white-space:pre;color:#404040;'> checking for header <mp4v2/mp4v2.h>... no
</span><span style='display:block; white-space:pre;color:#404040;'> checking for header <mp4.h>... no
</span><span style='display:block; white-space:pre;color:#404040;'> configure failed.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> ices0 @0.4_3:
</span><span style='display:block; white-space:pre;color:#404040;'> In file included from in_mp4.c:32:
</span><span style='display:block; white-space:pre;color:#404040;'> In file included from /opt/local/include/mp4v2/mp4v2.h:58:
</span><span style='display:block; white-space:pre;color:#404040;'> /opt/local/include/mp4v2/file.h:336:34: error: use of undeclared identifier 'nullptr'
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> libextractor @1.4_3:
</span><span style='display:block; white-space:pre;color:#404040;'> checking mp4v2/mp4v2.h usability... no
</span><span style='display:block; white-space:pre;color:#404040;'> checking mp4v2/mp4v2.h presence... yes
</span><span style='display:block; white-space:pre;color:#404040;'> configure: WARNING: mp4v2/mp4v2.h: present but cannot be compiled
</span><span style='display:block; white-space:pre;color:#404040;'> configure: WARNING: mp4v2/mp4v2.h: check for missing prerequisite headers?
</span><span style='display:block; white-space:pre;color:#404040;'> configure: WARNING: mp4v2/mp4v2.h: see the Autoconf documentation
</span><span style='display:block; white-space:pre;color:#404040;'> configure: WARNING: mp4v2/mp4v2.h: section "Present But Cannot Be Compiled"
</span><span style='display:block; white-space:pre;color:#404040;'> configure: WARNING: mp4v2/mp4v2.h: proceeding with the compiler's result
</span><span style='display:block; white-space:pre;color:#404040;'> configure: WARNING: ## --------------------------------------- ##
</span><span style='display:block; white-space:pre;color:#404040;'> configure: WARNING: ## Report this to bug-libextractor@gnu.org ##
</span><span style='display:block; white-space:pre;color:#404040;'> configure: WARNING: ## --------------------------------------- ##
</span><span style='display:block; white-space:pre;color:#404040;'> checking for mp4v2/mp4v2.h... no
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> After, with mp4v2 @4.1.3_0:
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> cmus @2.9.1_0+aac:
</span><span style='display:block; white-space:pre;color:#404040;'> checking for header <mp4v2/mp4v2.h>... yes
</span><span style='display:block; white-space:pre;color:#404040;'> checking for header <neaacdec.h>... yes
</span><span style='display:block; white-space:pre;color:#404040;'> checking for MP4_LIBS (-lmp4v2 -lfaad -lm)... yes
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> ices0 @0.4_4:
</span><span style='display:block; white-space:pre;color:#404040;'> successful build
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> libextractor @1.4_3:
</span><span style='display:block; white-space:pre;color:#404040;'> checking mp4v2/mp4v2.h usability... yes
</span><span style='display:block; white-space:pre;color:#404040;'> checking mp4v2/mp4v2.h presence... yes
</span><span style='display:block; white-space:pre;color:#404040;'> checking for mp4v2/mp4v2.h... yes
</span>---
multimedia/mp4v2/Portfile | 25 +++++++----
...-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch | 50 ++++++++++++++++++++++
...-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch | 14 ++++++
3 files changed, 80 insertions(+), 9 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mp4v2/Portfile b/multimedia/mp4v2/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index d1aadc9accf..110658b1b01 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mp4v2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/mp4v2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,14 +3,17 @@
</span> PortSystem 1.0
PortGroup github 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup TechSmith mp4v2 5.0.1 Release-ThirdParty-MP4v2-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-name mp4v2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+epoch 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TechSmith/mp4v2 4.1.4 introduced a breaking API change that totally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# broke the ability for C code to use this library. Don't upgrade to a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# newer version unless the API breakage has been reverted. So far, the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# developers have not responded to this issue, which was filed 20201211.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/TechSmith/mp4v2/issues/47
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup TechSmith mp4v2 4.1.3 Release-ThirdParty-MP4v2-
</span> revision 0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-epoch 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 df124c2cef11e471ec0213c255fb19d48ae89f2a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 faddadb6323a2f1a027ea81f3a455017199cf3eafd358026031758810a7b3e98 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 4323242
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 8727c9cb5d256073e3ed46fb6ab9502e1bec66e5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 e3ad6c2dc451b0875dbe34bfe7f51f4fe278b391434c886083e6d3ecd5fa08c2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 2682188
</span>
categories multimedia
license MPL-1.1 BSD-old
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,11 +23,14 @@ long_description The mp4v2 library provides an API to create and modify mp4 \
</span> files as defined by ISO-IEC:14496-1:2001 MPEG-4 Systems. \
mp4v2 used to be part of the mpeg4ip library.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span>
depends_build port:help2man
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles configure-version.patch mp4tags-metadata.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles configure-version.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mp4tags-metadata.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 20210111-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 20210318-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch
</span>
post-patch {
reinplace "s|@@VERSION@@|${version}|g" \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,6 +41,7 @@ compiler.cxx_standard 1998
</span> configure.cxxflags-append -std=c++98
# Teach glibtool about -stdlib
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Also we are patching configure.ac.
</span> use_autoreconf yes
autoreconf.args -fvi
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mp4v2/files/20210111-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch b/multimedia/mp4v2/files/20210111-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7ea7b0f11d3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/mp4v2/files/20210111-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,50 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix some bugs found by the compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/TechSmith/mp4v2/commit/8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libutil/Utility.cpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libutil/Utility.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -480,7 +480,7 @@ Utility::process_impl()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for( ;; ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const int code = prog::getOption( _argc, _argv, _shortOptions.c_str(), _longOptions, NULL );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const unsigned int code = prog::getOption( _argc, _argv, _shortOptions.c_str(), _longOptions, NULL );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if( code == -1 )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/mp4.cpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/mp4.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -864,18 +864,11 @@ MP4FileHandle MP4ReadProvider( const char* fileName, const MP4FileProvider* file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mp4v2_ismacrypParams *MP4DefaultISMACrypParams(mp4v2_ismacrypParams *ptr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- try
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ptr == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ptr = (mp4v2_ismacrypParams *)MP4Malloc(sizeof(mp4v2_ismacrypParams));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- memset(ptr, 0, sizeof(*ptr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- catch (...) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return MP4_INVALID_TRACK_ID;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (ptr == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ptr = (mp4v2_ismacrypParams *)MP4Malloc(sizeof(mp4v2_ismacrypParams));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memset(ptr, 0, sizeof(*ptr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/rtphint.cpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/rtphint.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -339,7 +339,7 @@ void MP4RtpHintTrack::GetPayload(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pSlash = strchr(pSlash, '/');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (pSlash != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pSlash++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (pSlash != '\0') {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ( *pSlash != '\0' ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ length = (uint32_t)strlen(pRtpMap) - (pSlash - pRtpMap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *ppEncodingParams = (char *)MP4Calloc(length + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ strncpy(*ppEncodingParams, pSlash, length);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mp4v2/files/20210318-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch b/multimedia/mp4v2/files/20210318-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..82817b8b07a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/mp4v2/files/20210318-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix crash when working with invalid file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/TechSmith/mp4v2/commit/aa06c07ec0b0e0e1b6dd82bf32821668059e8662
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/mp4file.cpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/mp4file.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3461,6 +3461,9 @@ const char *MP4File::GetTrackMediaDataName (MP4TrackId trackId)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MP4Atom *pAtom =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FindAtom(MakeTrackName(trackId,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "mdia.minf.stbl.stsd"));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ( pAtom == nullptr )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (pAtom->GetNumberOfChildAtoms() != 1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ log.errorf("%s: \"%s\": track %d has more than 1 child atoms in stsd",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __FUNCTION__, GetFilename().c_str(), trackId);
</span></pre><pre style='margin:0'>
</pre>