diff options
author | Seemant Kulleen <seemant@gentoo.org> | 2003-09-12 17:36:56 +0000 |
---|---|---|
committer | Seemant Kulleen <seemant@gentoo.org> | 2003-09-12 17:36:56 +0000 |
commit | 90bf8a19a3744aa3d27f7af6f646555816deeb20 (patch) | |
tree | e97dd6b849306d73667e2bc9c3260d8a0b5fd962 /media-sound/xmms | |
parent | version bump (diff) | |
download | gentoo-2-90bf8a19a3744aa3d27f7af6f646555816deeb20.tar.gz gentoo-2-90bf8a19a3744aa3d27f7af6f646555816deeb20.tar.bz2 gentoo-2-90bf8a19a3744aa3d27f7af6f646555816deeb20.zip |
version bump
Diffstat (limited to 'media-sound/xmms')
-rw-r--r-- | media-sound/xmms/ChangeLog | 7 | ||||
-rw-r--r-- | media-sound/xmms/Manifest | 11 | ||||
-rw-r--r-- | media-sound/xmms/files/digest-xmms-1.2.8 | 1 | ||||
-rw-r--r-- | media-sound/xmms/files/xmms-1.2.8-mpg123j.patch | 319 | ||||
-rw-r--r-- | media-sound/xmms/xmms-1.2.8.ebuild | 161 |
5 files changed, 494 insertions, 5 deletions
diff --git a/media-sound/xmms/ChangeLog b/media-sound/xmms/ChangeLog index a069fbd1b813..3dddc88bc3c3 100644 --- a/media-sound/xmms/ChangeLog +++ b/media-sound/xmms/ChangeLog @@ -1,7 +1,12 @@ # ChangeLog for media-sound/xmms # Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/ChangeLog,v 1.64 2003/08/18 05:54:54 kumba Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/ChangeLog,v 1.65 2003/09/12 17:36:54 seemant Exp $ +*xmms-1.2.8 (12 Sep 2003) + + 12 Sep 2003; Seemant Kulleen <seemant@gentoo.org> xmms-1.2.8.ebuild, + files/xmms-1.2.8-mpg123j.patch: + version bump *xmms-1.2.7-r25 (16 Aug 2003) diff --git a/media-sound/xmms/Manifest b/media-sound/xmms/Manifest index 920ad44eb3c0..446bf9201852 100644 --- a/media-sound/xmms/Manifest +++ b/media-sound/xmms/Manifest @@ -1,3 +1,8 @@ +MD5 67719e9afde51fc778b8882f48bebfc2 xmms-1.2.7-r23.ebuild 5233 +MD5 1f4fb5fbbf7591ead0b68071825b2de3 xmms-1.2.7-r25.ebuild 5652 +MD5 5013cb7f0010b3daa8efd1548cbe83b4 xmms-1.2.7-r20.ebuild 4923 +MD5 915c35e8e6165a659c7d50d0e43b90df xmms-1.2.8.ebuild 4355 +MD5 9a952d54b29b7f42e619f0ac0593b956 ChangeLog 12017 MD5 e7e0c91780b115aaad1a1ed534bf7ae8 files/xmms-ipv6-20020408-mmx.patch 9210 MD5 7ab233f0953be4760d3e5b784cc0bba4 files/xmms-fhs-skinsdir.patch 372 MD5 66549f879e2d904a11e8e139b7dc0447 files/xmms-nptl.patch 1163 @@ -9,9 +14,7 @@ MD5 2b20eda67dba56621f05441eaa0ffab8 files/xmms-jump.patch 3013 MD5 6340b8dd3175d70be72d527727ac1ef0 files/xmms-gettext-fix.patch 393 MD5 b4d1fd03bbe7ceb4b756394354b3956e files/xmms-russian-charset.patch 110410 MD5 a03fa7e2151194a6db4850897d16d128 files/xmms-1.2.7-mpg123j.patch 9333 +MD5 39f39107d92e83b2e4af125ac73e248d files/xmms-1.2.8-mpg123j.patch 9390 MD5 3137a462e1b8c82c5c2a8d7c4d983ee9 files/xmms-ipv6-20020408-nommx.patch 9214 MD5 344a691c05256b9b1259c5e47ec644cc files/xmms-diskwriter-audio.patch 1039 -MD5 67719e9afde51fc778b8882f48bebfc2 xmms-1.2.7-r23.ebuild 5233 -MD5 1f4fb5fbbf7591ead0b68071825b2de3 xmms-1.2.7-r25.ebuild 5652 -MD5 5013cb7f0010b3daa8efd1548cbe83b4 xmms-1.2.7-r20.ebuild 4923 -MD5 e023ee95aa9da0539c1ae48655e26055 ChangeLog 11868 +MD5 abd1369a84af3f41235664c2444c8307 files/digest-xmms-1.2.8 64 diff --git a/media-sound/xmms/files/digest-xmms-1.2.8 b/media-sound/xmms/files/digest-xmms-1.2.8 new file mode 100644 index 000000000000..ec4a7fa02780 --- /dev/null +++ b/media-sound/xmms/files/digest-xmms-1.2.8 @@ -0,0 +1 @@ +MD5 d523735b59232f0eedd45dc2b7a4f5ad xmms-1.2.8.tar.bz2 2322808 diff --git a/media-sound/xmms/files/xmms-1.2.8-mpg123j.patch b/media-sound/xmms/files/xmms-1.2.8-mpg123j.patch new file mode 100644 index 000000000000..097ba4d36cd3 --- /dev/null +++ b/media-sound/xmms/files/xmms-1.2.8-mpg123j.patch @@ -0,0 +1,319 @@ +diff -urN xmms-1.2.8/Input/mpg123/common.c xmms-1.2.8-jp/Input/mpg123/common.c +--- xmms-1.2.8/Input/mpg123/common.c 2003-03-17 06:49:07.000000000 -0800 ++++ xmms-1.2.8-jp/Input/mpg123/common.c 2003-09-12 09:22:37.000000000 -0700 +@@ -8,6 +8,16 @@ + + #include "config.h" + ++#ifdef HAVE_ICONV_OPEN ++#include <iconv.h> ++#endif ++ ++#include <errno.h> ++ ++#ifdef HAVE_CODESET ++#include <langinfo.h> ++#endif ++ + #include "mpg123.h" + #include "id3.h" + #include "id3_header.h" +@@ -15,6 +25,13 @@ + /* max = 1728 */ + #define MAXFRAMESIZE 1792 + ++/* Japanese charset list for mpg123_Iconv() */ ++#define MAXCHARSET 6 ++char *mpg123_lconv_from[MAXCHARSET] = ++{ ++ "ISO-2022-JP", "SJIS", "EUCJP", "UTF8", "UTF16", "UTF16BE" ++}; ++ + const int tabsel_123[2][3][16] = { + {{0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448,}, + {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384,}, +@@ -505,3 +522,95 @@ + return 0; + return ((double) stream_tell()) / mpg123_info->filesize; + } ++ ++gchar *mpg123_lconv(char *string, char *outto, size_t allow_trunc) ++{ ++#if !defined(HAVE_ICONV_OPEN) || !defined(HAVE_CODESET) ++ return g_strdup(string); ++#else ++ size_t length, bufsize, outleft, inleft, ret; ++ iconv_t cd; ++ char *out, *outptr, *inptr; ++ char *from, *to, *froml; ++ int i; ++ ++ if (!string) ++ return NULL; ++ length = strlen(string); ++ ++ if (outto) { ++ froml = nl_langinfo(CODESET); ++ to = outto; ++ } else { ++ froml = NULL; ++ to = nl_langinfo(CODESET); ++ } ++ if ((outto && !froml) || (!outto && !to)) { ++ g_warning("mpg123_lconv(): Cannot get current character set."); ++ return g_strdup(string); ++ } ++ ++ /* Iconv() requires extra work area to outbuf. ++ Round outbuf_size up to 3 multiple of 4 */ ++ bufsize = (length + 11) & ~3; ++ out = g_malloc(bufsize); ++ if (!out) { ++ g_warning("mpg123_lconv(): Cannot allocate %d bytes buffer.", ++ bufsize); ++ return NULL; ++ } ++ ++ /* One shot for froml, or loop for mpg123_lconv_from[] */ ++ for (i=0, from = froml ? froml : mpg123_lconv_from[i]; ++ from && i < MAXCHARSET; ++ from = froml ? NULL : mpg123_lconv_from[++i]) ++ { ++ inptr = string; ++ inleft = length; ++ outptr = out; ++ outleft = bufsize - 1; ++ ++ cd = iconv_open(to, from); ++ if (cd == (iconv_t)-1) { ++ g_warning("mpg123_lconv(): iconv_open %s %s -> %s", ++ strerror(errno), from, to); ++ continue; ++ } ++ ++ ret = iconv(cd, &inptr, &inleft, &outptr, &outleft); ++ if (ret == (size_t)-1) { ++ switch (errno) { ++ case E2BIG: ++ g_warning("mpg123_lconv(): iconv err %d; %s -> %s \"%s\"", ++ errno, from, to, string); ++ iconv_close(cd); ++ continue; ++ case EINVAL: ++ case EILSEQ: ++ if (inleft > allow_trunc) { ++ iconv_close(cd); ++ continue; ++ } ++ /* Truncate trailing incomplete or invalid */ ++ g_message("xmms mpg123: Truncate %d byte.", ++ inleft); ++ break; ++ default: ++ g_warning("mpg123_lconv(): iconv err %d; %s -> %s \"%s\"", ++ errno, from, to, string); ++ iconv_close(cd); ++ continue; ++ } ++ } ++ /* Conversion suceeded */ ++ *outptr = '\0'; ++ iconv_close(cd); ++ return out; ++ } ++ /* All Conversion failed */ ++ g_warning("mpg123_lconv(): Failed to convert to %s. \"%s\"", ++ outto ? outto : "locale", string); ++ g_free(out); ++ return g_strdup(string); ++#endif ++} +diff -urN xmms-1.2.8/Input/mpg123/fileinfo.c xmms-1.2.8-jp/Input/mpg123/fileinfo.c +--- xmms-1.2.8/Input/mpg123/fileinfo.c 2003-07-14 06:24:28.000000000 -0700 ++++ xmms-1.2.8-jp/Input/mpg123/fileinfo.c 2003-09-12 09:13:39.000000000 -0700 +@@ -26,6 +26,10 @@ + #include <libxmms/xentry.h> + #include "mpg123.h" + ++#ifdef HAVE_CODESET ++#include <langinfo.h> ++#endif ++ + static GtkWidget *window = NULL; + static GtkWidget *filename_entry, *id3_frame; + static GtkWidget *title_entry, *artist_entry, *album_entry, *year_entry, *tracknum_entry, *comment_entry; +@@ -45,21 +49,29 @@ + static void set_entry_tag(GtkEntry * entry, gchar * tag, gint length) + { + gint stripped_len; +- gchar *text; ++ gchar *text, *tmp; + + stripped_len = mpg123_strip_spaces(tag, length); +- text = g_strdup_printf("%-*.*s", stripped_len, stripped_len, tag); +- gtk_entry_set_text(entry, text); ++ text = g_strndup(tag, stripped_len); ++ tmp = mpg123_lconv(text, NULL, 0); ++ gtk_entry_set_text(entry, tmp); ++ g_free(tmp); + g_free(text); + } + + static void get_entry_tag(GtkEntry * entry, gchar * tag, gint length) + { +- gchar *text; ++ gchar *text, *tmp; + + text = gtk_entry_get_text(entry); ++ tmp = g_strndup(text, length); ++ if (strlen(text) - strlen(tmp) > 0) ++ g_message("xmms mpg123: Truncate to \"%s\"", tmp); ++ text = mpg123_lconv(tmp, "SJIS", 1); + memset(tag, ' ', length); + memcpy(tag, text, strlen(text) > length ? length : strlen(text)); ++ g_free(text); ++ g_free(tmp); + } + + static gint find_genre_id(gchar * text) +diff -urN xmms-1.2.8/Input/mpg123/id3_frame_content.c xmms-1.2.8-jp/Input/mpg123/id3_frame_content.c +--- xmms-1.2.8/Input/mpg123/id3_frame_content.c 2002-09-30 07:03:18.000000000 -0700 ++++ xmms-1.2.8-jp/Input/mpg123/id3_frame_content.c 2003-09-12 09:17:13.000000000 -0700 +@@ -51,12 +51,18 @@ + /* Check if frame is compressed */ + if (id3_decompress_frame(frame) == -1) + return NULL; +- +- if (*(guint8 *) frame->fr_data == ID3_ENCODING_ISO_8859_1) +- text_beg = text = g_strdup((char *) frame->fr_data + 1); +- else +- text_beg = text = +- id3_utf16_to_ascii((char *) frame->fr_data + 1); ++ ++ switch( *(guint8 *) frame->fr_data ) { ++ case ID3_ENCODING_ISO_8859_1: ++ case ID3_ENCODING_UTF8: ++ text_beg = text = g_strdup((char *) frame->fr_data + 1); ++ break; ++ case ID3_ENCODING_UTF16: ++ case ID3_ENCODING_UTF16BE: ++ default: ++ text_beg = text = ++ id3_utf16_to_ascii((char *) frame->fr_data + 1); ++ } + + /* + * If content is just plain text, return it. +diff -urN xmms-1.2.8/Input/mpg123/id3_frame_text.c xmms-1.2.8-jp/Input/mpg123/id3_frame_text.c +--- xmms-1.2.8/Input/mpg123/id3_frame_text.c 2002-10-28 07:24:23.000000000 -0800 ++++ xmms-1.2.8-jp/Input/mpg123/id3_frame_text.c 2003-09-12 09:20:55.000000000 -0700 +@@ -127,28 +127,36 @@ + char *id3_get_text(struct id3_frame *frame) + { + /* Type check */ +- if ( frame->fr_desc->fd_idstr[0] != 'T' ) ++ if ( frame->fr_desc->fd_idstr[0] != 'T' && ++ frame->fr_desc->fd_id != ID3_COMM ) + return NULL; + + /* Check if frame is compressed */ + if (id3_decompress_frame(frame) == -1) + return NULL; + +- if ( frame->fr_desc->fd_id == ID3_TXXX ) { ++ if ( frame->fr_desc->fd_id == ID3_TXXX || ++ frame->fr_desc->fd_id == ID3_COMM ) ++ { + /* + * This is a user defined text frame. Skip the description. + */ + switch ( *(guint8 *) frame->fr_data ) { + case ID3_ENCODING_ISO_8859_1: ++ case ID3_ENCODING_UTF8: + { + char *text = (char *) frame->fr_data + 1; ++ guint len = frame->fr_size - 1; + +- while ( *text != 0 ) ++ while ( *text != 0 ) { + text++; ++ len--; ++ } + +- return g_strdup(++text); ++ return g_strndup(++text,--len); + } + case ID3_ENCODING_UTF16: ++ case ID3_ENCODING_UTF16BE: + { + char *text16 = (char *) frame->fr_data + 1; + +@@ -161,11 +169,16 @@ + return NULL; + } + } +- +- if (*(guint8 *) frame->fr_data == ID3_ENCODING_ISO_8859_1) +- return g_strdup((char *) frame->fr_data + 1); ++ switch (*(guint8 *) frame->fr_data) { ++ case ID3_ENCODING_ISO_8859_1: ++ case ID3_ENCODING_UTF8: ++ return g_strdup((char *) frame->fr_data + 1); ++ case ID3_ENCODING_UTF16: ++ case ID3_ENCODING_UTF16BE: ++ default: + else +- return id3_utf16_to_ascii(((char *) frame->fr_data + 1)); ++ return id3_utf16_to_ascii(((char *) frame->fr_data + 1)); ++ } + } + + +diff -urN xmms-1.2.8/Input/mpg123/mpg123.c xmms-1.2.8-jp/Input/mpg123/mpg123.c +--- xmms-1.2.8/Input/mpg123/mpg123.c 2003-07-10 06:12:19.000000000 -0700 ++++ xmms-1.2.8-jp/Input/mpg123/mpg123.c 2003-09-12 09:13:39.000000000 -0700 +@@ -556,6 +556,33 @@ + + if (tag) + { ++ gchar *tmp; ++ ++ tmp = mpg123_lconv(tag->artist, NULL, 0); ++ strncpy(tag->artist, tmp, sizeof(tag->artist)-1); ++ tag->artist[sizeof(tag->artist)-1] = '\0'; ++ g_free(tmp); ++ ++ tmp = mpg123_lconv(tag->album, NULL, 0); ++ strncpy(tag->album, tmp, sizeof(tag->album)-1); ++ tag->album[sizeof(tag->album)-1] = '\0'; ++ g_free(tmp); ++ ++ tmp = mpg123_lconv(tag->title, NULL, 0); ++ strncpy(tag->title, tmp, sizeof(tag->title)-1); ++ tag->title[sizeof(tag->title)-1] = '\0'; ++ g_free(tmp); ++ ++ tmp = mpg123_lconv(tag->genre, NULL, 0); ++ strncpy(tag->genre, tmp, sizeof(tag->genre)-1); ++ tag->genre[sizeof(tag->genre)-1] = '\0'; ++ g_free(tmp); ++ ++ tmp = mpg123_lconv(tag->comment, NULL, 0); ++ strncpy(tag->comment, tmp, sizeof(tag->comment)-1); ++ tag->comment[sizeof(tag->comment)-1] = '\0'; ++ g_free(tmp); ++ + input->performer = mpg123_getstr(tag->artist); + input->album_name = mpg123_getstr(tag->album); + input->track_name = mpg123_getstr(tag->title); +diff -urN xmms-1.2.8/Input/mpg123/mpg123.h xmms-1.2.8-jp/Input/mpg123/mpg123.h +--- xmms-1.2.8/Input/mpg123/mpg123.h 2003-09-04 06:48:34.000000000 -0700 ++++ xmms-1.2.8-jp/Input/mpg123/mpg123.h 2003-09-12 09:13:39.000000000 -0700 +@@ -299,6 +299,7 @@ + void mpg123_get_id3v2(struct id3_tag * id3d, struct id3tag_t *tag); + gchar *mpg123_format_song_title(struct id3tag_t *tag, gchar *filename); + double mpg123_relative_pos(void); ++gchar *mpg123_lconv(char *string, char *to, size_t allow_trunc); + + + diff --git a/media-sound/xmms/xmms-1.2.8.ebuild b/media-sound/xmms/xmms-1.2.8.ebuild new file mode 100644 index 000000000000..1e19078aaee9 --- /dev/null +++ b/media-sound/xmms/xmms-1.2.8.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2003 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms/xmms-1.2.8.ebuild,v 1.1 2003/09/12 17:36:54 seemant Exp $ + +IUSE="xml nls esd gnome opengl mmx oggvorbis 3dnow mikmod directfb ipv6 cjk" + +inherit libtool flag-o-matic eutils +filter-flags -fforce-addr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE + +MY_P=${P/_/-} +S=${WORKDIR}/${MY_P} +DESCRIPTION="X MultiMedia System" +SRC_URI="http://www.xmms.org/files/1.2.x/${MY_P}.tar.bz2" +HOMEPAGE="http://www.xmms.org/" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~x86 ~amd64 ~ppc ~sparc ~alpha ~hppa ~mips ~arm" + +DEPEND="app-arch/unzip + =x11-libs/gtk+-1.2* + mikmod? ( >=media-libs/libmikmod-3.1.6 ) + esd? ( >=media-sound/esound-0.2.22 ) + xml? ( >=dev-libs/libxml-1.8.15 ) + gnome? ( <gnome-base/gnome-panel-1.5.0 ) + opengl? ( virtual/opengl ) + oggvorbis? ( >=media-libs/libvorbis-1.0_beta4 )" +RDEPEND="${DEPEND} + directfb? ( dev-libs/DirectFB ) + nls? ( dev-util/intltool )" + +src_unpack() { + unpack ${A} + cd ${S} + + # Patch to allow external programmes to have the "jump to" dialog box + epatch ${FILESDIR}/xmms-jump.patch + + # Save playlist, etc on SIGTERM and SIGINT, bug #13604. + epatch ${FILESDIR}/xmms-sigterm.patch + + # Patch for mpg123 to convert Japanese character code of MP3 tag info + # the Japanese patch and the Russian one overlap, so its one or the other + if use nls + then + if use cjk; then + epatch ${FILESDIR}/${P}-mpg123j.patch +# else +# # add russian charset support +# epatch ${FILESDIR}/${P}-russian-charset.patch + fi + fi + + if [ ! -f ${S}/config.rpath ] ; then + touch ${S}/config.rpath + chmod +x ${S}/config.rpath + fi + + # Add /usr/local/share/xmms/Skins to the search path for skins + epatch ${FILESDIR}/${PN}-fhs-skinsdir.patch + + # We run automake and autoconf here else we get a lot of warning/errors. + # I have tested this with gcc-2.95.3 and gcc-3.1. + elibtoolize + + # This patch passes audio output through the output plugin + # before recording via the diskwriter plugin + # http://forum.xmms.org/viewtopic.php?t=500&sid=c286e1c01fb924a2f81f519969f33764 + epatch ${FILESDIR}/xmms-diskwriter-audio.patch + + echo ">>> Reconfiguring..." + for x in ${S} ${S}/libxmms + do + cd ${x} + aclocal + automake --gnu --add-missing --include-deps Makefile || die + autoconf || die + done + + # fix broken makefile in gnomexmms +# sed -i "s:\@LTLIBSINTL\@$::" ${S}/gnomexmms/Makefile.in +} + +src_compile() { + local myconf="" + + if use 3dnow || use mmx + then + myconf="${myconf} --enable-simd" + else + myconf="${myconf} --disable-simd" + fi + + use xml \ + || myconf="${myconf} --disable-cdindex" + + econf \ + --with-dev-dsp=/dev/sound/dsp \ + --with-dev-mixer=/dev/sound/mixer \ + `use_enable oggvorbis vorbis` \ + `use_enable oggvorbis oggtest` \ + `use_enable oggvorbis vorbistest` \ + `use_enable esd` \ + `use_enable esd esdtest` \ + `use_enable mikmod` \ + `use_enable mikmod mikmodtest` \ + `use_enable opengl` \ + `use_enable nls` \ + `use_enable ipv6` \ + ${myconf} || die + # `use_with gnome` \ + # `use_with mikmod libmikmod` \ + # `use_with oggvorbis ogg` \ + + ### emake seems to break some compiles, please keep @ make + make || die +} + +src_install() { + make prefix=${D}/usr \ + datadir=${D}/usr/share \ + incdir=${D}/usr/include \ + infodir=${D}/usr/share/info \ + localstatedir=${D}/var/lib \ + mandir=${D}/usr/share/man \ + sysconfdir=${D}/etc \ + sysdir=${D}/usr/share/applets/Multimedia \ + GNOME_SYSCONFDIR=${D}/etc install || die "FOO" + + dodoc AUTHORS ChangeLog COPYING FAQ NEWS README TODO + + keepdir /usr/share/xmms/Skins + insinto /usr/share/pixmaps/ + donewins gnomexmms/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 + + if [ `use gnome` ] ; then + insinto /usr/share/gnome/apps/Multimedia + doins xmms/xmms.desktop + dosed "s:xmms_mini.xpm:mini/xmms_mini.xpm:" \ + /usr/share/gnome/apps/Multimedia/xmms.desktop + else + rm ${D}/usr/share/man/man1/gnomexmms* + fi + + # causes segfaults for ppc users #10309 and after talking + # to xmms dev's, they've punted this from the src tree anyways ... + rm -rf ${D}/usr/lib/xmms/Input/libidcin.so +} + +pkg_postrm() { + if [ -x ${ROOT}/usr/bin/xmms ] && [ ! -d ${ROOT}/usr/share/xmms/Skins ] + then + mkdir -p ${ROOT}/usr/share/xmms/Skins + fi +} |