New package: media-sound/xmms2. Bug #93583
authorSergei Trofimovich <slyfox@gentoo.org>
Wed, 30 Jun 2010 05:30:53 +0000 (05:30 +0000)
committerSergei Trofimovich <slyfox@gentoo.org>
Wed, 30 Jun 2010 05:30:53 +0000 (05:30 +0000)
Package-Manager: portage-2.1.8.3/cvs/Linux x86_64

media-sound/xmms2/ChangeLog [new file with mode: 0644]
media-sound/xmms2/Manifest [new file with mode: 0644]
media-sound/xmms2/files/xmms2-0.7DrNo-windres-build-fix.patch [new file with mode: 0644]
media-sound/xmms2/metadata.xml [new file with mode: 0644]
media-sound/xmms2/xmms2-0.7.ebuild [new file with mode: 0644]

diff --git a/media-sound/xmms2/ChangeLog b/media-sound/xmms2/ChangeLog
new file mode 100644 (file)
index 0000000..3240e6c
--- /dev/null
@@ -0,0 +1,12 @@
+# ChangeLog for media-sound/xmms2
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms2/ChangeLog,v 1.1 2010/06/30 05:30:53 slyfox Exp $
+
+*xmms2-0.7 (30 Jun 2010)
+
+  30 Jun 2010; Sergei Trofimovich <slyfox@gentoo.org> +xmms2-0.7.ebuild,
+  +files/xmms2-0.7DrNo-windres-build-fix.patch, +metadata.xml:
+  Initial commit. Thanks everyone, who conributed to resolve bug #93583.
+  Special thanks to Mike Frysinger <vapier@gentoo.org> for help to cleanup
+  an ebuild.
+
diff --git a/media-sound/xmms2/Manifest b/media-sound/xmms2/Manifest
new file mode 100644 (file)
index 0000000..c08a36d
--- /dev/null
@@ -0,0 +1,5 @@
+AUX xmms2-0.7DrNo-windres-build-fix.patch 1929 RMD160 61f8840d4e4349b5459f6760b94f0a439b6cfa87 SHA1 41ccd4db5c48d70a860d59ebb323796f243774bf SHA256 f71546af163b017678282a9ded8ec8e70ea486b95f96c68a62ad5a3edf0db39f
+DIST xmms2-0.7DrNo.tar.bz2 1519973 RMD160 3a526df9fa1ed5103b6a252c34c0394bf0e4f156 SHA1 4999568654a0d2aba84bda4b22145058bbd3fcb2 SHA256 59c58d9380e6b002920a8dc75f0fd4629ab175b82f29b6637f7816fdc9832b2c
+EBUILD xmms2-0.7.ebuild 6127 RMD160 69fd5b619771f861b00fd782319cadc68e73462c SHA1 faa3fa1612d1d8196b57ad980fb0fedb5dd117c2 SHA256 a158b0320c9e5c29637995cedd91700b7e63dff24b19bbe65b738b9e5e952750
+MISC ChangeLog 531 RMD160 b053b8c68f2dc054926b56927cd9d5af29e29a80 SHA1 4e4cc1cc592265a9d466719d6660eb30296004de SHA256 ec2ce28c7238372acd8a4770d07d57f3fe88a7eac0552dd43d62d3132193945b
+MISC metadata.xml 2635 RMD160 4e21c3a15d52896fbaf6443fdd5ade035cfb6ea3 SHA1 757705224cec31f0c4cd1e19e576e836960effc5 SHA256 57ea59adba5d23b264a50ddcaf60dddf38b9f3433a58ef1ce0f9517448979906
diff --git a/media-sound/xmms2/files/xmms2-0.7DrNo-windres-build-fix.patch b/media-sound/xmms2/files/xmms2-0.7DrNo-windres-build-fix.patch
new file mode 100644 (file)
index 0000000..26cdcf9
--- /dev/null
@@ -0,0 +1,52 @@
+commit 3bc7fbff50bfcb065fb89d020c1b3fb8de049b19
+Author: Sergei Trofimovich <st@anti-virus.by>
+Date:   Mon Apr 19 13:16:56 2010 +0300
+
+    OTHER: fix build failure on windres aware binutils (linux host, native build)
+    
+    Trying to use windres under linux (native build) is worthless:
+    
+    [ 26/269] winrc: pixmaps/xmms2.rc -> _build_/default/pixmaps/xmms2.rc.o
+    /usr/bin/windres: can't get BFD_RELOC_RVA relocation type: No error
+    Waf: Leaving directory `/var/tmp/paludis/media-sound-xmms2-9999-r3/work/xmms2-devel/_build_'
+    Build failed
+     -> task failed (err #1):
+            {task: winrc xmms2.rc -> xmms2.rc.o}
+    
+    Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
+
+diff --git a/wscript b/wscript
+index 2a29016..1d73813 100644
+--- a/wscript
++++ b/wscript
+@@ -265,12 +265,6 @@ def configure(conf):
+     conf.check_tool('gcc')
+     conf.check_tool('g++')
+ 
+-    try:
+-        conf.check_tool('winres')
+-        conf.env['WINRCFLAGS'] = '-I' + os.path.abspath('pixmaps')
+-        conf.env['xmms_icon'] = True
+-    except Configure.ConfigurationError:
+-        conf.env['xmms_icon'] = False
+ 
+     if Options.options.target_platform:
+         Options.platform = Options.options.target_platform
+@@ -412,6 +406,17 @@ def configure(conf):
+     else:
+         conf.env['socket_impl'] = 'posix'
+ 
++    # platform does not support icons ...
++    conf.env['xmms_icon'] = False
++    # ... unless we target on windows
++    if Options.platform == 'win32':
++        try:
++            conf.check_tool('winres')
++            conf.env['WINRCFLAGS'] = '-I' + os.path.abspath('pixmaps')
++            conf.env['xmms_icon'] = True
++        except Configure.ConfigurationError:
++            pass
++
+     # Glib is required by everyone, so check for it here and let them
+     # assume its presence.
+     conf.check_cfg(package='glib-2.0', atleast_version='2.8.0', uselib_store='glib2', args='--cflags --libs', mandatory=1)
diff --git a/media-sound/xmms2/metadata.xml b/media-sound/xmms2/metadata.xml
new file mode 100644 (file)
index 0000000..849e014
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <herd>no-herd</herd>
+       <maintainer>
+               <email>slyfox@gentoo.org</email>
+               <name>Sergei Trofimovich</name>
+               <description>Primary Maintainer</description>
+       </maintainer>
+       <longdescription>
+               It features a client-server model, allowing multiple (even simultaneous!) user
+               interfaces, both textual and graphical. All common audio formats are supported
+               using plugins. On top of this, there is a flexible media library to organize
+               your music.
+
+               List of features currently offered by XMMS2:
+                 Client-server model:
+                   * Allows XMMS2 to have various multiple interfaces (as clients).
+                       o Command line interfaces
+                       o GTK clients (matching GNOME &amp; XFCE4 look and feel)
+                       o KDE clients (matching KDE look and feel)
+                   * Network transparency means you can run and control XMMS2 remotely, (e.g. run
+                     XMMS2 on your 'media box' and control it over network using a bluetooth-enabled
+                     PDA (TCP))
+                 Wide format support:
+                   * Can play FLAC, mp3, MOD, SID, speex, ogg vorbis, wave files.
+                   * Clean separation of transport and decoder subsystems
+                 Allows for more flexible access to media. (e.g. play mp3 files from a Samba
+                 share without having to mount it on the local filesystem)
+               Medialib:
+                 Database-driven media library stores metadata about songs as they're played,
+                 so songs can be quickly recalled and new playlists easily made.
+       </longdescription>
+       <use>
+               <flag name="airplay">Support for airplay format</flag>
+               <flag name="asf">Support for Monkey's Audio (APE) format with help of bundled libasf</flag>
+               <flag name="gvfs">Transport for glibs virtual filesystem</flag>
+               <flag name="ices">Icecast source output plugin</flag>
+               <flag name="mac">Support for Monkey's Audio (APE) format with help of <pkg>media-sound/mac</pkg></flag>
+               <flag name="mms">Support for Microsoft Media Server (MMS) streams via libmms</flag>
+               <flag name="mpg123">Support for libmpg123 decoder for MPEG 1.0/2.0/2.5 layer 1/2/3</flag>
+               <flag name="ofa">Support for Open Fingerprint Architecture (OFA)</flag>
+               <flag name="phonehome">This client sends anonymous usage-statistics to the xmms2</flag>
+               <flag name="server">Build xmms2 player daemon (otherwise only clients are built)</flag>
+               <flag name="sid">Support for C64 SID</flag>
+               <flag name="vocoder">Phase vocoder effect plugin</flag>
+               <flag name="mlib-update">Enable building of xmms2-mlib-updater client</flag>
+               <flag name="xml">Enable support for various XML based playlists and sources: RSS, XSPF</flag>
+       </use>
+</pkgmetadata>
diff --git a/media-sound/xmms2/xmms2-0.7.ebuild b/media-sound/xmms2/xmms2-0.7.ebuild
new file mode 100644 (file)
index 0000000..ff42ec3
--- /dev/null
@@ -0,0 +1,242 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/xmms2/xmms2-0.7.ebuild,v 1.1 2010/06/30 05:30:53 slyfox Exp $
+
+EAPI=2
+inherit base eutils python
+
+MY_P="${P}DrNo"
+
+DESCRIPTION="X(cross)platform Music Multiplexing System. The new generation of the XMMS player."
+HOMEPAGE="http://xmms2.org/wiki/Main_Page"
+SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
+LICENSE="GPL-2 LGPL-2.1"
+
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="aac airplay +alsa ao asf avahi cdda curl cxx ffmpeg flac gvfs ices
+jack mac mlib-update mms +mp3 mp4 modplug mpg123 musepack ofa oss
+perl phonehome pulseaudio python ruby
+samba +server sid speex +vorbis vocoder wavpack xml"
+
+RDEPEND="server? (
+               >=dev-db/sqlite-3.3.4
+
+               aac? ( >=media-libs/faad2-2.0 )
+               airplay? ( dev-libs/openssl )
+               alsa? ( media-libs/alsa-lib )
+               ao? ( media-libs/libao )
+               avahi? ( net-dns/avahi )
+               cdda? ( >=media-libs/libdiscid-0.1.1
+                       >=media-sound/cdparanoia-3.9.8 )
+               curl? ( >=net-misc/curl-7.15.1 )
+               ffmpeg? ( media-video/ffmpeg )
+               flac? ( media-libs/flac )
+               gvfs? ( gnome-base/gnome-vfs )
+               ices? ( media-libs/libogg
+                       media-libs/libshout
+                       media-libs/libvorbis )
+               jack? ( >=media-sound/jack-audio-connection-kit-0.101.1 )
+               mac? ( media-sound/mac )
+               mms? ( media-video/ffmpeg
+                       >=media-libs/libmms-0.3 )
+               modplug? ( media-libs/libmodplug )
+               mp3? ( media-sound/madplay )
+               mp4? ( >=media-libs/faad2-2.0 )
+               mpg123? ( >=media-sound/mpg123-1.5.1 )
+               musepack? ( media-sound/musepack-tools )
+               ofa? ( media-libs/libofa )
+               pulseaudio? ( media-sound/pulseaudio )
+               samba? ( net-fs/samba[smbclient] )
+               sid? ( media-sound/sidplay
+                       media-libs/resid )
+               speex? ( media-libs/speex
+                       media-libs/libogg )
+               vorbis? ( media-libs/libvorbis )
+               vocoder? ( sci-libs/fftw media-libs/libsamplerate )
+               wavpack? ( media-sound/wavpack )
+               xml? ( dev-libs/libxml2 )
+       )
+
+       >=dev-libs/glib-2.12.9
+       cxx? ( >=dev-libs/boost-1.32 )
+       mlib-update? ( app-admin/gamin )
+       perl? ( >=dev-lang/perl-5.8.8 )
+       python? ( >=dev-python/pyrex-0.9.5.1 )
+       ruby? ( >=dev-lang/ruby-1.8.5 ) "
+
+DEPEND="${RDEPEND}
+       >=dev-lang/python-2.4.3"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=("${FILESDIR}/xmms2-0.7DrNo-windres-build-fix.patch")
+
+# use_enable() is taken as proto
+# $1 - useflag
+# $2 - xmms2 option/plugin name (equals to $1 if not set)
+
+xmms2_flag() {
+       [[ -z $1 ]] && eerror "!!! empty arg. usage: xmms2_flag <USEFLAG> [<xmms2_flagname>]."
+
+       local UWORD=${2:-$1}
+
+       case $1 in
+               ENABLED)
+                       echo ",${UWORD}"
+                       ;;
+               DISABLED)
+                       ;;
+               *)
+                       use $1 && echo ",${UWORD}"
+                       ;;
+       esac
+}
+
+src_configure() {
+       # ./configure alike options.
+       local waf_params="--prefix=/usr \
+                       --libdir=/usr/$(get_libdir) \
+                       --with-target-platform=${CHOST} \
+                       --mandir=/usr/share/man \
+                       --infodir=/usr/share/info \
+                       --datadir=/usr/share \
+                       --sysconfdir=/etc \
+                       --localstatedir=/var/lib"
+
+       local optionals=""
+       local plugins=""
+       if ! use server ; then
+               waf_params+=" --without-xmms2d"
+       else
+               # some fun static mappings:
+               local option_map=(      # USE           # sorted xmms2 option flag (same, as USE if empty)
+                                       "avahi          avahi"
+                                       "ENABLED        cli"
+                                       "avahi          dns_sd"
+                                       "phonehome      et"
+                                       "ENABLED        launcher"
+                                       "mlib-update    medialib-updater"
+                                       "ENABLED        nycli"
+                                       "               perl"
+                                       "ENABLED        pixmaps"
+                                       "               python"
+                                       "               ruby"
+                                       "DISABLED       tests"
+                                       "DISABLED       vistest"
+                                       "cxx            xmmsclient++"
+                                       "cxx            xmmsclient++-glib"
+                                       "DISABLED       xmmsclient-cf"
+                                       "DISABLED       xmmsclient-ecore" # not in tree
+                               )
+
+               local plugin_map=(      # USE           # sorted xmms2 plugin flag (same, as USE if empty)
+                                       "               alsa"
+                                       "               airplay"
+                                       "               ao"
+                                       "ffmpeg         apefile"
+                                       "ffmpeg         avcodec"
+                                       "               asf"
+                                       "ENABLED        asx"
+                                       "               cdda"
+                                       "DISABLED       coreaudio" # MacOS only?
+                                       "               curl"
+                                       "ENABLED        cue"
+                                       "avahi          daap"
+                                       "ENABLED        diskwrite"
+                                       "ENABLED        equalizer"
+                                       "aac            faad"
+                                       "ENABLED        file"
+                                       "               flac"
+                                       "ffmpeg         flv"
+                                       "ffmpeg         tta"
+                                       "DISABLED       gme" # not in tree
+                                       "               gvfs"
+                                       "ENABLED        html"
+                                       "               ices"
+                                       "ENABLED        icymetaint"
+                                       "ENABLED        id3v2"
+                                       "               jack"
+                                       "ENABLED        karaoke"
+                                       "ENABLED        m3u"
+                                       "               mac"
+                                       "               mms"
+                                       "mp3            mad"
+                                       "               mp4"
+                                       "               mpg123"
+                                       "               modplug"
+                                       "               musepack"
+                                       "DISABLED       nms" # not in tree
+                                       "ENABLED        normalize"
+                                       "ENABLED        null"
+                                       "ENABLED        nulstripper"
+                                       "               ofa"
+                                       "               oss"
+                                       "ENABLED        pls"
+                                       "pulseaudio     pulse"
+                                       "ENABLED        replaygain"
+                                       "xml            rss"
+                                       "               samba"
+                                       "DISABLED       sc68" #not in tree
+                                       "               sid"
+                                       "               speex"
+                                       "DISABLED       sun" # {Open,Net}BSD only
+                                       "DISABLED       tremor" # not in tree
+                                       "               vorbis"
+                                       "               vocoder"
+                                       "ffmpeg         tta"
+                                       "ENABLED        wave"
+                                       "DISABLED       waveout" # windows only
+                                       "               wavpack"
+                                       "xml            xspf"
+                                       "ENABLED        xml"
+                               )
+
+               local option
+               for option in "${option_map[@]}"; do
+                       optionals+=$(xmms2_flag $option)
+               done
+
+               local plugin
+               for plugin in "${plugin_map[@]}"; do
+                       plugins+=$(xmms2_flag $plugin)
+               done
+       fi # ! server
+
+       # pass them explicitely even if empty as we try to avoid magic deps
+       waf_params+=" --with-optionals=${optionals:1}" # skip first ',' if yet
+       waf_params+=" --with-plugins=${plugins:1}"
+
+       ./waf ${waf_params} configure || die "'waf configure' failed"
+}
+
+src_compile() {
+       ./waf build || die "waf build failed"
+}
+
+src_install() {
+       ./waf --without-ldconfig --destdir="${D}" install || die "'waf install' failed"
+       dodoc AUTHORS TODO README
+
+       use python && python_need_rebuild
+}
+
+pkg_postinst() {
+       elog "This version is built on experimental development code"
+       elog "If you encounter any errors report them at http://bugs.xmms2.xmms.se"
+       elog "and visit #xmms2 at irc://irc.freenode.net"
+       if use phonehome ; then
+               einfo ""
+               einfo "The phone-home client xmms2-et was activated"
+               einfo "This client sends anonymous usage-statistics to the xmms2"
+               einfo "developers which may help finding bugs"
+               einfo "Disable the phonehome useflag if you don't like that"
+       fi
+
+       use python && python_mod_optimize "$(python_get_sitedir)/xmmsclient"
+}
+
+pkg_postrm() {
+       use python && python_mod_cleanup "$(python_get_sitedir)/xmmsclient"
+}