summaryrefslogtreecommitdiff
path: root/media-sound/mac
diff options
context:
space:
mode:
Diffstat (limited to 'media-sound/mac')
-rw-r--r--media-sound/mac/Manifest10
-rw-r--r--media-sound/mac/files/mac-3.99.4.5.7-gcc6.patch181
-rw-r--r--media-sound/mac/files/mac-4.11.4.5.7-gcc6.patch199
-rw-r--r--media-sound/mac/files/mac-4.11.4.5.7-output.patch27
-rw-r--r--media-sound/mac/mac-3.99.4.5.7-r1.ebuild54
-rw-r--r--media-sound/mac/mac-4.11.4.5.7.ebuild59
-rw-r--r--media-sound/mac/metadata.xml12
7 files changed, 542 insertions, 0 deletions
diff --git a/media-sound/mac/Manifest b/media-sound/mac/Manifest
new file mode 100644
index 000000000000..3ca52ff7a9c1
--- /dev/null
+++ b/media-sound/mac/Manifest
@@ -0,0 +1,10 @@
+AUX mac-3.99.4.5.7-gcc6.patch 8122 SHA256 64448b736fad268efbb1d6bd266295b72bf4dc74d84e4065ad5033ee0ee02bc2 SHA512 aa6443ab164a5b1e560026874341cd321280298438910781ed45c35bb5bc745824e8a40286dd2e1e781965a83c043a7a64f4a98e7b4a58c4eb5903f0ab4bb1c6 WHIRLPOOL f4e9d76f57d60e6763b55c6a4f9bca5523319513e7e0600994baa31fdaf49500f59a817528298b2a2e433545b212592a215b9f63195d003e6957a4a29c5d9ae6
+AUX mac-4.11.4.5.7-gcc6.patch 10119 SHA256 7c92fd2c9bdd5cfefe40124e642c1e23c72d2d3ecd181e3098cb232c6026702b SHA512 0439cb133779dd540c5cee6760dd6a8acd23434b60baaba804430883cb6d67ca37151370356e9adec3f031cb02c34d529a8f91618f0f9fca6e58e14a295c3a63 WHIRLPOOL 9d632bf378ddce35ca11a671560e29eda5c068a961f7cdade30d47af0cad3607bafe05ac4bdeec82b811d94ff8788d001604cc209b663ff4aba32cb639802d67
+AUX mac-4.11.4.5.7-output.patch 1498 SHA256 65ee185f66c821b69b3727070645a93dff2dada7d11a6feeee08088a5e54b85c SHA512 c96874817ea5389ea2af46c634cd548733e614274b43c9395e146c9151dd9e7a03bbb8c82f36807cc2178070f8a87b886c6db94c27cb4369dbfcb874074db490 WHIRLPOOL 536fd2c59cfe938c79a4bc5c53976d0edcf20f2b3003864c6cde3c1b5c06f9a5479c4dc2b8e3ea050e05d9cf7cd7dae8e0ebbf226cae3d4afe46a75fddb7eb33
+DIST mac-3.99-u4-b5-s7.tar.gz 450981 SHA256 9a735af2c56f05ee06b6e2ff719e902271299adf9e25cd3c9e4b28e8df3e30c5 SHA512 fa7ca8cec0ba6c0fb78dda6e964b17e9331184fed656a2458d0e3ac12fc375a661adfd36c142ef63111f31c6b63e8c00fe40e7babe84f0cefe5433940be628e0 WHIRLPOOL f4df5bccad06b7313348e9be734e926c1d511a2e3ca40162bc2c6a8cffb38c1455543fd7dc0a2352efa91945ae5546364085bd05888e906eb9e1c49fde7f743d
+DIST monkeys-audio_4.11-u4-b5-s7.orig.tar.gz 511190 SHA256 73e28b7dbef5dfd07108b85783261a8a8bb1770917bf2877d4ab8f5c3833299a SHA512 7e73b35c86d6007ab2a94a2d8b7449bb4ac505bbba53e40373a279dc83a9cad5f62a51419a6375335576cf325c88ed7d317b0ef3039b8a497100cb74a63c25d0 WHIRLPOOL be9b56a45c8da00d1c6008d6955a7a9d4fd86e4a893a60b6b35ea426af38900493a213944f1a77451eb942a0d7d0c42e4af3d71c889bead2bc82e5d2732fa022
+EBUILD mac-3.99.4.5.7-r1.ebuild 1147 SHA256 a244bcccea6336ec22456743596fc13fdb3e35bdf38d9d05c260e0835257826f SHA512 b96196fc64816de218a834ebcb13a931440149602b1876349241afa454c01dd24458c865abfd8158ac6a978df6d3782aafe3c89a80c2cb8557a43b637291ed63 WHIRLPOOL fd85f1c05ef73d4c5f05fe61f8d1be70be146999c12a9400d4bafdc8523534333466d5a6877c318595f580983f6058cba7a1683f6b7c5772654c34fee49cdba1
+EBUILD mac-4.11.4.5.7.ebuild 1360 SHA256 5e61e467a3f67d96c7a692b3d7920c6fc75f00a3873ac56e21e6299bc6df188c SHA512 7d9012b16fdeabeca727e2de4b940b6c487251de9b664f9ebb38dee1a2f29af13a64256fb293219198526c01d8a7264e06c811f6b6b54431e534865b2fc42eaf WHIRLPOOL 2baaf86d7a78d09296580ed8821c01ea701a8e4c278b7d266336d73086da958a3593b686511620e87800094071a11790f79d0310c591a8b4b625669dad563483
+MISC ChangeLog 2607 SHA256 7e800b9f6da6258bba61cf98bae5ed9913483ae6f22b5297e6ca4074dbfe1770 SHA512 ea0b572d838252113db29de18e71dc4e8abe866915b28188f2fa2785b1955fc285bcab8969c7864d0ee17c266cddc229f70ad18bb7239015b8906353347ae3ad WHIRLPOOL e813586ff8dfe9c32c569ddba9bc3b48436ed11ce3944e64e5cdc8e6815582baa6a56f53b702d7ed92b4416fbbfee089dcbac0ea0b3d8af5b71b93e381c6308d
+MISC ChangeLog-2015 3772 SHA256 fd6090b0e38c8da52de9d4791dc06ecd2bba3ff59da1c951083e091cd78a2a75 SHA512 c149c600fc0c475049067d65c4cf943cd9de6b56e6111526c24553da09839bc11dc36ca26e32bae270ad8584cc0363daef3455217e84fa9f330f6bd8d589431d WHIRLPOOL 51860fdd909b424fbd2b4c9006966f90c5cef0f31a8fdfc1bfbcbc347e1504bd221d513210fe1bac90f20bf5c4011b4a4eec7dc3ed0a9374a9c0f0ca9dc6fa1e
+MISC metadata.xml 373 SHA256 58b217f5db7cc0446a966a93fbc1fa8c77965a8701dcbbdb240b99db04fcaaa6 SHA512 398ca3b9a13eede72e283f90a215d1e05a518f6b3eee9d8f6a74e3eba1e1f0f501443399906f09771ef1c7441667b5e991f98d9cabd9c6b8395af334312f02a9 WHIRLPOOL 6685ff2c0896504886f9f2f374ed4d0f4a1efba3efb549780a57465ac3ac1235426c3044572acd46a12dfa24073232afa83d46ee2783453a78484e6153723808
diff --git a/media-sound/mac/files/mac-3.99.4.5.7-gcc6.patch b/media-sound/mac/files/mac-3.99.4.5.7-gcc6.patch
new file mode 100644
index 000000000000..e22d1c1f539b
--- /dev/null
+++ b/media-sound/mac/files/mac-3.99.4.5.7-gcc6.patch
@@ -0,0 +1,181 @@
+From: Peter Levine <plevine457@gmail.com>
+--- mac-3.99-u4-b5-s7/src/Shared/NoWindows.h.old 2016-09-18 21:37:56.049105791 -0400
++++ mac-3.99-u4-b5-s7/src/Shared/NoWindows.h 2016-09-18 21:55:29.666295506 -0400
+@@ -39,8 +39,8 @@
+ typedef const wchar_t * LPCWSTR;
+
+ #define ZeroMemory(POINTER, BYTES) memset(POINTER, 0, BYTES);
+-#define max(a,b) (((a) > (b)) ? (a) : (b))
+-#define min(a,b) (((a) < (b)) ? (a) : (b))
++#define max_macro(a,b) (((a) > (b)) ? (a) : (b))
++#define min_macro(a,b) (((a) < (b)) ? (a) : (b))
+
+ #define __stdcall
+ #define CALLBACK
+--- mac-3.99-u4-b5-s7/src/Shared/CircleBuffer.cpp.old 2016-09-18 21:43:44.270495095 -0400
++++ mac-3.99-u4-b5-s7/src/Shared/CircleBuffer.cpp 2016-09-18 21:44:47.960148731 -0400
+@@ -45,7 +45,7 @@
+
+ if (pBuffer != NULL && nBytes > 0)
+ {
+- int nHeadBytes = min(m_nEndCap - m_nHead, nBytes);
++ int nHeadBytes = min_macro(m_nEndCap - m_nHead, nBytes);
+ int nFrontBytes = nBytes - nHeadBytes;
+
+ memcpy(&pBuffer[0], &m_pBuffer[m_nHead], nHeadBytes);
+@@ -72,7 +72,7 @@
+
+ int CCircleBuffer::RemoveHead(int nBytes)
+ {
+- nBytes = min(MaxGet(), nBytes);
++ nBytes = min_macro(MaxGet(), nBytes);
+ m_nHead += nBytes;
+ if (m_nHead >= m_nEndCap)
+ m_nHead -= m_nEndCap;
+@@ -81,7 +81,7 @@
+
+ int CCircleBuffer::RemoveTail(int nBytes)
+ {
+- nBytes = min(MaxGet(), nBytes);
++ nBytes = min_macro(MaxGet(), nBytes);
+ m_nTail -= nBytes;
+ if (m_nTail < 0)
+ m_nTail += m_nEndCap;
+--- mac-3.99-u4-b5-s7/src/MACLib/APECompress.cpp.old 2016-09-18 21:48:40.916547811 -0400
++++ mac-3.99-u4-b5-s7/src/MACLib/APECompress.cpp 2016-09-18 21:51:43.670733601 -0400
+@@ -117,7 +117,7 @@
+ return ERROR_UNDEFINED;
+
+ // calculate how many bytes to copy and add that much to the buffer
+- int nBytesToProcess = min(nBytesAvailable, nBytes - nBytesDone);
++ int nBytesToProcess = min_macro(nBytesAvailable, nBytes - nBytesDone);
+ memcpy(pBuffer, &pData[nBytesDone], nBytesToProcess);
+
+ // unlock the buffer (fail if not successful)
+@@ -162,7 +162,7 @@
+
+ while ((m_nBufferTail - m_nBufferHead) >= nThreshold)
+ {
+- int nFrameBytes = min(m_spAPECompressCreate->GetFullFrameBytes(), m_nBufferTail - m_nBufferHead);
++ int nFrameBytes = min_macro(m_spAPECompressCreate->GetFullFrameBytes(), m_nBufferTail - m_nBufferHead);
+
+ if (nFrameBytes == 0)
+ break;
+--- mac-3.99-u4-b5-s7/src/MACLib/APEDecompress.cpp.old 2016-09-18 21:46:56.962072960 -0400
++++ mac-3.99-u4-b5-s7/src/MACLib/APEDecompress.cpp 2016-09-18 22:01:14.402044817 -0400
+@@ -35,8 +35,8 @@
+ m_bErrorDecodingCurrentFrame = FALSE;
+
+ // set the "real" start and finish blocks
+- m_nStartBlock = (nStartBlock < 0) ? 0 : min(nStartBlock, GetInfo(APE_INFO_TOTAL_BLOCKS));
+- m_nFinishBlock = (nFinishBlock < 0) ? GetInfo(APE_INFO_TOTAL_BLOCKS) : min(nFinishBlock, GetInfo(APE_INFO_TOTAL_BLOCKS));
++ m_nStartBlock = (nStartBlock < 0) ? 0 : min_macro(nStartBlock, GetInfo(APE_INFO_TOTAL_BLOCKS));
++ m_nFinishBlock = (nFinishBlock < 0) ? GetInfo(APE_INFO_TOTAL_BLOCKS) : min_macro(nFinishBlock, GetInfo(APE_INFO_TOTAL_BLOCKS));
+ m_bIsRanged = (m_nStartBlock != 0) || (m_nFinishBlock != GetInfo(APE_INFO_TOTAL_BLOCKS));
+ }
+
+@@ -85,7 +85,7 @@
+
+ // cap
+ int nBlocksUntilFinish = m_nFinishBlock - m_nCurrentBlock;
+- const int nBlocksToRetrieve = min(nBlocks, nBlocksUntilFinish);
++ const int nBlocksToRetrieve = min_macro(nBlocks, nBlocksUntilFinish);
+
+ // get the data
+ unsigned char * pOutputBuffer = (unsigned char *) pBuffer;
+@@ -99,7 +99,7 @@
+
+ // analyze how much to remove from the buffer
+ const int nFrameBufferBlocks = m_nFrameBufferFinishedBlocks;
+- nBlocksThisPass = min(nBlocksLeft, nFrameBufferBlocks);
++ nBlocksThisPass = min_macro(nBlocksLeft, nFrameBufferBlocks);
+
+ // remove as much as possible
+ if (nBlocksThisPass > 0)
+@@ -182,7 +182,7 @@
+
+ int nFrameOffsetBlocks = m_nCurrentFrameBufferBlock % GetInfo(APE_INFO_BLOCKS_PER_FRAME);
+ int nFrameBlocksLeft = nFrameBlocks - nFrameOffsetBlocks;
+- int nBlocksThisPass = min(nFrameBlocksLeft, nBlocksLeft);
++ int nBlocksThisPass = min_macro(nFrameBlocksLeft, nBlocksLeft);
+
+ // start the frame if we need to
+ if (nFrameOffsetBlocks == 0)
+--- mac-3.99-u4-b5-s7/src/MACLib/APESimple.cpp.old 2016-09-18 21:47:16.972925909 -0400
++++ mac-3.99-u4-b5-s7/src/MACLib/APESimple.cpp 2016-09-18 21:52:39.022779503 -0400
+@@ -193,7 +193,7 @@
+ nBytesRead = 1;
+ while ((nBytesLeft > 0) && (nBytesRead > 0))
+ {
+- int nBytesToRead = min(16384, nBytesLeft);
++ int nBytesToRead = min_macro(16384, nBytesLeft);
+ if (pIO->Read(spBuffer, nBytesToRead, &nBytesRead) != ERROR_SUCCESS)
+ return ERROR_IO_READ;
+
+--- mac-3.99-u4-b5-s7/src/MACLib/APETag.cpp.old 2016-09-18 21:55:53.331533348 -0400
++++ mac-3.99-u4-b5-s7/src/MACLib/APETag.cpp 2016-09-18 21:58:21.508345586 -0400
+@@ -16,7 +16,7 @@
+ memcpy(m_spFieldNameUTF16, pFieldName, (wcslen(pFieldName) + 1) * sizeof(str_utf16));
+
+ // data (we'll always allocate two extra bytes and memset to 0 so we're safely NULL terminated)
+- m_nFieldValueBytes = max(nFieldBytes, 0);
++ m_nFieldValueBytes = max_macro(nFieldBytes, 0);
+ m_spFieldValue.Assign(new char [m_nFieldValueBytes + 2], TRUE);
+ memset(m_spFieldValue, 0, m_nFieldValueBytes + 2);
+ if (m_nFieldValueBytes > 0)
+--- mac-3.99-u4-b5-s7/src/MACLib/BitArray.cpp.old 2016-09-18 21:53:24.090030009 -0400
++++ mac-3.99-u4-b5-s7/src/MACLib/BitArray.cpp 2016-09-18 22:00:13.500083252 -0400
+@@ -113,7 +113,7 @@
+ m_nCurrentBitIndex = (m_nCurrentBitIndex & 31);
+
+ // zero the rest of the memory (may not need the +1 because of frame byte alignment)
+- memset(&m_pBitArray[1], 0, min(nBytesToWrite + 1, BIT_ARRAY_BYTES - 1));
++ memset(&m_pBitArray[1], 0, min_macro(nBytesToWrite + 1, BIT_ARRAY_BYTES - 1));
+ }
+
+ // return a success
+@@ -247,7 +247,7 @@
+ BitArrayState.k++;
+
+ // figure the pivot value
+- int nPivotValue = max(nOriginalKSum / 32, 1);
++ int nPivotValue = max_macro(nOriginalKSum / 32, 1);
+ int nOverflow = nEncode / nPivotValue;
+ int nBase = nEncode - (nOverflow * nPivotValue);
+
+--- mac-3.99-u4-b5-s7/src/MACLib/MACProgressHelper.cpp.old 2016-09-18 21:56:44.606337012 -0400
++++ mac-3.99-u4-b5-s7/src/MACLib/MACProgressHelper.cpp 2016-09-18 21:59:55.854310134 -0400
+@@ -35,7 +35,7 @@
+ m_nCurrentStep = nCurrentStep;
+
+ // figure the percentage done
+- float fPercentageDone = float(m_nCurrentStep) / float(max(m_nTotalSteps, 1));
++ float fPercentageDone = float(m_nCurrentStep) / float(max_macro(m_nTotalSteps, 1));
+ int nPercentageDone = (int) (fPercentageDone * 1000 * 100);
+ if (nPercentageDone > 100000) nPercentageDone = 100000;
+
+--- mac-3.99-u4-b5-s7/src/MACLib/Prepare.cpp.old 2016-09-18 21:56:29.974394222 -0400
++++ mac-3.99-u4-b5-s7/src/MACLib/Prepare.cpp 2016-09-18 21:59:28.214726465 -0400
+@@ -177,9 +177,9 @@
+
+ if (LPeak == 0) { *pSpecialCodes |= SPECIAL_FRAME_LEFT_SILENCE; }
+ if (RPeak == 0) { *pSpecialCodes |= SPECIAL_FRAME_RIGHT_SILENCE; }
+- if (max(LPeak, RPeak) > *pPeakLevel)
++ if (max_macro(LPeak, RPeak) > *pPeakLevel)
+ {
+- *pPeakLevel = max(LPeak, RPeak);
++ *pPeakLevel = max_macro(LPeak, RPeak);
+ }
+
+ // check for pseudo-stereo files
+--- mac-3.99-u4-b5-s7/src/MACLib/UnBitArray.cpp.old 2016-09-18 21:56:16.548445898 -0400
++++ mac-3.99-u4-b5-s7/src/MACLib/UnBitArray.cpp 2016-09-18 21:58:56.148161050 -0400
+@@ -110,7 +110,7 @@
+ if (m_nVersion >= 3990)
+ {
+ // figure the pivot value
+- int nPivotValue = max(BitArrayState.nKSum / 32, 1);
++ int nPivotValue = max_macro(BitArrayState.nKSum / 32, 1);
+
+ // get the overflow
+ int nOverflow = 0;
diff --git a/media-sound/mac/files/mac-4.11.4.5.7-gcc6.patch b/media-sound/mac/files/mac-4.11.4.5.7-gcc6.patch
new file mode 100644
index 000000000000..60494e4f6e5c
--- /dev/null
+++ b/media-sound/mac/files/mac-4.11.4.5.7-gcc6.patch
@@ -0,0 +1,199 @@
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/APECompress.cpp monkeys-audio-4.11-u4-b5-s7/src/MACLib/APECompress.cpp
+--- monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/APECompress.cpp 2017-03-04 17:07:21.952460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/MACLib/APECompress.cpp 2017-03-04 17:11:58.607449387 +0100
+@@ -116,7 +116,7 @@
+ return ERROR_UNDEFINED;
+
+ // calculate how many bytes to copy and add that much to the buffer
+- int nBytesToProcess = min(nBytesAvailable, nBytes - nBytesDone);
++ int nBytesToProcess = min_macro(nBytesAvailable, nBytes - nBytesDone);
+ memcpy(pBuffer, &pData[nBytesDone], nBytesToProcess);
+
+ // unlock the buffer (fail if not successful)
+@@ -161,7 +161,7 @@
+
+ while ((m_nBufferTail - m_nBufferHead) >= nThreshold)
+ {
+- int nFrameBytes = min(m_spAPECompressCreate->GetFullFrameBytes(), m_nBufferTail - m_nBufferHead);
++ int nFrameBytes = min_macro(m_spAPECompressCreate->GetFullFrameBytes(), m_nBufferTail - m_nBufferHead);
+
+ if (nFrameBytes == 0)
+ break;
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/APEDecompress.cpp monkeys-audio-4.11-u4-b5-s7/src/MACLib/APEDecompress.cpp
+--- monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/APEDecompress.cpp 2017-03-04 17:07:21.952460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/MACLib/APEDecompress.cpp 2017-03-04 17:14:55.455442336 +0100
+@@ -36,8 +36,8 @@
+ m_nErrorDecodingCurrentFrameOutputSilenceBlocks = 0;
+
+ // set the "real" start and finish blocks
+- m_nStartBlock = (nStartBlock < 0) ? 0 : min(nStartBlock, GetInfo(APE_INFO_TOTAL_BLOCKS));
+- m_nFinishBlock = (nFinishBlock < 0) ? GetInfo(APE_INFO_TOTAL_BLOCKS) : min(nFinishBlock, GetInfo(APE_INFO_TOTAL_BLOCKS));
++ m_nStartBlock = (nStartBlock < 0) ? 0 : min_macro(nStartBlock, GetInfo(APE_INFO_TOTAL_BLOCKS));
++ m_nFinishBlock = (nFinishBlock < 0) ? GetInfo(APE_INFO_TOTAL_BLOCKS) : min_macro(nFinishBlock, GetInfo(APE_INFO_TOTAL_BLOCKS));
+ m_bIsRanged = (m_nStartBlock != 0) || (m_nFinishBlock != GetInfo(APE_INFO_TOTAL_BLOCKS));
+ }
+
+@@ -85,7 +85,7 @@
+
+ // cap
+ int nBlocksUntilFinish = m_nFinishBlock - m_nCurrentBlock;
+- const int nBlocksToRetrieve = min(nBlocks, nBlocksUntilFinish);
++ const int nBlocksToRetrieve = min_macro(nBlocks, nBlocksUntilFinish);
+
+ // get the data
+ unsigned char * pOutputBuffer = (unsigned char *) pBuffer;
+@@ -99,7 +99,7 @@
+
+ // analyze how much to remove from the buffer
+ const int nFrameBufferBlocks = m_nFrameBufferFinishedBlocks;
+- nBlocksThisPass = min(nBlocksLeft, nFrameBufferBlocks);
++ nBlocksThisPass = min_macro(nBlocksLeft, nFrameBufferBlocks);
+
+ // remove as much as possible
+ if (nBlocksThisPass > 0)
+@@ -179,7 +179,7 @@
+ if (m_nErrorDecodingCurrentFrameOutputSilenceBlocks > 0)
+ {
+ // output silence
+- int nOutputSilenceBlocks = min(m_nErrorDecodingCurrentFrameOutputSilenceBlocks, nBlocksLeft);
++ int nOutputSilenceBlocks = min_macro(m_nErrorDecodingCurrentFrameOutputSilenceBlocks, nBlocksLeft);
+ unsigned char cSilence = (GetInfo(APE_INFO_BITS_PER_SAMPLE) == 8) ? 127 : 0;
+ for (int z = 0; z < nOutputSilenceBlocks * m_nBlockAlign; z++)
+ {
+@@ -204,7 +204,7 @@
+ // analyze
+ int nFrameOffsetBlocks = m_nCurrentFrameBufferBlock % GetInfo(APE_INFO_BLOCKS_PER_FRAME);
+ int nFrameBlocksLeft = nFrameBlocks - nFrameOffsetBlocks;
+- int nBlocksThisPass = min(nFrameBlocksLeft, nBlocksLeft);
++ int nBlocksThisPass = min_macro(nFrameBlocksLeft, nBlocksLeft);
+
+ // start the frame if we need to
+ if (nFrameOffsetBlocks == 0)
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/APESimple.cpp monkeys-audio-4.11-u4-b5-s7/src/MACLib/APESimple.cpp
+--- monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/APESimple.cpp 2017-03-04 17:07:21.952460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/MACLib/APESimple.cpp 2017-03-04 17:17:41.695435707 +0100
+@@ -251,7 +251,7 @@
+ nBytesRead = 1;
+ while ((nBytesLeft > 0) && (nBytesRead > 0))
+ {
+- int nBytesToRead = min(16384, nBytesLeft);
++ int nBytesToRead = min_macro(16384, nBytesLeft);
+ if (pIO->Read(spBuffer, nBytesToRead, &nBytesRead) != ERROR_SUCCESS)
+ return ERROR_IO_READ;
+
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/APETag.cpp monkeys-audio-4.11-u4-b5-s7/src/MACLib/APETag.cpp
+--- monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/APETag.cpp 2017-03-04 17:07:21.952460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/MACLib/APETag.cpp 2017-03-04 17:18:15.007434379 +0100
+@@ -15,7 +15,7 @@
+ memcpy(m_spFieldNameUTF16, pFieldName, (wcslen(pFieldName) + 1) * sizeof(str_utf16));
+
+ // data (we'll always allocate two extra bytes and memset to 0 so we're safely NULL terminated)
+- m_nFieldValueBytes = max(nFieldBytes, 0);
++ m_nFieldValueBytes = max_macro(nFieldBytes, 0);
+ m_spFieldValue.Assign(new char [m_nFieldValueBytes + 2], TRUE);
+ memset(m_spFieldValue, 0, m_nFieldValueBytes + 2);
+ if (m_nFieldValueBytes > 0)
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/BitArray.cpp monkeys-audio-4.11-u4-b5-s7/src/MACLib/BitArray.cpp
+--- monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/BitArray.cpp 2017-03-04 17:07:21.952460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/MACLib/BitArray.cpp 2017-03-04 17:19:12.647432081 +0100
+@@ -113,7 +113,7 @@
+ m_nCurrentBitIndex = (m_nCurrentBitIndex & 31);
+
+ // zero the rest of the memory (may not need the +1 because of frame byte alignment)
+- memset(&m_pBitArray[1], 0, min(nBytesToWrite + 1, BIT_ARRAY_BYTES - 1));
++ memset(&m_pBitArray[1], 0, min_macro(nBytesToWrite + 1, BIT_ARRAY_BYTES - 1));
+ }
+
+ // return a success
+@@ -233,7 +233,7 @@
+ nEncode = (nEncode > 0) ? nEncode * 2 - 1 : -nEncode * 2;
+
+ // figure the pivot value
+- int nPivotValue = max(BitArrayState.nKSum / 32, 1);
++ int nPivotValue = max_macro(BitArrayState.nKSum / 32, 1);
+ int nOverflow = nEncode / nPivotValue;
+ int nBase = nEncode - (nOverflow * nPivotValue);
+
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/MACProgressHelper.cpp monkeys-audio-4.11-u4-b5-s7/src/MACLib/MACProgressHelper.cpp
+--- monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/MACProgressHelper.cpp 2017-03-04 17:07:21.952460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/MACLib/MACProgressHelper.cpp 2017-03-04 17:19:56.135430347 +0100
+@@ -27,7 +27,7 @@
+ m_nCurrentStep = nCurrentStep;
+
+ // figure the percentage done
+- float fPercentageDone = float(m_nCurrentStep) / float(max(m_nTotalSteps, 1));
++ float fPercentageDone = float(m_nCurrentStep) / float(max_macro(m_nTotalSteps, 1));
+ int nPercentageDone = (int) (fPercentageDone * 1000 * 100);
+ if (nPercentageDone > 100000) nPercentageDone = 100000;
+
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/Prepare.cpp monkeys-audio-4.11-u4-b5-s7/src/MACLib/Prepare.cpp
+--- monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/Prepare.cpp 2017-03-04 17:07:21.952460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/MACLib/Prepare.cpp 2017-03-04 17:20:42.423428501 +0100
+@@ -176,9 +176,9 @@
+
+ if (LPeak == 0) { *pSpecialCodes |= SPECIAL_FRAME_LEFT_SILENCE; }
+ if (RPeak == 0) { *pSpecialCodes |= SPECIAL_FRAME_RIGHT_SILENCE; }
+- if (max(LPeak, RPeak) > *pPeakLevel)
++ if (max_macro(LPeak, RPeak) > *pPeakLevel)
+ {
+- *pPeakLevel = max(LPeak, RPeak);
++ *pPeakLevel = max_macro(LPeak, RPeak);
+ }
+
+ // check for pseudo-stereo files
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/UnBitArray.cpp monkeys-audio-4.11-u4-b5-s7/src/MACLib/UnBitArray.cpp
+--- monkeys-audio-4.11-u4-b5-s7_old/src/MACLib/UnBitArray.cpp 2017-03-04 17:07:21.952460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/MACLib/UnBitArray.cpp 2017-03-04 17:21:09.935427404 +0100
+@@ -116,7 +116,7 @@
+ if (m_nVersion >= 3990)
+ {
+ // figure the pivot value
+- int nPivotValue = max(BitArrayState.nKSum / 32, 1);
++ int nPivotValue = max_macro(BitArrayState.nKSum / 32, 1);
+
+ // get the overflow
+ int nOverflow = 0;
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/Shared/CircleBuffer.cpp monkeys-audio-4.11-u4-b5-s7/src/Shared/CircleBuffer.cpp
+--- monkeys-audio-4.11-u4-b5-s7_old/src/Shared/CircleBuffer.cpp 2017-03-04 17:07:21.951460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/Shared/CircleBuffer.cpp 2017-03-04 17:10:47.775452211 +0100
+@@ -45,7 +45,7 @@
+
+ if (pBuffer != NULL && nBytes > 0)
+ {
+- int nHeadBytes = min(m_nEndCap - m_nHead, nBytes);
++ int nHeadBytes = min_macro(m_nEndCap - m_nHead, nBytes);
+ int nFrontBytes = nBytes - nHeadBytes;
+
+ memcpy(&pBuffer[0], &m_pBuffer[m_nHead], nHeadBytes);
+@@ -72,7 +72,7 @@
+
+ int CCircleBuffer::RemoveHead(int nBytes)
+ {
+- nBytes = min(MaxGet(), nBytes);
++ nBytes = min_macro(MaxGet(), nBytes);
+ m_nHead += nBytes;
+ if (m_nHead >= m_nEndCap)
+ m_nHead -= m_nEndCap;
+@@ -81,7 +81,7 @@
+
+ int CCircleBuffer::RemoveTail(int nBytes)
+ {
+- nBytes = min(MaxGet(), nBytes);
++ nBytes = min_macro(MaxGet(), nBytes);
+ m_nTail -= nBytes;
+ if (m_nTail < 0)
+ m_nTail += m_nEndCap;
+diff -Naur monkeys-audio-4.11-u4-b5-s7_old/src/Shared/NoWindows.h monkeys-audio-4.11-u4-b5-s7/src/Shared/NoWindows.h
+--- monkeys-audio-4.11-u4-b5-s7_old/src/Shared/NoWindows.h 2017-03-04 17:07:21.951460418 +0100
++++ monkeys-audio-4.11-u4-b5-s7/src/Shared/NoWindows.h 2017-03-04 17:07:58.376458966 +0100
+@@ -41,8 +41,8 @@
+ typedef const wchar_t * LPCWSTR;
+
+ #define ZeroMemory(POINTER, BYTES) memset(POINTER, 0, BYTES);
+-#define max(a,b) (((a) > (b)) ? (a) : (b))
+-#define min(a,b) (((a) < (b)) ? (a) : (b))
++#define max_macro(a,b) (((a) > (b)) ? (a) : (b))
++#define min_macro(a,b) (((a) < (b)) ? (a) : (b))
+
+ #define __stdcall
+ #define CALLBACK
diff --git a/media-sound/mac/files/mac-4.11.4.5.7-output.patch b/media-sound/mac/files/mac-4.11.4.5.7-output.patch
new file mode 100644
index 000000000000..f90c2c42fdda
--- /dev/null
+++ b/media-sound/mac/files/mac-4.11.4.5.7-output.patch
@@ -0,0 +1,27 @@
+--- a/src/Console/Console.cpp
++++ b/src/Console/Console.cpp
+@@ -60,7 +60,7 @@ Displays the proper usage for MAC.exe
+ ***************************************************************************************/
+ void DisplayProperUsage(FILE * pFile)
+ {
+- _ftprintf(pFile, _T("Proper Usage: [EXE] [Input File] [Output File] [Mode]\n\n"));
++ _ftprintf(pFile, _T("Proper Usage: [Input File] [Output File] [Mode]\n\n"));
+
+ _ftprintf(pFile, _T("Modes: \n"));
+ _ftprintf(pFile, _T(" Compress (fast): '-c1000'\n"));
+@@ -76,11 +76,11 @@ void DisplayProperUsage(FILE * pFile)
+ _ftprintf(pFile, _T(" Convert: '-nXXXX'\n\n"));
+
+ _ftprintf(pFile, _T("Examples:\n"));
+- _ftprintf(pFile, _T(" Compress: mac.exe \"Metallica - One.wav\" \"Metallica - One.ape\" -c2000\n"));
+- _ftprintf(pFile, _T(" Decompress: mac.exe \"Metallica - One.ape\" \"Metallica - One.wav\" -d\n"));
+- _ftprintf(pFile, _T(" Verify: mac.exe \"Metallica - One.ape\" -v\n"));
++ _ftprintf(pFile, _T(" Compress: mac \"Metallica - One.wav\" \"Metallica - One.ape\" -c2000\n"));
++ _ftprintf(pFile, _T(" Decompress: mac \"Metallica - One.ape\" \"Metallica - One.wav\" -d\n"));
++ _ftprintf(pFile, _T(" Verify: mac \"Metallica - One.ape\" -v\n"));
+ #ifdef SHNTOOL
+- _ftprintf(pFile, _T(" Quick verify: mac.exe \"Metallica - One.ape\" -q\n"));
++ _ftprintf(pFile, _T(" Quick verify: mac \"Metallica - One.ape\" -q\n"));
+ #endif
+ _ftprintf(pFile, _T(" (note: int filenames must be put inside of quotations)\n"));
+ }
diff --git a/media-sound/mac/mac-3.99.4.5.7-r1.ebuild b/media-sound/mac/mac-3.99.4.5.7-r1.ebuild
new file mode 100644
index 000000000000..8c2f12d04d0a
--- /dev/null
+++ b/media-sound/mac/mac-3.99.4.5.7-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils flag-o-matic versionator
+
+MY_PV=$(version_format_string '$1.$2-u$3-b$4')
+PATCH=s$(get_version_component_range 5)
+MY_P=${PN}-${MY_PV}-${PATCH}
+
+DESCRIPTION="Monkey's Audio Codecs"
+HOMEPAGE="http://etree.org/shnutils/shntool/"
+SRC_URI="http://etree.org/shnutils/shntool/support/formats/ape/unix/${MY_PV}-${PATCH}/${MY_P}.tar.gz"
+
+LICENSE="mac"
+SLOT="0"
+KEYWORDS="alpha amd64 ppc ~ppc64 x86"
+IUSE="cpu_flags_x86_mmx static-libs"
+
+RDEPEND=""
+DEPEND="sys-apps/sed
+ cpu_flags_x86_mmx? ( dev-lang/yasm )"
+
+S=${WORKDIR}/${MY_P}
+
+RESTRICT="mirror"
+
+src_prepare() {
+ sed -i -e 's:-O3::' configure || die
+}
+
+pkg_setup() {
+ append-cppflags -DSHNTOOL
+ use cpu_flags_x86_mmx && append-ldflags -Wl,-z,noexecstack
+}
+
+src_configure() {
+ econf \
+ $(use_enable static-libs static) \
+ $(use_enable cpu_flags_x86_mmx assembly)
+}
+
+src_install() {
+ default
+
+ insinto /usr/include/${PN}
+ doins src/MACLib/{BitArray,UnBitArrayBase,Prepare}.h #409435
+
+ dodoc ChangeLog.shntool src/*.txt
+ dohtml src/Readme.htm
+
+ prune_libtool_files --all
+}
diff --git a/media-sound/mac/mac-4.11.4.5.7.ebuild b/media-sound/mac/mac-4.11.4.5.7.ebuild
new file mode 100644
index 000000000000..4e495bf76d57
--- /dev/null
+++ b/media-sound/mac/mac-4.11.4.5.7.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic versionator
+
+MY_PN=monkeys-audio
+MY_PV=$(version_format_string '$1.$2-u$3-b$4')
+PATCH=s$(get_version_component_range 5)
+MY_P=${MY_PN}_${MY_PV}-${PATCH}
+
+DESCRIPTION="Monkey's Audio Codecs"
+HOMEPAGE="http://etree.org/shnutils/shntool/ http://www.deb-multimedia.org/dists/testing/main/binary-amd64/package/monkeys-audio.php"
+SRC_URI="http://www.deb-multimedia.org/pool/main/m/monkeys-audio/${MY_P}.orig.tar.gz"
+
+LICENSE="mac"
+SLOT="0"
+KEYWORDS="~alpha amd64 ppc ppc64 x86"
+IUSE="cpu_flags_x86_mmx static-libs"
+
+RDEPEND=""
+DEPEND="sys-apps/sed
+ cpu_flags_x86_mmx? ( dev-lang/yasm )"
+
+S=${WORKDIR}/${MY_P/_/-}
+
+PATCHES=(
+ "${FILESDIR}"/${P}-output.patch
+ "${FILESDIR}"/${P}-gcc6.patch
+)
+
+DOCS=( AUTHORS ChangeLog NEWS TODO README src/History.txt src/Credits.txt ChangeLog.shntool )
+
+RESTRICT="mirror"
+
+src_prepare() {
+ default
+
+ sed -i -e 's:-O3::' configure || die
+}
+
+src_configure() {
+ append-cppflags -DSHNTOOL
+ use cpu_flags_x86_mmx && append-ldflags -Wl,-z,noexecstack
+
+ econf \
+ $(use_enable static-libs static) \
+ $(use_enable cpu_flags_x86_mmx assembly)
+}
+
+src_install() {
+ default
+
+ insinto /usr/include/${PN}
+ doins src/MACLib/{BitArray,UnBitArrayBase,Prepare}.h #409435
+
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/media-sound/mac/metadata.xml b/media-sound/mac/metadata.xml
new file mode 100644
index 000000000000..0943267a4afc
--- /dev/null
+++ b/media-sound/mac/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>billie@gentoo.org</email>
+ <name>Daniel Pielmeier</name>
+ </maintainer>
+<maintainer type="project">
+ <email>sound@gentoo.org</email>
+ <name>Gentoo Sound project</name>
+ </maintainer>
+</pkgmetadata>