summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2017-05-20 11:21:13 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2017-05-20 11:21:36 +0100
commit88e32c614265db1783bc02782cdae880d786d227 (patch)
tree9988be7230dd6d7d49c4b68e5a3a9fd2fc772b2b /media-sound/xmms2
parentwww-misc/shellinabox: clean metadata.xml USE flags. (diff)
downloadgentoo-88e32c614265db1783bc02782cdae880d786d227.tar.gz
gentoo-88e32c614265db1783bc02782cdae880d786d227.tar.bz2
gentoo-88e32c614265db1783bc02782cdae880d786d227.zip
media-sound/xmms2: bump up to 0.8_p20161122, latest snapshot
This bump is a snapshot of a xmms2-devel/master git branch. Devel tree has fixes like: - waf bump (ruby-2.1 support) - ffmpeg/libav upstream patches - new plugins - new s4 storage as a database (instead of sqlite) - many other things It's a a bit hard to backport patches to 6 years old release. Reported-by: Toralf Förster Bug: https://bugs.gentoo.org/618850 Package-Manager: Portage-2.3.6, Repoman-2.3.2
Diffstat (limited to 'media-sound/xmms2')
-rw-r--r--media-sound/xmms2/Manifest1
-rw-r--r--media-sound/xmms2/files/xmms2-0.8_p20161122-tarball.patch78
-rw-r--r--media-sound/xmms2/metadata.xml2
-rw-r--r--media-sound/xmms2/xmms2-0.8-r4.ebuild2
-rw-r--r--media-sound/xmms2/xmms2-0.8_p20161122.ebuild292
5 files changed, 374 insertions, 1 deletions
diff --git a/media-sound/xmms2/Manifest b/media-sound/xmms2/Manifest
index be39c6eeee9b..442ad25250d2 100644
--- a/media-sound/xmms2/Manifest
+++ b/media-sound/xmms2/Manifest
@@ -1 +1,2 @@
+DIST xmms2-0.8DrO_o-949-gca15e830.tar.bz2 1928653 SHA256 58bd62f1e3ca83d4d82ad6854ee769b97238fc1c89967262c0e9e9e20e35092e SHA512 affd7fdd259cdb952e972b62f24ab8eb6afd2c87786254a7ae81adffdcfe1454dcf2fb95811a8b90db74dba84918526fd8c920e11582b36aa48725f293c73edb WHIRLPOOL 438d33793b808dd151b27ac51af9998b819ffc03cbc0ce789d693192f8aa5cab3c48402ef83f2b8fe1442dd9130248f561b1fe466168c0569c2e017ee1a0ede3
DIST xmms2-0.8DrO_o.tar.bz2 1670726 SHA256 c77e41e7bd5788889d5a2f78331ca8c748b8721bd2e59f36c36ad4c7cae8694a SHA512 478103d80264c0cb32912e828f74d0f5b2f10fe310f530a87ebecda7ca547a69e238cd572788f90bda29494494160d459fa6d1356b4fb87c7a8f0bf02e3b75f8 WHIRLPOOL 741dd85b8c065eea799675588a8d4c389c47fa3dcf129a9fd799bb5da0ffcb1eeffa45cfaca40af7c505908818b5e7960c1a54e947f53358edeb43841f2eaa5c
diff --git a/media-sound/xmms2/files/xmms2-0.8_p20161122-tarball.patch b/media-sound/xmms2/files/xmms2-0.8_p20161122-tarball.patch
new file mode 100644
index 000000000000..eef49b13f16f
--- /dev/null
+++ b/media-sound/xmms2/files/xmms2-0.8_p20161122-tarball.patch
@@ -0,0 +1,78 @@
+diff --git a/utils/gen-changelog.py b/utils/gen-changelog.py
+index b539088a..301c0461 100755
+--- a/utils/gen-changelog.py
++++ b/utils/gen-changelog.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python2
+ from subprocess import check_output
+ import os
+
+diff --git a/utils/gen-tarball.py b/utils/gen-tarball.py
+index 2ae2a4d1..09ed5074 100755
+--- a/utils/gen-tarball.py
++++ b/utils/gen-tarball.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ from subprocess import check_output, call
+ import tarfile
+ import os
+@@ -40,15 +40,19 @@ def add_files(ball, prefix, template, files):
+
+ VERSION = check_output(["git", "describe"]).strip()
+
++# TODO: derive paths from submodule configuration
+ TUTORIAL_DIR="doc/tutorial"
++S4_DIR="src/lib/s4"
+
+ PREFIX="xmms2-%s" % VERSION
+ PREFIX_TUTORIAL="%s/%s" % (PREFIX, TUTORIAL_DIR)
++PREFIX_S4="%s/%s" % (PREFIX, S4_DIR)
+
+ DIST_DIR="dist"
+ DIST_XMMS2="%s/xmms2-%s.tar" % (DIST_DIR, VERSION)
+ DIST_XMMS2_BZ2="%s/xmms2-%s.tar.bz2" % (DIST_DIR, VERSION)
+ DIST_TUTORIAL="%s/xmms2-tutorial-%s.tar" % (DIST_DIR, VERSION)
++DIST_S4="%s/xmms2-tutorial-%s.tar" % (DIST_DIR, VERSION)
+
+ if not os.path.exists(DIST_DIR):
+ os.mkdir(DIST_DIR)
+@@ -62,6 +66,9 @@ if os.path.exists(DIST_XMMS2_BZ2):
+ if os.path.exists(DIST_TUTORIAL):
+ os.unlink(DIST_TUTORIAL)
+
++if os.path.exists(DIST_S4):
++ os.unlink(DIST_S4)
++
+ # Tar up XMMS2
+ call("git archive --format=tar --prefix=%s/ HEAD > %s" % (PREFIX, DIST_XMMS2), shell=True)
+
+@@ -69,9 +76,11 @@ call("git archive --format=tar --prefix=%s/ HEAD > %s" % (PREFIX, DIST_XMMS2), s
+ call("git submodule init", shell=True)
+ call("git submodule update", shell=True)
+ call("git --git-dir=%s/.git archive --format=tar --prefix=%s/ HEAD > %s" % (TUTORIAL_DIR, PREFIX_TUTORIAL, DIST_TUTORIAL), shell=True)
++call("git --git-dir=%s/.git archive --format=tar --prefix=%s/ HEAD > %s" % (S4_DIR, PREFIX_S4, DIST_S4), shell=True)
+
+-# Append the tutorials to the XMMS2 archive
++# Append the tutorials and s4 to the XMMS2 archive
+ call("tar -Af %s %s" % (DIST_XMMS2, DIST_TUTORIAL), shell=True)
++call("tar -Af %s %s" % (DIST_XMMS2, DIST_S4), shell=True)
+
+ # Append ChangeLog and a summary of all file hashes."
+ add_files(DIST_XMMS2, PREFIX, get_template(DIST_XMMS2, os.path.join(PREFIX, "wscript")), [
+diff --git a/utils/gen-tree-hashes.py b/utils/gen-tree-hashes.py
+index 7f8b9e4f..9d27adb0 100755
+--- a/utils/gen-tree-hashes.py
++++ b/utils/gen-tree-hashes.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ from subprocess import check_output
+ from operator import itemgetter
+ import os
+@@ -21,3 +21,4 @@ def collect_hashes(*paths):
+
+ print check_output("git describe", shell=True)
+ print collect_hashes(".", "doc/tutorial")
++print collect_hashes(".", "src/lib/s4")
diff --git a/media-sound/xmms2/metadata.xml b/media-sound/xmms2/metadata.xml
index acb83130968b..26ce4e0e0a61 100644
--- a/media-sound/xmms2/metadata.xml
+++ b/media-sound/xmms2/metadata.xml
@@ -33,10 +33,12 @@
<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="fluidsynth">Enable fluidsynth support (MIDI)</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="ofa">Support for Open Fingerprint Architecture (OFA)</flag>
+ <flag name="opus">Enable Opus audio codec support</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>
diff --git a/media-sound/xmms2/xmms2-0.8-r4.ebuild b/media-sound/xmms2/xmms2-0.8-r4.ebuild
index ae57af19d221..b01887b80b14 100644
--- a/media-sound/xmms2/xmms2-0.8-r4.ebuild
+++ b/media-sound/xmms2/xmms2-0.8-r4.ebuild
@@ -51,7 +51,7 @@ RDEPEND="server? (
musepack? ( media-sound/musepack-tools )
ofa? ( media-libs/libofa )
pulseaudio? ( media-sound/pulseaudio )
- samba? ( >=net-fs/samba-4.2[client] )
+ samba? ( >=net-fs/samba-4.2 )
sid? ( media-sound/sidplay
media-libs/resid )
sndfile? ( media-libs/libsndfile )
diff --git a/media-sound/xmms2/xmms2-0.8_p20161122.ebuild b/media-sound/xmms2/xmms2-0.8_p20161122.ebuild
new file mode 100644
index 000000000000..f9e24892bd0b
--- /dev/null
+++ b/media-sound/xmms2/xmms2-0.8_p20161122.ebuild
@@ -0,0 +1,292 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# waf fails on python3_5: AttributeError: Can't pickle local object 'Context.__init__.<locals>.node_class'
+PYTHON_COMPAT=( python{2_7,3_4} )
+USE_RUBY="ruby20 ruby21 ruby22"
+
+inherit eutils multiprocessing python-single-r1 ruby-single toolchain-funcs
+
+# generated as 'python2 ./utils/gen-tarball.py' from clean git tree
+MY_P="${P%_p*}DrO_o-949-gca15e830"
+
+DESCRIPTION="X(cross)platform Music Multiplexing System. Next generation of the XMMS player"
+HOMEPAGE="http://xmms2.org/wiki/Main_Page"
+#SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
+SRC_URI="https://dev.gentoo.org/~slyfox/distfiles/${MY_P}.tar.bz2"
+LICENSE="GPL-2 LGPL-2.1"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~x86"
+
+IUSE="aac airplay +alsa ao asf cdda curl cxx ffmpeg flac fluidsynth gvfs ices
+jack mac mlib-update mms +mad modplug mp3 mp4 musepack ofa opus oss
+perl phonehome pulseaudio python ruby samba +server sid sndfile speex
+test valgrind +vorbis vocoder wavpack xml zeroconf"
+
+RDEPEND="server? (
+ >=dev-db/sqlite-3.3.4
+
+ aac? ( >=media-libs/faad2-2.0 )
+ airplay? ( dev-libs/openssl:0= )
+ alsa? ( media-libs/alsa-lib )
+ ao? ( media-libs/libao )
+ cdda? ( dev-libs/libcdio-paranoia
+ >=media-libs/libdiscid-0.1.1
+ >=media-sound/cdparanoia-3.9.8 )
+ curl? ( >=net-misc/curl-7.15.1 )
+ ffmpeg? ( virtual/ffmpeg )
+ flac? ( media-libs/flac )
+ fluidsynth? ( media-sound/fluidsynth )
+ 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? ( virtual/ffmpeg
+ >=media-libs/libmms-0.3 )
+ modplug? ( media-libs/libmodplug )
+ mad? ( media-libs/libmad )
+ mp3? ( >=media-sound/mpg123-1.5.1 )
+ musepack? ( media-sound/musepack-tools )
+ ofa? ( media-libs/libofa )
+ opus? ( media-libs/opus
+ media-libs/opusfile )
+ pulseaudio? ( media-sound/pulseaudio )
+ samba? ( >=net-fs/samba-4.2 )
+ sid? ( media-sound/sidplay
+ media-libs/resid )
+ sndfile? ( media-libs/libsndfile )
+ speex? ( media-libs/speex
+ media-libs/libogg )
+ vorbis? ( media-libs/libvorbis )
+ vocoder? ( sci-libs/fftw:3.0= media-libs/libsamplerate )
+ wavpack? ( media-sound/wavpack )
+ xml? ( dev-libs/libxml2 )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+ )
+
+ >=dev-libs/glib-2.12.9
+ cxx? ( >=dev-libs/boost-1.32 )
+ perl? ( >=dev-lang/perl-5.8.8 )
+ python? ( ${PYTHON_DEPS} )
+ ruby? ( ${RUBY_DEPS} )
+"
+
+DEPEND="${RDEPEND}
+ dev-lang/python
+ virtual/pkgconfig
+ perl? ( dev-perl/Module-Build
+ virtual/perl-Module-Metadata )
+ python? ( >=dev-python/cython-0.15.1
+ dev-python/pyrex )
+ test? ( dev-util/cunit
+ valgrind? ( dev-util/valgrind ) )
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ # used both for building xmms2 and
+ # optionally linking client library
+ # against python
+ python-single-r1_pkg_setup
+}
+
+# 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_prepare() {
+ ./waf # inflate waf
+ cd .waf* || die
+ # needs port
+ #epatch "${FILESDIR}/${PN}"-0.8DrO_o-waflib-fix-perl.patch #578778
+ cd "${S}"
+
+ eapply "${FILESDIR}/${PN}"-0.8-ffmpeg2.patch #536232
+
+ eapply "${FILESDIR}/${PN}"-0.8-rtvg.patch #424377
+
+ # required to build tarball from git tree
+ eapply "${FILESDIR}/${P}"-tarball.patch
+
+ eapply_user
+}
+
+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)
+ "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
+
+ "test tests"
+ )
+
+ 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"
+ "zeroconf daap"
+ "ENABLED diskwrite"
+ "ENABLED equalizer"
+ "aac faad"
+ "ENABLED file"
+ " flac"
+ " fluidsynth"
+ "ffmpeg flv"
+ "ffmpeg tta"
+ "DISABLED gme" # not in tree
+ " gvfs"
+ "ENABLED html"
+ " ices"
+ "ENABLED icymetaint"
+ "ENABLED id3v2"
+ " jack"
+ "ENABLED karaoke"
+ "ENABLED m3u"
+ " mac"
+ " mms"
+ " mad"
+ "ENABLED midsquash"
+ " mp4" # bug #387961 (aac, mp3, ape can sit there)
+ "mp3 mpg123"
+ " modplug"
+ " musepack"
+ "DISABLED nms" # not in tree
+ "ENABLED normalize"
+ "ENABLED null"
+ "ENABLED nulstripper"
+ " ofa"
+ " opus"
+ " oss"
+ "ENABLED pls"
+ "pulseaudio pulse"
+ "ENABLED replaygain"
+ "xml rss"
+ " samba"
+ "DISABLED sc68" #not in tree
+ " sid"
+ " sndfile"
+ " 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_params+=" $(use_with valgrind)"
+
+ CC="$(tc-getCC)" \
+ CPP="$(tc-getCPP)" \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)" \
+ CXX="$(tc-getCXX)" \
+ ./waf configure ${waf_params} || die "'waf configure' failed"
+}
+
+src_compile() {
+ # waf is very keen to run tests in build phase (bug #424377) but
+ # it does not bother running tests twice, so the hack below works:
+ ./waf --verbose build || ./waf --verbose build || die "waf build failed"
+}
+
+src_test() {
+ # rerun tests
+ ./waf --alltests || die "waf --alltests failed"
+}
+
+src_install() {
+ ./waf --without-ldconfig --destdir="${D}" install || die "'waf install' failed"
+ dodoc AUTHORS TODO
+}
+
+pkg_postinst() {
+ elog "This version is built on experimental development code"
+ elog "If you encounter any errors report them at http://bugs.xmms2.org"
+ 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
+}