From e550822c5631e5edddf4bb8278ad39e416d8acb6 Mon Sep 17 00:00:00 2001 From: danfe Date: Fri, 3 Mar 2017 16:22:28 +0000 Subject: - Resurrect `audio/rezound' as the days of gcc/libstdc++ mess are gone (at least on tier-1 architectures) - Update to version 0.13.1beta which includes many C++ related fixes (unfortunately, a number of issues still remain to be patched) - Let the compiler handle template instantiation of ``TPoolFile'' [1] - Use native atomics instead of pulling Boost header - Convert few remaining sed(1) in-place editing to patch files - Bump FOX toolkit version being used (1.4 -> 1.6) - Get rid of absolute port origins when specifying dependencies - Unbreak NLS option (and enable it back by default) [1] http://bugs.gentoo.org/334797 --- audio/Makefile | 1 + audio/rezound/Makefile | 85 ++++++++++++++++++++++ audio/rezound/distinfo | 3 + .../rezound/files/patch-src_PoolFile_TPoolFile.cpp | 23 ++++++ audio/rezound/files/patch-src_PoolFile_TPoolFile.h | 13 ++++ .../patch-src_backend_CPortAudioSoundPlayer.cpp | 11 +++ .../patch-src_backend_CPortAudioSoundRecorder.cpp | 11 +++ audio/rezound/files/patch-src_backend_CSound.cpp | 11 +++ .../rezound/files/patch-src_backend_CSound_defs.h | 13 ++++ audio/rezound/files/patch-src_backend_CTrigger.h | 10 +++ .../patch-src_backend_CrezSoundTranslator.cpp | 11 +++ .../patch-src_frontend__fox_convert__images.sh | 26 +++++++ audio/rezound/files/patch-src_misc_AThread.cpp | 11 +++ .../rezound/files/patch-src_misc_CAtomicCounter.h | 11 +++ .../files/patch-src_misc_CNestedDataFile_anytype.h | 11 +++ audio/rezound/files/patch-src_misc_TMemoryPipe.h | 10 +++ audio/rezound/files/patch-src_misc_clocks.cpp | 23 ++++++ audio/rezound/pkg-descr | 4 + audio/rezound/pkg-plist | 16 ++++ 19 files changed, 304 insertions(+) create mode 100644 audio/rezound/Makefile create mode 100644 audio/rezound/distinfo create mode 100644 audio/rezound/files/patch-src_PoolFile_TPoolFile.cpp create mode 100644 audio/rezound/files/patch-src_PoolFile_TPoolFile.h create mode 100644 audio/rezound/files/patch-src_backend_CPortAudioSoundPlayer.cpp create mode 100644 audio/rezound/files/patch-src_backend_CPortAudioSoundRecorder.cpp create mode 100644 audio/rezound/files/patch-src_backend_CSound.cpp create mode 100644 audio/rezound/files/patch-src_backend_CSound_defs.h create mode 100644 audio/rezound/files/patch-src_backend_CTrigger.h create mode 100644 audio/rezound/files/patch-src_backend_CrezSoundTranslator.cpp create mode 100644 audio/rezound/files/patch-src_frontend__fox_convert__images.sh create mode 100644 audio/rezound/files/patch-src_misc_AThread.cpp create mode 100644 audio/rezound/files/patch-src_misc_CAtomicCounter.h create mode 100644 audio/rezound/files/patch-src_misc_CNestedDataFile_anytype.h create mode 100644 audio/rezound/files/patch-src_misc_TMemoryPipe.h create mode 100644 audio/rezound/files/patch-src_misc_clocks.cpp create mode 100644 audio/rezound/pkg-descr create mode 100644 audio/rezound/pkg-plist (limited to 'audio') diff --git a/audio/Makefile b/audio/Makefile index 7c3a95867619..7e0bbf46d57f 100644 --- a/audio/Makefile +++ b/audio/Makefile @@ -668,6 +668,7 @@ SUBDIR += rem SUBDIR += resid SUBDIR += rexima + SUBDIR += rezound SUBDIR += rhythmbox SUBDIR += rio500 SUBDIR += rioutil diff --git a/audio/rezound/Makefile b/audio/rezound/Makefile new file mode 100644 index 000000000000..84ba49092417 --- /dev/null +++ b/audio/rezound/Makefile @@ -0,0 +1,85 @@ +# Created by: Alexey Dokuchaev +# $FreeBSD$ + +PORTNAME= rezound +DISTVERSION= 0.13.1beta +CATEGORIES= audio +MASTER_SITES= SF/${PORTNAME}/ReZound/${DISTVERSION} + +MAINTAINER= danfe@FreeBSD.org +COMMENT= Graphical audio file editor + +LICENSE= GPLv2 + +LIB_DEPENDS= libFOX-1.6.so:x11-toolkits/fox16 + +USES= bison pkgconfig +GNU_CONFIGURE= yes +CONFIGURE_ARGS= --disable-alsa +MAKE_JOBS_UNSAFE= yes + +OPTIONS_DEFINE= LARGEFILE JACK AUDIOFILE PORTAUDIO OGG VORBIS FLAC FFTW \ + SOUNDTOUCH LADSPA LAME CDRDAO DOCS NLS +OPTIONS_DEFAULT= AUDIOFILE PORTAUDIO OGG VORBIS FLAC SOUNDTOUCH \ + LADSPA LAME + +LARGEFILE_DESC= Use 64-bit file I/O +FFTW_DESC= Use fast Fourier transform routines +CDRDAO_DESC= Burning audio files to CD support + +LARGEFILE_CONFIGURE_ON= --enable-largefile +JACK_LIB_DEPENDS= libjack.so:audio/jack +AUDIOFILE_LIB_DEPENDS= libaudiofile.so:audio/libaudiofile +PORTAUDIO_LIB_DEPENDS= libportaudio.so:audio/portaudio +OGG_LIB_DEPENDS= libogg.so:audio/libogg +VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis +FLAC_LIB_DEPENDS= libFLAC.so:audio/flac +FFTW_LIB_DEPENDS= libfftw.so:math/fftw +SOUNDTOUCH_LIB_DEPENDS= libSoundTouch.so:audio/soundtouch +LADSPA_RUN_DEPENDS= ${LOCALBASE}/lib/ladspa/amp.so:audio/ladspa +LADSPA_CONFIGURE_OFF= --disable-ladspa +LAME_RUN_DEPENDS= lame:audio/lame +CDRDAO_RUN_DEPENDS= cdrdao:sysutils/cdrdao + +.include + +.if ${PORT_OPTIONS:MNLS} +USES+= gettext +CPPFLAGS+= -I${LOCALBASE}/include +PLIST_SUB+= NLS="" +.else +CONFIGURE_ARGS+= --disable-nls +PLIST_SUB+= NLS="@comment " +.endif + +post-patch: .SILENT + ${REINPLACE_CMD} -E '/atoll|round|nearbyint/d' \ + ${WRKSRC}/config/platform/bsd.h + ${REINPLACE_CMD} -E 's,(_nl_expand_alias \()\),\1...), ; \ + /^C(XX)?FLAGS=/d ; /CXXFLAGS="\$$CXXFLAGS -[gW]/d ; \ + /^return /s,\(int\)( n?gettext),(long)\1, ; \ + /boost header not found/d' \ + ${WRKSRC}/configure + ${REINPLACE_CMD} -e 's,$$(prefix)/doc,$$(datadir)/doc,' \ + ${WRKSRC}/config/am_include.mk ${WRKSRC}/Makefile.in \ + ${WRKSRC}/src/Makefile.in ${WRKSRC}/src/misc/Makefile.in \ + ${WRKSRC}/src/misc/CNestedDataFile/Makefile.in \ + ${WRKSRC}/src/PoolFile/Makefile.in \ + ${WRKSRC}/src/backend/DSP/Makefile.in \ + ${WRKSRC}/src/backend/Makefile.in \ + ${WRKSRC}/src/backend/File/Makefile.in \ + ${WRKSRC}/src/backend/Edits/Makefile.in \ + ${WRKSRC}/src/backend/Effects/Makefile.in \ + ${WRKSRC}/src/backend/Filters/Makefile.in \ + ${WRKSRC}/src/backend/Looping/Makefile.in \ + ${WRKSRC}/src/backend/Generate/Makefile.in \ + ${WRKSRC}/src/backend/Remaster/Makefile.in \ + ${WRKSRC}/src/backend/LADSPA/Makefile.in \ + ${WRKSRC}/src/frontend_fox/Makefile.in +.if ${PORT_OPTIONS:MDOCS} + ${REINPLACE_CMD} -e '/AUTHORS/d; /COPYING/d' ${WRKSRC}/Makefile.in +.else + ${REINPLACE_CMD} -e 's/ install-pkgdocDATA$$//' ${WRKSRC}/Makefile.in +.endif + +.include diff --git a/audio/rezound/distinfo b/audio/rezound/distinfo new file mode 100644 index 000000000000..b503b97d22c4 --- /dev/null +++ b/audio/rezound/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1388350369 +SHA256 (rezound-0.13.1beta.tar.gz) = 9adc3450caae0d22996082fe0f184cdd5314362a212420eb9afdbfd869dd9223 +SIZE (rezound-0.13.1beta.tar.gz) = 1895578 diff --git a/audio/rezound/files/patch-src_PoolFile_TPoolFile.cpp b/audio/rezound/files/patch-src_PoolFile_TPoolFile.cpp new file mode 100644 index 000000000000..6c3e9f0f92d5 --- /dev/null +++ b/audio/rezound/files/patch-src_PoolFile_TPoolFile.cpp @@ -0,0 +1,23 @@ +--- src/PoolFile/TPoolFile.cpp.orig 2013-02-10 06:35:02 UTC ++++ src/PoolFile/TPoolFile.cpp +@@ -20,11 +20,9 @@ + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +-/* this would be needed if I were utilizing gcc's implicit instantiation for TPoolFile + #ifndef __TPoolFile_H__CPP + #error this file must be included through TPoolFile.h NOT compiled on its own + #endif +-*/ + + /* ??? + * There are places that I have to do: container.erase(container.begin+index); +@@ -575,7 +573,7 @@ template + invalidateAllCachedBlocks(false,poolId); + + // remove poolName with poolId of the parameter +- for(map::const_iterator t=poolNames.begin();t!=poolNames.end();t++) ++ for(map::const_iterator t=poolNames.begin();t!=poolNames.end();t++) + { + if(t->second==poolId) + { diff --git a/audio/rezound/files/patch-src_PoolFile_TPoolFile.h b/audio/rezound/files/patch-src_PoolFile_TPoolFile.h new file mode 100644 index 000000000000..8b7fe978d2df --- /dev/null +++ b/audio/rezound/files/patch-src_PoolFile_TPoolFile.h @@ -0,0 +1,13 @@ +--- src/PoolFile/TPoolFile.h.orig 2013-02-10 06:35:02 UTC ++++ src/PoolFile/TPoolFile.h +@@ -399,10 +399,8 @@ private: + + }; + +-/* this would be needed if I were utilizing gcc's implicit instantiation for TPoolFile + #define __TPoolFile_H__CPP + #include "TPoolFile.cpp" + #undef __TPoolFile_H__CPP +-*/ + + #endif diff --git a/audio/rezound/files/patch-src_backend_CPortAudioSoundPlayer.cpp b/audio/rezound/files/patch-src_backend_CPortAudioSoundPlayer.cpp new file mode 100644 index 000000000000..d3e922effba9 --- /dev/null +++ b/audio/rezound/files/patch-src_backend_CPortAudioSoundPlayer.cpp @@ -0,0 +1,11 @@ +--- src/backend/CPortAudioSoundPlayer.cpp.orig 2013-12-27 03:56:49 UTC ++++ src/backend/CPortAudioSoundPlayer.cpp +@@ -73,7 +73,7 @@ void CPortAudioSoundPlayer::initialize() + // open a PortAudio stream + #ifdef ENABLE_PORTAUDIO_V19 + PaStreamParameters output = { gPortAudioOutputDevice, +- gDesiredOutputChannelCount, ++ static_cast(gDesiredOutputChannelCount), + sampleFormat, + Pa_GetDeviceInfo(gPortAudioOutputDevice)->defaultLowOutputLatency , + NULL}; diff --git a/audio/rezound/files/patch-src_backend_CPortAudioSoundRecorder.cpp b/audio/rezound/files/patch-src_backend_CPortAudioSoundRecorder.cpp new file mode 100644 index 000000000000..597af330aa3a --- /dev/null +++ b/audio/rezound/files/patch-src_backend_CPortAudioSoundRecorder.cpp @@ -0,0 +1,11 @@ +--- src/backend/CPortAudioSoundRecorder.cpp.orig 2013-12-27 03:57:19 UTC ++++ src/backend/CPortAudioSoundRecorder.cpp +@@ -70,7 +70,7 @@ void CPortAudioSoundRecorder::initialize + #ifdef ENABLE_PORTAUDIO_V19 + PaStreamParameters input = { + gPortAudioOutputDevice, +- sound->getChannelCount(), ++ static_cast(sound->getChannelCount()), + sampleFormat, + Pa_GetDeviceInfo(gPortAudioOutputDevice)->defaultLowInputLatency , + NULL}; diff --git a/audio/rezound/files/patch-src_backend_CSound.cpp b/audio/rezound/files/patch-src_backend_CSound.cpp new file mode 100644 index 000000000000..b77291980c6f --- /dev/null +++ b/audio/rezound/files/patch-src_backend_CSound.cpp @@ -0,0 +1,11 @@ +--- src/backend/CSound.cpp.orig 2010-02-28 06:32:54 UTC ++++ src/backend/CSound.cpp +@@ -2289,7 +2289,7 @@ void CSound::setUserNotes(const string & + + + // this is the explicit instantiation of the TPoolFile for CSound's purposes +-#include ++// #include + template class TPoolFile; + + // Some explicit template method instantiations (not sure why some are necessary and some aren't) diff --git a/audio/rezound/files/patch-src_backend_CSound_defs.h b/audio/rezound/files/patch-src_backend_CSound_defs.h new file mode 100644 index 000000000000..c45e4e859bd7 --- /dev/null +++ b/audio/rezound/files/patch-src_backend_CSound_defs.h @@ -0,0 +1,13 @@ +--- src/backend/CSound_defs.h.orig 2004-06-18 10:45:47.000000000 +0800 ++++ src/backend/CSound_defs.h 2012-07-06 14:10:05.000000000 +0800 +@@ -50,6 +50,10 @@ + #define MAX_LENGTH (0x7fffffffffffffffLL-(1024LL*1024LL)) + + #include ++ extern "C" { ++ long double logl(long double); ++ long double expl(long double); ++ } + #define sample_fpos_floor(a) (floorl(a)) + #define sample_fpos_ceil(a) (ceill(a)) + #define sample_fpos_round(a) (nearbyintl(a)) diff --git a/audio/rezound/files/patch-src_backend_CTrigger.h b/audio/rezound/files/patch-src_backend_CTrigger.h new file mode 100644 index 000000000000..23c6d3c9ccc4 --- /dev/null +++ b/audio/rezound/files/patch-src_backend_CTrigger.h @@ -0,0 +1,10 @@ +--- src/backend/CTrigger.h.orig 2008-09-22 02:37:14 UTC ++++ src/backend/CTrigger.h +@@ -27,6 +27,7 @@ + #include + + #include ++#include + #include + + #include diff --git a/audio/rezound/files/patch-src_backend_CrezSoundTranslator.cpp b/audio/rezound/files/patch-src_backend_CrezSoundTranslator.cpp new file mode 100644 index 000000000000..d1be2054a6e6 --- /dev/null +++ b/audio/rezound/files/patch-src_backend_CrezSoundTranslator.cpp @@ -0,0 +1,11 @@ +--- src/backend/CrezSoundTranslator.cpp.orig 2013-02-10 06:35:01 UTC ++++ src/backend/CrezSoundTranslator.cpp +@@ -43,7 +43,7 @@ CrezSoundTranslator::~CrezSoundTranslato + + // need to include this I use some of the template *methods* for types that are no where else + // so the explicit instantation at the bottom of CSound.cpp doesn't instantiate everything +-#include ++// #include + + struct RFormatInfo1 + { diff --git a/audio/rezound/files/patch-src_frontend__fox_convert__images.sh b/audio/rezound/files/patch-src_frontend__fox_convert__images.sh new file mode 100644 index 000000000000..25a372eec923 --- /dev/null +++ b/audio/rezound/files/patch-src_frontend__fox_convert__images.sh @@ -0,0 +1,26 @@ +--- src/frontend_fox/convert_images.sh.orig 2012-04-14 05:41:31 UTC ++++ src/frontend_fox/convert_images.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # probably should go with something more generic like /bin/sh + + # to change to something other than gif, replace .gif and FXGIFIcon throughout the script +@@ -58,7 +58,7 @@ echo >> $H_FILE + + + # this function encodes filenames with spaces or other non-printable characters into something that will be a valid C-variable name +-function filenameToVarname # $1 is a [path/]filename.ext ++filenameToVarname() # $1 is a [path/]filename.ext + { + # remove path and extension and translate chars + basename "${1%\.*}" | tr ' [],-' '_____' +@@ -81,7 +81,7 @@ echo "#endif" >> $H_FILE + + + # only overwrite the h file if it needs to be so it won't cause a whole bunch of things to unnecessarily recompile +-if [ -a ${H_FILE%\.tmp} ] ++if [ -e ${H_FILE%\.tmp} ] + then + diff $H_FILE ${H_FILE%\.tmp} >/dev/null + if [ $? -ne 0 ] diff --git a/audio/rezound/files/patch-src_misc_AThread.cpp b/audio/rezound/files/patch-src_misc_AThread.cpp new file mode 100644 index 000000000000..79d1f3fb1c2f --- /dev/null +++ b/audio/rezound/files/patch-src_misc_AThread.cpp @@ -0,0 +1,11 @@ +--- src/misc/AThread.cpp.orig 2013-02-10 06:35:02 UTC ++++ src/misc/AThread.cpp +@@ -416,7 +416,7 @@ using namespace std; + abort(); + } catch(...) { + // linux will abort, Mac will not so it will crash with unhandled exception and generate a crash report +- fprintf(stderr,"unhandled exception was thrown within thread -- ID: %s:(%x); aborting\n", getThreadName().c_str(), (unsigned)thread->mThreadID);fflush(stderr); ++ fprintf(stderr,"unhandled exception was thrown within thread -- ID: %s:(%x); aborting\n", getThreadName().c_str(), thread->mThreadID);fflush(stderr); + + // we only abort all the time with linux code + abort(); diff --git a/audio/rezound/files/patch-src_misc_CAtomicCounter.h b/audio/rezound/files/patch-src_misc_CAtomicCounter.h new file mode 100644 index 000000000000..fda6f51997f8 --- /dev/null +++ b/audio/rezound/files/patch-src_misc_CAtomicCounter.h @@ -0,0 +1,11 @@ +--- src/misc/CAtomicCounter.h.orig 2013-02-10 06:35:02 UTC ++++ src/misc/CAtomicCounter.h +@@ -28,7 +28,7 @@ + #define LINUX_ATOMIX + #include + +-#elif defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 405 && defined(__GXX_EXPERIMENTAL_CXX0X__)/*for now detect --std=c++0x.. will be removed later*/ ++#elif defined(__clang__) || defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 405 && defined(__GXX_EXPERIMENTAL_CXX0X__)/*for now detect --std=c++0x.. will be removed later*/ + + // gcc-4.5 uses the atomic header (c++v0) + #define STL_ATOMIX diff --git a/audio/rezound/files/patch-src_misc_CNestedDataFile_anytype.h b/audio/rezound/files/patch-src_misc_CNestedDataFile_anytype.h new file mode 100644 index 000000000000..c1b9f8f8a572 --- /dev/null +++ b/audio/rezound/files/patch-src_misc_CNestedDataFile_anytype.h @@ -0,0 +1,11 @@ +--- src/misc/CNestedDataFile/anytype.h.orig 2013-02-10 06:35:02 UTC ++++ src/misc/CNestedDataFile/anytype.h +@@ -159,7 +159,7 @@ template STATIC_TPL const st + { + // leaving type in case it's not able to deduce aruments and chooses the default template implemenation + // if I knew how to constrain the original definition of the template, I would make it fully constrained +- s+=anytype_to_string(any[t]); ++ s+=anytype_to_string(any[t]); + if(t!=(l-1)) + s+=","; + } diff --git a/audio/rezound/files/patch-src_misc_TMemoryPipe.h b/audio/rezound/files/patch-src_misc_TMemoryPipe.h new file mode 100644 index 000000000000..483edae8895b --- /dev/null +++ b/audio/rezound/files/patch-src_misc_TMemoryPipe.h @@ -0,0 +1,10 @@ +--- src/misc/TMemoryPipe.h.orig 2013-03-29 17:15:58 UTC ++++ src/misc/TMemoryPipe.h +@@ -24,6 +24,7 @@ + #include "../../config/common.h" + + #include ++#include + + #include "CMutex.h" + #include "CConditionVariable.h" diff --git a/audio/rezound/files/patch-src_misc_clocks.cpp b/audio/rezound/files/patch-src_misc_clocks.cpp new file mode 100644 index 000000000000..df1c2e5e29bd --- /dev/null +++ b/audio/rezound/files/patch-src_misc_clocks.cpp @@ -0,0 +1,23 @@ +--- src/misc/clocks.cpp.orig 2013-02-10 06:35:02 UTC ++++ src/misc/clocks.cpp +@@ -304,18 +304,8 @@ int get_timezone_offset() + #ifdef __APPLE__ + int ret = [[NSTimeZone localTimeZone] secondsFromGMT]; + #else +- tzset(); +- +- // ::timezone's manpage says "Seconds West of GMT", but I found this not to be the case +- // ::timezone is in the range [-12*3600, 12*3600], but it's sign is opposite what we expect: +- // Central Time is +6 hours +- // We want to return -6 hours for Central, so we translate the range and ensure it's min and max value +- +- +- int ret = ::timezone; +- +- // invert sign for our purposes +- ret = -ret; ++ time_t date = time(NULL); ++ int ret = localtime(&date)->tm_gmtoff; + #endif + + // "clamp-and-shift" to convert values outside the appropriate diff --git a/audio/rezound/pkg-descr b/audio/rezound/pkg-descr new file mode 100644 index 000000000000..6eb1da8ccc1e --- /dev/null +++ b/audio/rezound/pkg-descr @@ -0,0 +1,4 @@ +ReZound aims to be a stable, open source, and graphical audio file editor +primarily for but not limited to the Linux operating system. + +WWW: http://rezound.sourceforge.net/ diff --git a/audio/rezound/pkg-plist b/audio/rezound/pkg-plist new file mode 100644 index 000000000000..94206e7a2f25 --- /dev/null +++ b/audio/rezound/pkg-plist @@ -0,0 +1,16 @@ +bin/rezound +%%DATADIR%%/icon_logo_32.gif +%%DATADIR%%/impulse_hall1.wav +%%DATADIR%%/key_bindings.dat +%%DATADIR%%/menu.dat +%%DATADIR%%/presets.dat +%%NLS%%share/locale/cs/LC_MESSAGES/rezound.mo +%%NLS%%share/locale/de/LC_MESSAGES/rezound.mo +%%NLS%%share/locale/es/LC_MESSAGES/rezound.mo +%%NLS%%share/locale/fi/LC_MESSAGES/rezound.mo +%%NLS%%share/locale/fr/LC_MESSAGES/rezound.mo +%%NLS%%share/locale/ru/LC_MESSAGES/rezound.mo +%%PORTDOCS%%%%DOCSDIR%%/Features.txt +%%PORTDOCS%%%%DOCSDIR%%/FrontendFoxFeatures.txt +%%PORTDOCS%%%%DOCSDIR%%/NEWS +%%PORTDOCS%%%%DOCSDIR%%/README -- cgit