diff options
Diffstat (limited to 'media-sound/timidity++')
-rw-r--r-- | media-sound/timidity++/ChangeLog | 8 | ||||
-rw-r--r-- | media-sound/timidity++/files/digest-timidity++-2.13.2-r4 | 6 | ||||
-rw-r--r-- | media-sound/timidity++/files/timidity++-2.13.2-flac113.patch | 281 | ||||
-rw-r--r-- | media-sound/timidity++/timidity++-2.13.2-r4.ebuild | 161 |
4 files changed, 455 insertions, 1 deletions
diff --git a/media-sound/timidity++/ChangeLog b/media-sound/timidity++/ChangeLog index 5ef5f1e0b134..405f34b56fcc 100644 --- a/media-sound/timidity++/ChangeLog +++ b/media-sound/timidity++/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for media-sound/timidity++ # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-sound/timidity++/ChangeLog,v 1.83 2007/02/24 15:22:18 jer Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-sound/timidity++/ChangeLog,v 1.84 2007/03/25 21:47:48 aballier Exp $ + +*timidity++-2.13.2-r4 (25 Mar 2007) + + 25 Mar 2007; Alexis Ballier <aballier@gentoo.org> + +files/timidity++-2.13.2-flac113.patch, +timidity++-2.13.2-r4.ebuild: + Revbump in ~arch for flac 1.1.3 compatibility 24 Feb 2007; Jeroen Roovers <jer@gentoo.org> timidity++-2.13.2-r3.ebuild: Stable for HPPA (bug #156160). diff --git a/media-sound/timidity++/files/digest-timidity++-2.13.2-r4 b/media-sound/timidity++/files/digest-timidity++-2.13.2-r4 new file mode 100644 index 000000000000..7a95c8bb2fb6 --- /dev/null +++ b/media-sound/timidity++/files/digest-timidity++-2.13.2-r4 @@ -0,0 +1,6 @@ +MD5 a82ceeb2245e22f4de2b41da21eaee32 TiMidity++-2.13.2.tar.bz2 1581230 +RMD160 0156221846a88abef9312700a050972d85084fd8 TiMidity++-2.13.2.tar.bz2 1581230 +SHA256 0a8524b789b57eaf944c3d9bce32c21a4e893016b22a02a24cd0a4c6afee7260 TiMidity++-2.13.2.tar.bz2 1581230 +MD5 31bdaea612f18e2c3d45a8a73ab44c81 timidity++-2.13.2-exiterror.patch 21406 +RMD160 6b73552e18580422ca4471f12142440a4f3760a9 timidity++-2.13.2-exiterror.patch 21406 +SHA256 ccf1a3678beff5cd143bec07b64ca35620b8eac98b093898c072459051752b77 timidity++-2.13.2-exiterror.patch 21406 diff --git a/media-sound/timidity++/files/timidity++-2.13.2-flac113.patch b/media-sound/timidity++/files/timidity++-2.13.2-flac113.patch new file mode 100644 index 000000000000..e7f9d4bc55bb --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.13.2-flac113.patch @@ -0,0 +1,281 @@ +Index: TiMidity++-2.13.2/timidity/flac_a.c +=================================================================== +--- TiMidity++-2.13.2.orig/timidity/flac_a.c ++++ TiMidity++-2.13.2/timidity/flac_a.c +@@ -45,6 +45,11 @@ + #endif + + #include <FLAC/all.h> ++#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8 ++#define LEGACY_FLAC ++#else ++#undef LEGACY_FLAC ++#endif + #ifdef AU_OGGFLAC + #include <OggFLAC/stream_encoder.h> + #endif +@@ -100,7 +105,11 @@ typedef struct { + unsigned long out_bytes; + union { + FLAC__StreamEncoderState flac; ++#ifdef LEGACY_FLAC + FLAC__SeekableStreamEncoderState s_flac; ++#else ++ FLAC__StreamEncoderState s_flac; ++#endif + #ifdef AU_OGGFLAC + OggFLAC__StreamEncoderState ogg; + #endif +@@ -108,7 +117,11 @@ typedef struct { + union { + union { + FLAC__StreamEncoder *stream; ++#ifdef LEGACY_FLAC + FLAC__SeekableStreamEncoder *s_stream; ++#else ++ FLAC__StreamEncoder *s_stream; ++#endif + } flac; + #ifdef AU_OGGFLAC + union { +@@ -174,11 +187,19 @@ static void flac_stream_encoder_metadata + const FLAC__StreamMetadata *metadata, + void *client_data); + static FLAC__StreamEncoderWriteStatus ++#ifdef LEGACY_FLAC + flac_seekable_stream_encoder_write_callback(const FLAC__SeekableStreamEncoder *encoder, ++#else ++flac_seekable_stream_encoder_write_callback(const FLAC__StreamEncoder *encoder, ++#endif + const FLAC__byte buffer[], + unsigned bytes, unsigned samples, + unsigned current_frame, void *client_data); ++#ifdef LEGACY_FLAC + static void flac_seekable_stream_encoder_metadata_callback(const FLAC__SeekableStreamEncoder *encoder, ++#else ++static void flac_seekable_stream_encoder_metadata_callback(const FLAC__StreamEncoder *encoder, ++#endif + const FLAC__StreamMetadata *metadata, + void *client_data); + +@@ -306,8 +327,13 @@ static int flac_session_close() + #endif /* AU_OGGFLAC */ + if (flac_options.seekable) { + if (ctx->encoder.flac.s_stream) { ++#ifdef LEGACY_FLAC + FLAC__seekable_stream_encoder_finish(ctx->encoder.flac.s_stream); + FLAC__seekable_stream_encoder_delete(ctx->encoder.flac.s_stream); ++#else ++ FLAC__stream_encoder_finish(ctx->encoder.flac.s_stream); ++ FLAC__stream_encoder_delete(ctx->encoder.flac.s_stream); ++#endif + } + } + else +@@ -435,17 +461,29 @@ static int flac_output_open(const char * + else + #endif /* AU_OGGFLAC */ + if (flac_options.seekable) { ++#ifdef LEGACY_FLAC + if ((ctx->encoder.flac.s_stream = FLAC__seekable_stream_encoder_new()) == NULL) { ++#else ++ if ((ctx->encoder.flac.s_stream = FLAC__stream_encoder_new()) == NULL) { ++#endif + ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot create FLAC stream"); + flac_session_close(); + return -1; + } + ++#ifdef LEGACY_FLAC + FLAC__seekable_stream_encoder_set_channels(ctx->encoder.flac.s_stream, nch); + /* 16bps only */ + FLAC__seekable_stream_encoder_set_bits_per_sample(ctx->encoder.flac.s_stream, 16); + + FLAC__seekable_stream_encoder_set_verify(ctx->encoder.flac.s_stream, flac_options.verify); ++#else ++ FLAC__stream_encoder_set_channels(ctx->encoder.flac.s_stream, nch); ++ /* 16bps only */ ++ FLAC__stream_encoder_set_bits_per_sample(ctx->encoder.flac.s_stream, 16); ++ ++ FLAC__stream_encoder_set_verify(ctx->encoder.flac.s_stream, flac_options.verify); ++#endif + + if (!FLAC__format_sample_rate_is_valid(dpm.rate)) { + ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "invalid sampling rate %d", +@@ -453,27 +491,54 @@ static int flac_output_open(const char * + flac_session_close(); + return -1; + } ++#ifdef LEGACY_FLAC + FLAC__seekable_stream_encoder_set_sample_rate(ctx->encoder.flac.s_stream, dpm.rate); + + FLAC__seekable_stream_encoder_set_qlp_coeff_precision(ctx->encoder.flac.s_stream, flac_options.qlp_coeff_precision); + /* expensive! */ + FLAC__seekable_stream_encoder_set_do_qlp_coeff_prec_search(ctx->encoder.flac.s_stream, flac_options.qlp_coeff_precision_search); ++#else ++ FLAC__stream_encoder_set_sample_rate(ctx->encoder.flac.s_stream, dpm.rate); ++ ++ FLAC__stream_encoder_set_qlp_coeff_precision(ctx->encoder.flac.s_stream, flac_options.qlp_coeff_precision); ++ /* expensive! */ ++ FLAC__stream_encoder_set_do_qlp_coeff_prec_search(ctx->encoder.flac.s_stream, flac_options.qlp_coeff_precision_search); ++#endif ++ + + if (nch == 2) { ++#ifdef LEGACY_FLAC + FLAC__seekable_stream_encoder_set_do_mid_side_stereo(ctx->encoder.flac.s_stream, flac_options.mid_side); + FLAC__seekable_stream_encoder_set_loose_mid_side_stereo(ctx->encoder.flac.s_stream, flac_options.adaptive_mid_side); ++#else ++ FLAC__stream_encoder_set_do_mid_side_stereo(ctx->encoder.flac.s_stream, flac_options.mid_side); ++ FLAC__stream_encoder_set_loose_mid_side_stereo(ctx->encoder.flac.s_stream, flac_options.adaptive_mid_side); ++#endif + } + ++#ifdef LEGACY_FLAC + FLAC__seekable_stream_encoder_set_max_lpc_order(ctx->encoder.flac.s_stream, flac_options.max_lpc_order); + FLAC__seekable_stream_encoder_set_min_residual_partition_order(ctx->encoder.flac.s_stream, flac_options.min_residual_partition_order); + FLAC__seekable_stream_encoder_set_max_residual_partition_order(ctx->encoder.flac.s_stream, flac_options.max_residual_partition_order); + + FLAC__seekable_stream_encoder_set_blocksize(ctx->encoder.flac.s_stream, flac_options.blocksize); + FLAC__seekable_stream_encoder_set_client_data(ctx->encoder.flac.s_stream, ctx); ++#else ++ FLAC__stream_encoder_set_max_lpc_order(ctx->encoder.flac.s_stream, flac_options.max_lpc_order); ++ FLAC__stream_encoder_set_min_residual_partition_order(ctx->encoder.flac.s_stream, flac_options.min_residual_partition_order); ++ FLAC__stream_encoder_set_max_residual_partition_order(ctx->encoder.flac.s_stream, flac_options.max_residual_partition_order); ++ ++ FLAC__stream_encoder_set_blocksize(ctx->encoder.flac.s_stream, flac_options.blocksize); ++#endif + + if (0 < num_metadata) ++#ifdef LEGACY_FLAC + FLAC__seekable_stream_encoder_set_metadata(ctx->encoder.flac.s_stream, metadata, num_metadata); ++#else ++ FLAC__stream_encoder_set_metadata(ctx->encoder.flac.s_stream, metadata, num_metadata); ++#endif + ++#ifdef LEGACY_FLAC + /* set callback */ + /* FLAC__seekable_stream_encoder_set_metadata_callback(ctx->encoder.flac.s_stream, flac_seekable_stream_encoder_metadata_callback); /* */ + #ifndef __BORLANDC__ +@@ -483,8 +548,17 @@ static int flac_output_open(const char * + + ctx->state.s_flac = FLAC__seekable_stream_encoder_init(ctx->encoder.flac.s_stream); + if (ctx->state.s_flac != FLAC__SEEKABLE_STREAM_ENCODER_OK) { ++#else ++ ++ ctx->state.s_flac = FLAC__stream_encoder_init_stream(ctx->encoder.flac.s_stream, flac_seekable_stream_encoder_write_callback, NULL, NULL, flac_seekable_stream_encoder_metadata_callback, ctx); ++ if (ctx->state.s_flac != FLAC__STREAM_ENCODER_OK) { ++#endif + ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot create FLAC state (%s)", ++#ifdef LEGACY_FLAC + FLAC__SeekableStreamEncoderStateString[ctx->state.s_flac]); ++#else ++ FLAC__StreamEncoderStateString[ctx->state.s_flac]); ++#endif + flac_session_close(); + return -1; + } +@@ -525,16 +599,22 @@ static int flac_output_open(const char * + FLAC__stream_encoder_set_max_residual_partition_order(ctx->encoder.flac.stream, flac_options.max_residual_partition_order); + + FLAC__stream_encoder_set_blocksize(ctx->encoder.flac.stream, flac_options.blocksize); ++#ifdef LEGACY_FLAC + FLAC__stream_encoder_set_client_data(ctx->encoder.flac.stream, ctx); ++#endif + + if (0 < num_metadata) + FLAC__stream_encoder_set_metadata(ctx->encoder.flac.stream, metadata, num_metadata); + ++#ifdef LEGACY_FLAC + /* set callback */ + FLAC__stream_encoder_set_metadata_callback(ctx->encoder.flac.stream, flac_stream_encoder_metadata_callback); + FLAC__stream_encoder_set_write_callback(ctx->encoder.flac.stream, flac_stream_encoder_write_callback); + + ctx->state.flac = FLAC__stream_encoder_init(ctx->encoder.flac.stream); ++#else ++ ctx->state.flac = FLAC__stream_encoder_init_stream(ctx->encoder.flac.stream, flac_stream_encoder_write_callback, NULL, NULL, flac_stream_encoder_metadata_callback, ctx); ++#endif + if (ctx->state.flac != FLAC__STREAM_ENCODER_OK) { + ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot create FLAC state (%s)", + FLAC__StreamEncoderStateString[ctx->state.flac]); +@@ -676,7 +756,11 @@ static void flac_stream_encoder_metadata + { + } + static FLAC__StreamEncoderWriteStatus ++#ifdef LEGACY_FLAC + flac_seekable_stream_encoder_write_callback(const FLAC__SeekableStreamEncoder *encoder, ++#else ++flac_seekable_stream_encoder_write_callback(const FLAC__StreamEncoder *encoder, ++#endif + const FLAC__byte buffer[], + unsigned bytes, unsigned samples, + unsigned current_frame, void *client_data) +@@ -690,7 +774,11 @@ flac_seekable_stream_encoder_write_callb + else + return FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR; + } ++#ifdef LEGACY_FLAC + static void flac_seekable_stream_encoder_metadata_callback(const FLAC__SeekableStreamEncoder *encoder, ++#else ++static void flac_seekable_stream_encoder_metadata_callback(const FLAC__StreamEncoder *encoder, ++#endif + const FLAC__StreamMetadata *metadata, + void *client_data) + { +@@ -747,22 +835,38 @@ static int output_data(char *buf, int32 + else + #endif /* AU_OGGFLAC */ + if (flac_options.seekable) { ++#ifdef LEGACY_FLAC + ctx->state.s_flac = FLAC__seekable_stream_encoder_get_state(ctx->encoder.flac.s_stream); ++#else ++ ctx->state.s_flac = FLAC__stream_encoder_get_state(ctx->encoder.flac.s_stream); ++#endif + if (ctx->state.s_flac != FLAC__STREAM_ENCODER_OK) { + if (ctx->state.s_flac == FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR | + FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA) { + ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "FLAC stream verify error (%s)", ++#ifdef LEGACY_FLAC + FLAC__SeekableStreamDecoderStateString[FLAC__seekable_stream_encoder_get_verify_decoder_state(ctx->encoder.flac.s_stream)]); ++#else ++ FLAC__StreamDecoderStateString[FLAC__stream_encoder_get_verify_decoder_state(ctx->encoder.flac.s_stream)]); ++#endif + } + else { + ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot encode FLAC stream (%s)", ++#ifdef LEGACY_FLAC + FLAC__SeekableStreamEncoderStateString[ctx->state.s_flac]); ++#else ++ FLAC__StreamEncoderStateString[ctx->state.s_flac]); ++#endif + } + flac_session_close(); + return -1; + } + ++#ifdef LEGACY_FLAC + if (!FLAC__seekable_stream_encoder_process_interleaved(ctx->encoder.flac.s_stream, oggbuf, ++#else ++ if (!FLAC__stream_encoder_process_interleaved(ctx->encoder.flac.s_stream, oggbuf, ++#endif + nbytes / nch / 2 )) { + ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot encode FLAC stream"); + flac_session_close(); +@@ -823,9 +927,17 @@ static void close_output(void) + else + #endif /* AU_OGGFLAC */ + if (flac_options.seekable) { ++#ifdef LEGACY_FLAC + if ((ctx->state.s_flac = FLAC__seekable_stream_encoder_get_state(ctx->encoder.flac.s_stream)) != FLAC__SEEKABLE_STREAM_ENCODER_OK) { ++#else ++ if ((ctx->state.s_flac = FLAC__stream_encoder_get_state(ctx->encoder.flac.s_stream)) != FLAC__STREAM_ENCODER_OK) { ++#endif + ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "FLAC stream encoder is invalid (%s)", ++#ifdef LEGACY_FLAC + FLAC__SeekableStreamEncoderStateString[ctx->state.s_flac]); ++#else ++ FLAC__StreamEncoderStateString[ctx->state.s_flac]); ++#endif + /* fall through */ + } + } diff --git a/media-sound/timidity++/timidity++-2.13.2-r4.ebuild b/media-sound/timidity++/timidity++-2.13.2-r4.ebuild new file mode 100644 index 000000000000..6cf580251a49 --- /dev/null +++ b/media-sound/timidity++/timidity++-2.13.2-r4.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-sound/timidity++/timidity++-2.13.2-r4.ebuild,v 1.1 2007/03/25 21:47:48 aballier Exp $ + +inherit eutils + +MY_PV=${PV/_/-} +MY_P=TiMidity++-${MY_PV} +S=${WORKDIR}/${MY_P} + +DESCRIPTION="A handy MIDI to WAV converter with OSS and ALSA output support" +HOMEPAGE="http://timidity.sourceforge.net/" +SRC_URI="mirror://sourceforge/timidity/${MY_P}.tar.bz2 mirror://gentoo/${P}-exiterror.patch" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="oss nas esd motif X gtk gtk vorbis tk slang alsa arts jack portaudio emacs ao speex flac ncurses" + +DEPEND="ncurses? ( >=sys-libs/ncurses-5.0 ) + gtk? ( >=x11-libs/gtk+-2.0 ) + tk? ( >=dev-lang/tk-8.1 ) + motif? ( virtual/motif ) + esd? ( >=media-sound/esound-0.2.22 ) + nas? ( >=media-libs/nas-1.4 ) + alsa? ( media-libs/alsa-lib ) + slang? ( =sys-libs/slang-1.4* ) + arts? ( kde-base/arts ) + jack? ( media-sound/jack-audio-connection-kit ) + portaudio? ( media-libs/portaudio ) + vorbis? ( >=media-libs/libvorbis-1.0_beta4 ) + flac? ( >=media-libs/flac-1.1.2 ) + speex? ( >=media-libs/speex-1.1.5 ) + ao? ( >=media-libs/libao-0.8.5 )" + +RDEPEND="${RDEPEND} + app-admin/eselect-timidity + emacs? ( virtual/emacs )" + +PDEPEND="|| ( media-sound/timidity-eawpatches media-sound/timidity-shompatches media-sound/timidity-freepats )" + +pkg_setup() { + if use alsa && ! built_with_use --missing true media-libs/alsa-lib midi; then + eerror "" + eerror "To be able to build TiMidity++ with ALSA support you need" + eerror "to have built media-libs/alsa-lib with midi USE flag." + die "Missing midi USE flag on media-libs/alsa-lib" + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${DISTDIR}/${P}-exiterror.patch" + epatch "${FILESDIR}/${P}-gtk26.patch" + epatch "${FILESDIR}/${P}-gcc4.patch" + epatch "${FILESDIR}/${P}-flac.patch" + epatch "${FILESDIR}/${P}-flac113.patch" + + # fix header location of speex + sed -i -e "s:#include <speex:#include <speex/speex:g" configure* timidity/speex_a.c +} + +src_compile() { + local myconf + local audios + + use flac && audios="${audios},flac" + use speex && audios="${audios},speex" + use vorbis && audios="${audios},vorbis" + + use oss && audios="${audios},oss" + use esd && audios="${audios},esd" + use arts && audios="${audios},arts" + use jack && audios="${audios},jack" + use portaudio && use !ppc && audios="${audios},portaudio" + use ao && audios="${audios},ao" + + if use nas; then + audios="${audios},nas" + myconf="${myconf} --with-nas-library=/usr/$(get_libdir)/libaudio.so --with-x" + use X || ewarn "Basic X11 support will be enabled because required by nas." + fi + + if use alsa; then + audios="${audios},alsa" + myconf="${myconf} --with-default-output=alsa --enable-alsaseq" + fi + + # We disable motif by default and then only enable it if it's requested. + if use motif; then + myconf="${myconf} --enable-motif --with-x" + use X || ewarn "Basic X11 support will be enabled because required by motif." + fi + + econf \ + --localstatedir=/var/state/timidity++ \ + --with-elf \ + --enable-audio=${audios} \ + --enable-server \ + --enable-network \ + --enable-dynamic \ + --enable-vt100 \ + --enable-spline=cubic \ + $(use_enable emacs) \ + $(use_enable slang) \ + $(use_enable ncurses) \ + $(use_with X x) \ + $(use_enable X spectrogram) \ + $(use_enable X wrd) \ + $(use_enable X xskin) \ + $(use_enable X xaw) \ + $(use_enable gtk) \ + $(use_enable tk tcltk) \ + --disable-motif \ + ${myconf} || die + + emake || die +} + +src_install() { + make DESTDIR="${D}" install || die + + dodoc AUTHORS ChangeLog* + dodoc NEWS README* "${FILESDIR}/timidity.cfg" + + # these are only for the ALSA sequencer mode + if use alsa; then + newconfd "${FILESDIR}/conf.d.timidity" timidity + newinitd "${FILESDIR}/init.d.timidity" timidity + fi + + insinto /etc + newins "${FILESDIR}/timidity.cfg-r1" timidity.cfg + + dodir /usr/share/timidity + dosym /etc/timidity.cfg /usr/share/timidity/timidity.cfg + + if use emacs ; then + dosed 's:/usr/local/bin/timidity:/usr/bin/timidity:g' /usr/share/emacs/site-lisp/timidity.el + else + rm "${D}/timidity.el" + fi +} + +pkg_postinst() { + elog "A timidity config file has been installed in /etc/timidity.cfg." + elog "Do not edit this file as it will interfere with the eselect timidity tool." + elog "The tool 'eselect timidity' can be used to switch between installed patchsets." + + if use alsa; then + elog "An init script for the alsa timidity sequencer has been installed." + elog "If you wish to use the timidity virtual sequencer, edit /etc/conf.d/timidity" + elog "and run 'rc-update add timidity <runlevel> && /etc/init.d/timidity start'" + fi + + if use sparc; then + ewarn "sparc support is experimental. oss, alsa, esd, and portaudio do not work." + ewarn "-Ow (save to wave file) does..." + fi +} |