git: 164d9650ba47 - main - audio/shntool: Fix build on 14-CURRENT

From: Thomas Zander <riggs_at_FreeBSD.org>
Date: Sat, 05 Nov 2022 06:52:23 UTC
The branch main has been updated by riggs:

URL: https://cgit.FreeBSD.org/ports/commit/?id=164d9650ba4792563ad08169f5f46aa2e7a1e9b4

commit 164d9650ba4792563ad08169f5f46aa2e7a1e9b4
Author:     Thomas Zander <riggs@FreeBSD.org>
AuthorDate: 2022-11-05 06:47:03 +0000
Commit:     Thomas Zander <riggs@FreeBSD.org>
CommitDate: 2022-11-05 06:52:21 +0000

    audio/shntool: Fix build on 14-CURRENT
    
    Build failure resulted from 14-CURRENT's strverscmp function which
    conflicts with shntool's own implementation.
    
    While on it: Move the patch to support WAVE_FORMAT_EXTENSIBLE into
    ${FILESDIR} as the upstream github repo where this patch originated no
    longer exists.
---
 audio/shntool/Makefile                     |  5 ++--
 audio/shntool/files/cfd06e4ed.patch        | 47 ++++++++++++++++++++++++++++++
 audio/shntool/files/patch-src_core__mode.c | 31 ++++++++++++++++++++
 3 files changed, 80 insertions(+), 3 deletions(-)

diff --git a/audio/shntool/Makefile b/audio/shntool/Makefile
index 334957f48098..b981ba428fb1 100644
--- a/audio/shntool/Makefile
+++ b/audio/shntool/Makefile
@@ -4,9 +4,6 @@ PORTREVISION=	3
 CATEGORIES=	audio
 MASTER_SITES=	http://shnutils.freeshell.org/shntool/dist/src/
 
-PATCH_SITES=	https://github.com/max619/shntool/commit/
-PATCHFILES=	cfd06e4ed.patch:-p1
-
 MAINTAINER=	multimedia@FreeBSD.org
 COMMENT=	Multi-purpose WAVE data processing and reporting utility
 WWW=		http://www.etree.org/shnutils/shntool/
@@ -14,6 +11,8 @@ WWW=		http://www.etree.org/shnutils/shntool/
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/COPYING
 
+EXTRA_PATCHES=	${FILESDIR}/cfd06e4ed.patch:-p1
+
 GNU_CONFIGURE=	yes
 
 PLIST_FILES=	${_SHN_ALIASES:S|^|bin/shn|} \
diff --git a/audio/shntool/files/cfd06e4ed.patch b/audio/shntool/files/cfd06e4ed.patch
new file mode 100644
index 000000000000..ffd82f57dc73
--- /dev/null
+++ b/audio/shntool/files/cfd06e4ed.patch
@@ -0,0 +1,47 @@
+From cfd06e4edecdca2013e0fe04db135fd110a68203 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=91=D0=B0=D0=B3?=
+ =?UTF-8?q?=D1=80=D1=8F=D0=BD=D1=86=D0=B5=D0=B2?= <maxbag97619@gmail.com>
+Date: Mon, 11 Nov 2019 00:53:06 +0300
+Subject: [PATCH] Added WAVE_FORMAT_EXTENSIBLE with value 0xfffe and supressed
+ error on wav header parsing with that format
+
+---
+ include/wave.h  | 1 +
+ src/core_wave.c | 5 ++++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/include/wave.h b/include/wave.h
+index 01aa3fe..039ca19 100644
+--- a/include/wave.h
++++ b/include/wave.h
+@@ -59,6 +59,7 @@
+ #define WAVE_FORMAT_MPEGLAYER3          (0x0055)
+ #define WAVE_FORMAT_G726_ADPCM          (0x0064)
+ #define WAVE_FORMAT_G722_ADPCM          (0x0065)
++#define WAVE_FORMAT_EXTENSIBLE          (0xfffe)
+ 
+ #define CD_BLOCK_SIZE                   (2352)
+ #define CD_BLOCKS_PER_SEC               (75)
+diff --git a/src/core_wave.c b/src/core_wave.c
+index 47c36c9..7bea4d1 100644
+--- a/src/core_wave.c
++++ b/src/core_wave.c
+@@ -167,6 +167,7 @@ bool verify_wav_header_internal(wave_info *info,bool verbose)
+   }
+ 
+   switch (info->wave_format) {
++    case WAVE_FORMAT_EXTENSIBLE:
+     case WAVE_FORMAT_PCM:
+       break;
+     default:
+@@ -511,7 +512,9 @@ char *format_to_str(wshort format)
+     case WAVE_FORMAT_G726_ADPCM:
+       return "G.726 ADPCM";
+     case WAVE_FORMAT_G722_ADPCM:
+-      return "G.722 ADPCM";
++      return "G.722 ADPCM";      
++    case WAVE_FORMAT_EXTENSIBLE:
++      return "WAVE Extensible format";
+   }
+   return "Unknown";
+ }
diff --git a/audio/shntool/files/patch-src_core__mode.c b/audio/shntool/files/patch-src_core__mode.c
new file mode 100644
index 000000000000..bb4008176428
--- /dev/null
+++ b/audio/shntool/files/patch-src_core__mode.c
@@ -0,0 +1,31 @@
+--- src/core_mode.c.orig	2009-03-30 05:55:33 UTC
++++ src/core_mode.c
+@@ -467,13 +467,6 @@ static wlong is_m_ss_nnn(unsigned char *buf,wave_info 
+    host does not conform to Posix.  */
+ #define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
+ 
+-#undef __strverscmp
+-#undef strverscmp
+-
+-#ifndef weak_alias
+-# define __strverscmp strverscmp
+-#endif
+-
+ /* Compare S1 and S2 as strings holding indices/version numbers,
+    returning less than, equal to or greater than zero if S1 is less than,
+    equal to or greater than S2 (for more info, see the texinfo doc).
+@@ -548,13 +541,10 @@ __strverscmp (const char *s1, const char *s2)
+       return state;
+     }
+ }
+-#ifdef weak_alias
+-static weak_alias (__strverscmp, strverscmp)
+-#endif
+ 
+ static int compare_version(const wave_info **w1,const wave_info **w2)
+ {
+-  return strverscmp(w1[0]->filename,w2[0]->filename);
++  return __strverscmp(w1[0]->filename,w2[0]->filename);
+ }
+ 
+ static int compare_ascii(const wave_info **w1,const wave_info **w2)