You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-sound/xmms2/xmms2-0.8_p20161122-r8.ebuild

331 lines
8.1 KiB

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7,8,9} )
USE_RUBY="ruby24 ruby25 ruby26"
inherit multiprocessing perl-functions 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"
WAF_VER="2.0.19"
DESCRIPTION="X(cross)platform Music Multiplexing System. Next generation of the XMMS player"
HOMEPAGE="https://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
https://waf.io/waf-${WAF_VER}.tar.bz2"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm ppc x86"
IUSE="aac airplay +alsa ao asf cdda curl cxx ffmpeg flac fluidsynth 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? ( media-video/ffmpeg )
flac? ( media-libs/flac )
fluidsynth? ( media-sound/fluidsynth )
ices? ( media-libs/libogg
media-libs/libshout
media-libs/libvorbis )
jack? ( virtual/jack )
mac? ( media-sound/mac )
mms? ( media-video/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 )
test? ( dev-util/cunit
valgrind? ( dev-util/valgrind ) )
"
RESTRICT="!test? ( test )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
S="${WORKDIR}/${MY_P}"
PATCHES=(
# needs port
#epatch "${FILESDIR}/${PN}"-0.8DrO_o-waflib-fix-perl.patch #578778
"${FILESDIR}/${PN}"-0.8-ffmpeg2.patch #536232
"${FILESDIR}/${PN}"-0.8-rtvg.patch #424377
# required to build tarball from git tree
"${FILESDIR}/${P}"-tarball.patch
# fix hash to be the same on LE/BE platforms
"${FILESDIR}/${P}"-be-hash.patch
# handle mac-3 -> -4 API change
"${FILESDIR}/${P}"-mac-4.patch
# C++ client dangling reference: https://github.com/xmms2/xmms2-devel/pull/5
"${FILESDIR}/${P}"-cpp-client.patch
# gcc-10 stopped putting globals into common section
"${FILESDIR}/${P}"-gcc-10.patch
# fix required since faad 2.9.0
"${FILESDIR}/${P}"-faad.patch
)
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() {
mv "${WORKDIR}/waf-${WAF_VER}"/{waf,waflib/} . || die
default
}
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
"DISABLED gvfs" # obsolete #647604
"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
if use perl; then
perl_set_version
waf_params+=( --with-perl-archdir="${ARCH_LIB}" )
fi
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
--with-plugins="${plugins:1}"
$(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
python_optimize
# waftools/man.py always compresses man pages with gzip.
# to avoid code changed let's just un-gzip manpages
local m
for m in "${ED}"/usr/share/man/man1/*.gz; do
# For some combination of USEs no mans are installed.
if [[ -f ${m} ]]; then
einfo "Uncompressing '${m#${ED}}' back."
gzip -d "${m}" || die
fi
done
}
pkg_postinst() {
elog "This version is built on experimental development code"
elog "If you encounter any errors report them at https://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
}