Gentoo Archives: gentoo-commits

From: Sergei Trofimovich <slyfox@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/xmms2/
Date: Mon, 05 Feb 2018 09:41:54
Message-Id: 1517823703.f29596974cca3b7acb8ecea5d4fe9fc7a26467a5.slyfox@gentoo
1 commit: f29596974cca3b7acb8ecea5d4fe9fc7a26467a5
2 Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
3 AuthorDate: Mon Feb 5 09:41:20 2018 +0000
4 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
5 CommitDate: Mon Feb 5 09:41:43 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f2959697
7
8 media-sound/xmms2: use virtual/jack instead of media-sound/jack
9
10 Noticed and reported as working by korans!
11
12 Package-Manager: Portage-2.3.20, Repoman-2.3.6
13
14 media-sound/xmms2/xmms2-0.8_p20161122-r2.ebuild | 297 ++++++++++++++++++++++++
15 1 file changed, 297 insertions(+)
16
17 diff --git a/media-sound/xmms2/xmms2-0.8_p20161122-r2.ebuild b/media-sound/xmms2/xmms2-0.8_p20161122-r2.ebuild
18 new file mode 100644
19 index 00000000000..4471878ba15
20 --- /dev/null
21 +++ b/media-sound/xmms2/xmms2-0.8_p20161122-r2.ebuild
22 @@ -0,0 +1,297 @@
23 +# Copyright 1999-2018 Gentoo Foundation
24 +# Distributed under the terms of the GNU General Public License v2
25 +
26 +EAPI=6
27 +
28 +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
29 +USE_RUBY="ruby20 ruby21 ruby22"
30 +
31 +inherit eutils multiprocessing python-single-r1 ruby-single toolchain-funcs
32 +
33 +# generated as 'python2 ./utils/gen-tarball.py' from clean git tree
34 +MY_P="${P%_p*}DrO_o-949-gca15e830"
35 +
36 +DESCRIPTION="X(cross)platform Music Multiplexing System. Next generation of the XMMS player"
37 +HOMEPAGE="https://xmms2.org/wiki/Main_Page"
38 +#SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
39 +SRC_URI="https://dev.gentoo.org/~slyfox/distfiles/${MY_P}.tar.bz2"
40 +LICENSE="GPL-2 LGPL-2.1"
41 +
42 +SLOT="0"
43 +KEYWORDS="~alpha ~amd64 ~arm ~ppc ~x86"
44 +
45 +IUSE="aac airplay +alsa ao asf cdda curl cxx ffmpeg flac fluidsynth gvfs ices
46 +jack mac mlib-update mms +mad modplug mp3 mp4 musepack ofa opus oss
47 +perl phonehome pulseaudio python ruby samba +server sid sndfile speex
48 +test valgrind +vorbis vocoder wavpack xml zeroconf"
49 +
50 +RDEPEND="server? (
51 + >=dev-db/sqlite-3.3.4
52 +
53 + aac? ( >=media-libs/faad2-2.0 )
54 + airplay? ( dev-libs/openssl:0= )
55 + alsa? ( media-libs/alsa-lib )
56 + ao? ( media-libs/libao )
57 + cdda? ( dev-libs/libcdio-paranoia
58 + >=media-libs/libdiscid-0.1.1
59 + >=media-sound/cdparanoia-3.9.8 )
60 + curl? ( >=net-misc/curl-7.15.1 )
61 + ffmpeg? ( virtual/ffmpeg )
62 + flac? ( media-libs/flac )
63 + fluidsynth? ( media-sound/fluidsynth )
64 + gvfs? ( gnome-base/gnome-vfs )
65 + ices? ( media-libs/libogg
66 + media-libs/libshout
67 + media-libs/libvorbis )
68 + jack? ( virtual/jack )
69 + mac? ( media-sound/mac )
70 + mms? ( virtual/ffmpeg
71 + >=media-libs/libmms-0.3 )
72 + modplug? ( media-libs/libmodplug )
73 + mad? ( media-libs/libmad )
74 + mp3? ( >=media-sound/mpg123-1.5.1 )
75 + musepack? ( media-sound/musepack-tools )
76 + ofa? ( media-libs/libofa )
77 + opus? ( media-libs/opus
78 + media-libs/opusfile )
79 + pulseaudio? ( media-sound/pulseaudio )
80 + samba? ( >=net-fs/samba-4.2 )
81 + sid? ( media-sound/sidplay
82 + media-libs/resid )
83 + sndfile? ( media-libs/libsndfile )
84 + speex? ( media-libs/speex
85 + media-libs/libogg )
86 + vorbis? ( media-libs/libvorbis )
87 + vocoder? ( sci-libs/fftw:3.0= media-libs/libsamplerate )
88 + wavpack? ( media-sound/wavpack )
89 + xml? ( dev-libs/libxml2 )
90 + zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
91 + )
92 +
93 + >=dev-libs/glib-2.12.9
94 + cxx? ( >=dev-libs/boost-1.32 )
95 + perl? ( >=dev-lang/perl-5.8.8 )
96 + python? ( ${PYTHON_DEPS} )
97 + ruby? ( ${RUBY_DEPS} )
98 +"
99 +
100 +DEPEND="${RDEPEND}
101 + dev-lang/python
102 + virtual/pkgconfig
103 + perl? ( dev-perl/Module-Build
104 + virtual/perl-Module-Metadata )
105 + python? ( >=dev-python/cython-0.15.1
106 + dev-python/pyrex )
107 + test? ( dev-util/cunit
108 + valgrind? ( dev-util/valgrind ) )
109 +"
110 +
111 +REQUIRED_USE="${PYTHON_REQUIRED_USE}"
112 +
113 +S="${WORKDIR}/${MY_P}"
114 +
115 +pkg_setup() {
116 + # used both for building xmms2 and
117 + # optionally linking client library
118 + # against python
119 + python-single-r1_pkg_setup
120 +}
121 +
122 +# use_enable() is taken as proto
123 +# $1 - useflag
124 +# $2 - xmms2 option/plugin name (equals to $1 if not set)
125 +
126 +xmms2_flag() {
127 + [[ -z $1 ]] && eerror "!!! empty arg. usage: xmms2_flag <USEFLAG> [<xmms2_flagname>]."
128 +
129 + local UWORD=${2:-$1}
130 +
131 + case $1 in
132 + ENABLED)
133 + echo ",${UWORD}"
134 + ;;
135 + DISABLED)
136 + ;;
137 + *)
138 + use $1 && echo ",${UWORD}"
139 + ;;
140 + esac
141 +}
142 +
143 +src_prepare() {
144 + ./waf # inflate waf
145 + cd .waf* || die
146 + # needs port
147 + #epatch "${FILESDIR}/${PN}"-0.8DrO_o-waflib-fix-perl.patch #578778
148 + cd "${S}"
149 +
150 + eapply "${FILESDIR}/${PN}"-0.8-ffmpeg2.patch #536232
151 +
152 + eapply "${FILESDIR}/${PN}"-0.8-rtvg.patch #424377
153 +
154 + # required to build tarball from git tree
155 + eapply "${FILESDIR}/${P}"-tarball.patch
156 +
157 + # fix hash to be the same on LE/BE platforms
158 + eapply "${FILESDIR}/${P}"-be-hash.patch
159 +
160 + # handle mac-3 -> -4 API change
161 + eapply "${FILESDIR}/${P}"-mac-4.patch
162 +
163 + eapply_user
164 +}
165 +
166 +src_configure() {
167 + # ./configure alike options.
168 + local waf_params="--prefix=/usr \
169 + --libdir=/usr/$(get_libdir) \
170 + --with-target-platform=${CHOST} \
171 + --mandir=/usr/share/man \
172 + --infodir=/usr/share/info \
173 + --datadir=/usr/share \
174 + --sysconfdir=/etc \
175 + --localstatedir=/var/lib"
176 +
177 + local optionals=""
178 + local plugins=""
179 + if ! use server ; then
180 + waf_params+=" --without-xmms2d"
181 + else
182 + # some fun static mappings:
183 + local option_map=( # USE # sorted xmms2 option flag (same, as USE if empty)
184 + "phonehome et"
185 + "ENABLED launcher"
186 + "mlib-update medialib-updater"
187 + "ENABLED nycli"
188 + " perl"
189 + "ENABLED pixmaps"
190 + " python"
191 + " ruby"
192 + "DISABLED tests"
193 + "DISABLED vistest"
194 + "cxx xmmsclient++"
195 + "cxx xmmsclient++-glib"
196 + "DISABLED xmmsclient-cf"
197 + "DISABLED xmmsclient-ecore" # not in tree
198 +
199 + "test tests"
200 + )
201 +
202 + local plugin_map=( # USE # sorted xmms2 plugin flag (same, as USE if empty)
203 + " alsa"
204 + " airplay"
205 + " ao"
206 + "ffmpeg apefile"
207 + "ffmpeg avcodec"
208 + " asf"
209 + "ENABLED asx"
210 + " cdda"
211 + "DISABLED coreaudio" # MacOS only?
212 + " curl"
213 + "ENABLED cue"
214 + "zeroconf daap"
215 + "ENABLED diskwrite"
216 + "ENABLED equalizer"
217 + "aac faad"
218 + "ENABLED file"
219 + " flac"
220 + " fluidsynth"
221 + "ffmpeg flv"
222 + "ffmpeg tta"
223 + "DISABLED gme" # not in tree
224 + " gvfs"
225 + "ENABLED html"
226 + " ices"
227 + "ENABLED icymetaint"
228 + "ENABLED id3v2"
229 + " jack"
230 + "ENABLED karaoke"
231 + "ENABLED m3u"
232 + " mac"
233 + " mms"
234 + " mad"
235 + "ENABLED midsquash"
236 + " mp4" # bug #387961 (aac, mp3, ape can sit there)
237 + "mp3 mpg123"
238 + " modplug"
239 + " musepack"
240 + "DISABLED nms" # not in tree
241 + "ENABLED normalize"
242 + "ENABLED null"
243 + "ENABLED nulstripper"
244 + " ofa"
245 + " opus"
246 + " oss"
247 + "ENABLED pls"
248 + "pulseaudio pulse"
249 + "ENABLED replaygain"
250 + "xml rss"
251 + " samba"
252 + "DISABLED sc68" #not in tree
253 + " sid"
254 + " sndfile"
255 + " speex"
256 + "DISABLED sun" # {Open,Net}BSD only
257 + "DISABLED tremor" # not in tree
258 + " vorbis"
259 + " vocoder"
260 + "ffmpeg tta"
261 + "ENABLED wave"
262 + "DISABLED waveout" # windows only
263 + " wavpack"
264 + "xml xspf"
265 + "ENABLED xml"
266 + )
267 +
268 + local option
269 + for option in "${option_map[@]}"; do
270 + optionals+=$(xmms2_flag $option)
271 + done
272 +
273 + local plugin
274 + for plugin in "${plugin_map[@]}"; do
275 + plugins+=$(xmms2_flag $plugin)
276 + done
277 + fi # ! server
278 +
279 + # pass them explicitely even if empty as we try to avoid magic deps
280 + waf_params+=" --with-optionals=${optionals:1}" # skip first ',' if yet
281 + waf_params+=" --with-plugins=${plugins:1}"
282 + waf_params+=" $(use_with valgrind)"
283 +
284 + CC="$(tc-getCC)" \
285 + CPP="$(tc-getCPP)" \
286 + AR="$(tc-getAR)" \
287 + RANLIB="$(tc-getRANLIB)" \
288 + CXX="$(tc-getCXX)" \
289 + ./waf configure ${waf_params} || die "'waf configure' failed"
290 +}
291 +
292 +src_compile() {
293 + # waf is very keen to run tests in build phase (bug #424377) but
294 + # it does not bother running tests twice, so the hack below works:
295 + ./waf --verbose build || ./waf --verbose build || die "waf build failed"
296 +}
297 +
298 +src_test() {
299 + # rerun tests
300 + ./waf --alltests || die "waf --alltests failed"
301 +}
302 +
303 +src_install() {
304 + ./waf --without-ldconfig --destdir="${D}" install || die "'waf install' failed"
305 + dodoc AUTHORS TODO
306 +}
307 +
308 +pkg_postinst() {
309 + elog "This version is built on experimental development code"
310 + elog "If you encounter any errors report them at https://bugs.xmms2.org"
311 + elog "and visit #xmms2 at irc://irc.freenode.net"
312 + if use phonehome ; then
313 + einfo ""
314 + einfo "The phone-home client xmms2-et was activated"
315 + einfo "This client sends anonymous usage-statistics to the xmms2"
316 + einfo "developers which may help finding bugs"
317 + einfo "Disable the phonehome useflag if you don't like that"
318 + fi
319 +}