diff --git a/audio/shntool/Makefile b/audio/shntool/Makefile index 334957f48098..b981ba428fb1 100644 --- a/audio/shntool/Makefile +++ b/audio/shntool/Makefile @@ -1,44 +1,43 @@ PORTNAME= shntool DISTVERSION= 3.0.10 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/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING +EXTRA_PATCHES= ${FILESDIR}/cfd06e4ed.patch:-p1 + GNU_CONFIGURE= yes PLIST_FILES= ${_SHN_ALIASES:S|^|bin/shn|} \ man/man1/shntool.1.gz OPTIONS_DEFINE= AIFF ALAC APE FLAC KXS LA LPAC OFR TTA WAVPACK AIFF_DESC= AIFF audio format support (via SoX) KXS_DESC= Kexis audio format support LA_DESC= Laudio audio format support LPAC_DESC= LPAC audio format support OFR_DESC= OptimFROG audio format support AIFF_RUN_DEPENDS= sox:audio/sox ALAC_RUN_DEPENDS= alacconvert:audio/alac APE_RUN_DEPENDS= mac:audio/mac FLAC_RUN_DEPENDS= flac:audio/flac KXS_RUN_DEPENDS= kexis:audio/kexis LA_RUN_DEPENDS= laudio:audio/linux-laudio LPAC_RUN_DEPENDS= lpac:audio/lpac OFR_RUN_DEPENDS= ofr:audio/optimfrog TTA_RUN_DEPENDS= ttaenc:audio/tta WAVPACK_RUN_DEPENDS= wavpack:audio/wavpack _SHN_ALIASES= cat cmp conv cue fix gen hash info join len pad split strip \ tool trim .include 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?= +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)