summaryrefslogtreecommitdiff
path: root/community-staging
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-06-08 19:39:26 +0000
committerroot <root@rshg054.dnsready.net>2012-06-08 19:39:26 +0000
commit63bd66056e59c02a988bf17876bd72e27bb4dc8b (patch)
tree9dc5a47228611569e90bbdf40b10943f0e5fc5aa /community-staging
parent8735a5c54cf26dd5b5b686850f800a4aed49ff78 (diff)
Fri Jun 8 19:39:26 UTC 2012
Diffstat (limited to 'community-staging')
-rw-r--r--community-staging/kid3/PKGBUILD46
-rw-r--r--community-staging/kid3/ffmpeg-0.11.diff34
-rw-r--r--community-staging/kid3/kid3.changelog29
-rw-r--r--community-staging/kid3/kid3.install12
-rw-r--r--community-staging/qmmp/PKGBUILD42
-rw-r--r--community-staging/qmmp/ffmpeg-0.11.diff14
-rw-r--r--community-staging/qmmp/qmmp.changelog57
-rw-r--r--community-staging/qmmp/qmmp.install12
-rw-r--r--community-staging/xmms2/PKGBUILD83
-rw-r--r--community-staging/xmms2/ffmpeg-0.11.diff10
-rw-r--r--community-staging/xmms2/vorbis-albumart.patch200
-rw-r--r--community-staging/xmms2/xmms2-helpers.patch13
-rw-r--r--community-staging/xmms2/xmms2-ruby-1.9.patch59
-rw-r--r--community-staging/xmms2/xmms2.install3
-rw-r--r--community-staging/xmms2/xmms2d.conf31
-rw-r--r--community-staging/xmms2/xmms2d.rc39
16 files changed, 684 insertions, 0 deletions
diff --git a/community-staging/kid3/PKGBUILD b/community-staging/kid3/PKGBUILD
new file mode 100644
index 000000000..896529a81
--- /dev/null
+++ b/community-staging/kid3/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 72059 2012-06-07 16:38:57Z tdziedzic $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alois Nespor <alois.nespor@gmail.com>
+
+pkgname=kid3
+pkgver=2.1
+pkgrel=4
+pkgdesc="An MP3, Ogg/Vorbis and FLAC tag editor for KDE"
+arch=('i686' 'x86_64')
+url="http://kid3.sourceforge.net/"
+license=('GPL')
+depends=('chromaprint' 'id3lib' 'taglib' 'kdebase-runtime')
+makedepends=('automoc4' 'cmake' 'docbook-xml' 'docbook-xsl')
+options=('!makeflags')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'ffmpeg-0.11.diff')
+sha256sums=('8925bde1a773d767ee9695229e65dfd64dc13edf850294560478f2e02ecc6225'
+ '76ab3c119817a0e1f26e368afb757488c3865ff634771d4d176e729492991a54')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # fix error building with latest ffmpeg
+ # http://kid3.git.sourceforge.net/git/gitweb.cgi?p=kid3/kid3;a=commit;h=2a91bff2810281e58948f478e9396c73e5c6154a
+ patch -Np1 -i ${srcdir}/ffmpeg-0.11.diff
+
+ cd ${srcdir}
+
+ mkdir build
+ cd build
+
+ cmake \
+ ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community-staging/kid3/ffmpeg-0.11.diff b/community-staging/kid3/ffmpeg-0.11.diff
new file mode 100644
index 000000000..349ca4b3d
--- /dev/null
+++ b/community-staging/kid3/ffmpeg-0.11.diff
@@ -0,0 +1,34 @@
+From 2a91bff2810281e58948f478e9396c73e5c6154a Mon Sep 17 00:00:00 2001
+From: Urs Fleisch <ufleisch@users.sourceforge.net>
+Date: Mon, 4 Jun 2012 15:23:36 +0200
+Subject: [PATCH 1/1] Support building with ffmpeg-0.11.
+
+---
+ src/core/import/fingerprintcalculator.cpp | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/core/import/fingerprintcalculator.cpp b/src/core/import/fingerprintcalculator.cpp
+index 05158ae..6ac632c 100644
+--- a/src/core/import/fingerprintcalculator.cpp
++++ b/src/core/import/fingerprintcalculator.cpp
+@@ -218,7 +218,7 @@ public:
+ }
+
+ bool createForCodec(const Codec& codecCtx) {
+- m_ptr = ::av_audio_convert_alloc(SAMPLE_FMT_S16, codecCtx.channels(),
++ m_ptr = ::av_audio_convert_alloc(AV_SAMPLE_FMT_S16, codecCtx.channels(),
+ codecCtx.sampleFormat(), codecCtx.channels(), 0, 0);
+ return m_ptr != 0;
+ }
+@@ -342,7 +342,7 @@ FingerprintCalculator::Result::Error FingerprintCalculator::decodeAudioFile(
+ return Result::NoCodecFound;
+
+ Converter converter;
+- if (codec.sampleFormat() != SAMPLE_FMT_S16) {
++ if (codec.sampleFormat() != AV_SAMPLE_FMT_S16) {
+ if (!converter.createForCodec(codec))
+ return Result::NoConverterFound;
+ }
+--
+1.7.4.1
+
diff --git a/community-staging/kid3/kid3.changelog b/community-staging/kid3/kid3.changelog
new file mode 100644
index 000000000..8c440c611
--- /dev/null
+++ b/community-staging/kid3/kid3.changelog
@@ -0,0 +1,29 @@
+2012-05-12 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kid3 2.1-1
+
+2011-11-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kid3 2.0.1-1
+
+2011-09-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kid3 2.0-1
+
+2011-02-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kid3 1.6
+
+2010-09-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.5
+
+2010-03-13 Andrea Scarpino <andrea@archlinux.org>
+ * Update to major release v1.4
+ * MP4V2 enabled
+ * Cleanup dependencies
+
+2010-01-01 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.3
+ * MP4V2 disabled, package in [extra] needs to be updated to be used with kid3
+
+2009-04-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.2
+
+2008-10-25 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.1
diff --git a/community-staging/kid3/kid3.install b/community-staging/kid3/kid3.install
new file mode 100644
index 000000000..8ec315e7c
--- /dev/null
+++ b/community-staging/kid3/kid3.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community-staging/qmmp/PKGBUILD b/community-staging/qmmp/PKGBUILD
new file mode 100644
index 000000000..caaa6b511
--- /dev/null
+++ b/community-staging/qmmp/PKGBUILD
@@ -0,0 +1,42 @@
+#$Id: PKGBUILD 72061 2012-06-07 17:49:23Z tdziedzic $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=qmmp
+pkgver=0.5.5
+pkgrel=2
+pkgdesc="Qt4 based audio-player"
+arch=('i686' 'x86_64')
+url="http://qmmp.ylsoftware.com/"
+license=('GPL')
+depends=('alsa-lib' 'curl' 'hicolor-icon-theme' 'libmad' 'libvorbis' 'libogg' 'qt' 'taglib' 'xdg-utils')
+makedepends=('cmake' 'flac' 'jack' 'libmpcdec' 'pulseaudio' 'ffmpeg' 'libcdio' 'libcddb' 'libmms' 'libsamplerate' 'libmodplug' 'libsndfile' 'wavpack')
+optdepends=('flac: native FLAC support'
+ 'jack: JACK sound output'
+ 'libmpcdec: Musepack support'
+ 'pulseaudio: PulseAudio output'
+ 'libcdio: Compact Disc input and control support'
+ 'libcddb: CDDB server support'
+ 'libmms: MMS stream protocol support'
+ 'libmodplug: MOD playing library'
+ 'libsndfile: sampled sound support'
+ 'ffmpeg' 'libsamplerate' 'wavpack')
+install=$pkgname.install
+source=("http://qmmp.ylsoftware.com/files/$pkgname-$pkgver.tar.bz2"
+ 'ffmpeg-0.11.diff')
+sha256sums=('525d7528c58c885e45149f698125dfff6bedca0e9af979b2490e3f0b902943a6'
+ 'f110e59b345fcf143e45642b1cb3e89ead6c85a927a49974620e285cb116b666')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np0 -i ${srcdir}/ffmpeg-0.11.diff
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community-staging/qmmp/ffmpeg-0.11.diff b/community-staging/qmmp/ffmpeg-0.11.diff
new file mode 100644
index 000000000..f414ffbf6
--- /dev/null
+++ b/community-staging/qmmp/ffmpeg-0.11.diff
@@ -0,0 +1,14 @@
+Index: src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp
+===================================================================
+--- src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp (revision 2728)
++++ src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp (revision 2729)
+@@ -133,9 +133,6 @@
+ m_stream->seekable = !input()->isSequential();
+ m_stream->max_packet_size = INPUT_BUFFER_SIZE;
+
+- AVFormatParameters ap;
+- memset(&ap, 0, sizeof(ap));
+-
+ if(avformat_open_input(&ic, m_path.toLocal8Bit().constData(), fmt, 0) != 0)
+ {
+ qDebug("DecoderFFmpeg: av_open_input_stream() failed");
diff --git a/community-staging/qmmp/qmmp.changelog b/community-staging/qmmp/qmmp.changelog
new file mode 100644
index 000000000..04be7b9e8
--- /dev/null
+++ b/community-staging/qmmp/qmmp.changelog
@@ -0,0 +1,57 @@
+2012-05-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.5.5-1
+
+2012-03-18 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.5.4-1
+
+2011-11-12 Andrea Scarpino <andrea@archlinux.org>
+ * qmmp 0.5.2-3
+ * rebuild with qt 4.7
+
+2011-10-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.5.2-1
+
+2011-07-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.5.1-1
+
+2011-04-03 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.5.0-1
+
+2011-02-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.4.4-1
+
+2010-11-10 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.4.3
+
+2010-09-13 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.4.2
+
+2010-06-14 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.4.1
+
+2010-05-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.4.0
+
+2010-04-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.3.4
+
+2010-03-18 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.3.3
+
+2010-01-13 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.3.2
+
+2009-07-11 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.3.0
+
+2009-03-30 Giovanni Scafora <giovanni@archlinux.org>
+ * Fixed x86_64 build
+
+2009-03-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.2.4
+
+2008-12-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.2.3
+
+2008-08-31 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.2.2
diff --git a/community-staging/qmmp/qmmp.install b/community-staging/qmmp/qmmp.install
new file mode 100644
index 000000000..4c0972beb
--- /dev/null
+++ b/community-staging/qmmp/qmmp.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community-staging/xmms2/PKGBUILD b/community-staging/xmms2/PKGBUILD
new file mode 100644
index 000000000..ace6b2087
--- /dev/null
+++ b/community-staging/xmms2/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 72067 2012-06-07 20:19:25Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xmms2
+pkgver=0.8DrO_o
+pkgrel=7
+pkgdesc="complete rewrite of the popular music player"
+arch=('i686' 'x86_64')
+url="http://xmms2.org/"
+license=('LGPL')
+backup=('etc/conf.d/xmms2d.conf')
+depends=('sqlite' 'libmad')
+makedepends=('alsa-lib' 'boost' 'curl' 'faad2' 'ffmpeg' 'fftw' 'flac' 'glib'
+ 'jack' 'libao' 'libmms' 'libmpcdec' 'libofa' 'libsamplerate' 'libshout'
+ 'libvorbis' 'libxml2' 'mpg123' 'oss' 'perl' 'pulseaudio' 'pyrex'
+ 'ruby' 'smbclient' 'speex' 'wavpack' 'libmodplug' 'python' 'python2' 'libgme' 'avahi')
+optdepends=('alsa-lib: ALSA audio output'
+ 'avahi: announce xmms2d via bonjour/mDNS/zeroconf'
+ 'boost: C++ language bindings'
+ 'curl: play HTTP streams'
+ 'faad2: AAC support'
+ 'ffmpeg: WMA, avcodec & avformat support'
+ 'fftw: calculations for visualization'
+ 'flac: FLAC support'
+ 'jack: JACK audio output'
+ 'libao: liboa audio output'
+ 'libgme: game-music-emu support'
+ 'libofa: MusicDNS fingerprinting'
+ 'libmms: play MMS streams'
+ 'libmodplug: to play MOD files'
+ 'libmpcdec: Musepack support'
+ 'libsamplerate: vocoder support'
+ 'libshout: Icecast audio output'
+ 'libvorbis: Ogg Vorbis support'
+ 'libxml2: XSPF and podcast support'
+ 'mpg123: alternative MP3 plugin'
+ 'oss: OSS audio output'
+ 'perl: Perl language bindings'
+ 'pulseaudio: PulseAudio audio output'
+ 'pyrex: Python language bindings'
+ 'ruby: Ruby language bindings'
+ 'smbclient: direct CIFS/SMB access'
+ 'speex: Speex support'
+ 'wavpack: WavPack support')
+# 'sidplay: to play a Commodore 64 music files AKA zaks'
+# we do not have sidplay 2 series in repos; also it's
+# somehow connected with resid i guess(not in repos also)
+conflicts=('xmms2-devel')
+install=xmms2.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ xmms2d.conf
+ xmms2d.rc
+ 'ffmpeg-0.11.diff')
+md5sums=('84d5c05a70bfd31ed392a4e3f701eaa3'
+ 'af13c937bf3c86b77ae6820107aab9b8'
+ '9d8e3e1a434f271423bdd228a1e9bd7c'
+ 'e176971ef96807f72fa8fc17d260c20a')
+
+build() {
+ cd xmms2-${pkgver}/src/plugins/avcodec/
+ # remove call to avcodec_init
+ # http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=3211932c513338566b31d990d06957e15a644d13
+ patch -Np0 -i ${srcdir}/ffmpeg-0.11.diff
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # python2 fix
+# sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' waf
+
+ ./waf configure --prefix=/usr \
+ --with-optionals=python,launcher,xmmsclient++,xmmsclient++-glib,perl,ruby,nycli,pixmaps,et,mdns,medialib-updater \
+ --with-ruby-archdir=`ruby -e 'puts RbConfig::CONFIG["vendorarchdir"]'` \
+ --with-ruby-libdir=`ruby -e 'puts RbConfig::CONFIG["vendorlibdir"]'`
+ ./waf build
+ ./waf --destdir=${pkgdir} install
+
+ PYTHON=/usr/bin/python2 ./waf configure --prefix=/usr --with-optionals=python --without-xmms2d
+ ./waf build
+ ./waf --destdir=${pkgdir} install
+
+ install -D -m 0755 ../xmms2d.rc ${pkgdir}/etc/rc.d/xmms2d
+ install -D -m 0644 ../xmms2d.conf ${pkgdir}/etc/conf.d/xmms2d.conf
+}
diff --git a/community-staging/xmms2/ffmpeg-0.11.diff b/community-staging/xmms2/ffmpeg-0.11.diff
new file mode 100644
index 000000000..91d3a3106
--- /dev/null
+++ b/community-staging/xmms2/ffmpeg-0.11.diff
@@ -0,0 +1,10 @@
+--- avcodec.c.orig 2012-06-07 15:08:23.796225671 -0500
++++ avcodec.c 2012-06-07 15:08:36.649489373 -0500
+@@ -134,7 +134,6 @@
+
+ xmms_xform_private_data_set (xform, data);
+
+- avcodec_init ();
+ avcodec_register_all ();
+
+ mimetype = xmms_xform_indata_get_str (xform,
diff --git a/community-staging/xmms2/vorbis-albumart.patch b/community-staging/xmms2/vorbis-albumart.patch
new file mode 100644
index 000000000..de4305f6f
--- /dev/null
+++ b/community-staging/xmms2/vorbis-albumart.patch
@@ -0,0 +1,200 @@
+From f38882beb1c9b4f3e3c63ac7d65603ad5917cd9d Mon Sep 17 00:00:00 2001
+From: Brad Jorsch <anomie@users.sourceforge.net>
+Date: Tue, 09 Mar 2010 15:41:33 +0000
+Subject: OTHER: Add support for METADATA_BLOCK_PICTURE in Vorbis plugin
+
+Bug-Debian: http://bugs.debian.org/565479
+---
+diff --git a/src/plugins/vorbis_common/common.c b/src/plugins/vorbis_common/common.c
+index c1f4ef9..fc4ff1b 100644
+--- a/src/plugins/vorbis_common/common.c
++++ b/src/plugins/vorbis_common/common.c
+@@ -243,6 +243,74 @@ get_replaygain (xmms_xform_t *xform, vorbis_comment *vc)
+ }
+ }
+
++static void
++handle_image_comment (xmms_xform_t *xform, const gchar *value, gsize len)
++{
++ guint32 typ, mime_len, desc_len, img_len;
++ guchar *pos, *end, *mime_data, *img_data;
++ gchar hash[33];
++
++ pos = value;
++ end = value + len;
++
++ if (pos + 4 > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++ typ = GUINT32_FROM_BE (*(guint32 *)pos);
++ if (typ != 0 && typ != 3) {
++ XMMS_DBG ("Picture type %d not handled", typ);
++ return;
++ }
++ pos += 4;
++
++ if (pos + 4 > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++ mime_len = GUINT32_FROM_BE (*(guint32 *)pos);
++ pos += 4;
++ mime_data = pos;
++ pos += mime_len;
++
++ if (pos + 4 > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++ desc_len = GUINT32_FROM_BE (*(guint32 *)pos);
++ pos += 4;
++ pos += desc_len;
++
++ pos += 4; /* width */
++ pos += 4; /* height */
++ pos += 4; /* depth */
++ pos += 4; /* indexed palette length */
++
++ if (pos + 4 > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++ img_len = GUINT32_FROM_BE (*(guint32 *)pos);
++ pos += 4;
++ img_data = pos;
++
++ if (img_data + img_len > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++
++ if (xmms_bindata_plugin_add ((const guchar *)img_data, img_len, hash)) {
++ const gchar *metakey;
++
++ metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT;
++ xmms_xform_metadata_set_str (xform, metakey, hash);
++
++ metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT_MIME;
++ mime_data[mime_len] = '\0';
++ xmms_xform_metadata_set_str (xform, metakey, mime_data);
++ }
++}
++
+ /* note that "key" is NOT NUL-terminated here,
+ * but "value" is.
+ */
+@@ -253,6 +321,14 @@ handle_comment (xmms_xform_t *xform,
+ {
+ gint i;
+
++ if (!g_ascii_strncasecmp (key, "METADATA_BLOCK_PICTURE", key_len)) {
++ gsize dlen;
++ gchar *dvalue = g_base64_decode (value, &dlen);
++ handle_image_comment (xform, dvalue, dlen);
++ g_free (dvalue);
++ return;
++ }
++
+ for (i = 0; i < G_N_ELEMENTS (properties); i++) {
+ if (key_len != strlen (properties[i].vname))
+ continue;
+--
+cgit v0.8.3.4
+
+
+From d8273630bd92ecea581240ae93c6795cc538d076 Mon Sep 17 00:00:00 2001
+From: Erik Massop <e.massop@hccnet.nl>
+Date: Tue, 09 Mar 2010 15:45:03 +0000
+Subject: OTHER: Add Brad Jorsch to AUTHORS, disable Vorbis albumart for glib < 2.12
+
+(Name found using e-mail address at http://sourceforge.net/users/anomie )
+---
+diff --git a/AUTHORS b/AUTHORS
+index f2ef9af..7331d4b 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -146,6 +146,10 @@ N: Johannes Jordan
+ E: ypnos@lanrules.de
+ D: Visualization
+
++N: Brad Jorsch
++E: anomie@users.sourceforge.net
++D: Support for front picture from Vorbis.
++
+ N: Daniel KamiƄski
+ E: maniel.rulez@gmail.com
+ D: mlib remove command in cli, Ruby fixes.
+diff --git a/src/plugins/vorbis_common/common.c b/src/plugins/vorbis_common/common.c
+index fc4ff1b..ab1dc75 100644
+--- a/src/plugins/vorbis_common/common.c
++++ b/src/plugins/vorbis_common/common.c
+@@ -27,6 +27,7 @@
+ #include "xmms/xmms_sample.h"
+ #include "xmms/xmms_log.h"
+ #include "xmms/xmms_medialib.h"
++#include "xmms/xmms_bindata.h"
+
+ #include <glib.h>
+
+@@ -244,12 +245,22 @@ get_replaygain (xmms_xform_t *xform, vorbis_comment *vc)
+ }
+
+ static void
+-handle_image_comment (xmms_xform_t *xform, const gchar *value, gsize len)
++handle_image_comment (xmms_xform_t *xform, const gchar *encoded_value)
+ {
++ gsize len;
++ guchar *value;
++
+ guint32 typ, mime_len, desc_len, img_len;
+ guchar *pos, *end, *mime_data, *img_data;
+ gchar hash[33];
+
++#if GLIB_CHECK_VERSION(2,12,0)
++ value = g_base64_decode (encoded_value, &len);
++#else
++ /* TODO: Implement/backport base64 decoding */
++ return;
++#endif
++
+ pos = value;
+ end = value + len;
+
+@@ -299,7 +310,7 @@ handle_image_comment (xmms_xform_t *xform, const gchar *value, gsize len)
+ return;
+ }
+
+- if (xmms_bindata_plugin_add ((const guchar *)img_data, img_len, hash)) {
++ if (xmms_bindata_plugin_add (img_data, img_len, hash)) {
+ const gchar *metakey;
+
+ metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT;
+@@ -307,8 +318,10 @@ handle_image_comment (xmms_xform_t *xform, const gchar *value, gsize len)
+
+ metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT_MIME;
+ mime_data[mime_len] = '\0';
+- xmms_xform_metadata_set_str (xform, metakey, mime_data);
++ xmms_xform_metadata_set_str (xform, metakey, (gchar *)mime_data);
+ }
++
++ g_free (value);
+ }
+
+ /* note that "key" is NOT NUL-terminated here,
+@@ -322,10 +335,7 @@ handle_comment (xmms_xform_t *xform,
+ gint i;
+
+ if (!g_ascii_strncasecmp (key, "METADATA_BLOCK_PICTURE", key_len)) {
+- gsize dlen;
+- gchar *dvalue = g_base64_decode (value, &dlen);
+- handle_image_comment (xform, dvalue, dlen);
+- g_free (dvalue);
++ handle_image_comment (xform, value);
+ return;
+ }
+
+--
+cgit v0.8.3.4
+
+
diff --git a/community-staging/xmms2/xmms2-helpers.patch b/community-staging/xmms2/xmms2-helpers.patch
new file mode 100644
index 000000000..f6e6aa49e
--- /dev/null
+++ b/community-staging/xmms2/xmms2-helpers.patch
@@ -0,0 +1,13 @@
+diff -wbBur xmms2-0.5DrLecter/src/include/xmmsclient/xmmsclient++/helpers.h xmms2-0.5DrLecter.my/src/include/xmmsclient/xmmsclient++/helpers.h
+--- xmms2-0.5DrLecter/src/include/xmmsclient/xmmsclient++/helpers.h 2008-06-15 21:31:38.000000000 +0400
++++ xmms2-0.5DrLecter.my/src/include/xmmsclient/xmmsclient++/helpers.h 2008-06-18 14:22:24.000000000 +0400
+@@ -33,6 +33,8 @@
+ #include <list>
+ #include <vector>
+
++#include <linux/limits.h>
++
+ namespace Xmms
+ {
+
+
diff --git a/community-staging/xmms2/xmms2-ruby-1.9.patch b/community-staging/xmms2/xmms2-ruby-1.9.patch
new file mode 100644
index 000000000..6316ace61
--- /dev/null
+++ b/community-staging/xmms2/xmms2-ruby-1.9.patch
@@ -0,0 +1,59 @@
+diff -wbBur xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_collection.c xmms2-0.6DrMattDestruction.my/src/clients/lib/ruby/rb_collection.c
+--- xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_collection.c 2009-04-21 17:51:11.000000000 +0000
++++ xmms2-0.6DrMattDestruction.my/src/clients/lib/ruby/rb_collection.c 2009-09-14 09:13:19.000000000 +0000
+@@ -241,10 +241,10 @@
+ COLL_METHOD_HANDLER_HEADER
+
+ rb_ary = RARRAY (ids);
+- ary = malloc (sizeof (unsigned int *) * (rb_ary->len + 1));
++ ary = malloc (sizeof (unsigned int *) * (RARRAYLEN(rb_ary) + 1));
+
+- for (i = 0; i < rb_ary->len; i++)
+- ary[i] = NUM2UINT (rb_ary->ptr[i]);
++ for (i = 0; i < RARRAYLEN(rb_ary); i++)
++ ary[i] = NUM2UINT (RARRAY_PTR(rb_ary)[i]);
+
+ ary[i] = 0;
+
+diff -wbBur xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_xmmsclient.c xmms2-0.6DrMattDestruction.my/src/clients/lib/ruby/rb_xmmsclient.c
+--- xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_xmmsclient.c 2009-04-21 17:51:11.000000000 +0000
++++ xmms2-0.6DrMattDestruction.my/src/clients/lib/ruby/rb_xmmsclient.c 2009-09-14 09:14:51.000000000 +0000
+@@ -1421,10 +1421,10 @@
+ if (!NIL_P (rb_check_array_type (value))) {
+ struct RArray *ary = RARRAY (value);
+
+- ret = malloc (sizeof (char *) * (ary->len + 1));
++ ret = malloc (sizeof (char *) * (RARRAYLEN(ary) + 1));
+
+- for (i = 0; i < ary->len; i++)
+- ret[i] = StringValuePtr (ary->ptr[i]);
++ for (i = 0; i < RARRAYLEN(ary); i++)
++ ret[i] = StringValuePtr (RARRAY_PTR(ary)[i]);
+
+ ret[i] = NULL;
+ } else {
+@@ -1451,10 +1451,10 @@
+ struct RArray *ary = RARRAY (value);
+ int i;
+
+- for (i = 0; i < ary->len; i++) {
++ for (i = 0; i < RARRAYLEN(ary); i++) {
+ xmmsv_t *elem;
+
+- elem = xmmsv_new_string (StringValuePtr (ary->ptr[i]));
++ elem = xmmsv_new_string (StringValuePtr (RARRAY_PTR(ary)[i]));
+ xmmsv_list_append (list, elem);
+ xmmsv_unref (elem);
+ }
+diff -wbBur xmms2-0.6DrMattDestruction/src/include/xmmsclient/xmmsclient++/helpers.h xmms2-0.6DrMattDestruction.my/src/include/xmmsclient/xmmsclient++/helpers.h
+--- xmms2-0.6DrMattDestruction/src/include/xmmsclient/xmmsclient++/helpers.h 2009-04-21 17:51:11.000000000 +0000
++++ xmms2-0.6DrMattDestruction.my/src/include/xmmsclient/xmmsclient++/helpers.h 2009-09-14 09:00:11.000000000 +0000
+@@ -33,6 +33,8 @@
+ #include <list>
+ #include <vector>
+
++#include <linux/limits.h>
++
+ namespace Xmms
+ {
+
diff --git a/community-staging/xmms2/xmms2.install b/community-staging/xmms2/xmms2.install
new file mode 100644
index 000000000..2205a3492
--- /dev/null
+++ b/community-staging/xmms2/xmms2.install
@@ -0,0 +1,3 @@
+pre_install() {
+ echo "-- DO NOT FORGET edit /etc/conf.d/xmms2.conf!"
+}
diff --git a/community-staging/xmms2/xmms2d.conf b/community-staging/xmms2/xmms2d.conf
new file mode 100644
index 000000000..c8304fe1d
--- /dev/null
+++ b/community-staging/xmms2/xmms2d.conf
@@ -0,0 +1,31 @@
+#
+# xmms2-launcher cmdline parameters
+#
+XMMS2_PARAMETERS=""
+
+#
+# xmms2 user
+# You may want to add user to run xmms or use your username
+#
+XMMS2_USER="xmms2user"
+
+#
+# If you set XMMS2_USER to a different user than the one who will be controlling
+# xmms2d using xmms2 clients, make sure that the clients are aware of the path to
+# xmms2d's IPC socket, or they might not be able to connect. On failure to connect
+# some clients will try to run xmms2d themselves. These xmms2d instances will of
+# course run as the user running the client, and not as the one configured below.
+#
+# If an IPC path is specified on the command line to xmms2d (using
+# XMMS2_PARAMETERS="-i tcp://127.0.0.1:9667"
+# for instance) that will be used. If not, xmms2d will use the path from its
+# configuration file which is typically in ~/.config/xmms2/xmms2.conf. If this
+# fails, a unix socket at /tmp/xmms-ipc-[username] will be used, where username
+# is of the user starting xmms2d.
+#
+# Clients typically try to get the ipc path from the XMMS_PATH environment variable,
+# (which might be set by adding say 'export XMMS_PATH="tcp://127.0.0.1:9667"' to
+# ~/.profile). If this fails they can check their configuration file (if they have
+# one) and finally use unix:///tmp/xmms-ipc-[username], where username is of the user
+# starting the client. Upon failing to connect some will try to start xmms2d themselves.
+#
diff --git a/community-staging/xmms2/xmms2d.rc b/community-staging/xmms2/xmms2d.rc
new file mode 100644
index 000000000..9d4d2b7e9
--- /dev/null
+++ b/community-staging/xmms2/xmms2d.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/conf.d/xmms2d.conf
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof xmms2d xmms2-et`
+case "$1" in
+ start)
+ stat_busy "Starting xmms2d"
+ [ -z "$PID" ] && su -c '/usr/bin/xmms2-launcher $XMMS2_PARAMETERS 1>/dev/null 2>/dev/null' - $XMMS2_USER
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon xmms2d
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping xmms2d"
+ [ ! -z "$PID" ] && su -c '/usr/bin/xmms2 quit &>/dev/null' - $XMMS2_USER
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ for i in `seq 1 10`; do
+ [ -d /proc/$PID ] || { stat_done; rm_daemon xmms2d; exit 0; }
+ sleep 1
+ done
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0