git: 519c89efe3a9 - main - audio/libmad: Update to 0.16.0

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Fri, 06 May 2022 09:59:39 UTC
The branch main has been updated by diizzy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=519c89efe3a9ddc8f3a57d1bb4940ff355086576

commit 519c89efe3a9ddc8f3a57d1bb4940ff355086576
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2022-05-06 09:47:30 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2022-05-06 09:59:33 +0000

    audio/libmad: Update to 0.16.0
    
    Switch to Tenacity's fork which contains patched code for all known CVEs
    and various build fixes. This also makes it easier to maintain as we're
    using an active fork. Upstream has also switched to CMake.
    
    PR:             262874
    Approved by:    sunpoet (maintainer timeout 4+ weeks)
---
 audio/libmad/Makefile              |  30 +++----
 audio/libmad/distinfo              |   9 +-
 audio/libmad/files/mad.pc.in       |  11 ---
 audio/libmad/files/patch-configure |  40 ---------
 audio/libmad/files/patch-layer12.c | 175 -------------------------------------
 audio/libmad/files/patch-layer3.c  |  17 ----
 audio/libmad/pkg-plist             |  10 ++-
 7 files changed, 23 insertions(+), 269 deletions(-)

diff --git a/audio/libmad/Makefile b/audio/libmad/Makefile
index 8eec6b24bf38..9d5d6fe91a5f 100644
--- a/audio/libmad/Makefile
+++ b/audio/libmad/Makefile
@@ -1,35 +1,25 @@
 # Created by: Sergey Akifyev <asa@gascom.ru>
 
 PORTNAME=	libmad
-PORTVERSION=	0.15.1b
-PORTREVISION=	7
+DISTVERSION=	0.16.0
 CATEGORIES=	audio
-MASTER_SITES=	SF/mad/${PORTNAME}/${PORTVERSION}
+
+PATCH_SITES=	https://github.com/tenacityteam/libmad/commit/
+PATCHFILES=	c2eb5e1a728c973ea3f957d4cb6e04d77f745568.patch:-p1 \
+		a8ca654e3666f442805d93722290bb218b633428.patch:-p1
 
 MAINTAINER=	sunpoet@FreeBSD.org
 COMMENT=	Libmad library (part of MAD project)
 
 LICENSE=	GPLv2
 
-USES=		cpe libtool
-
-CONFIGURE_ARGS=	--disable-debugging --enable-sso
-GNU_CONFIGURE=	yes
-INSTALL_TARGET=	install-strip
-USE_LDCONFIG=	yes
-
-SUB_LIST=	VERSION=${PORTVERSION}
-SUB_FILES=	mad.pc
-
+USES=		cmake cpe pathfix
 CPE_VENDOR=	underbit
 
-OPTIONS_DEFINE=	SPEED
-SPEED_DESC=	Optimize for speed over accuracy
-
-SPEED_CONFIGURE_ON=	--enable-speed
-SPEED_CONFIGURE_OFF=	--enable-accuracy
+USE_GITHUB=	yes
+GH_ACCOUNT=	tenacityteam
+GH_TAGNAME=	15d1ef05
 
-post-install:
-	${INSTALL_DATA} ${WRKDIR}/mad.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig/
+USE_LDCONFIG=	yes
 
 .include <bsd.port.mk>
diff --git a/audio/libmad/distinfo b/audio/libmad/distinfo
index 45ba3689d2e1..72b5f612ddcc 100644
--- a/audio/libmad/distinfo
+++ b/audio/libmad/distinfo
@@ -1,2 +1,7 @@
-SHA256 (libmad-0.15.1b.tar.gz) = bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690
-SIZE (libmad-0.15.1b.tar.gz) = 502379
+TIMESTAMP = 1648676242
+SHA256 (tenacityteam-libmad-0.16.0-15d1ef05_GH0.tar.gz) = e380ee75784732cbf619c44df10418d652a30134f24e40b41d44b59b0a9f5579
+SIZE (tenacityteam-libmad-0.16.0-15d1ef05_GH0.tar.gz) = 213534
+SHA256 (c2eb5e1a728c973ea3f957d4cb6e04d77f745568.patch) = 6bc3b4656686801cbc526554226594361ddf97a6334eaadcb4765efd1c0ed916
+SIZE (c2eb5e1a728c973ea3f957d4cb6e04d77f745568.patch) = 972
+SHA256 (a8ca654e3666f442805d93722290bb218b633428.patch) = c15bf57d20090bd13a1749454ca987f47262136c4ae4781914062247b376a7df
+SIZE (a8ca654e3666f442805d93722290bb218b633428.patch) = 814
diff --git a/audio/libmad/files/mad.pc.in b/audio/libmad/files/mad.pc.in
deleted file mode 100644
index a7689a62deec..000000000000
--- a/audio/libmad/files/mad.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=%%PREFIX%%
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: mad
-Description: MPEG Audio Decoder
-Requires:
-Version: %%VERSION%%
-Libs: -L${libdir} -lmad -lm
-Cflags: -I${includedir}
diff --git a/audio/libmad/files/patch-configure b/audio/libmad/files/patch-configure
deleted file mode 100644
index 5d5c3f1563f6..000000000000
--- a/audio/libmad/files/patch-configure
+++ /dev/null
@@ -1,40 +0,0 @@
---- configure.orig	2004-02-05 09:34:07 UTC
-+++ configure
-@@ -19096,24 +19096,30 @@ then
- 	esac
-     fi
- 
-+    if $CC -v 2>&1 | grep clang > /dev/null; then
-+	CLANG=yes
-+    else
-+	CLANG=no
-+    fi
-+
-     case "$optimize" in
- 	-O|"-O "*)
- 	    optimize="-O"
--	    optimize="$optimize -fforce-mem"
--	    optimize="$optimize -fforce-addr"
-+	    optimize="$optimize"
-+	    test $CLANG = no && optimize="$optimize -fforce-addr"
- 	    : #x optimize="$optimize -finline-functions"
- 	    : #- optimize="$optimize -fstrength-reduce"
--	    optimize="$optimize -fthread-jumps"
--	    optimize="$optimize -fcse-follow-jumps"
--	    optimize="$optimize -fcse-skip-blocks"
-+	    test $CLANG = no && optimize="$optimize -fthread-jumps"
-+	    test $CLANG = no && optimize="$optimize -fcse-follow-jumps"
-+	    test $CLANG = no && optimize="$optimize -fcse-skip-blocks"
- 	    : #x optimize="$optimize -frerun-cse-after-loop"
- 	    : #x optimize="$optimize -frerun-loop-opt"
- 	    : #x optimize="$optimize -fgcse"
- 	    optimize="$optimize -fexpensive-optimizations"
--	    optimize="$optimize -fregmove"
-+	    test $CLANG = no && optimize="$optimize -fregmove"
- 	    : #* optimize="$optimize -fdelayed-branch"
- 	    : #x optimize="$optimize -fschedule-insns"
--	    optimize="$optimize -fschedule-insns2"
-+	    test $CLANG = no && optimize="$optimize -fschedule-insns2"
- 	    : #? optimize="$optimize -ffunction-sections"
- 	    : #? optimize="$optimize -fcaller-saves"
- 	    : #> optimize="$optimize -funroll-loops"
diff --git a/audio/libmad/files/patch-layer12.c b/audio/libmad/files/patch-layer12.c
deleted file mode 100644
index 27e572259ff9..000000000000
--- a/audio/libmad/files/patch-layer12.c
+++ /dev/null
@@ -1,175 +0,0 @@
-Obtained from:	https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508133#15
-
---- layer12.c.orig	2004-02-05 09:02:39 UTC
-+++ layer12.c
-@@ -134,6 +134,12 @@ int mad_layer_I(struct mad_stream *strea
-   for (sb = 0; sb < bound; ++sb) {
-     for (ch = 0; ch < nch; ++ch) {
-       nb = mad_bit_read(&stream->ptr, 4);
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
- 
-       if (nb == 15) {
- 	stream->error = MAD_ERROR_BADBITALLOC;
-@@ -146,6 +152,12 @@ int mad_layer_I(struct mad_stream *strea
- 
-   for (sb = bound; sb < 32; ++sb) {
-     nb = mad_bit_read(&stream->ptr, 4);
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
- 
-     if (nb == 15) {
-       stream->error = MAD_ERROR_BADBITALLOC;
-@@ -162,6 +174,12 @@ int mad_layer_I(struct mad_stream *strea
-     for (ch = 0; ch < nch; ++ch) {
-       if (allocation[ch][sb]) {
- 	scalefactor[ch][sb] = mad_bit_read(&stream->ptr, 6);
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
- 
- # if defined(OPT_STRICT)
- 	/*
-@@ -187,6 +205,12 @@ int mad_layer_I(struct mad_stream *strea
- 	frame->sbsample[ch][s][sb] = nb ?
- 	  mad_f_mul(I_sample(&stream->ptr, nb),
- 		    sf_table[scalefactor[ch][sb]]) : 0;
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
-       }
-     }
- 
-@@ -195,6 +219,12 @@ int mad_layer_I(struct mad_stream *strea
- 	mad_fixed_t sample;
- 
- 	sample = I_sample(&stream->ptr, nb);
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
- 
- 	for (ch = 0; ch < nch; ++ch) {
- 	  frame->sbsample[ch][s][sb] =
-@@ -403,7 +433,15 @@ int mad_layer_II(struct mad_stream *stre
-     nbal = bitalloc_table[offsets[sb]].nbal;
- 
-     for (ch = 0; ch < nch; ++ch)
-+    {
-       allocation[ch][sb] = mad_bit_read(&stream->ptr, nbal);
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
-+    }
-   }
- 
-   for (sb = bound; sb < sblimit; ++sb) {
-@@ -411,6 +449,13 @@ int mad_layer_II(struct mad_stream *stre
- 
-     allocation[0][sb] =
-     allocation[1][sb] = mad_bit_read(&stream->ptr, nbal);
-+
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
-   }
- 
-   /* decode scalefactor selection info */
-@@ -419,6 +464,12 @@ int mad_layer_II(struct mad_stream *stre
-     for (ch = 0; ch < nch; ++ch) {
-       if (allocation[ch][sb])
- 	scfsi[ch][sb] = mad_bit_read(&stream->ptr, 2);
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
-     }
-   }
- 
-@@ -442,6 +493,12 @@ int mad_layer_II(struct mad_stream *stre
-     for (ch = 0; ch < nch; ++ch) {
-       if (allocation[ch][sb]) {
- 	scalefactor[ch][sb][0] = mad_bit_read(&stream->ptr, 6);
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
- 
- 	switch (scfsi[ch][sb]) {
- 	case 2:
-@@ -452,11 +509,23 @@ int mad_layer_II(struct mad_stream *stre
- 
- 	case 0:
- 	  scalefactor[ch][sb][1] = mad_bit_read(&stream->ptr, 6);
-+		if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+		{
-+			stream->error = MAD_ERROR_LOSTSYNC;
-+			stream->sync = 0;
-+			return -1;
-+		}
- 	  /* fall through */
- 
- 	case 1:
- 	case 3:
- 	  scalefactor[ch][sb][2] = mad_bit_read(&stream->ptr, 6);
-+		if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+		{
-+			stream->error = MAD_ERROR_LOSTSYNC;
-+			stream->sync = 0;
-+			return -1;
-+		}
- 	}
- 
- 	if (scfsi[ch][sb] & 1)
-@@ -488,6 +557,12 @@ int mad_layer_II(struct mad_stream *stre
- 	  index = offset_table[bitalloc_table[offsets[sb]].offset][index - 1];
- 
- 	  II_samples(&stream->ptr, &qc_table[index], samples);
-+		if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+		{
-+			stream->error = MAD_ERROR_LOSTSYNC;
-+			stream->sync = 0;
-+			return -1;
-+		}
- 
- 	  for (s = 0; s < 3; ++s) {
- 	    frame->sbsample[ch][3 * gr + s][sb] =
-@@ -506,6 +581,12 @@ int mad_layer_II(struct mad_stream *stre
- 	index = offset_table[bitalloc_table[offsets[sb]].offset][index - 1];
- 
- 	II_samples(&stream->ptr, &qc_table[index], samples);
-+	if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
-+	{
-+		stream->error = MAD_ERROR_LOSTSYNC;
-+		stream->sync = 0;
-+		return -1;
-+	}
- 
- 	for (ch = 0; ch < nch; ++ch) {
- 	  for (s = 0; s < 3; ++s) {
diff --git a/audio/libmad/files/patch-layer3.c b/audio/libmad/files/patch-layer3.c
deleted file mode 100644
index 5f7455f5382b..000000000000
--- a/audio/libmad/files/patch-layer3.c
+++ /dev/null
@@ -1,17 +0,0 @@
-Obtained from:	https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=508133#15
-
---- layer3.c.orig	2004-01-23 09:41:32 UTC
-+++ layer3.c
-@@ -2608,6 +2608,12 @@ int mad_layer_III(struct mad_stream *str
-     next_md_begin = 0;
- 
-   md_len = si.main_data_begin + frame_space - next_md_begin;
-+  if (md_len + MAD_BUFFER_GUARD > MAD_BUFFER_MDLEN)
-+  {
-+	stream->error = MAD_ERROR_LOSTSYNC;
-+	stream->sync = 0;
-+	return -1;
-+  }
- 
-   frame_used = 0;
- 
diff --git a/audio/libmad/pkg-plist b/audio/libmad/pkg-plist
index 5df894177e6c..bd16846cadd9 100644
--- a/audio/libmad/pkg-plist
+++ b/audio/libmad/pkg-plist
@@ -1,6 +1,8 @@
 include/mad.h
-lib/libmad.a
+lib/cmake/mad/madConfig.cmake
+lib/cmake/mad/madConfigVersion.cmake
+lib/cmake/mad/madTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/mad/madTargets.cmake
 lib/libmad.so
-lib/libmad.so.0
-lib/libmad.so.0.2.1
-libdata/pkgconfig/mad.pc
+lib/libmad.so.0.16.0
+libdata/pkgconfig/libmad.pc