From ca9627e70852f6b2e835660df870fe3ab405882d Mon Sep 17 00:00:00 2001
From: "Suren A. Chilingaryan" <csa@suren.me>
Date: Sun, 1 Sep 2019 00:00:32 +0200
Subject: Initial import

---
 media-sound/grip/Manifest                          |   3 +
 media-sound/grip/files/grip-ds-editnext.patch      |  12 +
 media-sound/grip/grip-3.3.1-r1.ebuild              |  55 +++
 media-sound/lossless2lossy/Manifest                |   2 +
 .../lossless2lossy/lossless2lossy-1.21.ebuild      |  31 ++
 media-sound/mpg123/Manifest                        |  14 +
 media-sound/mpg123/files/mpg123-ds-rcc.patch       | 150 ++++++++
 media-sound/mpg123/files/mpg123-ds-rcc1121.patch   | 247 +++++++++++++
 media-sound/mpg123/files/mpg123-ds-rcc173.patch    | 271 ++++++++++++++
 media-sound/mpg123/files/mpg123-ds-rcc65.patch     | 240 +++++++++++++
 media-sound/mpg123/files/mpg123-osx.diff           | 394 +++++++++++++++++++++
 media-sound/mpg123/mpg123-0.59s-r11.ebuild         | 143 ++++++++
 media-sound/mpg123/mpg123-0.65-r1.ebuild           |  89 +++++
 media-sound/mpg123/mpg123-1.12.2-r2.ebuild         |  85 +++++
 media-sound/mpg123/mpg123-1.7.3-r1.ebuild          |  87 +++++
 media-sound/xmms/Manifest                          |  18 +
 media-sound/xmms/files/xmms-1.2.10-gcc41.patch     |  10 +
 .../xmms/files/xmms-1.2.10-locale_fix.patch        |  11 +
 media-sound/xmms/files/xmms-ds-gentoofix.patch     |  36 ++
 media-sound/xmms/xmms-1.2.10-r24.ebuild            | 183 ++++++++++
 media-sound/xmms/xmms-1.2.11-r2.ebuild             | 176 +++++++++
 media-sound/xmms/xmms-1.2.11-r3.ebuild             | 175 +++++++++
 media-sound/xmms/xmms-1.2.11.ebuild                | 176 +++++++++
 media-sound/xmmsctrl/Manifest                      |   4 +
 media-sound/xmmsctrl/files/xmmsctrl-1.8-jump.patch |  15 +
 .../xmmsctrl/files/xmmsctrl.bash-completion        |  38 ++
 media-sound/xmmsctrl/xmmsctrl-1.9.ebuild           |  37 ++
 27 files changed, 2702 insertions(+)
 create mode 100644 media-sound/grip/Manifest
 create mode 100644 media-sound/grip/files/grip-ds-editnext.patch
 create mode 100644 media-sound/grip/grip-3.3.1-r1.ebuild
 create mode 100644 media-sound/lossless2lossy/Manifest
 create mode 100644 media-sound/lossless2lossy/lossless2lossy-1.21.ebuild
 create mode 100644 media-sound/mpg123/Manifest
 create mode 100644 media-sound/mpg123/files/mpg123-ds-rcc.patch
 create mode 100644 media-sound/mpg123/files/mpg123-ds-rcc1121.patch
 create mode 100644 media-sound/mpg123/files/mpg123-ds-rcc173.patch
 create mode 100644 media-sound/mpg123/files/mpg123-ds-rcc65.patch
 create mode 100644 media-sound/mpg123/files/mpg123-osx.diff
 create mode 100644 media-sound/mpg123/mpg123-0.59s-r11.ebuild
 create mode 100644 media-sound/mpg123/mpg123-0.65-r1.ebuild
 create mode 100644 media-sound/mpg123/mpg123-1.12.2-r2.ebuild
 create mode 100644 media-sound/mpg123/mpg123-1.7.3-r1.ebuild
 create mode 100644 media-sound/xmms/Manifest
 create mode 100644 media-sound/xmms/files/xmms-1.2.10-gcc41.patch
 create mode 100644 media-sound/xmms/files/xmms-1.2.10-locale_fix.patch
 create mode 100644 media-sound/xmms/files/xmms-ds-gentoofix.patch
 create mode 100644 media-sound/xmms/xmms-1.2.10-r24.ebuild
 create mode 100644 media-sound/xmms/xmms-1.2.11-r2.ebuild
 create mode 100644 media-sound/xmms/xmms-1.2.11-r3.ebuild
 create mode 100644 media-sound/xmms/xmms-1.2.11.ebuild
 create mode 100644 media-sound/xmmsctrl/Manifest
 create mode 100644 media-sound/xmmsctrl/files/xmmsctrl-1.8-jump.patch
 create mode 100644 media-sound/xmmsctrl/files/xmmsctrl.bash-completion
 create mode 100644 media-sound/xmmsctrl/xmmsctrl-1.9.ebuild

(limited to 'media-sound')

diff --git a/media-sound/grip/Manifest b/media-sound/grip/Manifest
new file mode 100644
index 0000000..bc31edc
--- /dev/null
+++ b/media-sound/grip/Manifest
@@ -0,0 +1,3 @@
+AUX grip-ds-editnext.patch 706 RMD160 5c6d83fa4146de3d7ba8b302a5bb9a2b59a4c8c0 SHA1 5a3f29dbc0cd0780e22c9d3fd58a6aa22403e125 SHA256 9f1a77b36eb7528e8b3cb5a7bb67df4654528e3b868a2e383179da85a28f8478
+DIST grip-3.3.1.tar.gz 812562 RMD160 ec523457b06505e6ec98605badcacd5085599676 SHA1 58ef51fbddf981a189f8b5b39774e3bd6862127d SHA256 d46394a1062ed066f9c633b010fd1059e63d9ed791bbb7a85bc6567cf0fd66fd
+EBUILD grip-3.3.1-r1.ebuild 1247 RMD160 956328b62e21b58fd5218b55096a2f939b61685e SHA1 a566d1f75d6678ede2a20f68c0eb978a4aa6f176 SHA256 864e869c68ae280d94367ad0009d1b769bccbd4f462c8e92a32bb31a2b5c4c30
diff --git a/media-sound/grip/files/grip-ds-editnext.patch b/media-sound/grip/files/grip-ds-editnext.patch
new file mode 100644
index 0000000..b14ea15
--- /dev/null
+++ b/media-sound/grip/files/grip-ds-editnext.patch
@@ -0,0 +1,12 @@
+diff -dPNur grip-3.3.0/src/discedit.c grip-3.3.0-new/src/discedit.c
+--- grip-3.3.0/src/discedit.c	2005-01-29 19:27:43.000000000 +0000
++++ grip-3.3.0-new/src/discedit.c	2005-11-05 10:51:06.000000000 +0000
+@@ -201,6 +201,8 @@
+   uinfo->track_artist_edit_entry=gtk_entry_new_with_max_length(256);
+   gtk_signal_connect(GTK_OBJECT(uinfo->track_artist_edit_entry),"changed",
+ 		     GTK_SIGNAL_FUNC(TrackEditChanged),(gpointer)ginfo);
++  gtk_signal_connect(GTK_OBJECT(uinfo->track_artist_edit_entry),"activate",
++		     GTK_SIGNAL_FUNC(EditNextTrack),(gpointer)ginfo);
+   gtk_box_pack_start(GTK_BOX(hbox),uinfo->track_artist_edit_entry,
+ 		     TRUE,TRUE,0);
+   gtk_widget_show(uinfo->track_artist_edit_entry);
diff --git a/media-sound/grip/grip-3.3.1-r1.ebuild b/media-sound/grip/grip-3.3.1-r1.ebuild
new file mode 100644
index 0000000..8ae7b40
--- /dev/null
+++ b/media-sound/grip/grip-3.3.1-r1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/grip/grip-3.3.1.ebuild,v 1.1 2005/10/09 22:18:25 chainsaw Exp $
+
+inherit gnuconfig flag-o-matic eutils
+
+IUSE="nls oggvorbis"
+
+DESCRIPTION="GTK+ based Audio CD Player/Ripper."
+HOMEPAGE="http://www.nostatic.org/grip"
+SRC_URI="mirror://sourceforge/grip/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86"
+
+RDEPEND=">=x11-libs/gtk+-2.2
+	x11-libs/vte
+	=sys-libs/db-1*
+	media-sound/lame
+	media-sound/cdparanoia
+	>=media-libs/id3lib-3.8.3
+	>=gnome-base/libgnomeui-2.2.0
+	>=gnome-base/orbit-2
+	gnome-base/libghttp
+	net-misc/curl
+	oggvorbis? ( media-sound/vorbis-tools )"
+
+DEPEND="${RDEPEND}
+	nls? ( sys-devel/gettext )"
+
+src_unpack() {
+	unpack ${A}
+
+	cd ${S}
+
+	EPATCH_OPTS="-p1" epatch ${FILESDIR}/grip-ds-editnext.patch
+
+	gnuconfig_update
+}
+
+src_compile() {
+	# Bug #69536
+	use x86 && append-flags "-mno-sse"
+
+	econf \
+		--disable-dependency-tracking \
+		$(use_enable nls) || die "./configure failed"
+	emake || die "emake failed"
+}
+
+src_install () {
+	make DESTDIR="${D}" install || die "make install failed"
+	dodoc AUTHORS CREDITS ChangeLog README TODO
+}
diff --git a/media-sound/lossless2lossy/Manifest b/media-sound/lossless2lossy/Manifest
new file mode 100644
index 0000000..151194f
--- /dev/null
+++ b/media-sound/lossless2lossy/Manifest
@@ -0,0 +1,2 @@
+DIST lossless2lossy-v1.21.gz 5182 RMD160 9ca38517752a4ee0ca8146101d879fa71fe1e7a1 SHA1 1b482686f91649b50a54e105c82aec6f654e6195 SHA256 be15276db2087702dcc5875955f350f81301e89f540d01a95850dc1cd38ced10
+EBUILD lossless2lossy-1.21.ebuild 759 RMD160 8139bf9d4e6d6a12ded7e02e83ac3f284243f12a SHA1 523ed2bf2874330a9d646204b7ffb0342e85b289 SHA256 59cc936666810593378f400f4e87b55255f88380a0d639e9f84a00f67ff858fb
diff --git a/media-sound/lossless2lossy/lossless2lossy-1.21.ebuild b/media-sound/lossless2lossy/lossless2lossy-1.21.ebuild
new file mode 100644
index 0000000..1eea710
--- /dev/null
+++ b/media-sound/lossless2lossy/lossless2lossy-1.21.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+DESCRIPTION="A conversion script for mass converting your music collection from one format to another"
+HOMEPAGE="http://lossless2lossy.sourceforge.net/"
+SRC_URI="http://downloads.sourceforge.net/${PN}/${PN}-v${PV}.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~sparc"
+IUSE="ape flac mp3 vorbis wavpack"
+
+RDEPEND="ape? ( media-libs/mac )
+	flac? ( media-libs/flac )
+	mp3? ( media-sound/lame )
+	vorbis?  ( media-libs/libvorbis )
+	wavpack? ( media-sound/wavpack )
+	media-sound/id3v2"
+
+S="${WORKDIR}"
+
+src_unpack() {
+	unpack ${A}
+	cd ${S} || die
+	mv lossless2lossy-v${PV} lossless2lossy
+}
+
+src_install() {
+	dobin lossless2lossy || die
+}
diff --git a/media-sound/mpg123/Manifest b/media-sound/mpg123/Manifest
new file mode 100644
index 0000000..396cf95
--- /dev/null
+++ b/media-sound/mpg123/Manifest
@@ -0,0 +1,14 @@
+AUX mpg123-ds-rcc.patch 4428 RMD160 ca864c06b5c154899a315f3425e00622af530113 SHA1 564ab8a296024c022eeaf8fd65d74124d2bc16aa SHA256 0eadb0941c3476a105df3a96bbfd772e3519e5036f5d52dc643f1b60cf225fc7
+AUX mpg123-ds-rcc1121.patch 7769 RMD160 60bbc6022aed1ba4f323b4c4e8eb4af0f78d2e12 SHA1 9cb83f78c78575edce5ccf4ac711cb6ccea7b98a SHA256 fe815c3943788d86c846e308bd774cbddba9ad87b2b8553d98a1572627027405
+AUX mpg123-ds-rcc173.patch 8774 RMD160 624a8f5affec6f2cdc2c64a60a4d881f92af4913 SHA1 37fc97eacfcfdba235b0515ef78d3b85f6dd4ec3 SHA256 61b9067ae997a7b165a102022d4e21c18f1b71b3ab8a8e257190fbcefe7d1632
+AUX mpg123-ds-rcc65.patch 7283 RMD160 bcaf3129939c5220a2cafcff1ad2fe6eb4ff44f5 SHA1 c0385e96d8d28546e16adef89c367e05db3c60b8 SHA256 c6b9dc95fba1edb33a9a772814877222da9587af8366f65312f6e7835152f5ed
+AUX mpg123-osx.diff 11227 RMD160 572614f922a288d68f56b66a20d3a9264c92c895 SHA1 11d7c7df1624f35bb17a7d044c21f4924eb316e7 SHA256 2941998aeb4c77d9c7633c6fcf01d37cb1b019f1b3d4dabadfceb152f97d11b8
+DIST mpg123-0.59s-gentoo-1.5.tar.bz2 7207 RMD160 75bc91d354e665c424afa1a3beab202f7a60441c SHA1 9631911b2a8c6331e494a1e26d03516b19634c62 SHA256 2c2495ce9bd029b01d94c4c4ca930653d174d4a3e6d11488e2e669692835b116
+DIST mpg123-0.65.tar.bz2 529154 RMD160 f28f79425a41cd71d9cca7e817fd3c010f71ab30 SHA1 984a1ce7f0705a15ce3afb9538615cc82cd1ea7c SHA256 091f0b29e630530b42c4a06671d14a7a9acc0b0cadad90edcf1983e798691e0b
+DIST mpg123-1.12.2.tar.bz2 809645 RMD160 cae7d4fe52026f671f402a46d7b8d778c78b6ac7 SHA1 7cb9bcb51366ea6f4b11d0e160c2d42a2c153212 SHA256 e05f1027ffa7879493c0959a1ad5936d31b06461c2f8ebed729f6aea5ed71ef7
+DIST mpg123-1.7.3.tar.bz2 1152707 RMD160 5ae91f57aa666336ed1b2c23d3b769e027a8e917 SHA1 9f0d288783da5539e67ca91ac12097ef088d5af3 SHA256 b8935a8f481d49b07d39fe0d3aa2eecbf7f631002b64d29e099de1b5be86e9da
+DIST mpg123-pre0.59s.tar.gz 244899 RMD160 fdc6ba57c67dc890ef5d2f3a05ff9c520ccf407f SHA1 7e521785dc3a9015f4228f0a118bf36856884b67 SHA256 ba0c1db18ffc7ed2250d6718a23a62e0e98d77bbeedb83ca3993f6421b31256a
+EBUILD mpg123-0.59s-r11.ebuild 3288 RMD160 a97e59422df5e42582a5eaa4e7f6910334104669 SHA1 585db0ec7d4492897ca470e4a9323482d5106ed7 SHA256 816ae3c155fc82cb1f24186f6358951abc50764e945badabe60b1ed5bb149daf
+EBUILD mpg123-0.65-r1.ebuild 2089 RMD160 742b952cb0ce59f00d86001f52611a77711ab65c SHA1 3b46c96c94dd379fd07a07153af539e3c5ff23b0 SHA256 bb7e656469f61bb0ad7335be0a0cc70d392f02023622549b5b7580304f4761dc
+EBUILD mpg123-1.12.2-r2.ebuild 1960 RMD160 c28c7209483567a5d6aa59f0668e03f80a5e4afb SHA1 53d04f5f9b1911bb5a60b34f4521622407147643 SHA256 da5e6f475a3b155678b7d710902dec64ee8ddee745c4ea07e4fcbfc9c02c9eb9
+EBUILD mpg123-1.7.3-r1.ebuild 2003 RMD160 ded77977950978acc6e4a5f9bda9c5444b9d02e6 SHA1 3640eaa98c7f04aeff43deefe2ac84a931f85c03 SHA256 b3166158eb9a1bd54619ac88399d434bce97efa5599981a2e02641e9d7416b61
diff --git a/media-sound/mpg123/files/mpg123-ds-rcc.patch b/media-sound/mpg123/files/mpg123-ds-rcc.patch
new file mode 100644
index 0000000..620457b
--- /dev/null
+++ b/media-sound/mpg123/files/mpg123-ds-rcc.patch
@@ -0,0 +1,150 @@
+diff -dPNur mpg123/Makefile mpg123-new/Makefile
+--- mpg123/Makefile	2005-07-26 05:50:35.000000000 +0000
++++ mpg123-new/Makefile	2005-07-26 05:52:38.000000000 +0000
+@@ -789,12 +789,12 @@
+ mpg123-make:
+ 	@ $(MAKE) CFLAGS='$(CFLAGS)' BINNAME=mpg123 mpg123
+ 
+-mpg123: mpg123.o common.o $(OBJECTS) decode_2to1.o decode_4to1.o \
++mpg123: mpg123.o common.o rccpatch.o $(OBJECTS) decode_2to1.o decode_4to1.o \
+ 		tabinit.o audio.o layer1.o layer2.o layer3.o buffer.o \
+ 		getlopt.o httpget.o xfermem.o equalizer.o \
+ 		decode_ntom.o Makefile wav.o readers.o \
+ 		control_generic.o vbrhead.o playlist.o getbits.o
+-	$(CC) $(CFLAGS) $(LDFLAGS)  mpg123.o tabinit.o common.o layer1.o \
++	$(CC) $(CFLAGS) $(LDFLAGS) -lrcc rccpatch.o mpg123.o tabinit.o common.o layer1.o \
+ 		layer2.o layer3.o audio.o buffer.o decode_2to1.o equalizer.o \
+ 		decode_4to1.o getlopt.o httpget.o xfermem.o decode_ntom.o \
+ 		wav.o readers.o control_generic.o vbrhead.o playlist.o getbits.o \
+diff -dPNur mpg123/common.c mpg123-new/common.c
+--- mpg123/common.c	2005-07-26 05:50:37.000000000 +0000
++++ mpg123-new/common.c	2005-07-26 05:54:32.000000000 +0000
+@@ -22,6 +22,7 @@
+ #endif
+ #endif
+ 
++#include "rccpatch.h"
+ #include "mpg123.h"
+ #include "genre.h"
+ #include "common.h"
+@@ -666,6 +667,8 @@
+     char comment[31]={0,};
+     char genre[31]={0,};
+ 
++    char *ctitle, *cartist, *calbum, *ccomment;
++
+     if(param.quiet)
+ 	return;
+ 
+@@ -675,15 +678,25 @@
+     strncpy(year,tag->year,4);
+     strncpy(comment,tag->comment,30);
+ 
++    ctitle = rccPatchRecode(title);
++    cartist = rccPatchRecode(artist);
++    calbum = rccPatchRecode(album);
++    ccomment = rccPatchRecode(comment);
++
+     if ( tag->genre < sizeof(genre_table)/sizeof(*genre_table) ) {
+ 	strncpy(genre, genre_table[tag->genre], 30);
+     } else {
+ 	strncpy(genre,"Unknown",30);
+     }
+-	
+-    fprintf(stderr,"Title  : %-30s  Artist: %s\n",title,artist);
+-    fprintf(stderr,"Album  : %-30s  Year  : %4s\n",album,year);
+-    fprintf(stderr,"Comment: %-30s  Genre : %s\n",comment,genre);
++
++    fprintf(stderr,"Title  : %-30s  Artist: %s\n",ctitle?ctitle:title,cartist?cartist:artist);
++    fprintf(stderr,"Album  : %-30s  Year  : %4s\n",calbum?calbum:album,year);
++    fprintf(stderr,"Comment: %-30s  Genre : %s\n",ccomment?ccomment:comment,genre);
++
++    if (ctitle) free(ctitle);
++    if (cartist) free(cartist);
++    if (calbum) free(calbum);
++    if (ccomment) free(ccomment);
+ }
+ 
+ #if 0
+diff -dPNur mpg123/mpg123.c mpg123-new/mpg123.c
+--- mpg123/mpg123.c	2001-01-18 14:00:35.000000000 +0000
++++ mpg123-new/mpg123.c	2005-07-26 05:51:08.000000000 +0000
+@@ -33,6 +33,8 @@
+ #include "term.h"
+ #include "playlist.h"
+ 
++#include "rccpatch.h"
++
+ #include "version.h"
+ 
+ static void usage(char *dummy);
+@@ -890,6 +892,8 @@
+ 	      term_init();
+             }
+ #endif
++	
++	rccPatchInit();
+ 
+ 	    leftFrames = numframes;
+ 	    for(frameNum=0;read_frame(rd,fr) && leftFrames && !intflag;frameNum++) {
+@@ -1006,6 +1010,8 @@
+ 	    }
+ 	}
+     }
++    rccPatchFree();
++
+ #ifndef NOXFERMEM
+     if (buffermem && param.usebuffer) {
+ 	buffer_end();
+diff -dPNur mpg123/rccpatch.c mpg123-new/rccpatch.c
+--- mpg123/rccpatch.c	1970-01-01 00:00:00.000000000 +0000
++++ mpg123-new/rccpatch.c	2005-07-26 05:51:08.000000000 +0000
+@@ -0,0 +1,40 @@
++#include <librcc.h>
++
++#define ID3_CLASS 0
++#define OUT_CLASS 1
++static rcc_class classes[] = {
++    { "id3", RCC_CLASS_STANDARD, NULL, NULL, "ID3 Encoding", 0 },
++    { "out", RCC_CLASS_STANDARD, NULL, NULL, "Output Encoding", 0 },
++    { NULL }
++};
++
++static int rcc_initialized = 0;
++
++void rccPatchFree() {
++    if (rcc_initialized) {
++       rccFree();
++       rcc_initialized = 0;
++    }
++}
++
++void rccPatchInit() {
++    if (rcc_initialized) return;
++    rccInit();
++    rccInitDefaultContext(NULL, 0, 0, classes, 0);
++    rccLoad(NULL, "xmms");
++    rccInitDb4(NULL, NULL, 0);
++    rcc_initialized = 1;
++}
++
++static void rccPatchTryInit() {
++    if (!rcc_initialized) {
++	rccPatchInit();
++	if (rcc_initialized) atexit(rccPatchFree);	
++    }
++}
++
++char *rccPatchRecode(const char *str) {
++    char *res;
++    rccPatchTryInit();
++    return rccRecode(NULL, ID3_CLASS, OUT_CLASS, str);
++}
+diff -dPNur mpg123/rccpatch.h mpg123-new/rccpatch.h
+--- mpg123/rccpatch.h	1970-01-01 00:00:00.000000000 +0000
++++ mpg123-new/rccpatch.h	2005-07-26 05:51:08.000000000 +0000
+@@ -0,0 +1,4 @@
++void rccPatchFree();
++void rccPatchInit();
++char *rccPatchRecode(const char *str);
++
diff --git a/media-sound/mpg123/files/mpg123-ds-rcc1121.patch b/media-sound/mpg123/files/mpg123-ds-rcc1121.patch
new file mode 100644
index 0000000..1335795
--- /dev/null
+++ b/media-sound/mpg123/files/mpg123-ds-rcc1121.patch
@@ -0,0 +1,247 @@
+diff -dPNur mpg123-1.12.1/configure.ac mpg123-1.12.1-new/configure.ac
+--- mpg123-1.12.1/configure.ac	2010-03-31 10:27:37.000000000 +0200
++++ mpg123-1.12.1-new/configure.ac	2010-07-07 23:44:57.000000000 +0200
+@@ -998,6 +998,21 @@
+ AC_CHECK_LIB([m], [sqrt])
+ AC_CHECK_LIB([mx], [powf])
+ 
++# LibRCC
++AC_CHECK_LIB(rcc, rccInit,[
++    AC_CHECK_HEADERS(librcc.h,[
++       LIBRCC_LIBS="-lrcc"
++       LIBRCC_INCLUDES="-DHAVE_LIBRCC"
++    ],[
++       LIBRCC_LIBS=""
++       LIBRCC_INCLUDES=""
++])],[
++    LIBRCC_LIBS=""
++    LIBRCC_INCLUDES=""
++])
++AC_SUBST(LIBRCC_LIBS)
++AC_SUBST(LIBRCC_INCLUDES)
++
+ # attempt to make the signal stuff work... also with GENERIC - later
+ #if test x"$ac_cv_header_sys_signal_h" = xyes; then
+ #	AC_CHECK_FUNCS( sigemptyset sigaddset sigprocmask sigaction )
+diff -dPNur mpg123-1.12.1/src/libmpg123/id3.c mpg123-1.12.1-new/src/libmpg123/id3.c
+--- mpg123-1.12.1/src/libmpg123/id3.c	2010-03-31 10:27:35.000000000 +0200
++++ mpg123-1.12.1-new/src/libmpg123/id3.c	2010-07-07 23:51:50.000000000 +0200
+@@ -9,6 +9,8 @@
+ #include "mpg123lib_intern.h"
+ #include "id3.h"
+ #include "debug.h"
++#include "rccpatch.h"
++
+ 
+ #ifndef NO_ID3V2 /* Only the main parsing routine will always be there. */
+ 
+@@ -829,6 +831,15 @@
+ 	size_t length = l;
+ 	size_t i;
+ 	unsigned char *p;
++	char *ctitle;
++
++	ctitle = mpg123_rcc_recode(s, l, &i);
++	if (ctitle) {
++	    convert_utf8(sb, ctitle, i, 0);
++	    free(ctitle);
++	    return;
++	}
++
+ 	/* determine real length, a latin1 character can at most take 2  in UTF8 */
+ 	for(i=0; i<l; ++i)
+ 	if(s[i] >= 0x80) ++length;
+diff -dPNur mpg123-1.12.1/src/libmpg123/Makefile.am mpg123-1.12.1-new/src/libmpg123/Makefile.am
+--- mpg123-1.12.1/src/libmpg123/Makefile.am	2010-03-31 10:27:35.000000000 +0200
++++ mpg123-1.12.1-new/src/libmpg123/Makefile.am	2010-07-07 23:44:57.000000000 +0200
+@@ -29,6 +29,8 @@
+ libmpg123_la_DEPENDENCIES = @DECODER_LOBJ@ @LFS_LOBJ@
+ 
+ libmpg123_la_SOURCES = \
++	rccpatch.c \
++	rccpatch.h \
+ 	compat.c \
+ 	compat.h \
+ 	parse.c \
+diff -dPNur mpg123-1.12.1/src/libmpg123/rccpatch.c mpg123-1.12.1-new/src/libmpg123/rccpatch.c
+--- mpg123-1.12.1/src/libmpg123/rccpatch.c	1970-01-01 01:00:00.000000000 +0100
++++ mpg123-1.12.1-new/src/libmpg123/rccpatch.c	2010-07-07 23:55:59.000000000 +0200
+@@ -0,0 +1,76 @@
++#include <string.h>
++#include <librcc.h>
++#include "mpg123.h"
++
++#define ID3_CLASS 0
++#define UTF_CLASS 1
++#define OUT_CLASS 2
++static rcc_class classes[] = {
++    { "id3", RCC_CLASS_STANDARD, NULL, NULL, "ID3 Encoding", 0 },
++    { "utf", RCC_CLASS_KNOWN, "UTF-8", NULL, "Unicode Encoding", 0 },
++    { "out", RCC_CLASS_STANDARD, NULL, NULL, "Output Encoding", 0 },
++    { NULL }
++};
++
++static int rcc_initialized = 0;
++
++void mpg123_rcc_free() {
++    if (rcc_initialized) {
++       rccFree();
++       rcc_initialized = 0;
++    }
++}
++
++void mpg123_rcc_init() {
++    if (rcc_initialized) return;
++    rccInit();
++    rccInitDefaultContext(NULL, 0, 0, classes, 0);
++    rccLoad(NULL, "xmms");
++    rccInitDb4(NULL, NULL, 0);
++    rcc_initialized = 1;
++}
++
++static void mpg123_rcc_try_init() {
++    if (!rcc_initialized) {
++	mpg123_rcc_init();
++	if (rcc_initialized) atexit(mpg123_rcc_free);	
++    }
++}
++
++
++char *mpg123_rcc_recode(const char *str, size_t len, size_t *rlen) {
++    char *res;
++    mpg123_rcc_try_init();
++    return rccSizedRecode(NULL, ID3_CLASS, UTF_CLASS, str, len, rlen);
++}
++
++static void mpg123_rcc_recode_string(mpg123_string *str, rcc_class_id from, rcc_class_id to) {
++    size_t size;
++    char *res;
++    
++    if ((!str)||(str->fill<2)) return;
++    
++    mpg123_rcc_try_init();
++
++    res = rccSizedRecode(NULL, from, to, str->p, str->fill - 1, &size);
++    if (res) {
++	if (size+1>str->size) {
++	    if (!mpg123_resize_string(str, size + 1)) {
++		    // allocation failed
++		free(res);
++		return;
++	    }
++	}
++	strncpy(str->p, res, size + 1);
++	str->fill = size + 1;
++	free(res);
++    }
++}
++
++void mpg123_rcc_recode_utf_string(mpg123_string *str) {
++    mpg123_rcc_recode_string(str, UTF_CLASS, OUT_CLASS);
++}
++
++void mpg123_rcc_recode_latin_string(mpg123_string *str) {
++    mpg123_rcc_recode_string(str, ID3_CLASS, OUT_CLASS);
++}
+diff -dPNur mpg123-1.12.1/src/libmpg123/rccpatch.h mpg123-1.12.1-new/src/libmpg123/rccpatch.h
+--- mpg123-1.12.1/src/libmpg123/rccpatch.h	1970-01-01 01:00:00.000000000 +0100
++++ mpg123-1.12.1-new/src/libmpg123/rccpatch.h	2010-07-07 23:44:57.000000000 +0200
+@@ -0,0 +1,5 @@
++void mpg123_rcc_free();
++void mpg123_rcc_init();
++char *mpg123_rcc_recode(const char *str, size_t len, size_t *rlen);
++void mpg123_rcc_recode_utf_string(mpg123_string *str);
++void mpg123_rcc_recode_latin_string(mpg123_string *str);
+diff -dPNur mpg123-1.12.1/src/Makefile.am mpg123-1.12.1-new/src/Makefile.am
+--- mpg123-1.12.1/src/Makefile.am	2010-03-31 10:27:36.000000000 +0200
++++ mpg123-1.12.1-new/src/Makefile.am	2010-07-07 23:46:10.000000000 +0200
+@@ -5,10 +5,10 @@
+ ## initially written by Nicholas J. Humfrey
+ 
+ AM_CPPFLAGS = -DPKGLIBDIR="\"$(pkglibdir)\""
+-mpg123_LDADD = $(LIBLTDL) libmpg123/libmpg123.la @MODULE_OBJ@ @OUTPUT_OBJ@ @OUTPUT_LIBS@
++mpg123_LDADD = $(LIBLTDL) libmpg123/libmpg123.la @MODULE_OBJ@ @OUTPUT_OBJ@ @OUTPUT_LIBS@ @LIBRCC_LIBS@
+ mpg123_LDFLAGS = @EXEC_LT_LDFLAGS@ @OUTPUT_LDFLAGS@
+ # Just mpg123_INCLUDES has no effect on build! Trying that before reverting to AM_CPPFLAGS.
+-INCLUDES = $(LTDLINCL) -I$(top_builddir)/src/libmpg123 -I$(top_srcdir)/src/libmpg123
++INCLUDES = $(LTDLINCL) -I$(top_builddir)/src/libmpg123 -I$(top_srcdir)/src/libmpg123 @LIBRCC_INCLUDES@
+ # libltdl is not mentioned here... it's not that trivial
+ mpg123_DEPENDENCIES = @OUTPUT_OBJ@ @MODULE_OBJ@ libmpg123/libmpg123.la
+ 
+diff -dPNur mpg123-1.12.1/src/metaprint.c mpg123-1.12.1-new/src/metaprint.c
+--- mpg123-1.12.1/src/metaprint.c	2010-03-31 10:27:36.000000000 +0200
++++ mpg123-1.12.1-new/src/metaprint.c	2010-07-07 23:54:21.000000000 +0200
+@@ -17,7 +17,11 @@
+ 	if(source == NULL) return;
+ 
+ 	if(utf8env) mpg123_copy_string(source, dest);
+-	else utf8_ascii(dest, source);
++	else {
++	    mpg123_copy_string(source, dest);
++	    mpg123_rcc_recode_utf_string(dest);
++//	    utf8_ascii(dest, source);
++	}
+ }
+ 
+ /* print tags... limiting the UTF-8 to ASCII */
+@@ -53,6 +57,7 @@
+ 				strncpy(tag[TITLE].p,v1->title,30);
+ 				tag[TITLE].p[30] = 0;
+ 				tag[TITLE].fill = strlen(tag[TITLE].p) + 1;
++				mpg123_rcc_recode_latin_string(&tag[TITLE]);
+ 			}
+ 		}
+ 		if(!tag[ARTIST].fill)
+@@ -62,6 +67,7 @@
+ 				strncpy(tag[ARTIST].p,v1->artist,30);
+ 				tag[ARTIST].p[30] = 0;
+ 				tag[ARTIST].fill = strlen(tag[ARTIST].p) + 1;
++				mpg123_rcc_recode_latin_string(&tag[ARTIST]);
+ 			}
+ 		}
+ 		if(!tag[ALBUM].fill)
+@@ -71,6 +77,7 @@
+ 				strncpy(tag[ALBUM].p,v1->album,30);
+ 				tag[ALBUM].p[30] = 0;
+ 				tag[ALBUM].fill = strlen(tag[ALBUM].p) + 1;
++				mpg123_rcc_recode_latin_string(&tag[ALBUM]);
+ 			}
+ 		}
+ 		if(!tag[COMMENT].fill)
+@@ -80,6 +87,7 @@
+ 				strncpy(tag[COMMENT].p,v1->comment,30);
+ 				tag[COMMENT].p[30] = 0;
+ 				tag[COMMENT].fill = strlen(tag[COMMENT].p) + 1;
++				mpg123_rcc_recode_latin_string(&tag[COMMENT]);
+ 			}
+ 		}
+ 		if(!tag[YEAR].fill)
+diff -dPNur mpg123-1.12.1/src/mpg123.c mpg123-1.12.1-new/src/mpg123.c
+--- mpg123-1.12.1/src/mpg123.c	2010-03-31 10:27:36.000000000 +0200
++++ mpg123-1.12.1-new/src/mpg123.c	2010-07-07 23:52:58.000000000 +0200
+@@ -10,6 +10,7 @@
+ #include "mpg123app.h"
+ #include "mpg123.h"
+ #include "local.h"
++#include "rccpatch.h"
+ 
+ #ifdef HAVE_SYS_WAIT_H
+ #include <sys/wait.h>
+@@ -973,6 +974,8 @@
+ 		if(param.term_ctrl)
+ 			term_init();
+ #endif
++
++	mpg123_rcc_init();
+ 	while ((fname = get_next_file()))
+ 	{
+ 		char *dirname, *filename;
+@@ -1132,6 +1135,8 @@
+ #endif
+       }
+     } /* end of loop over input files */
++    mpg123_rcc_free();
++    
+ 	/* Ensure we played everything. */
+ 	if(param.smooth && param.usebuffer)
+ 	{
diff --git a/media-sound/mpg123/files/mpg123-ds-rcc173.patch b/media-sound/mpg123/files/mpg123-ds-rcc173.patch
new file mode 100644
index 0000000..ae814ff
--- /dev/null
+++ b/media-sound/mpg123/files/mpg123-ds-rcc173.patch
@@ -0,0 +1,271 @@
+diff -dPNur mpg123-1.7.3/configure.ac mpg123-1.7.3-rusxmms/configure.ac
+--- mpg123-1.7.3/configure.ac	2009-04-27 09:02:40.000000000 +0200
++++ mpg123-1.7.3-rusxmms/configure.ac	2009-06-13 23:22:17.000000000 +0200
+@@ -759,6 +759,21 @@
+ AC_CHECK_LIB([m], [sqrt])
+ AC_CHECK_LIB([mx], [powf])
+ 
++# LibRCC
++AC_CHECK_LIB(rcc, rccInit,[
++    AC_CHECK_HEADERS(librcc.h,[
++       LIBRCC_LIBS="-lrcc"
++       LIBRCC_INCLUDES="-DHAVE_LIBRCC"
++    ],[
++       LIBRCC_LIBS=""
++       LIBRCC_INCLUDES=""
++])],[
++    LIBRCC_LIBS=""
++    LIBRCC_INCLUDES=""
++])
++AC_SUBST(LIBRCC_LIBS)
++AC_SUBST(LIBRCC_INCLUDES)
++
+ # attempt to make the signal stuff work... also with GENERIC - later
+ #if test x"$ac_cv_header_sys_signal_h" = xyes; then
+ #	AC_CHECK_FUNCS( sigemptyset sigaddset sigprocmask sigaction )
+diff -dPNur mpg123-1.7.3/src/libmpg123/id3.c mpg123-1.7.3-rusxmms/src/libmpg123/id3.c
+--- mpg123-1.7.3/src/libmpg123/id3.c	2009-04-27 09:02:12.000000000 +0200
++++ mpg123-1.7.3-rusxmms/src/libmpg123/id3.c	2009-06-14 00:34:23.000000000 +0200
+@@ -9,6 +9,8 @@
+ #include "mpg123lib_intern.h"
+ #include "id3.h"
+ #include "debug.h"
++#include "rccpatch.h"
++
+ 
+ #ifndef NO_ID3V2 /* Only the main parsing routine will always be there. */
+ 
+@@ -774,6 +776,15 @@
+ 	size_t length = l;
+ 	size_t i;
+ 	unsigned char *p;
++	char *ctitle;
++
++	ctitle = mpg123_rcc_recode(s, l, &i);
++	if (ctitle) {
++	    convert_utf8(sb, ctitle, i);
++	    free(ctitle);
++	    return;
++	}
++
+ 	/* determine real length, a latin1 character can at most take 2  in UTF8 */
+ 	for(i=0; i<l; ++i)
+ 	if(s[i] >= 0x80) ++length;
+diff -dPNur mpg123-1.7.3/src/libmpg123/libmpg123.sym mpg123-1.7.3-rusxmms/src/libmpg123/libmpg123.sym
+--- mpg123-1.7.3/src/libmpg123/libmpg123.sym	2009-04-27 09:07:20.000000000 +0200
++++ mpg123-1.7.3-rusxmms/src/libmpg123/libmpg123.sym	2009-06-14 01:53:25.000000000 +0200
+@@ -74,3 +74,8 @@
+ mpg123_position
+ mpg123_length
+ mpg123_set_filesize
++mpg123_rcc_free
++mpg123_rcc_init
++mpg123_rcc_recode
++mpg123_rcc_recode_utf_string
++mpg123_rcc_recode_latin_string
+diff -dPNur mpg123-1.7.3/src/libmpg123/libmpg123.sym.in mpg123-1.7.3-rusxmms/src/libmpg123/libmpg123.sym.in
+--- mpg123-1.7.3/src/libmpg123/libmpg123.sym.in	2009-04-27 09:02:12.000000000 +0200
++++ mpg123-1.7.3-rusxmms/src/libmpg123/libmpg123.sym.in	2009-06-14 01:51:45.000000000 +0200
+@@ -74,3 +74,8 @@
+ mpg123_position@LARGEFILE_SUFFIX@
+ mpg123_length@LARGEFILE_SUFFIX@
+ mpg123_set_filesize@LARGEFILE_SUFFIX@
++mpg123_rcc_free
++mpg123_rcc_init
++mpg123_rcc_recode
++mpg123_rcc_recode_utf_string
++mpg123_rcc_recode_latin_string
+diff -dPNur mpg123-1.7.3/src/libmpg123/Makefile.am mpg123-1.7.3-rusxmms/src/libmpg123/Makefile.am
+--- mpg123-1.7.3/src/libmpg123/Makefile.am	2009-04-27 09:02:12.000000000 +0200
++++ mpg123-1.7.3-rusxmms/src/libmpg123/Makefile.am	2009-06-14 00:10:34.000000000 +0200
+@@ -31,6 +31,8 @@
+ libmpg123_la_DEPENDENCIES = @DECODER_LOBJ@ libmpg123.sym
+ 
+ libmpg123_la_SOURCES = \
++	rccpatch.c \
++	rccpatch.h \
+ 	compat.c \
+ 	compat.h \
+ 	parse.c \
+diff -dPNur mpg123-1.7.3/src/libmpg123/rccpatch.c mpg123-1.7.3-rusxmms/src/libmpg123/rccpatch.c
+--- mpg123-1.7.3/src/libmpg123/rccpatch.c	1970-01-01 01:00:00.000000000 +0100
++++ mpg123-1.7.3-rusxmms/src/libmpg123/rccpatch.c	2009-06-14 01:54:37.000000000 +0200
+@@ -0,0 +1,76 @@
++#include <string.h>
++#include <librcc.h>
++#include "mpg123.h"
++
++#define ID3_CLASS 0
++#define UTF_CLASS 1
++#define OUT_CLASS 2
++static rcc_class classes[] = {
++    { "id3", RCC_CLASS_STANDARD, NULL, NULL, "ID3 Encoding", 0 },
++    { "utf", RCC_CLASS_KNOWN, "UTF-8", NULL, "Unicode Encoding", 0 },
++    { "out", RCC_CLASS_STANDARD, NULL, NULL, "Output Encoding", 0 },
++    { NULL }
++};
++
++static int rcc_initialized = 0;
++
++void mpg123_rcc_free() {
++    if (rcc_initialized) {
++       rccFree();
++       rcc_initialized = 0;
++    }
++}
++
++void mpg123_rcc_init() {
++    if (rcc_initialized) return;
++    rccInit();
++    rccInitDefaultContext(NULL, 0, 0, classes, 0);
++    rccLoad(NULL, "xmms");
++    rccInitDb4(NULL, NULL, 0);
++    rcc_initialized = 1;
++}
++
++static void mpg123_rcc_try_init() {
++    if (!rcc_initialized) {
++	mpg123_rcc_init();
++	if (rcc_initialized) atexit(mpg123_rcc_free);	
++    }
++}
++
++
++char *mpg123_rcc_recode(const char *str, size_t len, size_t *rlen) {
++    char *res;
++    mpg123_rcc_try_init();
++    return rccSizedRecode(NULL, ID3_CLASS, UTF_CLASS, str, len, rlen);
++}
++
++static void mpg123_rcc_recode_string(mpg123_string *str, rcc_class_id from, rcc_class_id to) {
++    size_t size;
++    char *res;
++    
++    if ((!str)||(str->fill<2)) return;
++
++    mpg123_rcc_try_init();
++
++    res = rccSizedRecode(NULL, from, to, str->p, str->fill - 1, &size);
++    if (res) {
++	if (size+1>str->size) {
++	    if (!mpg123_resize_string(str, size + 1)) {
++		    // allocation failed
++		free(res);
++		return;
++	    }
++	}
++	strncpy(str->p, res, size + 1);
++	str->fill = size + 1;
++	free(res);
++    }
++}
++
++void mpg123_rcc_recode_utf_string(mpg123_string *str) {
++    mpg123_rcc_recode_string(str, UTF_CLASS, OUT_CLASS);
++}
++
++void mpg123_rcc_recode_latin_string(mpg123_string *str) {
++    mpg123_rcc_recode_string(str, ID3_CLASS, OUT_CLASS);
++}
+diff -dPNur mpg123-1.7.3/src/libmpg123/rccpatch.h mpg123-1.7.3-rusxmms/src/libmpg123/rccpatch.h
+--- mpg123-1.7.3/src/libmpg123/rccpatch.h	1970-01-01 01:00:00.000000000 +0100
++++ mpg123-1.7.3-rusxmms/src/libmpg123/rccpatch.h	2009-06-14 01:51:21.000000000 +0200
+@@ -0,0 +1,5 @@
++void mpg123_rcc_free();
++void mpg123_rcc_init();
++char *mpg123_rcc_recode(const char *str, size_t len, size_t *rlen);
++void mpg123_rcc_recode_utf_string(mpg123_string *str);
++void mpg123_rcc_recode_latin_string(mpg123_string *str);
+diff -dPNur mpg123-1.7.3/src/Makefile.am mpg123-1.7.3-rusxmms/src/Makefile.am
+--- mpg123-1.7.3/src/Makefile.am	2009-04-27 09:02:12.000000000 +0200
++++ mpg123-1.7.3-rusxmms/src/Makefile.am	2009-06-14 00:10:22.000000000 +0200
+@@ -5,10 +5,10 @@
+ ## initially written by Nicholas J. Humfrey
+ 
+ AM_CPPFLAGS = -DPKGLIBDIR="\"$(pkglibdir)\""
+-mpg123_LDADD = $(LIBLTDL) libmpg123/libmpg123.la @MODULE_OBJ@ @OUTPUT_OBJ@ @OUTPUT_LIBS@
++mpg123_LDADD = $(LIBLTDL) libmpg123/libmpg123.la @MODULE_OBJ@ @OUTPUT_OBJ@ @OUTPUT_LIBS@ @LIBRCC_LIBS@
+ mpg123_LDFLAGS = @LT_LDFLAGS@ @OUTPUT_LDFLAGS@
+ # Just mpg123_INCLUDES has no effect on build! Trying that before reverting to AM_CPPFLAGS.
+-INCLUDES = $(LTDLINCL) -I$(top_builddir)/src/libmpg123 -I$(top_srcdir)/src/libmpg123
++INCLUDES = $(LTDLINCL) -I$(top_builddir)/src/libmpg123 -I$(top_srcdir)/src/libmpg123 @LIBRCC_INCLUDES@
+ # libltdl is not mentioned here... it's not that trivial
+ mpg123_DEPENDENCIES = @OUTPUT_OBJ@ @MODULE_OBJ@ libmpg123/libmpg123.la
+ 
+diff -dPNur mpg123-1.7.3/src/metaprint.c mpg123-1.7.3-rusxmms/src/metaprint.c
+--- mpg123-1.7.3/src/metaprint.c	2009-04-27 09:02:12.000000000 +0200
++++ mpg123-1.7.3-rusxmms/src/metaprint.c	2009-06-14 01:59:09.000000000 +0200
+@@ -17,7 +17,11 @@
+ 	if(source == NULL) return;
+ 
+ 	if(utf8env) mpg123_copy_string(source, dest);
+-	else utf8_ascii(dest, source);
++	else {
++	    mpg123_copy_string(source, dest);
++	    mpg123_rcc_recode_utf_string(dest);
++//	    utf8_ascii(dest, source);
++	}
+ }
+ 
+ /* print tags... limiting the UTF-8 to ASCII */
+@@ -53,6 +57,7 @@
+ 				strncpy(tag[TITLE].p,v1->title,30);
+ 				tag[TITLE].p[30] = 0;
+ 				tag[TITLE].fill = strlen(tag[TITLE].p) + 1;
++				mpg123_rcc_recode_latin_string(&tag[TITLE]);
+ 			}
+ 		}
+ 		if(!tag[ARTIST].fill)
+@@ -62,6 +67,7 @@
+ 				strncpy(tag[ARTIST].p,v1->artist,30);
+ 				tag[ARTIST].p[30] = 0;
+ 				tag[ARTIST].fill = strlen(tag[ARTIST].p) + 1;
++				mpg123_rcc_recode_latin_string(&tag[ARTIST]);
+ 			}
+ 		}
+ 		if(!tag[ALBUM].fill)
+@@ -71,6 +77,7 @@
+ 				strncpy(tag[ALBUM].p,v1->album,30);
+ 				tag[ALBUM].p[30] = 0;
+ 				tag[ALBUM].fill = strlen(tag[ALBUM].p) + 1;
++				mpg123_rcc_recode_latin_string(&tag[ALBUM]);
+ 			}
+ 		}
+ 		if(!tag[COMMENT].fill)
+@@ -80,6 +87,7 @@
+ 				strncpy(tag[COMMENT].p,v1->comment,30);
+ 				tag[COMMENT].p[30] = 0;
+ 				tag[COMMENT].fill = strlen(tag[COMMENT].p) + 1;
++				mpg123_rcc_recode_latin_string(&tag[COMMENT]);
+ 			}
+ 		}
+ 		if(!tag[YEAR].fill)
+diff -dPNur mpg123-1.7.3/src/mpg123.c mpg123-1.7.3-rusxmms/src/mpg123.c
+--- mpg123-1.7.3/src/mpg123.c	2009-04-27 09:02:12.000000000 +0200
++++ mpg123-1.7.3-rusxmms/src/mpg123.c	2009-06-14 00:35:14.000000000 +0200
+@@ -10,6 +10,7 @@
+ #include "mpg123app.h"
+ #include "mpg123.h"
+ #include "local.h"
++#include "rccpatch.h"
+ 
+ #ifdef HAVE_SYS_WAIT_H
+ #include <sys/wait.h>
+@@ -893,6 +894,8 @@
+ 		if(param.term_ctrl)
+ 			term_init();
+ #endif
++
++	mpg123_rcc_init();
+ 	while ((fname = get_next_file()))
+ 	{
+ 		char *dirname, *filename;
+@@ -1038,6 +1041,8 @@
+ #endif
+       }
+     } /* end of loop over input files */
++    mpg123_rcc_free();
++    
+ 	/* Ensure we played everything. */
+ 	if(param.smooth && param.usebuffer)
+ 	{
diff --git a/media-sound/mpg123/files/mpg123-ds-rcc65.patch b/media-sound/mpg123/files/mpg123-ds-rcc65.patch
new file mode 100644
index 0000000..41a4d33
--- /dev/null
+++ b/media-sound/mpg123/files/mpg123-ds-rcc65.patch
@@ -0,0 +1,240 @@
+diff -dPNur mpg123-0.65/configure.ac mpg123-0.65-new/configure.ac
+--- mpg123-0.65/configure.ac	2007-02-07 10:24:33.000000000 +0100
++++ mpg123-0.65-new/configure.ac	2007-04-15 13:36:52.000000000 +0200
+@@ -137,6 +137,21 @@
+ AC_CHECK_LIB([m], [sqrt])
+ AC_CHECK_LIB([mx], [powf])
+ 
++# LibRCC
++AC_CHECK_LIB(rcc, rccInit,[
++    AC_CHECK_HEADERS(librcc.h,[
++       LIBRCC_LIBS="-lrcc"
++       LIBRCC_INCLUDES="-DHAVE_LIBRCC"
++    ],[
++       LIBRCC_LIBS=""
++       LIBRCC_INCLUDES=""
++])],[
++    LIBRCC_LIBS=""
++    LIBRCC_INCLUDES=""
++])
++AC_SUBST(LIBRCC_LIBS)
++AC_SUBST(LIBRCC_INCLUDES)
++
+ # Check for JACK
+ PKG_CHECK_MODULES(JACK, jack, HAVE_JACK=yes, HAVE_JACK=no)
+ 
+diff -dPNur mpg123-0.65/src/id3.c mpg123-0.65-new/src/id3.c
+--- mpg123-0.65/src/id3.c	2007-02-07 10:24:33.000000000 +0100
++++ mpg123-0.65-new/src/id3.c	2007-04-15 13:26:06.000000000 +0200
+@@ -6,6 +6,7 @@
+ #include "stringbuf.h"
+ #include "genre.h"
+ #include "id3.h"
++#include "rccpatch.h"
+ 
+ struct taginfo
+ {
+@@ -499,6 +500,8 @@
+ void print_id3_tag(unsigned char *id3v1buf)
+ {
+ 	char genre_from_v1 = 0;
++	char *ctitle, *cartist, *calbum, *ccomment;
++	
+ 	if(!(id3.version || id3v1buf)) return;
+ 	if(id3v1buf != NULL)
+ 	{
+@@ -688,17 +691,26 @@
+ 		free_stringbuf(&tmp);
+ 	}
+ 
++	if (id3.title.fill) ctitle = rccPatchRecode(id3.title.p);
++	else ctitle = NULL;
++	if (id3.artist.fill) cartist = rccPatchRecode(id3.artist.p);
++	else cartist = NULL;
++	if (id3.album.fill) calbum = rccPatchRecode(id3.album.p);
++	else calbum = NULL;
++	if (id3.comment.fill) ccomment = rccPatchRecode(id3.comment.p);
++	else ccomment = NULL;
++
+ 	if(param.long_id3)
+ 	{
+ 		fprintf(stderr,"\n");
+ 		/* print id3v2 */
+ 		/* dammed, I use pointers as bool again! It's so convenient... */
+-		fprintf(stderr,"\tTitle:   %s\n", id3.title.fill ? id3.title.p : "");
+-		fprintf(stderr,"\tArtist:  %s\n", id3.artist.fill ? id3.artist.p : "");
+-		fprintf(stderr,"\tAlbum:   %s\n", id3.album.fill ? id3.album.p : "");
++		fprintf(stderr,"\tTitle:   %s\n", ctitle?ctitle:(id3.title.fill ? id3.title.p : ""));
++		fprintf(stderr,"\tArtist:  %s\n", cartist?cartist:(id3.artist.fill ? id3.artist.p : ""));
++		fprintf(stderr,"\tAlbum:   %s\n", calbum?calbum:(id3.album.fill ? id3.album.p : ""));
+ 		fprintf(stderr,"\tYear:    %s\n", id3.year.fill ? id3.year.p : "");
+ 		fprintf(stderr,"\tGenre:   %s\n", id3.genre.fill ? id3.genre.p : "");
+-		fprintf(stderr,"\tComment: %s\n", id3.comment.fill ? id3.comment.p : "");
++		fprintf(stderr,"\tComment: %s\n", ccomment?ccomment:(id3.comment.fill ? id3.comment.p : ""));
+ 		fprintf(stderr,"\n");
+ 	}
+ 	else
+@@ -708,23 +720,23 @@
+ 		/* one _could_ circumvent the strlen calls... */
+ 		if(id3.title.fill && id3.artist.fill && strlen(id3.title.p) <= 30 && strlen(id3.title.p) <= 30)
+ 		{
+-			fprintf(stderr,"Title:   %-30s  Artist: %s\n",id3.title.p,id3.artist.p);
++			fprintf(stderr,"Title:   %-30s  Artist: %s\n",ctitle?ctitle:id3.title.p,cartist?cartist:id3.artist.p);
+ 		}
+ 		else
+ 		{
+-			if(id3.title.fill) fprintf(stderr,"Title:   %s\n", id3.title.p);
+-			if(id3.artist.fill) fprintf(stderr,"Artist:  %s\n", id3.artist.p);
++			if(id3.title.fill) fprintf(stderr,"Title:   %s\n", ctitle?ctitle:id3.title.p);
++			if(id3.artist.fill) fprintf(stderr,"Artist:  %s\n", cartist?cartist:id3.artist.p);
+ 		}
+ 		if (id3.comment.fill && id3.album.fill && strlen(id3.comment.p) <= 30 && strlen(id3.album.p) <= 30)
+ 		{
+-			fprintf(stderr,"Comment: %-30s  Album:  %s\n",id3.comment.p,id3.album.p);
++			fprintf(stderr,"Comment: %-30s  Album:  %s\n",ccomment?ccomment:id3.comment.p,calbum?calbum:id3.album.p);
+ 		}
+ 		else
+ 		{
+ 			if (id3.comment.fill)
+-				fprintf(stderr,"Comment: %s\n", id3.comment.p);
++				fprintf(stderr,"Comment: %s\n", ccomment?ccomment:id3.comment.p);
+ 			if (id3.album.fill)
+-				fprintf(stderr,"Album:   %s\n", id3.album.p);
++				fprintf(stderr,"Album:   %s\n", calbum?calbum:id3.album.p);
+ 		}
+ 		if (id3.year.fill && id3.genre.fill && strlen(id3.year.p) <= 30 && strlen(id3.genre.p) <= 30)
+ 		{
+@@ -738,6 +750,11 @@
+ 				fprintf(stderr,"Genre:   %s\n", id3.genre.p);
+ 		}
+ 	}
++	
++	if (ctitle) free(ctitle);
++	if (cartist) free(cartist);
++	if (calbum) free(calbum);
++	if (ccomment) free(ccomment);
+ }
+ 
+ /*
+diff -dPNur mpg123-0.65/src/Makefile.am mpg123-0.65-new/src/Makefile.am
+--- mpg123-0.65/src/Makefile.am	2007-02-07 10:24:33.000000000 +0100
++++ mpg123-0.65-new/src/Makefile.am	2007-04-15 13:38:44.000000000 +0200
+@@ -4,8 +4,8 @@
+ ## see COPYING and AUTHORS files in distribution or http://mpg123.de
+ ## initially written by Nicholas J. Humfrey
+ 
+-AM_CFLAGS = @AUDIO_CFLAGS@
+-AM_LDFLAGS = @AUDIO_LIBS@
++AM_CFLAGS = @AUDIO_CFLAGS@ @LIBRCC_INCLUDES@
++AM_LDFLAGS = @AUDIO_LIBS@ @LIBRCC_LIBS@
+ mpg123_LDADD = @AUDIO_OBJ@ @CPU_TYPE_LIB@
+ mpg123_DEPENDENCIES = @AUDIO_OBJ@ @CPU_TYPE_LIB@
+ 
+@@ -14,6 +14,8 @@
+ 
+ bin_PROGRAMS = mpg123
+ mpg123_SOURCES = \
++	rccpatch.c \
++	rccpatch.h \
+ 	audio.c \
+ 	audio.h \
+ 	buffer.c \
+diff -dPNur mpg123-0.65/src/mpg123.c mpg123-0.65-new/src/mpg123.c
+--- mpg123-0.65/src/mpg123.c	2007-02-07 10:24:33.000000000 +0100
++++ mpg123-0.65-new/src/mpg123.c	2007-04-15 13:30:42.000000000 +0200
+@@ -35,6 +35,7 @@
+ #include "layer3.h"
+ #endif
+ #include "playlist.h"
++#include "rccpatch.h"
+ #include "id3.h"
+ #include "icy.h"
+ 
+@@ -814,15 +815,18 @@
+ 
+ 	if(param.remote) {
+ 		int ret;
++		rccPatchInit();
+ 		init_id3();
+ 		init_icy();
+ 		ret = control_generic(&fr);
+ 		clear_icy();
+ 		exit_id3();
++		rccPatchFree();
+ 		safe_exit(ret);
+ 	}
+ #endif
+ 
++	rccPatchInit();
+ 	init_icy();
+ 	init_id3(); /* prepare id3 memory */
+ 	while ((fname = get_next_file())) {
+@@ -851,7 +855,7 @@
+ 	}
+ }
+ #endif
+-
++	
+ 		}
+ 
+ #if !defined(WIN32) && !defined(GENERIC)
+@@ -1031,6 +1035,7 @@
+     } /* end of loop over input files */
+     clear_icy();
+     exit_id3(); /* free id3 memory */
++    rccPatchFree();
+ #ifndef NOXFERMEM
+     if (param.usebuffer) {
+       buffer_end();
+diff -dPNur mpg123-0.65/src/rccpatch.c mpg123-0.65-new/src/rccpatch.c
+--- mpg123-0.65/src/rccpatch.c	1970-01-01 01:00:00.000000000 +0100
++++ mpg123-0.65-new/src/rccpatch.c	2007-04-15 13:13:09.000000000 +0200
+@@ -0,0 +1,40 @@
++#include <librcc.h>
++
++#define ID3_CLASS 0
++#define OUT_CLASS 1
++static rcc_class classes[] = {
++    { "id3", RCC_CLASS_STANDARD, NULL, NULL, "ID3 Encoding", 0 },
++    { "out", RCC_CLASS_STANDARD, NULL, NULL, "Output Encoding", 0 },
++    { NULL }
++};
++
++static int rcc_initialized = 0;
++
++void rccPatchFree() {
++    if (rcc_initialized) {
++       rccFree();
++       rcc_initialized = 0;
++    }
++}
++
++void rccPatchInit() {
++    if (rcc_initialized) return;
++    rccInit();
++    rccInitDefaultContext(NULL, 0, 0, classes, 0);
++    rccLoad(NULL, "xmms");
++    rccInitDb4(NULL, NULL, 0);
++    rcc_initialized = 1;
++}
++
++static void rccPatchTryInit() {
++    if (!rcc_initialized) {
++	rccPatchInit();
++	if (rcc_initialized) atexit(rccPatchFree);	
++    }
++}
++
++char *rccPatchRecode(const char *str) {
++    char *res;
++    rccPatchTryInit();
++    return rccRecode(NULL, ID3_CLASS, OUT_CLASS, str);
++}
+diff -dPNur mpg123-0.65/src/rccpatch.h mpg123-0.65-new/src/rccpatch.h
+--- mpg123-0.65/src/rccpatch.h	1970-01-01 01:00:00.000000000 +0100
++++ mpg123-0.65-new/src/rccpatch.h	2007-04-15 13:13:09.000000000 +0200
+@@ -0,0 +1,4 @@
++void rccPatchFree();
++void rccPatchInit();
++char *rccPatchRecode(const char *str);
++
diff --git a/media-sound/mpg123/files/mpg123-osx.diff b/media-sound/mpg123/files/mpg123-osx.diff
new file mode 100644
index 0000000..a58fffd
--- /dev/null
+++ b/media-sound/mpg123/files/mpg123-osx.diff
@@ -0,0 +1,394 @@
+diff -Naur mpg123-orig/Makefile mpg123/Makefile
+--- mpg123-orig/Makefile	Sun Apr 10 13:35:56 2005
++++ mpg123/Makefile	Sun Apr 10 13:40:03 2005
+@@ -54,6 +54,7 @@
+ 	@echo "make netbsd         NetBSD"
+ 	@echo "make openbsd        OpenBSD"
+ 	@echo "make mint           MiNT on Atari"
++	@echo "make macos	   MacOSX
+ 	@echo "make generic        try this one if your system isn't listed above"
+ 	@echo ""
+ 	@echo "Please read the file INSTALL for additional information."
+@@ -149,6 +150,16 @@
+ 	@echo "Please read the file INSTALL for additional information."
+ 	@echo ""
+ 
++macos-help:
++	@echo ""
++	@echo "There are several Mac OS X flavours. Choose one:"
++	@echo ""
++	@echo "make macos"
++	@echo "make macos-esd"
++	@echo ""
++	@echo "Please read the file INSTALL for additional information."
++	@echo ""
++
+ linux-devel:
+ 	$(MAKE) OBJECTS='decode_i386.o dct64_i386.o audio_oss.o' \
+          LDFLAGS= \
+@@ -759,6 +770,24 @@
+ 			-DI386_ASSEM -DREAL_IS_FLOAT -DUSE_MMAP -DOSS \
+ 			-DDONT_CATCH_SIGNALS -DNAS' \
+ 		mpg123-make
++
++macos:
++	$(MAKE) CC=cc LDFLAGS='$(LDFLAGS)' AUDIO_LIB='-framework CoreAudio' \
++		OBJECTS='decode.o dct64.o audio_macosx.o term.o' \
++		CFLAGS='$(CFLAGS) -DINET6 -DTERM_CONTROL -DMAC_OS_X -Wall -O2 -DPPC_ENDIAN' \
++		mpg123-make
++
++macos-generic:
++	$(MAKE) CC=cc LDFLAGS='$(LDFLAGS)' AUDIO_LIB='-framework CoreAudio' \
++		OBJECTS='decode.o dct64.o audio_macosx.o term.o' \
++		CFLAGS='$(CFLAGS) -DINET6 -DTERM_CONTROL -DMAC_OS_X -Wall -O2 -DPPC_ENDIAN' \
++		mpg123-make
++
++macos-esd:
++	$(MAKE) CC=cc LDFLAGS='$(LDFLAGS)' AUDIO_LIB='-lesd -laudiofile' \
++		OBJECTS='decode.o dct64.o audio_esd.o' \
++		CFLAGS='$(CFLAGS) -O -DDARWIN -Wall -O2 -DPPC_ENDIAN -DUSE_ESD' \
++		mpg123-make	
+ 
+ mint:
+ 	$(MAKE)  LDFLAGS= \
+diff -Naur mpg123-orig/audio_macosx.c mpg123/audio_macosx.c
+--- mpg123-orig/audio_macosx.c	Wed Dec 31 19:00:00 1969
++++ mpg123/audio_macosx.c	Sun Apr 10 13:47:14 2005
+@@ -0,0 +1,337 @@
++/*- This is a 80 chars line, to have pretty formatted comments ---------------*/
++
++/* audio_macosx.c, originally written by Guillaume Outters
++ * to contact the author, please mail to: guillaume.outters@free.fr
++ *
++ * This file is some quick pre-alpha patch to allow me to have some music for my
++ * long working days, and it does it well. But it surely isn't a final version;
++ * as Mac OS X requires at least a G3, I'm not sure it will be useful to
++ * implement downsampling.
++ *
++ * Mac OS X audio works by asking you to fill its buffer, and, to complicate a
++ * bit, you must provide it with floats. In order not to patch too much mpg123,
++ * we'll accept signed short (mpg123 "approved" format) and transform them into
++ * floats as soon as received. Let's say this way calculations are faster.
++ *
++ * As we don't have some /dev/audio device with blocking write, we'll have to
++ * stop mpg123 before it does too much work, while we are waiting our dump proc
++ * to be called. I wanted to use semaphores, but they still need an
++ * implementation from Apple before I can do anything. So we'll block using a
++ * sleep and wake up on SIGUSR2.
++ * Version 0.2: now I use named semaphores (which are implemented AND work).
++ * Preprocessor flag MOSX_USES_SEM (defined at the beginning of this file)
++ * enables this behaviour.
++ *
++ * In order always to have a ready buffer to be dumped when the routine gets
++ * called, we have a "buffer loop" of NUMBER_BUFFERS buffers. mpg123 fills it
++ * on one extremity ('to'), playProc reads it on another point ('from'). 'to'
++ * blocks when it arrives on 'from' (having filled the whole circle of buffers)
++ * and 'from' blocks when no data is available. As soon as it has emptied a
++ * buffer, if mpg123 is sleeping, it awakes it quite brutaly (SIGUSR2) to tell
++ * it to fill the buffer. */
++
++#ifndef MOSX_USES_SEM
++#define MOSX_USES_SEM 1	/* Semaphores or sleep()/kill()? I would say semaphores, but this is just my advice, after all */
++#endif
++#ifndef MOSX_SEM_V2
++#define MOSX_SEM_V2 1
++#endif
++
++#include "mpg123.h"
++#include <CoreAudio/AudioHardware.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <errno.h>
++#if MOSX_USES_SEM
++#include <semaphore.h>
++#endif
++
++struct aBuffer
++{
++	float * buffer;
++	long size;
++	
++	float * ptr;	/* Where in the buffer are we? */
++	long remaining;
++	
++	struct aBuffer * next;
++};
++typedef struct aBuffer aBuffer;
++
++struct anEnv
++{
++	long size;
++	short * debut;
++	short * ptr;
++	AudioDeviceID device;
++	char play;
++	
++	/* Intermediate buffers */
++	
++	#if MOSX_USES_SEM
++	sem_t * semaphore;
++	#else
++	char wait;	/* mpg123 is waiting (due to the semaphore) to show the world its power; let's free him! */
++	pid_t pid;
++	#endif
++	aBuffer * from;	/* Current buffers */
++	aBuffer * to;
++};
++
++static struct anEnv env;
++
++#define ENV ((struct anEnv *)inClientData)
++#define NUMBER_BUFFERS 16	/* Tried with 3 buffers, but then any little window move is sufficient to stop the sound. Here we have 1.5 seconds music buffered */
++
++void destroyBuffers()
++{
++	aBuffer * ptr;
++	aBuffer * ptr2;
++	
++	ptr = env.to->next;
++	env.to->next = NULL;
++	while(ptr)
++	{
++		ptr2 = ptr->next;
++		if(ptr->buffer) free(ptr->buffer);
++		free(ptr);
++		ptr = ptr2;
++	}
++}
++
++void initBuffers()
++{
++	long m;
++	aBuffer ** ptrptr;
++	
++	ptrptr = &env.to;
++	for(m = 0; m < NUMBER_BUFFERS; m++)
++	{
++		*ptrptr = malloc(sizeof(aBuffer));
++		(*ptrptr)->size = 0;
++		(*ptrptr)->remaining = 0;
++		(*ptrptr)->buffer = NULL;
++		ptrptr = &(*ptrptr)->next;
++		#if MOSX_USES_SEM
++		sem_post(env.semaphore);	/* This buffer is ready for filling (of course, it is empty!) */ 
++		#endif
++	}
++	*ptrptr = env.from = env.to;
++}
++
++int fillBuffer(aBuffer * b, short * source, long size)
++{
++	float * dest;
++	
++	if(b->remaining)	/* Non empty buffer, must still be playing */
++		return(-1);
++	if(b->size != size)	/* Hey! What's that? Coudn't this buffer size be fixed once (well, perhaps we just didn't allocate it yet) */
++	{
++		if(b->buffer) free(b->buffer);
++		b->buffer = malloc(size * sizeof(float));
++		b->size = size;
++	}
++	
++	dest = b->buffer;
++	while(size--)
++		//*dest++ = ((*source++) + 32768) / 65536.0;
++		*dest++ = (*source++) / 32768.0;
++	
++	b->ptr = b->buffer;
++	b->remaining = b->size;	/* Do this at last; we shouldn't show the buffer is full before it is effectively */
++	
++	#ifdef DEBUG_MOSX
++	printf("."); fflush(stdout);
++	#endif
++	
++	return(0);
++}
++
++OSStatus playProc(AudioDeviceID inDevice, const AudioTimeStamp * inNow, const AudioBufferList * inInputData, const AudioTimeStamp * inInputTime, AudioBufferList * outOutputData, const AudioTimeStamp * inOutputTime, void * inClientData)
++{
++	long m, n, o;
++	float * dest;
++	
++	for(o = 0; o < outOutputData->mNumberBuffers; o++)
++	{
++		m = outOutputData->mBuffers[o].mDataByteSize / sizeof(float);	/* What we have to fill */
++		dest = outOutputData->mBuffers[o].mData;
++		
++		while(m > 0)
++		{
++			if( (n = ENV->from->remaining) <= 0 )	/* No more bytes in the current read buffer! */
++			{
++				while( (n = ENV->from->remaining) <= 0)
++					usleep(2000);	/* Let's wait a bit for the results... */
++			}
++						
++			/* We dump what we can */
++			
++			if(n > m) n = m;	/* In fact, just the necessary should be sufficient (I think) */
++			
++			memcpy(dest, ENV->from->ptr, n * sizeof(float));
++			
++			/* Let's remember all done work */
++			
++			m -= n;
++			ENV->from->ptr += n;
++			if( (ENV->from->remaining -= n) <= 0)	/* ... and tell mpg123 there's a buffer to fill */
++			{
++				#if MOSX_USES_SEM
++				sem_post(ENV->semaphore);
++				#else
++				if(ENV->wait)
++				{
++					kill(ENV->pid, SIGUSR2);
++					ENV->wait = 0;
++				}
++				#endif
++				ENV->from = ENV->from->next;
++			}
++		}
++	}
++	
++	return (0); 
++}
++
++#if ! MOSX_USES_SEM
++void start(int n)
++{
++	signal(SIGUSR2, start);
++}
++#endif
++
++int audio_open(struct audio_info_struct *ai)
++{
++	long size;
++	AudioStreamBasicDescription format;
++	#if MOSX_USES_SEM
++	char s[10];
++	long m;
++	#endif
++	/*float vol;
++	OSStatus e;*/
++	
++	/* Where did that default audio output go? */
++	
++	size = sizeof(env.device);
++	if(AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &size, &env.device)) return(-1);
++		
++	/* Hmmm, let's choose PCM format */
++	
++	size = sizeof(format);
++	if(AudioDeviceGetProperty(env.device, 0, 0, kAudioDevicePropertyStreamFormat, &size, &format)) return(-1);
++	if(format.mFormatID != kAudioFormatLinearPCM) return(-1);
++	
++	/* Let's test volume, which doesn't seem to work (but this is only an alpha, remember?) */
++	
++	/*vol = 0.5;
++	size = sizeof(vol);
++	if(e = AudioDeviceSetProperty(env.device, NULL, 0, 0, 'volm', size, &vol)) { printf("Didn't your mother ever tell you not to hear music so loudly?\n"); return(-1); } */
++	
++	/* Let's init our environment */
++	
++	env.size = 0;
++	env.debut = NULL;
++	env.ptr = NULL;
++	env.play = 0;
++	
++	#if MOSX_USES_SEM
++	strcpy(s, "/mpg123-0000");
++	do
++	{
++		for(m = 10;; m--)
++			if( (s[m]++) <= '9')
++				break;
++			else
++				s[m] = '0';
++	} while( (env.semaphore = sem_open(s, O_CREAT | O_EXCL, 0644, 0)) == (sem_t *)SEM_FAILED);
++	#else
++	env.pid = getpid();
++	env.wait = 0;
++	signal(SIGUSR2, start);
++	#endif
++	
++	initBuffers();
++		
++	/* And prepare audio launching */
++	
++	if(AudioDeviceAddIOProc(env.device, playProc, &env)) return(-1);
++	
++	return(0);
++}
++
++int audio_reset_parameters(struct audio_info_struct *ai)
++{
++	return 0;
++}
++
++int audio_rate_best_match(struct audio_info_struct *ai)
++{
++	return 0;
++}
++
++int audio_set_rate(struct audio_info_struct *ai)
++{
++	return 0;
++}
++
++int audio_set_channels(struct audio_info_struct *ai)
++{
++	return 0;
++}
++
++int audio_set_format(struct audio_info_struct *ai)
++{
++	return 0;
++}
++
++int audio_get_formats(struct audio_info_struct *ai)
++{
++	return AUDIO_FORMAT_SIGNED_16;
++}
++
++int audio_play_samples(struct audio_info_struct *ai,unsigned char *buf,int len)
++{
++	/* We have to calm down mpg123, else he wouldn't hesitate to drop us another buffer (which would be the same, in fact) */
++	
++	#if MOSX_USES_SEM && MOSX_SEM_V2	/* Suddenly, I have some kind of doubt: HOW COULD IT WORK??? */
++	while(sem_wait(env.semaphore)){}	/* We just have to wait a buffer fill request */
++	fillBuffer(env.to, (short *)buf, len / sizeof(short));
++	#else
++	while(fillBuffer(env.to, (short *)buf, len / sizeof(short)) < 0)	/* While the next buffer to write is not empty, we wait a bit... */
++	{
++		#ifdef DEBUG_MOSX
++		printf("|"); fflush(stdout);
++		#endif
++		#if MOSX_USES_SEM
++		sem_wait(env.semaphore);	/* This is a bug. I should wait for the semaphore once per empty buffer (and not each time fillBuffers() returns -1). See MOSX_SEM_V2; this was a too quickly modified part when I implemented MOSX_USES_SEM. */
++		#else
++		env.wait = 1;
++		sleep(3600);	/* This should be sufficient, shouldn't it? */
++		#endif
++	}
++	#endif
++	env.to = env.to->next;
++	
++	/* And we lauch action if not already done */
++	
++	if(!env.play)
++	{
++		if(AudioDeviceStart(env.device, playProc)) return(-1);
++		env.play = 1;
++	}
++	
++	return len;
++}
++
++int audio_close(struct audio_info_struct *ai)
++{
++	AudioDeviceStop(env.device, playProc);	/* No matter the error code, we want to close it (by brute force if necessary) */
++	AudioDeviceRemoveIOProc(env.device, playProc);
++	destroyBuffers();
++	#if MOSX_USES_SEM
++	sem_close(env.semaphore);
++	#endif
++	return 0;
++}
diff --git a/media-sound/mpg123/mpg123-0.59s-r11.ebuild b/media-sound/mpg123/mpg123-0.59s-r11.ebuild
new file mode 100644
index 0000000..2f2297c
--- /dev/null
+++ b/media-sound/mpg123/mpg123-0.59s-r11.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/mpg123/mpg123-0.59s-r9.ebuild,v 1.9 2005/06/27 03:27:55 j4rg0n Exp $
+
+inherit eutils
+
+PATCH_VER=1.5
+S="${WORKDIR}/${PN}"
+
+DESCRIPTION="Real Time mp3 player"
+HOMEPAGE="http://www.mpg123.de/"
+SRC_URI="http://www.mpg123.de/mpg123/${PN}-pre${PV}.tar.gz
+	 http://dev.gentoo.org/~eradicator/${PN}/${P}-gentoo-${PATCH_VER}.tar.bz2"
+
+LICENSE="as-is"
+SLOT="0"
+KEYWORDS="alpha amd64 hppa ia64 mips ppc ppc-macos ppc64 sparc x86"
+IUSE="mmx 3dnow esd nas oss rcc"
+
+RDEPEND="virtual/libc
+	 esd? ( media-sound/esound )
+	 nas? ( media-libs/nas )
+	 rcc? ( app-i18n/librcc )"
+
+# alsa-1 b0rks and it's not a simple fix
+#	 alsa? ( media-libs/alsa-lib )"
+
+DEPEND="${RDEPEND}
+	>=sys-apps/sed-4"
+
+PROVIDE="virtual/mpg123"
+
+PATCHDIR="${WORKDIR}/patches"
+
+src_unpack() {
+	unpack ${A}
+
+	cd ${S}
+
+	EPATCH_SUFFIX="patch"
+	epatch ${PATCHDIR}
+
+	if use ppc-macos;
+	then
+		einfo "Patching for OSX build"
+		epatch ${FILESDIR}/${PN}-osx.diff
+	fi
+	
+	use rcc && ( epatch ${FILESDIR}/${PN}-ds-rcc.patch || die )
+	aclocal
+	automake
+	autoconf
+
+	sed -i "s:${PV}-mh4:${PVR}:" version.h
+}
+
+src_compile() {
+	mkdir gentoo-bin
+
+	# The last one in $styles is the default
+	local styles
+
+	use nas && styles="${styles} -nas"
+	use oss && styles="${styles} -generic"
+	atype="linux"
+
+	case $ARCH in
+		ppc64)
+			use esd && styles="${styles} -ppc64-esd"
+			use oss && styles="${styles} -ppc64"
+
+			[ -z "${styles}" ] && styles="-ppc64"
+			;;
+		ppc)
+			if use ppc-macos; then
+				[ -z "${styles}" ] && styles="macos"
+				atype=""
+			else
+				use esd && styles="${styles} -ppc-esd"
+				use oss && styles="${styles} -ppc"
+
+				[ -z "${styles}" ] && styles="-ppc"
+			fi
+			;;
+		x86)
+			use esd && styles="${styles} -esd"
+			use esd && use 3dnow && styles="${styles} -3dnow-esd"
+			use oss && styles="${styles} -i486"
+			use oss && use mmx && styles="${styles} -mmx"
+			use oss && use 3dnow && styles="${styles} -3dnow"
+			# use alsa && styles="${styles} -alsa"
+			# use alsa && use 3dnow && styles="${styles} -3dnow-alsa"
+
+			[ -z "${styles}" ] && styles="-generic"
+			;;
+		sparc*)
+			use esd && styles="${styles} -sparc-esd"
+			styles="${styles} -sparc -generic"
+			;;
+		amd64)
+			use esd && styles="${styles} -x86_64-esd"
+			use oss && styles="${styles} -x86_64"
+			# use alsa && styles="${styles} -x86_64-alsa"
+
+			[ -z "${styles}" ] && styles="-x86_64"
+			;;
+		alpha)
+			use esd && styles="${styles} -alpha-esd"
+			use oss && styles="${styles} -alpha"
+			# use alsa && styles="${styles} -alpha-alsa"
+
+			[ -z "${styles}" ] && styles="-generic"
+			;;
+		mips|hppa|ia64)
+			# use alsa && styles="${styles} -mips-alsa"
+
+			[ -z "${styles}" ] && styles="-generic"
+			;;
+		*)
+			eerror "No support has been added for your architecture."
+			exit 1
+			;;
+	esac
+
+	for style in ${styles};
+	do
+		make clean ${atype}${style} CFLAGS="${CFLAGS}" || die
+		mv mpg123 gentoo-bin/mpg123${style}
+		[ -L "gentoo-bin/mpg123" ] && rm gentoo-bin/mpg123
+		ln -s mpg123${style} gentoo-bin/mpg123
+	done
+}
+
+src_install() {
+	dodir /usr
+	if use ppc-macos; then
+		cp -R gentoo-bin ${D}/usr/bin
+	else
+		cp -dR gentoo-bin ${D}/usr/bin
+	fi
+	doman mpg123.1
+	dodoc BENCHMARKING BUGS CHANGES COPYING JUKEBOX README* TODO
+}
diff --git a/media-sound/mpg123/mpg123-0.65-r1.ebuild b/media-sound/mpg123/mpg123-0.65-r1.ebuild
new file mode 100644
index 0000000..c19c1dd
--- /dev/null
+++ b/media-sound/mpg123/mpg123-0.65-r1.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/mpg123/mpg123-0.65.ebuild,v 1.2 2007/03/02 12:47:10 genstef Exp $
+
+inherit eutils
+
+DESCRIPTION="Real Time mp3 player"
+HOMEPAGE="http://www.mpg123.de/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+
+KEYWORDS="~alpha amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86"
+#SDS
+IUSE="mmx 3dnow alsa oss sdl esd nas jack portaudio rcc"
+
+RDEPEND="alsa? ( media-libs/alsa-lib )
+	sdl? ( !alsa? ( !oss? ( media-libs/libsdl ) ) )
+	esd? ( !alsa? ( !oss? ( !sdl? ( media-sound/esound ) ) ) )
+	nas? ( !alsa? ( !oss? ( !sdl? ( !esd? ( media-libs/nas ) ) ) ) )
+	jack? ( !alsa? ( !oss? ( !sdl? ( !esd? ( !nas? ( media-sound/jack-audio-connection-kit ) ) ) ) ) )
+	portaudio? ( !alsa? ( !oss? ( !sdl? ( !esd? ( !nas? ( !jack? ( media-libs/portaudio ) ) ) ) ) ) )
+	rcc? ( app-i18n/librcc )
+"
+#EDS
+
+DEPEND="${RDEPEND}"
+
+PROVIDE="virtual/mpg123"
+
+#SDS
+src_unpack() {
+	unpack ${A}
+
+	cd ${S}
+
+	use rcc && ( epatch ${FILESDIR}/${PN}-ds-rcc65.patch || die )
+	aclocal
+	automake
+	autoconf
+}
+#EDS
+
+src_compile() {
+	local audiodev
+	if use alsa; then
+		audiodev="alsa"
+	elif use oss; then
+		audiodev="oss"
+	elif use sdl; then
+		audiodev="sdl"
+	elif use esd; then
+		audiodev="esd"
+	elif use nas; then
+		audiodev="nas"
+	elif use jack; then
+		audiodev="jack"
+	elif use portaudio; then
+		audiodev="portaudio"
+	elif use ppc-macos; then
+		audiodev="macosx";
+	else audiodev="dummy"
+	fi
+
+	if use 3dnow; then
+		myconf="--with-cpu=3dnow"
+	elif use mmx; then
+		myconf="--with-cpu=mmx"
+	fi
+
+	einfo "Compiling with ${audiodev} audio output."
+	einfo "If that is not what you want, then select exactly ONE"
+	einfo "of the following USE flags:"
+	einfo "alsa oss sdl esd nas jack portaudio"
+	einfo "and recompile ${PN}."
+	epause 5
+	
+	econf \
+	      --with-optimization=0 \
+	      --with-audio=$audiodev \
+	      ${myconf} || die "econf failed"
+
+	emake || die "emake failed"
+}
+
+src_install() {
+	emake DESTDIR="${D}" install || die "emake install failed"
+}
diff --git a/media-sound/mpg123/mpg123-1.12.2-r2.ebuild b/media-sound/mpg123/mpg123-1.12.2-r2.ebuild
new file mode 100644
index 0000000..284dcdc
--- /dev/null
+++ b/media-sound/mpg123/mpg123-1.12.2-r2.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/mpg123/mpg123-1.12.2.ebuild,v 1.1 2010/06/21 11:25:41 chainsaw Exp $
+
+EAPI=2
+#SDS
+inherit toolchain-funcs eutils
+#EDS
+
+DESCRIPTION="a realtime MPEG 1.0/2.0/2.5 audio player for layers 1, 2 and 3"
+HOMEPAGE="http://www.mpg123.org/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2
+	http://www.mpg123.org/download/${P}.tar.bz2"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86 ~x86-fbsd"
+#SDS
+IUSE="3dnow 3dnowext alsa altivec ipv6 jack mmx nas oss portaudio pulseaudio sdl sse rcc"
+
+RDEPEND="alsa? ( media-libs/alsa-lib )
+	jack? ( media-sound/jack-audio-connection-kit )
+	nas? ( media-libs/nas )
+	portaudio? ( media-libs/portaudio )
+	pulseaudio? ( media-sound/pulseaudio )
+	sdl? ( media-libs/libsdl )
+	sys-devel/libtool
+	rcc? ( app-i18n/librcc )"
+#EDS
+
+DEPEND="${RDEPEND}
+	dev-util/pkgconfig"
+
+#SDS
+src_unpack() {
+	unpack ${A}
+
+	cd ${S}
+
+	use rcc && ( epatch ${FILESDIR}/${PN}-ds-rcc1121.patch || die )
+	rm -f Makefile.in aclocal.m4
+	libtoolize --copy --force
+	aclocal
+	automake
+	autoconf
+}
+#EDS
+
+src_configure() {
+	local _audio=dummy
+	local _output=dummy
+	local _cpu=generic_fpu
+
+	for flag in nas portaudio sdl oss jack alsa pulseaudio; do
+		if use ${flag}; then
+			_audio="${_audio} ${flag/pulseaudio/pulse}"
+			_output=${flag/pulseaudio/pulse}
+		fi
+	done
+
+	use altivec && _cpu=altivec
+
+	if [[ $(tc-arch) == amd64 ]]; then
+		use sse && _cpu=x86-64
+	else
+		use mmx && _cpu=mmx
+		use 3dnow && _cpu=3dnow
+		use sse && _cpu=x86
+		use 3dnowext && _cpu=x86
+	fi
+
+	econf \
+		--disable-dependency-tracking \
+		--with-optimization=0 \
+		--with-audio="${_audio}" \
+		--with-default-audio=${_output} \
+		--with-cpu=${_cpu} \
+		--enable-network \
+		$(use_enable ipv6)
+}
+
+src_install() {
+	emake DESTDIR="${D}" install || die
+	dodoc AUTHORS ChangeLog NEWS* README
+}
diff --git a/media-sound/mpg123/mpg123-1.7.3-r1.ebuild b/media-sound/mpg123/mpg123-1.7.3-r1.ebuild
new file mode 100644
index 0000000..e85df9f
--- /dev/null
+++ b/media-sound/mpg123/mpg123-1.7.3-r1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/mpg123/mpg123-1.7.3.ebuild,v 1.10 2009/06/09 18:53:40 armin76 Exp $
+
+EAPI=2
+
+#SDS
+inherit eutils
+#EDS
+
+DESCRIPTION="a realtime MPEG 1.0/2.0/2.5 audio player for layers 1, 2 and 3."
+HOMEPAGE="http://www.mpg123.org"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="alpha amd64 ~arm hppa ia64 ~mips ppc ppc64 sparc x86 ~x86-fbsd"
+
+#SDS
+IUSE="3dnow 3dnowext alsa altivec ipv6 jack mmx nas +network oss portaudio pulseaudio sdl sse rcc"
+
+RDEPEND="alsa? ( media-libs/alsa-lib )
+	jack? ( media-sound/jack-audio-connection-kit )
+	nas? ( media-libs/nas )
+	portaudio? ( media-libs/portaudio )
+	pulseaudio? ( media-sound/pulseaudio )
+	sdl? ( media-libs/libsdl )
+	rcc? ( app-i18n/librcc )"
+#EDS
+
+DEPEND="${RDEPEND}
+	dev-util/pkgconfig"
+
+#SDS
+src_unpack() {
+	unpack ${A}
+
+	cd ${S}
+
+	use rcc && ( epatch ${FILESDIR}/${PN}-ds-rcc173.patch || die )
+	aclocal
+	automake
+	autoconf
+}
+#EDS
+
+src_prepare() {
+	sed -i -e 's:-faltivec::' configure || die "sed failed"
+}
+
+src_configure() {
+	local myaudio
+
+	use alsa && myaudio="${myaudio} alsa"
+	use jack && myaudio="${myaudio} jack"
+	use nas && myaudio="${myaudio} nas"
+	use oss && myaudio="${myaudio} oss"
+	use portaudio && myaudio="${myaudio} portaudio"
+	use pulseaudio && myaudio="${myaudio} pulse"
+	use sdl && myaudio="${myaudio} sdl"
+
+	local mycpu
+
+	if use altivec; then
+		mycpu="--with-cpu=altivec"
+	elif use 3dnowext; then
+		mycpu="--with-cpu=3dnowext"
+	elif use 3dnow; then
+		mycpu="--with-cpu=3dnow"
+	elif use sse; then
+		mycpu="--with-cpu=sse"
+	elif use mmx; then
+		mycpu="--with-cpu=mmx"
+	fi
+
+	econf \
+		--disable-dependency-tracking \
+		--with-optimization=0 ${mycpu} \
+		--with-audio="${myaudio}" \
+		$(use_enable network) \
+		$(use_enable ipv6)
+}
+
+src_install() {
+	emake DESTDIR="${D}" install || die "emake install failed"
+	dodoc AUTHORS ChangeLog NEWS* README
+}
diff --git a/media-sound/xmms/Manifest b/media-sound/xmms/Manifest
new file mode 100644
index 0000000..2f3db2b
--- /dev/null
+++ b/media-sound/xmms/Manifest
@@ -0,0 +1,18 @@
+AUX xmms-1.2.10-gcc41.patch 312 SHA256 957f9680476e6d37e115de164951e80ed8f2f3de2adaf048cb19962908f911de SHA512 b629eab9848443668369e645f6a375e9fe7c63a4b1e97a0cc33998855bd17eccb5c7e9fcb1d12a2e512044d5c8635236a7bb1bcd6a72e335694c702441d6ee0e WHIRLPOOL 70c426e2fe333e5260a1177e8fd7423b43996c883f86569d0a08ef028782a30da0473a46722f242edff1e8fa9ded848d7f86dd2aa37bf17a139e9cc8dbcb5d74
+AUX xmms-1.2.10-locale_fix.patch 377 SHA256 a19abd607515ad70429ab57ca1ac67afdfec9205617afcdd233585224b68c79f SHA512 5f8e85fee08fe59757a7141c454b2c2c5795760a5313a148aa0a518ab136e861e7c12a89a127e488904b97cba767b73303d1b58ee35db94706547109c2971039 WHIRLPOOL 8be2815a6b3ef0176a6238f0cc88bfe0ad1215c9e25a75c97d61196c240f03337837aa2a695330079ecf9c09aa39fd54e8ff1c9fc8032e61dfad347d763fa5bf
+AUX xmms-ds-gentoofix.patch 1103 SHA256 52c1b407f12624afc9d69885c7decf24a6cd41434ddaad6886a808c27c0fd97c SHA512 d734cd28a15a1dcfc58e1c19b3b4e474db0e13e99253d2a93c265c552419b445ec653d2a16742e734e3c3c42469c7e4c5de6f24c2056c66839744c8833ee3ae5 WHIRLPOOL d4719d2dd9a1e04cdf618f527664cb8056e29805fcd6ab5935d96e1f94d4a750921433bac56e81679840a264bcebcd48fe6c1aee40f4c717a225ba8dfdaa111c
+DIST RusXMMS2-csa35.tar.bz2 128165 SHA256 3bb63e9ce6fd2bca289ebfbde13c7dd3c0b0ca734e676b647acac1ef293312b4 SHA512 0358ad80bf6ea8f6763c5cb8abf0879acd13863845acbb7738b617e88376b239cc76cf398d214cb44b8af346b2cde07f4447d2b6c07d37a821dc41de326a0edc WHIRLPOOL bde9d2cc33e36e03ad50f763282a199c5b6170127e1b0225b30be01a509cbf339f170547b9c4b60666b80be4365f0b348ae0e8e8ff45e32be7481e295acd7754
+DIST RusXMMS2-csa41.tar.bz2 96642 SHA256 e64df1956502e48c09ca60262efb7f1953a76d82a70c801e4797ca81e130e8d0 SHA512 8c589a6f6907b66bdd24ce7b61e1c7a2e4ccf025db325854320483246d44f90d0f0339c3fc96668a5da91e475b6770e419d6a1ffe51021f279fadcadc5dd1cfd WHIRLPOOL baa5ea277c0d5f02741ef3cd9cc5d7e674bd899556b296e386b216df5b247856ba899a16058e34c4921e552f421f8c5eeae0ede4b2a3ad95176064844a8f7358
+DIST RusXMMS2-csa43.tar.bz2 104507 SHA256 b2c0ac09a481b2d77c6e4750a19497f550d93eb961839df3db5ce5da714e6caf SHA512 80a8aea5cb587889c8569f633ba44e8b7d5586ac5dfd296c7ef23162739278d38c1cce2e7b7868f0a3cd2601444e99d11c80afcf9712867b7f9ce3ffb173380b WHIRLPOOL 45c9d119264b999cf54157b97347ca8d350b0caa3f3c6cc54718bc848ae732a0f0d317ada03fc8ca3001166e5723906ba6edc607ed3b6d3a85fcea0b8d2f9b33
+DIST gentoo_ice-xmms-0.2.tar.bz2 51839 SHA256 d1be63368b76f4a8b1d5b0e955cd7a77177f56a7f0b828c6603d8fd2836422b1 SHA512 e863a8f86073007c47ce8c20739aae4bff22e22a7ddc11556b12ae6ebb68654cec7310fdc9d05f2c47f81cf2591fe601b2eb12a2fd911c0a6118c9f3cc524f05 WHIRLPOOL b7a4409629a860021477f34f8886c40c005ea2ec34373d80e6a696323866e54f361e38c76b1ac536775ae5912308f11416e613dec791f21473f01a2fad35bcfd
+DIST gnomexmms.xpm 7979 SHA256 6cb7f07ffe47d51bf4483a57812b7c8cb7e35ca5be9d8f0c33512646097f1a71 SHA512 130f437b6b4eb1a717e79674ad84d753fa44ebb3a8bb65881c721851662dea74ba522d40c62fd4eb2b52b83237c2cef1682a62904f7c575e028283242a50e200 WHIRLPOOL c4f99a00324e6796b73f84a1546c27ac948fe4316b8c8bf0f5b0c655513d83796f1eff3b40559942d71a06358cf94b443b3ea5e598d35ba2653fd17dd08ab9c4
+DIST xmms-1.2.10-gentoo-m4-1.1.tar.bz2 26978 SHA256 e253fb2a515d3c7881617172f14fccad6a42cea660b8eaaeef9657114288e46f SHA512 d44d5a00e56a6eeab08ab60d438d156c36ab33bda0192d2d3e2316a791c10f55b9d50f0d9474b492f8dc9b055c7791260ad12b11ad6ca80fbc480ae44380f974 WHIRLPOOL 4c4b2df45ce445740ad7289a62b414fb51e6660d606f061a008665a8d0287761f1db7f05556e33e65da46dd3cb407ad3b7c2536c9c505acc9141eaed3b1d1a77
+DIST xmms-1.2.10-gentoo-patches-2.2.6.tar.bz2 545931 SHA256 b9a8633fe22af156ca1af65ac35d369242ce8016619d87647ba8389b8d52ba96 SHA512 4407f46216450aae5f92a4e39ef529c17da6281777536273f18e08c56c8b17ba8d85c5e86f2aa0ef5d1aa1561b57ed1817a821bbc325b6fdc29b889881b101e1 WHIRLPOOL 198a99bb090f8c3ee9ca87b0663a6add063ddc3ce333c879d0e928ccfd2aa0d338a2e7ce1419439b75ef5b7ba6727ac36067cc3101683ab50c589c82797d1455
+DIST xmms-1.2.10.tar.bz2 2418265 SHA256 ff9eabae2074043294a19ec7beaf0959bd076f6cd60558264faeec08f4a0eb6a SHA512 19f1daf2e76e4884acb5b70cf72dd6754376b398ff4bf5a52a4f1585cdb8c83514fabf6fef8855c35251b917806491330ea84b9d750c4e469e4b7b346d9b1129 WHIRLPOOL 6a4d98fb53c44aef2d3a6baadf6a38fe1d189a6978e7310fcbd1cf604b366346f366f99d390be7afe2368370a01e8db4e0196dfc9a187e82ee8a7a7b8be774bb
+DIST xmms-1.2.11-gentoo-patches-2.3.0.1.tar.bz2 16946 SHA256 fdfec6f54b65a8a17d4f6342cadc8c9b1f503f1d0672761c1bab963da6a86a91 SHA512 af6ba4a9a9cbde31e7c514f7f436411e5503f007b94b7313589d41c917d734595577416d60f3dcc5d91ccb9005ddde920dc1de04c346afef656e82953c4cb52f WHIRLPOOL ea65b53d969909a9c45a689204168837fdcc1dca4d68f7c2ac10029bb6edabce05eabbceb8373b4ba62026a7bae81cbdee3c27627dbb251478c4dd5274145bd7
+DIST xmms-1.2.11-gentoo-patches-2.3.0.tar.bz2 16739 SHA256 9aebef51507f49b25f771ed380c652950a1f04e9105fb7029ef3a1889ea19abd SHA512 2f9ae356197d23a5566fe436d616c27e1097e66630f4c2bba3fa28f7c1054b6ac17497a078a048383036df37bd60b3baa1be4d9e156a304cf53bfa7724972a2f WHIRLPOOL 0059af320fcfec62a65727023cb705f93a7bc6145c9373edb8723876c74245bf0bb796a6d58e3243c153315f52a911c1d9b09b1a4baa533971ba62a8974d3d82
+DIST xmms-1.2.11.tar.bz2 2581032 SHA256 7ec15c56632b6c82e61ccddeaefd372359af2f005708a58cdf3951c574b20390 SHA512 cc813f5e060b890aabc9d73f427daa94c474e2858390d336eba1d48bd082aeb295ce508d08d01067fe6341d0888af0dc6de185c54d0d2ee8519c915d7b849b94 WHIRLPOOL 58107054683e8cde21edfb9f1152fa35d21812999a179ad70326e2e87b60c8f64144d96e9be6ea5602a1b570ba40a18082b9ac8fd92422879abcf2df95dd1665
+EBUILD xmms-1.2.10-r24.ebuild 5165 SHA256 eaec93099b4084bc9183ccadf97a14ea30016438dd6aeb5c564d93ad4506c52d SHA512 6815569a6a6f3717e2f7ade38fa4b442f27b6a34512b2fe2a656971d6a96948a2bc5b305cfc4789cecb39dae41cd3206cf11412c519a2a4710354ef63a36ced4 WHIRLPOOL e19565aacc427775ab2ac4d795a143e9ec9e82e684d95a03ce3451caa2b3fc46ebd1907f89a7265fd98d97f007cb62625976755699ecb1f13bab17f73b1b504a
+EBUILD xmms-1.2.11-r2.ebuild 4951 SHA256 07ee239d32d1aabcdae7e25ef7b42cfa62915c42182908a1bac7c92eb28b0479 SHA512 85a3ae6b0d9d42ccf8cc25a39c8e6aa3f7b1b301d539d1418bd797e708b69740caa42ae4fa30ef0b2c6a544dd5ea93a6bdc4825c029b8ec396c2e59b47120d1d WHIRLPOOL 1e12c7a9d8bd79e3e085e52a1aada3ff73f5392d796328bc7b499b9ab38348c4d05c0c123acd6a84059f149937367a46c59ed28b68057497a8f4e9ce4b2b9bea
+EBUILD xmms-1.2.11-r3.ebuild 4913 SHA256 f7dfaab8631b1320e453b3bb35250e3c21c4b3cf9c814508ac909a6f8c65009d SHA512 ec1d6de3bee9306f136acad41bbaf228554461e9a151129d9d2800780143e908cb8da7905e809d5549e901c7ad7317cd15c77ae1f91bbe3e718ddbe85b9c3d9e WHIRLPOOL bb40479b96a586966d9b8fec30292964cf97152094dc528ca8422869e65d9839be2ceaf554edcd2e0a1cc13e43657afa3dfcbfac8ffc0b237019ece588789aca
+EBUILD xmms-1.2.11.ebuild 4949 SHA256 c0b66b7f8e1dcf9b818806f5b88c3fd4f41aa28fcedff3ce1e8c210ab57578ac SHA512 31eaafde1d15671917c7641478e9cbed2ffb97ef2346221c9215150589db648b97b7e308162f079ba0ef3816653fbe8203a75f6bd6700dc2c10f8f6818e5d870 WHIRLPOOL ae76d3b3e3f8bfe7651b2a8f159b6cf8847ab6770c3a0b90c4144e8dad90b4875fc086ba1f42e72d5848867a172f28c12a6bf9d96401f6f6ea0dc6d414f5ff6a
diff --git a/media-sound/xmms/files/xmms-1.2.10-gcc41.patch b/media-sound/xmms/files/xmms-1.2.10-gcc41.patch
new file mode 100644
index 0000000..0041851
--- /dev/null
+++ b/media-sound/xmms/files/xmms-1.2.10-gcc41.patch
@@ -0,0 +1,10 @@
+--- xmms-1.2.10.orig/Output/esd/esdout.h        2005-11-22 19:53:38.000000000 +0600
++++ xmms-1.2.10/Output/esd/esdout.h     2005-11-22 19:56:04.197329014 +0600
+@@ -58,6 +58,7 @@
+ ESDConfig;
+
+ extern ESDConfig esd_cfg;
++extern void esdout_reset_playerid(void);
+
+ void esdout_init(void);
+ void esdout_about(void);
diff --git a/media-sound/xmms/files/xmms-1.2.10-locale_fix.patch b/media-sound/xmms/files/xmms-1.2.10-locale_fix.patch
new file mode 100644
index 0000000..cfb1cd1
--- /dev/null
+++ b/media-sound/xmms/files/xmms-1.2.10-locale_fix.patch
@@ -0,0 +1,11 @@
+diff -ruN xmms-1.2.10.orig/xmms/playlist.c xmms-1.2.10/xmms/playlist.c
+--- xmms-1.2.10.orig/xmms/playlist.c	2005-11-25 05:14:47.000000000 +0600
++++ xmms-1.2.10/xmms/playlist.c	2005-11-25 05:18:59.894581237 +0600
+@@ -23,6 +23,7 @@
+ #include "libxmms/rcc.h"
+ #include <sys/stat.h>
+ #include <unistd.h>
++#include <locale.h>
+ 
+ GList *playlist = NULL;
+ GList *shuffle_list = NULL;
diff --git a/media-sound/xmms/files/xmms-ds-gentoofix.patch b/media-sound/xmms/files/xmms-ds-gentoofix.patch
new file mode 100644
index 0000000..7a1ee35
--- /dev/null
+++ b/media-sound/xmms/files/xmms-ds-gentoofix.patch
@@ -0,0 +1,36 @@
+diff -dPNur xmms-1.2.10-gentoo/xmms/main.c xmms-1.2.10-new/xmms/main.c
+--- xmms-1.2.10-gentoo/xmms/main.c	2005-12-29 02:48:54.000000000 +0000
++++ xmms-1.2.10-new/xmms/main.c	2005-12-29 02:51:06.000000000 +0000
+@@ -3017,6 +3017,8 @@
+ 	
+ }
+ 
++static sig_atomic_t exit_flag = 0;
++
+ gint idle_func(gpointer data)
+ {
+ 	gint time, t, length;
+@@ -3026,6 +3028,8 @@
+ 
+ 	static GTimer *pause_timer = NULL;
+ 
++	if (exit_flag) mainwin_quit_cb();
++
+ 	if (get_input_playing())
+ 	{
+ 		GDK_THREADS_ENTER();
+@@ -3393,13 +3397,7 @@
+ /* Try to exit nicely when receiving a nice exit signal */
+ void sigterm_handler(int sig)
+ {
+-	/* Original author of patch said that you should not use mainwin_quit_cb(),
+-	 * but his way deadlock xmms, and it anyhow just calls ctrlsocket stuff with
+-	 * with CMD_QUIT, which anyhow calls mainwin_quit_cb() in turn.  This is not
+-	 * entirely clean, but works.
+-	 * <azarah@gentoo.org> (19 Jan 2003)
+-	xmms_remote_quit(ctrlsocket_get_session_id()); */
+-	mainwin_quit_cb();
++	exit_flag = 1;
+ }
+ 
+ static gboolean pposition_configure(GtkWidget *w, GdkEventConfigure *event, gpointer data)
diff --git a/media-sound/xmms/xmms-1.2.10-r24.ebuild b/media-sound/xmms/xmms-1.2.10-r24.ebuild
new file mode 100644
index 0000000..2572491
--- /dev/null
+++ b/media-sound/xmms/xmms-1.2.10-r24.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: 
+
+inherit flag-o-matic eutils libtool gnuconfig
+
+PATCH_VER="2.2.6"
+M4_VER="1.1"
+
+PATCHDIR="${WORKDIR}/patches"
+
+DESCRIPTION="X MultiMedia System"
+HOMEPAGE="http://www.xmms.org/"
+SRC_URI="http://www.xmms.org/files/1.2.x/${P}.tar.bz2
+	mirror://gentoo/gentoo_ice-xmms-0.2.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/${P}-gentoo-m4-${M4_VER}.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/${P}-gentoo-patches-${PATCH_VER}.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/gnomexmms.xpm
+	http://dside.dyndns.org/files/rusxmms/RusXMMS2-csa35.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86"
+IUSE="nls esd mmx vorbis 3dnow mikmod directfb alsa oss arts jack sndfile lirc flac mp3 rcc"
+
+DEPEND="=x11-libs/gtk+-1.2*
+	rcc? ( app-i18n/librcc )"
+
+RDEPEND="${DEPEND}
+	directfb? ( dev-libs/DirectFB )
+	app-arch/unzip"
+
+#We want these things in DEPEND only
+DEPEND="${DEPEND}
+	>=sys-devel/automake-1.7
+	>=sys-devel/autoconf-2.5
+	sys-devel/libtool
+	nls? ( dev-util/intltool
+	       dev-lang/perl
+	       sys-devel/gettext )"
+
+# USE flags pull in xmms plugins
+PDEPEND="lirc? ( media-plugins/xmms-lirc )
+
+	 flac? ( media-libs/flac )
+	 mikmod? ( media-plugins/xmms-mikmod )
+	 mp3? ( >=media-plugins/xmms-mpg123-1.2.10-r5 )
+	 vorbis? ( >=media-plugins/xmms-vorbis-1.2.10-r1 )
+	 sndfile? ( media-plugins/xmms-sndfile )
+
+	 alsa? ( media-plugins/xmms-alsa )
+	 arts? ( media-plugins/xmms-arts )
+	 jack? ( media-plugins/xmms-jack )
+	 esd? ( media-plugins/xmms-esd )
+	 oss? ( media-plugins/xmms-oss )"
+
+src_unpack() {
+	if ! has_version '>=sys-devel/gettext-0.14.1'; then
+		eerror "Sorry, you seem to have USE=-nls with an old version of gettext"
+		eerror "on your system.  Unfortunately, that will cause xmms to fail emerging."
+		eerror "Please either remove gettext or upgrade to version 0.14.1."
+	fi
+
+	unpack ${A}
+	cd ${S}
+
+	EPATCH_SUFFIX="patch"
+	epatch ${PATCHDIR}
+	
+#SDS
+	use rcc && ../RusXMMS2/apply-gentoo.sh
+
+	# Fixes buggy Gentoo patch
+	epatch ${FILESDIR}/xmms-ds-gentoofix.patch
+	
+	# Fixes compilation with gcc 4.1 (By Amax)
+	epatch ${FILESDIR}/xmms-1.2.10-gcc41.patch
+	epatch ${FILESDIR}/xmms-1.2.10-locale_fix.patch
+#EDS
+	
+
+	export WANT_AUTOMAKE=1.7
+	export WANT_AUTOCONF=2.5
+
+	sed -i 's:Output Input Effect General Visualization::' Makefile.am
+
+	for dir in . libxmms; do
+		cd ${S}/${dir}
+		rm acinclude.m4
+		libtoolize --force --copy || die "libtoolize --force --copy failed"
+		[ ! -f ltmain.sh ] && ln -s ../ltmain.sh
+		aclocal -I ${WORKDIR}/m4 || die "aclocal failed"
+		autoheader || die "autoheader failed"
+		automake --gnu --add-missing --include-deps --force-missing --copy || die "automake failed"
+		autoconf || die "autoconf failed"
+	done
+
+	if use nls; then
+		cd ${S}/po
+		cp ${FILESDIR}/po-update.pl update.pl
+		perl update.pl --pot
+	fi
+
+	cd ${S}
+	gnuconfig_update
+}
+
+src_compile() {
+	export EGREP="grep -E"
+	filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+
+	local myconf=""
+
+	if use !amd64 && { use 3dnow || use mmx; }; then
+		myconf="${myconf} --enable-simd"
+	else
+		myconf="${myconf} --disable-simd"
+	fi
+
+	# Please see Bug 58092 for details
+	use ppc64 && replace-flags "-O[2-9]" "-O1"
+
+	econf `use_enable nls` ${myconf} || die
+
+	# For some reason, gmake doesn't export this for libtool's consumption
+	emake -j1 || die
+}
+
+src_install() {
+	export EGREP="grep -E"
+	make DESTDIR="${D}" install || die
+
+	dodoc AUTHORS ChangeLog FAQ NEWS README TODO
+	newdoc ${PATCHDIR}/README README.patches
+	newdoc ${PATCHDIR}/ChangeLog ChangeLog.patches
+
+	keepdir /usr/share/xmms/Skins
+	insinto /usr/share/pixmaps/
+	newins ${DISTDIR}/gnomexmms.xpm xmms.xpm
+	doins xmms/xmms_logo.xpm
+	insinto /usr/share/pixmaps/mini
+	doins xmms/xmms_mini.xpm
+
+	insinto /etc/X11/wmconfig
+	donewins xmms/xmms.wmconfig xmms
+
+	insinto /usr/share/applications
+	doins ${FILESDIR}/xmms.desktop
+
+	# Add the sexy Gentoo Ice skin
+	insinto /usr/share/xmms/Skins/gentoo_ice
+	doins ${WORKDIR}/gentoo_ice/*
+	docinto gentoo_ice
+	dodoc ${WORKDIR}/README
+
+	insinto /usr/include/xmms/libxmms
+	doins ${S}/libxmms/*.h
+
+	insinto /usr/include/xmms
+	doins ${S}/xmms/i18n.h
+}
+
+pkg_postinst() {
+	einfo "media-sound/xmms now just provides the xmms binary and libxmms."
+	einfo "All plugins that were packaged with xmms are now provided by other"
+	einfo "packages in media-plugins.  Some of these are automatically pulled in"
+	einfo "based on USE flags.  Others you will need to emerge manually.  The"
+	einfo "following is a list of packages which were previously provided by"
+	einfo "media-sound/xmms that are not automatically emerged:"
+	einfo "media-plugins/xmms-blur-scope"
+	einfo "media-plugins/xmms-cdaudio"
+	einfo "media-plugins/xmms-disk-writer"
+	einfo "media-plugins/xmms-echo"
+	einfo "media-plugins/xmms-ir"
+	einfo "media-plugins/xmms-joystick"
+	einfo "media-plugins/xmms-opengl-spectrum"
+	einfo "media-plugins/xmms-sanalyzer"
+	einfo "media-plugins/xmms-song-change"
+	einfo "media-plugins/xmms-stereo"
+	einfo "media-plugins/xmms-tonegen"
+	einfo "media-plugins/xmms-voice"
+	einfo "media-plugins/xmms-wav"
+}
diff --git a/media-sound/xmms/xmms-1.2.11-r2.ebuild b/media-sound/xmms/xmms-1.2.11-r2.ebuild
new file mode 100644
index 0000000..d208d50
--- /dev/null
+++ b/media-sound/xmms/xmms-1.2.11-r2.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: 
+
+inherit flag-o-matic eutils libtool gnuconfig
+
+PATCH_VER="2.3.0.1"
+M4_VER="1.1"
+
+PATCHDIR="${WORKDIR}/patches"
+
+DESCRIPTION="X MultiMedia System"
+HOMEPAGE="http://www.xmms.org/"
+SRC_URI="http://www.xmms.org/files/1.2.x/${P}.tar.bz2
+	mirror://gentoo/gentoo_ice-xmms-0.2.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/${PN}-1.2.10-gentoo-m4-${M4_VER}.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/${P}-gentoo-patches-${PATCH_VER}.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/gnomexmms.xpm
+	http://dside.dyndns.org/files/rusxmms/RusXMMS2-csa43.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86"
+IUSE="nls esd mmx vorbis 3dnow mikmod directfb alsa oss arts jack sndfile lirc flac mp3 rcc"
+
+DEPEND="=x11-libs/gtk+-1.2*
+	rcc? ( app-i18n/librcc )"
+
+RDEPEND="${DEPEND}
+	directfb? ( dev-libs/DirectFB )
+	app-arch/unzip"
+
+#We want these things in DEPEND only
+DEPEND="${DEPEND}
+	>=sys-devel/automake-1.7
+	>=sys-devel/autoconf-2.5
+	sys-devel/libtool
+	nls? ( dev-util/intltool
+	       dev-lang/perl
+	       sys-devel/gettext )"
+
+# USE flags pull in xmms plugins
+PDEPEND="lirc? ( media-plugins/xmms-lirc )
+
+	 flac? ( media-libs/flac )
+	 mikmod? ( media-plugins/xmms-mikmod )
+	 mp3? ( >=media-plugins/xmms-mpg123-1.2.11 )
+	 vorbis? ( >=media-plugins/xmms-vorbis-1.2.11 )
+	 sndfile? ( media-plugins/xmms-sndfile )
+
+	 alsa? ( media-plugins/xmms-alsa )
+	 esd? ( media-plugins/xmms-esd )
+	 arts? ( media-plugins/xmms-arts )
+	 jack? ( media-plugins/xmms-jack )
+	 oss? ( media-plugins/xmms-oss )"
+
+src_unpack() {
+	if ! has_version '>=sys-devel/gettext-0.14.1'; then
+		eerror "Sorry, you seem to have USE=-nls with an old version of gettext"
+		eerror "on your system.  Unfortunately, that will cause xmms to fail emerging."
+		eerror "Please either remove gettext or upgrade to version 0.14.1."
+	fi
+
+	unpack ${A}
+	cd ${S}
+
+#SDS
+	use rcc && ../RusXMMS2/apply.sh
+#EDS
+	
+	EPATCH_SUFFIX="patch"
+	epatch ${PATCHDIR}
+
+
+#	export WANT_AUTOMAKE=1.7
+#	export WANT_AUTOCONF=2.5
+
+	sed -i 's:Output Input Effect General Visualization::' Makefile.am
+
+	for dir in . libxmms; do
+		cd ${S}/${dir}
+		rm acinclude.m4
+		libtoolize --force --copy || die "libtoolize --force --copy failed"
+		[ ! -f ltmain.sh ] && ln -s ../ltmain.sh
+		aclocal -I ${WORKDIR}/m4 || die "aclocal failed"
+		autoheader || die "autoheader failed"
+		automake --gnu --add-missing --include-deps --force-missing --copy || die "automake failed"
+		autoconf || die "autoconf failed"
+	done
+
+	if use nls; then
+		cd ${S}/po
+		cp ${FILESDIR}/po-update.pl update.pl
+		perl update.pl --pot
+	fi
+
+	cd ${S}
+	gnuconfig_update
+}
+
+src_compile() {
+	export EGREP="grep -E"
+	filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+
+	local myconf=""
+
+	if use !amd64 && { use 3dnow || use mmx; }; then
+		myconf="${myconf} --enable-simd"
+	else
+		myconf="${myconf} --disable-simd"
+	fi
+
+	# Please see Bug 58092 for details
+	use ppc64 && replace-flags "-O[2-9]" "-O1"
+
+	econf `use_enable nls` ${myconf} || die
+
+	# For some reason, gmake doesn't export this for libtool's consumption
+	emake -j1 || die
+}
+
+src_install() {
+	export EGREP="grep -E"
+	make DESTDIR="${D}" install || die
+
+	dodoc AUTHORS ChangeLog FAQ NEWS README TODO
+	newdoc ${PATCHDIR}/README README.patches
+	newdoc ${PATCHDIR}/ChangeLog ChangeLog.patches
+
+	keepdir /usr/share/xmms/Skins
+	insinto /usr/share/pixmaps/
+	newins ${DISTDIR}/gnomexmms.xpm xmms.xpm
+	doins xmms/xmms_logo.xpm
+	insinto /usr/share/pixmaps/mini
+	doins xmms/xmms_mini.xpm
+
+	insinto /etc/X11/wmconfig
+	donewins xmms/xmms.wmconfig xmms
+
+	insinto /usr/share/applications
+	doins ${FILESDIR}/xmms.desktop
+
+	# Add the sexy Gentoo Ice skin
+	insinto /usr/share/xmms/Skins/gentoo_ice
+	doins ${WORKDIR}/gentoo_ice/*
+	docinto gentoo_ice
+	dodoc ${WORKDIR}/README
+
+	insinto /usr/include/xmms/libxmms
+	doins ${S}/libxmms/*.h
+
+	insinto /usr/include/xmms
+	doins ${S}/xmms/i18n.h
+}
+
+pkg_postinst() {
+	einfo "media-sound/xmms now just provides the xmms binary and libxmms."
+	einfo "All plugins that were packaged with xmms are now provided by other"
+	einfo "packages in media-plugins.  Some of these are automatically pulled in"
+	einfo "based on USE flags.  Others you will need to emerge manually.  The"
+	einfo "following is a list of packages which were previously provided by"
+	einfo "media-sound/xmms that are not automatically emerged:"
+	einfo "media-plugins/xmms-blur-scope"
+	einfo "media-plugins/xmms-cdaudio"
+	einfo "media-plugins/xmms-disk-writer"
+	einfo "media-plugins/xmms-echo"
+	einfo "media-plugins/xmms-ir"
+	einfo "media-plugins/xmms-joystick"
+	einfo "media-plugins/xmms-opengl-spectrum"
+	einfo "media-plugins/xmms-sanalyzer"
+	einfo "media-plugins/xmms-song-change"
+	einfo "media-plugins/xmms-stereo"
+	einfo "media-plugins/xmms-tonegen"
+	einfo "media-plugins/xmms-voice"
+	einfo "media-plugins/xmms-wav"
+}
diff --git a/media-sound/xmms/xmms-1.2.11-r3.ebuild b/media-sound/xmms/xmms-1.2.11-r3.ebuild
new file mode 100644
index 0000000..f0d38eb
--- /dev/null
+++ b/media-sound/xmms/xmms-1.2.11-r3.ebuild
@@ -0,0 +1,175 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: 
+
+inherit flag-o-matic eutils libtool gnuconfig
+
+PATCH_VER="2.3.0.1"
+M4_VER="1.1"
+
+PATCHDIR="${WORKDIR}/patches"
+
+DESCRIPTION="X MultiMedia System"
+HOMEPAGE="http://www.xmms.org/"
+SRC_URI="http://www.xmms.org/files/1.2.x/${P}.tar.bz2
+	mirror://gentoo/gentoo_ice-xmms-0.2.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/${PN}-1.2.10-gentoo-m4-${M4_VER}.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/${P}-gentoo-patches-${PATCH_VER}.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/gnomexmms.xpm
+	http://dside.dyndns.org/files/rusxmms/RusXMMS2-csa43.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86"
+IUSE="nls mmx vorbis 3dnow mikmod directfb alsa oss arts jack sndfile lirc flac mp3 rcc"
+
+DEPEND="=x11-libs/gtk+-1.2*
+	rcc? ( app-i18n/librcc )"
+
+RDEPEND="${DEPEND}
+	directfb? ( dev-libs/DirectFB )
+	app-arch/unzip"
+
+#We want these things in DEPEND only
+DEPEND="${DEPEND}
+	>=sys-devel/automake-1.7
+	>=sys-devel/autoconf-2.5
+	sys-devel/libtool
+	nls? ( dev-util/intltool
+	       dev-lang/perl
+	       sys-devel/gettext )"
+
+# USE flags pull in xmms plugins
+PDEPEND="lirc? ( media-plugins/xmms-lirc )
+
+	 flac? ( media-libs/flac )
+	 mikmod? ( media-plugins/xmms-mikmod )
+	 mp3? ( >=media-plugins/xmms-mpg123-1.2.11 )
+	 vorbis? ( >=media-plugins/xmms-vorbis-1.2.11 )
+	 sndfile? ( media-plugins/xmms-sndfile )
+
+	 alsa? ( media-plugins/xmms-alsa )
+	 arts? ( media-plugins/xmms-arts )
+	 jack? ( media-plugins/xmms-jack )
+	 oss? ( media-plugins/xmms-oss )"
+
+src_unpack() {
+	if ! has_version '>=sys-devel/gettext-0.14.1'; then
+		eerror "Sorry, you seem to have USE=-nls with an old version of gettext"
+		eerror "on your system.  Unfortunately, that will cause xmms to fail emerging."
+		eerror "Please either remove gettext or upgrade to version 0.14.1."
+	fi
+
+	unpack ${A}
+	cd ${S}
+
+#SDS
+	use rcc && ../RusXMMS2/apply.sh
+#EDS
+	
+	EPATCH_SUFFIX="patch"
+	epatch ${PATCHDIR}
+
+
+#	export WANT_AUTOMAKE=1.7
+#	export WANT_AUTOCONF=2.5
+
+	sed -i 's:Output Input Effect General Visualization::' Makefile.am
+
+	for dir in . libxmms; do
+		cd ${S}/${dir}
+		rm acinclude.m4
+		libtoolize --force --copy || die "libtoolize --force --copy failed"
+		[ ! -f ltmain.sh ] && ln -s ../ltmain.sh
+		aclocal -I ${WORKDIR}/m4 || die "aclocal failed"
+		autoheader || die "autoheader failed"
+		automake --gnu --add-missing --include-deps --force-missing --copy || die "automake failed"
+		autoconf || die "autoconf failed"
+	done
+
+	if use nls; then
+		cd ${S}/po
+		cp ${FILESDIR}/po-update.pl update.pl
+		perl update.pl --pot
+	fi
+
+	cd ${S}
+	gnuconfig_update
+}
+
+src_compile() {
+	export EGREP="grep -E"
+	filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+
+	local myconf=""
+
+	if use !amd64 && { use 3dnow || use mmx; }; then
+		myconf="${myconf} --enable-simd"
+	else
+		myconf="${myconf} --disable-simd"
+	fi
+
+	# Please see Bug 58092 for details
+	use ppc64 && replace-flags "-O[2-9]" "-O1"
+
+	econf `use_enable nls` ${myconf} || die
+
+	# For some reason, gmake doesn't export this for libtool's consumption
+	emake -j1 || die
+}
+
+src_install() {
+	export EGREP="grep -E"
+	make DESTDIR="${D}" install || die
+
+	dodoc AUTHORS ChangeLog FAQ NEWS README TODO
+	newdoc ${PATCHDIR}/README README.patches
+	newdoc ${PATCHDIR}/ChangeLog ChangeLog.patches
+
+	keepdir /usr/share/xmms/Skins
+	insinto /usr/share/pixmaps/
+	newins ${DISTDIR}/gnomexmms.xpm xmms.xpm
+	doins xmms/xmms_logo.xpm
+	insinto /usr/share/pixmaps/mini
+	doins xmms/xmms_mini.xpm
+
+	insinto /etc/X11/wmconfig
+	donewins xmms/xmms.wmconfig xmms
+
+	insinto /usr/share/applications
+	doins ${FILESDIR}/xmms.desktop
+
+	# Add the sexy Gentoo Ice skin
+	insinto /usr/share/xmms/Skins/gentoo_ice
+	doins ${WORKDIR}/gentoo_ice/*
+	docinto gentoo_ice
+	dodoc ${WORKDIR}/README
+
+	insinto /usr/include/xmms/libxmms
+	doins ${S}/libxmms/*.h
+
+	insinto /usr/include/xmms
+	doins ${S}/xmms/i18n.h
+}
+
+pkg_postinst() {
+	einfo "media-sound/xmms now just provides the xmms binary and libxmms."
+	einfo "All plugins that were packaged with xmms are now provided by other"
+	einfo "packages in media-plugins.  Some of these are automatically pulled in"
+	einfo "based on USE flags.  Others you will need to emerge manually.  The"
+	einfo "following is a list of packages which were previously provided by"
+	einfo "media-sound/xmms that are not automatically emerged:"
+	einfo "media-plugins/xmms-blur-scope"
+	einfo "media-plugins/xmms-cdaudio"
+	einfo "media-plugins/xmms-disk-writer"
+	einfo "media-plugins/xmms-echo"
+	einfo "media-plugins/xmms-ir"
+	einfo "media-plugins/xmms-joystick"
+	einfo "media-plugins/xmms-opengl-spectrum"
+	einfo "media-plugins/xmms-sanalyzer"
+	einfo "media-plugins/xmms-song-change"
+	einfo "media-plugins/xmms-stereo"
+	einfo "media-plugins/xmms-tonegen"
+	einfo "media-plugins/xmms-voice"
+	einfo "media-plugins/xmms-wav"
+}
diff --git a/media-sound/xmms/xmms-1.2.11.ebuild b/media-sound/xmms/xmms-1.2.11.ebuild
new file mode 100644
index 0000000..2b09178
--- /dev/null
+++ b/media-sound/xmms/xmms-1.2.11.ebuild
@@ -0,0 +1,176 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: 
+
+inherit flag-o-matic eutils libtool gnuconfig
+
+PATCH_VER="2.3.0"
+M4_VER="1.1"
+
+PATCHDIR="${WORKDIR}/patches"
+
+DESCRIPTION="X MultiMedia System"
+HOMEPAGE="http://www.xmms.org/"
+SRC_URI="http://www.xmms.org/files/1.2.x/${P}.tar.bz2
+	mirror://gentoo/gentoo_ice-xmms-0.2.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/${PN}-1.2.10-gentoo-m4-${M4_VER}.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/${P}-gentoo-patches-${PATCH_VER}.tar.bz2
+	http://dside.dyndns.org/files/rusxmms/gnomexmms.xpm
+	http://dside.dyndns.org/files/rusxmms/RusXMMS2-csa41.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86"
+IUSE="nls esd mmx vorbis 3dnow mikmod directfb alsa oss arts jack sndfile lirc flac mp3 rcc"
+
+DEPEND="=x11-libs/gtk+-1.2*
+	rcc? ( app-i18n/librcc )"
+
+RDEPEND="${DEPEND}
+	directfb? ( dev-libs/DirectFB )
+	app-arch/unzip"
+
+#We want these things in DEPEND only
+DEPEND="${DEPEND}
+	>=sys-devel/automake-1.7
+	>=sys-devel/autoconf-2.5
+	sys-devel/libtool
+	nls? ( dev-util/intltool
+	       dev-lang/perl
+	       sys-devel/gettext )"
+
+# USE flags pull in xmms plugins
+PDEPEND="lirc? ( media-plugins/xmms-lirc )
+
+	 flac? ( media-libs/flac )
+	 mikmod? ( media-plugins/xmms-mikmod )
+	 mp3? ( >=media-plugins/xmms-mpg123-1.2.11 )
+	 vorbis? ( >=media-plugins/xmms-vorbis-1.2.11 )
+	 sndfile? ( media-plugins/xmms-sndfile )
+
+	 alsa? ( media-plugins/xmms-alsa )
+	 arts? ( media-plugins/xmms-arts )
+	 jack? ( media-plugins/xmms-jack )
+	 esd? ( media-plugins/xmms-esd )
+	 oss? ( media-plugins/xmms-oss )"
+
+src_unpack() {
+	if ! has_version '>=sys-devel/gettext-0.14.1'; then
+		eerror "Sorry, you seem to have USE=-nls with an old version of gettext"
+		eerror "on your system.  Unfortunately, that will cause xmms to fail emerging."
+		eerror "Please either remove gettext or upgrade to version 0.14.1."
+	fi
+
+	unpack ${A}
+	cd ${S}
+
+#SDS
+	use rcc && ../RusXMMS2/apply.sh
+#EDS
+	
+	EPATCH_SUFFIX="patch"
+	epatch ${PATCHDIR}
+
+
+#	export WANT_AUTOMAKE=1.7
+#	export WANT_AUTOCONF=2.5
+
+	sed -i 's:Output Input Effect General Visualization::' Makefile.am
+
+	for dir in . libxmms; do
+		cd ${S}/${dir}
+		rm acinclude.m4
+		libtoolize --force --copy || die "libtoolize --force --copy failed"
+		[ ! -f ltmain.sh ] && ln -s ../ltmain.sh
+		aclocal -I ${WORKDIR}/m4 || die "aclocal failed"
+		autoheader || die "autoheader failed"
+		automake --gnu --add-missing --include-deps --force-missing --copy || die "automake failed"
+		autoconf || die "autoconf failed"
+	done
+
+	if use nls; then
+		cd ${S}/po
+		cp ${FILESDIR}/po-update.pl update.pl
+		perl update.pl --pot
+	fi
+
+	cd ${S}
+	gnuconfig_update
+}
+
+src_compile() {
+	export EGREP="grep -E"
+	filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+
+	local myconf=""
+
+	if use !amd64 && { use 3dnow || use mmx; }; then
+		myconf="${myconf} --enable-simd"
+	else
+		myconf="${myconf} --disable-simd"
+	fi
+
+	# Please see Bug 58092 for details
+	use ppc64 && replace-flags "-O[2-9]" "-O1"
+
+	econf `use_enable nls` ${myconf} || die
+
+	# For some reason, gmake doesn't export this for libtool's consumption
+	emake -j1 || die
+}
+
+src_install() {
+	export EGREP="grep -E"
+	make DESTDIR="${D}" install || die
+
+	dodoc AUTHORS ChangeLog FAQ NEWS README TODO
+	newdoc ${PATCHDIR}/README README.patches
+	newdoc ${PATCHDIR}/ChangeLog ChangeLog.patches
+
+	keepdir /usr/share/xmms/Skins
+	insinto /usr/share/pixmaps/
+	newins ${DISTDIR}/gnomexmms.xpm xmms.xpm
+	doins xmms/xmms_logo.xpm
+	insinto /usr/share/pixmaps/mini
+	doins xmms/xmms_mini.xpm
+
+	insinto /etc/X11/wmconfig
+	donewins xmms/xmms.wmconfig xmms
+
+	insinto /usr/share/applications
+	doins ${FILESDIR}/xmms.desktop
+
+	# Add the sexy Gentoo Ice skin
+	insinto /usr/share/xmms/Skins/gentoo_ice
+	doins ${WORKDIR}/gentoo_ice/*
+	docinto gentoo_ice
+	dodoc ${WORKDIR}/README
+
+	insinto /usr/include/xmms/libxmms
+	doins ${S}/libxmms/*.h
+
+	insinto /usr/include/xmms
+	doins ${S}/xmms/i18n.h
+}
+
+pkg_postinst() {
+	einfo "media-sound/xmms now just provides the xmms binary and libxmms."
+	einfo "All plugins that were packaged with xmms are now provided by other"
+	einfo "packages in media-plugins.  Some of these are automatically pulled in"
+	einfo "based on USE flags.  Others you will need to emerge manually.  The"
+	einfo "following is a list of packages which were previously provided by"
+	einfo "media-sound/xmms that are not automatically emerged:"
+	einfo "media-plugins/xmms-blur-scope"
+	einfo "media-plugins/xmms-cdaudio"
+	einfo "media-plugins/xmms-disk-writer"
+	einfo "media-plugins/xmms-echo"
+	einfo "media-plugins/xmms-ir"
+	einfo "media-plugins/xmms-joystick"
+	einfo "media-plugins/xmms-opengl-spectrum"
+	einfo "media-plugins/xmms-sanalyzer"
+	einfo "media-plugins/xmms-song-change"
+	einfo "media-plugins/xmms-stereo"
+	einfo "media-plugins/xmms-tonegen"
+	einfo "media-plugins/xmms-voice"
+	einfo "media-plugins/xmms-wav"
+}
diff --git a/media-sound/xmmsctrl/Manifest b/media-sound/xmmsctrl/Manifest
new file mode 100644
index 0000000..022ad4c
--- /dev/null
+++ b/media-sound/xmmsctrl/Manifest
@@ -0,0 +1,4 @@
+AUX xmmsctrl-1.8-jump.patch 457 RMD160 6e8ff2fd4823e031131e131ad7219cb32e6bada1 SHA1 37017f2442f0cee82221d16705e682619b398e5e SHA256 d567b8049c644fa2b9d46fbdccff284c5634c5f06df1de7ebd716a9579c7e23f
+AUX xmmsctrl.bash-completion 1055 RMD160 78eea48e425d0a96dea344bf97dc1fa8afd15d23 SHA1 0a5b5c5bcd2a67dc6602d60cb770ce3ca0b191f6 SHA256 ad42a545a330b4fb7d486f55b2630383ccb634b75706fcf92874fc658a99aca1
+DIST xmmsctrl-1.9.tar.gz 14336 RMD160 e878e512530fe03c956926dd0d20727ba18e9f8a SHA1 771500abf504077c85f4052f0977a607244f82e1 SHA256 26ba9a4b9e6dbc7839b8a6fc234774fa2a9cc4e887e947cd6681d3d42674b2cb
+EBUILD xmmsctrl-1.9.ebuild 806 RMD160 d20939dc5da8e80851e5b81ec1b50bf0845dfef8 SHA1 5c3f1b19b140c0501119e4bb14befc8fb641d81d SHA256 475f9d7e67ce46eb275c406a91d861be0ef07eb4432f1ba7aa4e6fed4859630f
diff --git a/media-sound/xmmsctrl/files/xmmsctrl-1.8-jump.patch b/media-sound/xmmsctrl/files/xmmsctrl-1.8-jump.patch
new file mode 100644
index 0000000..0dc0db2
--- /dev/null
+++ b/media-sound/xmmsctrl/files/xmmsctrl-1.8-jump.patch
@@ -0,0 +1,15 @@
+diff -Naur xmmsctrl-1.8.orig/xmmsctrl.c xmmsctrl-1.8/xmmsctrl.c
+--- xmmsctrl-1.8.orig/xmmsctrl.c	2004-04-02 04:55:06.000000000 -0800
++++ xmmsctrl-1.8/xmmsctrl.c	2004-11-04 15:18:37.487096112 -0800
+@@ -135,6 +135,11 @@
+     "print this help message."
+   },
+   {
++    "jump" ,
++    xmms_remote_show_jump_box ,
++    "open the xmms jump to file box"
++  },
++  {
+     "next" , 
+     xmms_remote_playlist_next ,
+     "xmms next song command, go to the next song."
diff --git a/media-sound/xmmsctrl/files/xmmsctrl.bash-completion b/media-sound/xmmsctrl/files/xmmsctrl.bash-completion
new file mode 100644
index 0000000..1568d3c
--- /dev/null
+++ b/media-sound/xmmsctrl/files/xmmsctrl.bash-completion
@@ -0,0 +1,38 @@
+# $Header: /var/cvsroot/gentoo-x86/media-sound/xmmsctrl/files/xmmsctrl.bash-completion,v 1.1 2004/11/04 23:22:33 eradicator Exp $
+# xmmsctrl completion
+
+_xmmsctrl()
+{
+    local cur prev opts
+    COMPREPLY=()
+    cur="${COMP_WORDS[COMP_CWORD]}"
+    prev="${COMP_WORDS[COMP_CWORD-1]}"
+    opts="launch not cur eject getlength getpos gettime getvol help jump \
+    next pause play playlist playfiles pref prev previous remove repeat \
+    shuffle stop title quit --help equalizer main play_list paused playing \
+    is_equalizer is_main is_play_list is_stream running session dir time \
+    track vol"
+
+    if [ ${COMP_CWORD} -eq 1 ] ; then
+	COMPREPLY=($(compgen -W "${opts}" -- "${cur}"))
+	return 0
+    fi
+
+    case "${prev}" in
+	equalizer|main|play_list)
+	    COMPREPLY=($(compgen -W "0 1" -- "${cur}"))
+	    ;;
+	dir)
+	    COMPREPLY=($(compgen -A directory -- "${cur}"))
+	    ;;
+	not)
+	    COMPREPLY=($(compgen -W "${opts/not}" -- "${cur}"))
+	    ;;
+	*)
+	    COMPREPLY=()
+	    ;;
+    esac
+}
+complete -F _xmmsctrl xmmsctrl
+
+# vim: set ft=sh tw=80 sw=4 et :
diff --git a/media-sound/xmmsctrl/xmmsctrl-1.9.ebuild b/media-sound/xmmsctrl/xmmsctrl-1.9.ebuild
new file mode 100644
index 0000000..246197c
--- /dev/null
+++ b/media-sound/xmmsctrl/xmmsctrl-1.9.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/xmmsctrl/xmmsctrl-1.9.ebuild,v 1.1 2005/10/16 21:28:13 metalgod Exp $
+
+IUSE=""
+
+inherit eutils bash-completion
+
+DESCRIPTION="A small program to control xmms from a shell script."
+SRC_URI="http://www.cs.aau.dk/~adavid/utils/${P}.tar.gz"
+HOMEPAGE="http://www.cs.aau.dk/~adavid/utils/"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~alpha amd64 ~hppa ~ppc ~sparc x86"
+
+DEPEND="media-sound/xmms"
+
+src_unpack() {
+	unpack ${A} || die
+	cd ${S}
+	epatch ${FILESDIR}/${PN}-1.8-jump.patch
+}
+
+src_compile() {
+	emake || die
+}
+
+src_install () {
+	dobin xmmsctrl
+	dodoc README HELP
+
+	docinto samples
+	dodoc samples/*
+
+	dobashcompletion ${FILESDIR}/${PN}.bash-completion ${PN}
+}
-- 
cgit v1.2.3