+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
AUX conf.d.timidity 912 RMD160 ba936b4f721ed4d3dac2912659b13b125b09833a SHA1 4636543aa1c2c90afb4ee02e8f11067bda2bd271 SHA256 df5cec5d1335b9bdaf87c358b6d69f4f9300454c16aceaaccb212c98fb08f5a3
MD5 dbfc5d45b6177ffaf7dd74d4971a520a files/conf.d.timidity 912
RMD160 ba936b4f721ed4d3dac2912659b13b125b09833a files/conf.d.timidity 912
MD5 fbb9c52d90ff967d8b4ac08643ef7b1c files/timidity++-2.13.2-flac.patch 735
RMD160 65abbbc330b0ae486af3686cea8329a4f9a1b75c files/timidity++-2.13.2-flac.patch 735
SHA256 5ae270f3bc0b74def45dde4b85d178c8ebfbef01752ef6b4ec2588ffda48bbca files/timidity++-2.13.2-flac.patch 735
+AUX timidity++-2.13.2-flac113.patch 11509 RMD160 709a31cc664a9686f1ac22974459e0c932511418 SHA1 173cc8f2ec5ecfc834d5a0027aa3cdecd3f9f14d SHA256 2ed4abfb75d225f6bd295ba4ffbc63f47c6caab57cb09e670df508c5d7447424
+MD5 ff74914a618a874e104729609cba4a63 files/timidity++-2.13.2-flac113.patch 11509
+RMD160 709a31cc664a9686f1ac22974459e0c932511418 files/timidity++-2.13.2-flac113.patch 11509
+SHA256 2ed4abfb75d225f6bd295ba4ffbc63f47c6caab57cb09e670df508c5d7447424 files/timidity++-2.13.2-flac113.patch 11509
AUX timidity++-2.13.2-gcc4.patch 1325 RMD160 31383eb4a1d0a839d60af8d635aeba02febc9bb5 SHA1 8d50618a2379c078b07e8d0fc59457855c16106c SHA256 20ca5deb95ccbb527c0212f4ad002a5a8df1a9c005e210494abe7bc240cef3ee
MD5 0868926c5290817cacb9a1849bc043c2 files/timidity++-2.13.2-gcc4.patch 1325
RMD160 31383eb4a1d0a839d60af8d635aeba02febc9bb5 files/timidity++-2.13.2-gcc4.patch 1325
MD5 9e274f094fc4e229c0a0afe5be7c3492 timidity++-2.13.2-r3.ebuild 4772
RMD160 b67b71198bddf632f202a445691a638653397966 timidity++-2.13.2-r3.ebuild 4772
SHA256 d28b6f84721ad3297e9f15d7ea04e139451cf587641c42aa798e421518a37335 timidity++-2.13.2-r3.ebuild 4772
+EBUILD timidity++-2.13.2-r4.ebuild 4824 RMD160 6db07aa11bf8cdf93960aca52a88ec0cc7397ed6 SHA1 271d4ee08b9d926e34a39b14b76be63e9f19ffd9 SHA256 f9a34543d70fd7f0c5794fbf53c7ee16e0e798ea96e31a4195cd788556ff9dff
+MD5 becd051cafe3174c613b3f25f89efb96 timidity++-2.13.2-r4.ebuild 4824
+RMD160 6db07aa11bf8cdf93960aca52a88ec0cc7397ed6 timidity++-2.13.2-r4.ebuild 4824
+SHA256 f9a34543d70fd7f0c5794fbf53c7ee16e0e798ea96e31a4195cd788556ff9dff timidity++-2.13.2-r4.ebuild 4824
EBUILD timidity++-2.13.2.ebuild 3784 RMD160 ff9de8215e85a51aefb8bc8e3f47f4ac4b6f3dfb SHA1 57d572f8027a67b07ff9714dd67bdf311ec6d1ba SHA256 77943ab78073f61e0d638025c3c7f6d81fb5df598972394880a52c7e961aed76
MD5 a187b929f58ed93b04d0deecbcce6782 timidity++-2.13.2.ebuild 3784
RMD160 ff9de8215e85a51aefb8bc8e3f47f4ac4b6f3dfb timidity++-2.13.2.ebuild 3784
SHA256 77943ab78073f61e0d638025c3c7f6d81fb5df598972394880a52c7e961aed76 timidity++-2.13.2.ebuild 3784
-MISC ChangeLog 13265 RMD160 530695cfb0a2a84b250043178bfbed30580b87cc SHA1 0cac517bcf1f3ae349042acb42d3011fe9e684ff SHA256 29a894b214e2fe053019b13a8f68b101cee6dec5585b4634a4deb4ee376253df
-MD5 0986f7da96d7d2c78093991bcde8e8d1 ChangeLog 13265
-RMD160 530695cfb0a2a84b250043178bfbed30580b87cc ChangeLog 13265
-SHA256 29a894b214e2fe053019b13a8f68b101cee6dec5585b4634a4deb4ee376253df ChangeLog 13265
+MISC ChangeLog 13480 RMD160 dd405fcb77f65739961acdd6165f5570f9ae77b2 SHA1 cbc866bb3ca271050967ecdd4342ab0451580a8e SHA256 c5b2d66dd423b45eb47410534dcd1b5f0351bef87f3ad7b754d2f52581c5fc9e
+MD5 2f26263ebb26a2f3077a61c9d4ec5813 ChangeLog 13480
+RMD160 dd405fcb77f65739961acdd6165f5570f9ae77b2 ChangeLog 13480
+SHA256 c5b2d66dd423b45eb47410534dcd1b5f0351bef87f3ad7b754d2f52581c5fc9e ChangeLog 13480
MISC metadata.xml 158 RMD160 6842e2189a50bd8a98e84802c38180ac1421c00e SHA1 703cea5a2109d41f7c87993c1f01d418a4c85174 SHA256 dfb5b47e6836db39fb187301dfcff1c2605e91d13d21db160806a563d8c75f9b
MD5 a1eaeb2ae801daeb712c90c060e922dc metadata.xml 158
RMD160 6842e2189a50bd8a98e84802c38180ac1421c00e metadata.xml 158
MD5 f9f8b7aa60633b1d571491781e2c2f1d files/digest-timidity++-2.13.2-r3 536
RMD160 c335b2484ab9ba2e1c2cff0a5bc14325614c31ad files/digest-timidity++-2.13.2-r3 536
SHA256 98bad02a8730d1cd370c7b6f53cecc9bf9ddaa29625e93f228b7feefed147f82 files/digest-timidity++-2.13.2-r3 536
+MD5 f9f8b7aa60633b1d571491781e2c2f1d files/digest-timidity++-2.13.2-r4 536
+RMD160 c335b2484ab9ba2e1c2cff0a5bc14325614c31ad files/digest-timidity++-2.13.2-r4 536
+SHA256 98bad02a8730d1cd370c7b6f53cecc9bf9ddaa29625e93f228b7feefed147f82 files/digest-timidity++-2.13.2-r4 536
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.3 (GNU/Linux)
+
+iD8DBQFGBu4GvFcC4BYPU0oRAnXBAJkB3Oqhx+2bvCM8x0l60vV7sW9j3wCeK6WJ
+rpOkCJ23sxm2jt+rKeFJxJU=
+=jMsN
+-----END PGP SIGNATURE-----
--- /dev/null
+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 */
+ }
+ }
--- /dev/null
+# 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
+}