summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2022-05-03 00:29:08 -0400
committerIonen Wolkens <ionen@gentoo.org>2022-05-03 01:55:43 -0400
commit24f50fc0c415d1037d79b26c802c944ef0da4035 (patch)
treebdc8b2d96d10aa24fde7373ee2d7f88e68190ed2
parentsci-libs/hipSPARSE: bump to 5.0.2. (diff)
downloadgentoo-24f50fc0.tar.gz
gentoo-24f50fc0.tar.bz2
gentoo-24f50fc0.zip
media-sound/xmms2: add 0.9.1
Special thanks to slyfox for handling a few things upstream and making a release after so long. Mostly same as previous snapshot with patches but with several of these upstreamed and now have a proper release tarball including s4 submodule and updated waf to simplify the ebuild. Also refreshed older patches (none are new). Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
-rw-r--r--media-sound/xmms2/Manifest1
-rw-r--r--media-sound/xmms2/files/xmms2-0.9.1-cpp-client.patch13
-rw-r--r--media-sound/xmms2/files/xmms2-0.9.1-faad.patch13
-rw-r--r--media-sound/xmms2/files/xmms2-0.9.1-rtvg.patch23
-rw-r--r--media-sound/xmms2/xmms2-0.9.1.ebuild224
5 files changed, 274 insertions, 0 deletions
diff --git a/media-sound/xmms2/Manifest b/media-sound/xmms2/Manifest
index 38569c9908ac..e49b5778f52a 100644
--- a/media-sound/xmms2/Manifest
+++ b/media-sound/xmms2/Manifest
@@ -1,3 +1,4 @@
DIST waf-2.0.22.tar.bz2 687244 BLAKE2B feea82e7e6aaba1187f368aa00025f206a7217196de9be7a97ca6aa8882823decd79db38dda4f1f25e81541eaa44edf029eea8d57e28f7d31b94d9ee93201ea9 SHA512 a3a275fd4c81c7b7385c2da001f3924d272105b8f33839265ebbb38708051b7cb13b9b9019e84325707d04513de0c13b032b1ad21458aec6586d10df4ed8d5f5
DIST xmms2-0.8_p20201016.tar.gz 1720185 BLAKE2B e1cad8ed2ece9d8ce905ffe86de53bb4010639d83fd15700eefccf190034577ff8666f3557bfb23741ed8400eba1e6246ef28ff21c4dbbe499239da945befc74 SHA512 0e73771f56c341e5dea15451457426958217de3ac19cad1924c11740f96feb69e385242a27a9cf9258841ed4e6538c12e135492f715bfae6976b31fb358508bf
+DIST xmms2-0.9.1.tar.bz2 1940773 BLAKE2B 4044499c2ffc55e66d5836e2e36360486b970ff05f0dc17b62e65111c06cfcc84f58c74427b1afa4455b4e0bdb7784dc8840cc84411bc57cb7b9f0cac4e46359 SHA512 a7d42202571d7eb5d9da4c9f5d55d2f6e072df52892080d6cc4349f66a55f5fece510c9872be9814dd5b258d0c59e2704ea8497c2d3be515c510d602c17b703a
DIST xmms2-s4-0.8_p20201016.tar.gz 184231 BLAKE2B 0676f89b743e265af01593c215c609ae48ea368d861fd28b022b4124a00852182686a46ebf90ac44a10343f86ba5c398c47fd85e2688971b2b4445f3c3843af5 SHA512 f510141ca792893feba2c00d9bc437f492fdce7c29b12c9a8432792ca5a1703cc7068e1a9f4641abd50b320fefb5867fb5bc58a58b0b0272cf75828c764f94ed
diff --git a/media-sound/xmms2/files/xmms2-0.9.1-cpp-client.patch b/media-sound/xmms2/files/xmms2-0.9.1-cpp-client.patch
new file mode 100644
index 000000000000..491c6fb9771d
--- /dev/null
+++ b/media-sound/xmms2/files/xmms2-0.9.1-cpp-client.patch
@@ -0,0 +1,13 @@
+https://github.com/xmms2/xmms2-devel/pull/5
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Thu, 6 Dec 2018 07:19:08 +0000
+Subject: [PATCH] OTHER: fix c++ client dangling reference
+--- a/src/include/xmmsclient/xmmsclient++/mainloop.h
++++ b/src/include/xmmsclient/xmmsclient++/mainloop.h
+@@ -42,5 +42,5 @@
+ * mainloop, not start it!
+ */
+- MainloopInterface( xmmsc_connection_t* conn ) :
++ MainloopInterface( xmmsc_connection_t*& conn ) :
+ running_( false ), conn_( conn ) { }
+
diff --git a/media-sound/xmms2/files/xmms2-0.9.1-faad.patch b/media-sound/xmms2/files/xmms2-0.9.1-faad.patch
new file mode 100644
index 000000000000..6c282ed6d0a4
--- /dev/null
+++ b/media-sound/xmms2/files/xmms2-0.9.1-faad.patch
@@ -0,0 +1,13 @@
+This line has stopped working since security fixes in the faad 2.9.0
+release. XMMS2 upstream were informed via IRC but have yet to act on
+it. I've run XMMS2 with this patch for months without issue.
+
+-- Chewi
+--- a/src/plugins/faad/faad.c
++++ b/src/plugins/faad/faad.c
+@@ -243,5 +243,4 @@
+ * it frame 1.
+ */
+- NeAACDecPostSeekReset (data->decoder, 1);
+
+ /* FIXME: Because for HE AAC files some versions of libfaad return the wrong
diff --git a/media-sound/xmms2/files/xmms2-0.9.1-rtvg.patch b/media-sound/xmms2/files/xmms2-0.9.1-rtvg.patch
new file mode 100644
index 000000000000..86f48ca066dc
--- /dev/null
+++ b/media-sound/xmms2/files/xmms2-0.9.1-rtvg.patch
@@ -0,0 +1,23 @@
+Add knob to control valgrind usage during tests.
+https://bugs.gentoo.org/424377
+--- a/waftools/unittest.py
++++ b/waftools/unittest.py
+@@ -147,5 +147,6 @@
+ def configure(conf):
+ conf.load("waf_unit_test")
+- conf.find_program("valgrind", var="VALGRIND", mandatory=False)
++ if conf.options.enable_valgrind is True:
++ conf.find_program("valgrind", var="VALGRIND", mandatory=False)
+ conf.find_program("lcov", var="LCOV", mandatory=False)
+ conf.find_program("genhtml", var="GENHTML", mandatory=False)
+--- a/wscript
++++ b/wscript
+@@ -624,4 +624,8 @@
+ opt.add_option('--without-ldconfig', action='store_false',
+ dest='ldconfig', help="Don't run ldconfig after install")
++ opt.add_option('--with-valgrind', action='store_true', default=None,
++ dest='enable_valgrind', help="Run testsuite under valgrind (if present).")
++ opt.add_option('--without-valgrind', action='store_false', default=None,
++ dest='enable_valgrind', help="Don't run testsuite under valgrind.")
+
+ opt.recurse("src/xmms")
diff --git a/media-sound/xmms2/xmms2-0.9.1.ebuild b/media-sound/xmms2/xmms2-0.9.1.ebuild
new file mode 100644
index 000000000000..3352a282436e
--- /dev/null
+++ b/media-sound/xmms2/xmms2-0.9.1.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit multiprocessing optfeature perl-functions python-single-r1 toolchain-funcs
+
+DESCRIPTION="X(cross)platform Music Multiplexing System, next generation of the XMMS player"
+HOMEPAGE="https://github.com/XMMS2"
+SRC_URI="https://github.com/xmms2/xmms2-devel/releases/download/${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~riscv ~x86"
+
+# IUSE static map to be passed to --with-{optionals,plugins}=opt1,opt2,...
+# flag:opt = `usev flag opt`, opt = `usev opt`, :opt = `echo opt`
+# (if have a use for some of these disabled features, please fill a bug)
+XMMS2_OPTIONALS=(
+ cxx:xmmsclient++,xmmsclient++-glib :launcher mlib-update:medialib-updater
+ :nycli perl :pixmaps python server:s4 test:tests
+ # disabled: et,mdns,migrate-collections,ruby,sqlite2s4,vistest,xmmsclient-cf,xmmsclient-ecore
+)
+XMMS2_PLUGINS=(
+ aac:faad airplay alsa ao :asx cdda :cue curl :diskwrite :equalizer
+ ffmpeg:apefile,asf,avcodec,flv,tta :file flac fluidsynth:fluidsynth,mid1,midsquash
+ gme :html ices :icymetaint :id3v2 jack :karaoke :m3u mac +mad mms modplug
+ mp3:mpg123 :mp4 musepack :normalize :null :nulstripper ofa opus oss :pls
+ pulseaudio:pulse :replaygain samba sid sndfile speex tremor vocoder +vorbis
+ :wave wavpack :xml xml:rss,xspf zeroconf:daap
+ # disabled: coreaudio,gvfs,nms,sc68,sun,waveout
+)
+
+IUSE="
+ ${XMMS2_OPTIONALS[@]%:*}
+ ${XMMS2_PLUGINS[@]%:*}
+ +server valgrind"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="!test? ( test ) !server? ( test )"
+
+COMMON_DEPEND="
+ dev-libs/glib:2
+ sys-libs/readline:=
+ server? (
+ aac? ( media-libs/faad2 )
+ airplay? ( dev-libs/openssl:= )
+ alsa? ( media-libs/alsa-lib )
+ ao? ( media-libs/libao )
+ cdda? (
+ dev-libs/libcdio-paranoia:=
+ dev-libs/libcdio:=
+ media-libs/libdiscid
+ )
+ curl? ( net-misc/curl )
+ ffmpeg? ( media-video/ffmpeg:= )
+ flac? ( media-libs/flac )
+ fluidsynth? ( media-sound/fluidsynth:= )
+ gme? ( media-libs/game-music-emu )
+ ices? (
+ media-libs/libogg
+ media-libs/libshout
+ media-libs/libvorbis
+ )
+ jack? ( virtual/jack )
+ mac? ( media-sound/mac )
+ mad? ( media-libs/libmad )
+ mms? (
+ media-libs/libmms
+ media-video/ffmpeg:=
+ )
+ modplug? ( media-libs/libmodplug )
+ mp3? ( media-sound/mpg123 )
+ musepack? ( media-sound/musepack-tools )
+ ofa? (
+ dev-libs/expat
+ media-libs/libofa
+ sci-libs/fftw:3.0=
+ )
+ opus? (
+ media-libs/libogg
+ media-libs/opus
+ media-libs/opusfile
+ )
+ pulseaudio? ( || ( media-libs/libpulse media-sound/pulseaudio ) )
+ samba? ( net-fs/samba )
+ sid? ( media-libs/libsidplay:2 )
+ sndfile? ( media-libs/libsndfile )
+ speex? (
+ media-libs/libogg
+ media-libs/speex
+ )
+ tremor? ( media-libs/tremor )
+ vocoder? (
+ media-libs/libsamplerate
+ sci-libs/fftw:3.0=
+ )
+ vorbis? ( media-libs/libvorbis )
+ wavpack? ( media-sound/wavpack )
+ xml? ( dev-libs/libxml2 )
+ zeroconf? (
+ net-dns/avahi[mdnsresponder-compat]
+ net-misc/curl
+ )
+ )"
+RDEPEND="
+ ${COMMON_DEPEND}
+ perl? (
+ dev-lang/perl
+ dev-perl/glib-perl
+ virtual/perl-Carp
+ virtual/perl-IO
+ virtual/perl-Scalar-List-Utils
+ )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep 'dev-python/pygobject[${PYTHON_USEDEP}]')
+ )"
+DEPEND="
+ ${COMMON_DEPEND}
+ cxx? ( dev-libs/boost )
+ test? ( dev-util/cunit )"
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+ perl? ( dev-perl/Pod-Parser )
+ python? ( $(python_gen_cond_dep 'dev-python/cython[${PYTHON_USEDEP}]') )
+ test? ( valgrind? ( dev-util/valgrind ) )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9.1-cpp-client.patch
+ "${FILESDIR}"/${PN}-0.9.1-faad.patch
+ "${FILESDIR}"/${PN}-0.9.1-rtvg.patch
+)
+
+src_prepare() {
+ default
+
+ # meant to be configured, but give a default for out-of-the-box midi
+ sed -e "s|/path/to/.*sf2|${EPREFIX}/usr/share/sounds/sf2/FluidR3_GM.sf2|" \
+ -i src/plugins/fluidsynth/fluidsynth.c || die
+}
+
+src_configure() {
+ local waf=(
+ ./waf configure
+ --prefix="${EPREFIX}"/usr
+ --libdir="${EPREFIX}"/usr/$(get_libdir)
+ --boost-includes="${ESYSROOT}"/usr/include # needed for prefix
+ --with-target-platform="${CHOST}"
+ )
+
+ xmms2_flag() {
+ local IFS=:
+ set -- ${1#+}
+
+ if [[ ${1} ]]; then
+ usev ${1} ,${2:-${1}}
+ else
+ echo ,${2}
+ fi
+ }
+
+ local flag optionals plugins
+
+ if use server; then
+ for flag in "${XMMS2_PLUGINS[@]}"; do
+ plugins+=$(xmms2_flag ${flag})
+ done
+ else
+ waf+=( --without-xmms2d )
+ fi
+
+ for flag in "${XMMS2_OPTIONALS[@]}"; do
+ optionals+=$(xmms2_flag ${flag})
+ done
+
+ waf+=(
+ # pass even if empty to avoid automagic
+ --with-optionals=${optionals:1}
+ --with-plugins=${plugins:1}
+ )
+
+ if use perl; then
+ perl_set_version
+ waf+=( --with-perl-archdir="${ARCH_LIB}" )
+ fi
+
+ if use valgrind; then
+ if valgrind true &>/dev/null; then
+ waf+=( --with-valgrind )
+ else
+ ewarn "valgrind was disabled due to failing a basic sanity check" #807271
+ fi
+ fi
+
+ tc-export AR CC CXX
+
+ echo "${waf[*]}"
+ "${waf[@]}" || die
+}
+
+src_compile() {
+ ./waf build -j$(makeopts_jobs) --verbose --notests || die
+}
+
+src_test() {
+ ./waf --alltests || die
+}
+
+src_install() {
+ ./waf install --destdir="${D}" --without-ldconfig --notests || die
+
+ dodoc AUTHORS README.mdown *.ChangeLog
+
+ use python && python_optimize
+
+ # to avoid editing waftools/man.py (use find given not always installed)
+ find "${ED}" -name '*.gz' -exec gzip -d {} + || die
+}
+
+pkg_postinst() {
+ use fluidsynth && optfeature "the default MIDI soundfont" media-sound/fluid-soundfont
+}