This updates audio/mac (Monkey's Audio Codec) to the latest release. Previously, this port was using a custom distfile, because historically, Monkey's Audio was a Windows-only application. However, the Monkey's Audio SDK now compiles without patches on non-Windows operating systems, including OpenBSD. So this switches to using the upstream distfile. The upstream distfile is annoying as it doesn't use a directory and uses CRLF line endings, but the port can deal with that.
Build system has switched to CMAKE, and none of the previous patches apply, so remove them all. Add a couple patches to make the header files easier to use on OpenBSD. The library changed from libmac to libMAC. I think it was always MAC upstream. Also, the license changed from a non-open source license to a BSD-3-Clause license. The only port that depends on audio/mac is audio/aqualung. Use GitHub commit distpatches to backport support for the updated MAC. This requires adding an autoreconf configure style, since one of the backported commits touches configure.ac. bin/mac support tested by encoding and then decoding WAV files and ensuring that the decoded WAV file is the same (Monkey's Audio is a lossless codec). MAC support in aqualung tested by playing a .ape file. Both tested on amd64. OKs? If not, I plan on committing next week unless there are objections. Thanks, Jeremy Index: mac/Makefile =================================================================== RCS file: /cvs/ports/audio/mac/Makefile,v retrieving revision 1.16 diff -u -p -u -p -r1.16 Makefile --- mac/Makefile 11 Mar 2022 18:20:17 -0000 1.16 +++ mac/Makefile 5 Sep 2023 16:43:24 -0000 @@ -2,32 +2,30 @@ ONLY_FOR_ARCHS= aarch64 amd64 arm i386 COMMENT= Monkey's audio lossless codec -DISTNAME= mac-3.99-u4-b5 -PKGNAME= mac-3.99.4.5 -REVISION = 5 -SHARED_LIBS += mac 0.0 # .2.0 +VERSION= 10.20 +DISTNAME= MAC_1020_SDK +PKGNAME= mac-${VERSION} +SHARED_LIBS += MAC 0.0 # .0.0 CATEGORIES= audio +EXTRACT_SUFX= .zip -HOMEPAGE= http://www.monkeysaudio.com/ +HOMEPAGE= https://monkeysaudio.com -# Monkey's Audio Source Code License Agreement -# http://www.monkeysaudio.com/license.html +# BSD-3-Clause PERMIT_PACKAGE= Yes WANTLIB= c m ${COMPILER_LIBCXX} -COMPILER = base-clang ports-gcc base-gcc +COMPILER = base-clang ports-gcc base-gcc -MASTER_SITES= http://bsd.cenkes.org/myports/ +MODULES = devel/cmake +MASTER_SITES= https://monkeysaudio.com/files/ +WRKDIST= ${WRKDIR}/mac-${VERSION} +FIX_CRLF_FILES= Shared/*.h -CONFIGURE_STYLE=gnu - -.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" -BUILD_DEPENDS= devel/yasm -CONFIGURE_ARGS= --enable-assembly=yes -.else -CONFIGURE_ARGS= --enable-assembly=no -.endif +post-extract: + mkdir ${WRKSRC} + mv ${WRKDIR}/!(mac-${VERSION}|bin) ${WRKSRC} .include <bsd.port.mk> Index: mac/distinfo =================================================================== RCS file: /cvs/ports/audio/mac/distinfo,v retrieving revision 1.2 diff -u -p -u -p -r1.2 distinfo --- mac/distinfo 18 Jan 2015 03:12:44 -0000 1.2 +++ mac/distinfo 5 Sep 2023 13:28:06 -0000 @@ -1,2 +1,2 @@ -SHA256 (mac-3.99-u4-b5.tar.gz) = 1ZrFsfo3Wnjq29XZu2OK0CKRhbQrVi27BLDatkdbZlE= -SIZE (mac-3.99-u4-b5.tar.gz) = 421234 +SHA256 (MAC_1020_SDK.zip) = CYchq+lXqaUcL4NUudqPd7cOMDVmAH1uV+wYB7L0hr8= +SIZE (MAC_1020_SDK.zip) = 1653346 Index: mac/patches/patch-Shared_All_h =================================================================== RCS file: mac/patches/patch-Shared_All_h diff -N mac/patches/patch-Shared_All_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ mac/patches/patch-Shared_All_h 5 Sep 2023 14:31:20 -0000 @@ -0,0 +1,13 @@ +Index: Shared/All.h +--- Shared/All.h.orig ++++ Shared/All.h +@@ -10,8 +10,7 @@ PLATFORM_LINUX + PLATFORM_ANDROID + **************************************************************************************************/ + #if !defined(PLATFORM_WINDOWS) && !defined(PLATFORM_APPLE) && !defined(PLATFORM_LINUX) +- #pragma message("No platform set for MACLib, defaulting to Windows") +- #define PLATFORM_WINDOWS ++ #define PLATFORM_LINUX + #endif + + #ifdef PLATFORM_ANDROID Index: mac/patches/patch-Shared_NoWindows_h =================================================================== RCS file: mac/patches/patch-Shared_NoWindows_h diff -N mac/patches/patch-Shared_NoWindows_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ mac/patches/patch-Shared_NoWindows_h 5 Sep 2023 15:05:03 -0000 @@ -0,0 +1,16 @@ +Index: Shared/NoWindows.h +--- Shared/NoWindows.h.orig ++++ Shared/NoWindows.h +@@ -38,8 +38,12 @@ typedef struct _GUID { + #undef ZeroMemory + #define ZeroMemory(POINTER, BYTES) memset(POINTER, 0, BYTES); + ++#ifndef TRUE + #define TRUE 1 ++#endif ++#ifndef FALSE + #define FALSE 0 ++#endif + + #define CALLBACK + Index: mac/patches/patch-configure =================================================================== RCS file: mac/patches/patch-configure diff -N mac/patches/patch-configure --- mac/patches/patch-configure 11 Mar 2022 18:20:17 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,11 +0,0 @@ ---- configure.orig Sat Jul 14 11:22:11 2007 -+++ configure Sat Jul 14 11:22:20 2007 -@@ -1978,7 +1978,7 @@ fi - - - # Checks for programs. --CXXFLAGS="$CXXFLAGS -O3 -Wall -pedantic -Wno-long-long" -+CXXFLAGS="$CXXFLAGS -Wall -pedantic -Wno-long-long" - ac_ext=cc - ac_cpp='$CXXCPP $CPPFLAGS' - ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' Index: mac/patches/patch-src_Console_Console_cpp =================================================================== RCS file: mac/patches/patch-src_Console_Console_cpp diff -N mac/patches/patch-src_Console_Console_cpp --- mac/patches/patch-src_Console_Console_cpp 11 Mar 2022 18:20:17 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,27 +0,0 @@ ---- src/Console/Console.cpp.orig Mon Jul 16 23:50:51 2007 -+++ src/Console/Console.cpp Mon Jul 16 23:53:13 2007 -@@ -27,8 +27,10 @@ Displays the proper usage for MAC.exe - ***************************************************************************************/ - void DisplayProperUsage(FILE * pFile) - { -- fprintf(pFile, "Proper Usage: [EXE] [Input File] [Output File] [Mode]\n\n"); -+ extern char *__progname; - -+ fprintf(pFile, "Proper Usage: %s [Input File] [Output File] [Mode]\n\n", __progname); -+ - fprintf(pFile, "Modes: \n"); - fprintf(pFile, " Compress (fast): '-c1000'\n"); - fprintf(pFile, " Compress (normal): '-c2000'\n"); -@@ -40,9 +42,9 @@ void DisplayProperUsage(FILE * pFile) - fprintf(pFile, " Convert: '-nXXXX'\n\n"); - - fprintf(pFile, "Examples:\n"); -- fprintf(pFile, " Compress: mac.exe \"Metallica - One.wav\" \"Metallica - One.ape\" -c2000\n"); -- fprintf(pFile, " Decompress: mac.exe \"Metallica - One.ape\" \"Metallica - One.wav\" -d\n"); -- fprintf(pFile, " Verify: mac.exe \"Metallica - One.ape\" -v\n"); -+ fprintf(pFile, " Compress: %s \"Metallica - One.wav\" \"Metallica - One.ape\" -c2000\n", __progname); -+ fprintf(pFile, " Decompress: %s \"Metallica - One.ape\" \"Metallica - One.wav\" -d\n", __progname); -+ fprintf(pFile, " Verify: %s \"Metallica - One.ape\" -v\n", __progname); - fprintf(pFile, " (note: int filenames must be put inside of quotations)\n"); - } - Index: mac/patches/patch-src_MACLib_APEDecompress_cpp =================================================================== RCS file: mac/patches/patch-src_MACLib_APEDecompress_cpp diff -N mac/patches/patch-src_MACLib_APEDecompress_cpp --- mac/patches/patch-src_MACLib_APEDecompress_cpp 11 Mar 2022 18:20:17 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,11 +0,0 @@ ---- src/MACLib/APEDecompress.cpp.orig Thu Jun 1 13:00:58 2006 -+++ src/MACLib/APEDecompress.cpp Sat Jul 14 10:16:11 2007 -@@ -369,7 +369,7 @@ Get information from the decompressor - *****************************************************************************************/ - intptr_t CAPEDecompress::GetInfo(APE_DECOMPRESS_FIELDS Field, intptr_t nParam1, intptr_t nParam2) - { -- int nRetVal = 0; -+ intptr_t nRetVal = 0; - BOOL bHandled = TRUE; - - switch (Field) Index: mac/patches/patch-src_MACLib_APELink_cpp =================================================================== RCS file: mac/patches/patch-src_MACLib_APELink_cpp diff -N mac/patches/patch-src_MACLib_APELink_cpp --- mac/patches/patch-src_MACLib_APELink_cpp 11 Mar 2022 18:20:17 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,26 +0,0 @@ ---- src/MACLib/APELink.cpp.orig Thu Jun 1 11:00:57 2006 -+++ src/MACLib/APELink.cpp Sun Apr 16 11:51:08 2017 -@@ -63,10 +63,10 @@ void CAPELink::ParseData(const char * pData, const str - if (pData != NULL) - { - // parse out the information -- char * pHeader = strstr(pData, APE_LINK_HEADER); -- char * pImageFile = strstr(pData, APE_LINK_IMAGE_FILE_TAG); -- char * pStartBlock = strstr(pData, APE_LINK_START_BLOCK_TAG); -- char * pFinishBlock = strstr(pData, APE_LINK_FINISH_BLOCK_TAG); -+ const char * pHeader = strstr(pData, APE_LINK_HEADER); -+ const char * pImageFile = strstr(pData, APE_LINK_IMAGE_FILE_TAG); -+ const char * pStartBlock = strstr(pData, APE_LINK_START_BLOCK_TAG); -+ const char * pFinishBlock = strstr(pData, APE_LINK_FINISH_BLOCK_TAG); - - if (pHeader && pImageFile && pStartBlock && pFinishBlock) - { -@@ -81,7 +81,7 @@ void CAPELink::ParseData(const char * pData, const str - - // get the path - char cImageFile[MAX_PATH + 1]; int nIndex = 0; -- char * pImageCharacter = &pImageFile[strlen(APE_LINK_IMAGE_FILE_TAG)]; -+ const char * pImageCharacter = &pImageFile[strlen(APE_LINK_IMAGE_FILE_TAG)]; - while ((*pImageCharacter != 0) && (*pImageCharacter != '\r') && (*pImageCharacter != '\n')) - cImageFile[nIndex++] = *pImageCharacter++; - cImageFile[nIndex] = 0; Index: mac/patches/patch-src_MACLib_MACLib_h =================================================================== RCS file: mac/patches/patch-src_MACLib_MACLib_h diff -N mac/patches/patch-src_MACLib_MACLib_h --- mac/patches/patch-src_MACLib_MACLib_h 11 Mar 2022 18:20:17 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,11 +0,0 @@ ---- src/MACLib/MACLib.h.orig Thu Jun 1 13:00:58 2006 -+++ src/MACLib/MACLib.h Sat Jul 14 10:16:11 2007 -@@ -29,6 +29,8 @@ or, if necessary, matt @ monkeysaudio.com - #ifndef APE_MACLIB_H - #define APE_MACLIB_H - -+#include <sys/stdint.h> -+ - /************************************************************************************************* - APE File Format Overview: (pieces in order -- only valid for the latest version APE files) - Index: mac/pkg/PLIST =================================================================== RCS file: /cvs/ports/audio/mac/pkg/PLIST,v retrieving revision 1.3 diff -u -p -u -p -r1.3 PLIST --- mac/pkg/PLIST 11 Mar 2022 18:20:17 -0000 1.3 +++ mac/pkg/PLIST 5 Sep 2023 13:47:35 -0000 @@ -1,26 +1,14 @@ @bin bin/mac -include/mac/ -include/mac/APECompress.h -include/mac/APECompressCore.h -include/mac/APECompressCreate.h -include/mac/APEDecompress.h -include/mac/APEHeader.h -include/mac/APEInfo.h -include/mac/APELink.h -include/mac/APETag.h -include/mac/All.h -include/mac/CharacterHelper.h -include/mac/CircleBuffer.h -include/mac/GlobalFunctions.h -include/mac/ID3Genres.h -include/mac/IO.h -include/mac/MACLib.h -include/mac/MACProgressHelper.h -include/mac/MACUtils.h -include/mac/NoWindows.h -include/mac/SmartPtr.h -include/mac/StdLibFileIO.h -include/mac/config.h -lib/libmac.a -lib/libmac.la -@lib lib/libmac.so.${LIBmac_VERSION} +include/MAC/ +include/MAC/APETag.h +include/MAC/All.h +include/MAC/CharacterHelper.h +include/MAC/IO.h +include/MAC/MACDll.h +include/MAC/MACLib.h +include/MAC/NoWindows.h +include/MAC/SmartPtr.h +include/MAC/Version.h +include/MAC/Warnings.h +include/MAC/WindowsEnvironment.h +@lib lib/libMAC.so.${LIBMAC_VERSION} Index: aqualung/Makefile =================================================================== RCS file: /cvs/ports/audio/aqualung/Makefile,v retrieving revision 1.60 diff -u -p -u -p -r1.60 Makefile --- aqualung/Makefile 10 Jun 2023 17:30:54 -0000 1.60 +++ aqualung/Makefile 6 Sep 2023 07:59:28 -0000 @@ -3,12 +3,19 @@ COMMENT= advanced music player VERSION= 1.2 DISTNAME= aqualung-${VERSION} EPOCH= 0 +REVISION= 0 CATEGORIES= audio HOMEPAGE= https://github.com/jeremyevans/aqualung MAINTAINER= Jeremy Evans <jer...@openbsd.org> +MASTER_SITES.github = https://github.com/jeremyevans/aqualung/commit/ +PATCHFILES.github = aqualung-lavc-fix{0ecc6721d5078c0bc9cae771d485c8d676443c23}.patch \ + aqualung-mac-fix1{a991c13d0df734a5d0fea7db6b181176858f3e58}.patch \ + aqualung-mac-fix2{d2c88317b6042a05c236faf3c09f600337c6379e}.patch +PATCH_DIST_STRIP= -p1 + # GPLv2 PERMIT_PACKAGE= Yes @@ -18,7 +25,7 @@ WANTLIB += freetype gio-2.0 glib-2.0 gob WANTLIB += harfbuzz iconv intl m mp3lame ogg pango-1.0 pangocairo-1.0 WANTLIB += pangoft2-1.0 pthread samplerate sndfile sndio ${COMPILER_LIBCXX} WANTLIB += vorbis vorbisenc vorbisfile z gtk-x11-2.0 gdk-x11-2.0 -WANTLIB += gdk_pixbuf-2.0 xml2 mac mad mpcdec FLAC avcodec +WANTLIB += gdk_pixbuf-2.0 xml2 MAC mad mpcdec FLAC avcodec WANTLIB += avformat avutil wavpack lrdf oggz speex cddb cdio WANTLIB += cdio_cdda cdio_paranoia modplug ${MODLUA_WANTLIB} @@ -57,7 +64,10 @@ DEBUG_PACKAGES=${BUILD_PACKAGES} CFLAGS+= -DPTHREAD_MIN_PRIORITY=0 -DPTHREAD_MAX_PRIORITY=31 \ -I${LOCALBASE}/include -I${MODLUA_INCL_DIR} -CONFIGURE_STYLE= gnu +BUILD_DEPENDS= devel/gettext,-tools +AUTOCONF_VERSION=2.69 +AUTOMAKE_VERSION=1.16 +CONFIGURE_STYLE= gnu autoreconf CONFIGURE_ENV= LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib " \ lua_CFLAGS="`pkg-config --cflags ${MODLUA_DEP}`" \ lua_LIBS="`pkg-config --libs ${MODLUA_DEP}`" @@ -70,7 +80,7 @@ CONFIGURE_ARGS= --with-cdda \ --with-lame \ --with-lavc \ --with-lua \ - --with-mac \ + --with-MAC \ --with-mod \ --with-mpc \ --with-mpeg \ Index: aqualung/distinfo =================================================================== RCS file: /cvs/ports/audio/aqualung/distinfo,v retrieving revision 1.9 diff -u -p -u -p -r1.9 distinfo --- aqualung/distinfo 10 Jun 2023 17:30:54 -0000 1.9 +++ aqualung/distinfo 5 Sep 2023 17:01:14 -0000 @@ -1,2 +1,8 @@ SHA256 (aqualung-1.2.tar.gz) = Myv6Dqni97/ZZrl5h7dTf2i42o1WO6xKuYb6RBjc7TI= +SHA256 (aqualung-lavc-fix.patch) = JNlPwDlY5uneSjJ96fhbrAkLXZn0g+Wcxs4CiCEEewA= +SHA256 (aqualung-mac-fix1.patch) = +YT1E/0NGSUjqJLDg06/Jq3wKzeiXq0SJtuVqnl39OY= +SHA256 (aqualung-mac-fix2.patch) = 354g/PTCa5WuCSSphHsXhZK928+2Q2ZlhAoSrhhr40k= SIZE (aqualung-1.2.tar.gz) = 1974910 +SIZE (aqualung-lavc-fix.patch) = 1133 +SIZE (aqualung-mac-fix1.patch) = 7590 +SIZE (aqualung-mac-fix2.patch) = 2441