Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: profiles/base/, media-video/mpv/
Date: Fri, 23 Feb 2018 20:39:18
Message-Id: 1519418334.d329da2cb0aba9e7b9289a3c0604668542571478.mgorny@gentoo
1 commit: d329da2cb0aba9e7b9289a3c0604668542571478
2 Author: Ilya Tumaykin <itumaykin <AT> gmail <DOT> com>
3 AuthorDate: Fri Feb 23 10:20:57 2018 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Fri Feb 23 20:38:54 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d329da2c
7
8 media-video/mpv: bump to 0.27.2, 0.28.2 with extra fix for CVE-2018-6360
9
10 Package-Manager: Portage-2.3.24, Repoman-2.3.6
11
12 media-video/mpv/Manifest | 3 +
13 media-video/mpv/mpv-0.27.2.ebuild | 368 ++++++++++++++++++++++++++++++++++
14 media-video/mpv/mpv-0.28.2.ebuild | 355 ++++++++++++++++++++++++++++++++
15 profiles/base/package.use.stable.mask | 4 +-
16 4 files changed, 728 insertions(+), 2 deletions(-)
17
18 diff --git a/media-video/mpv/Manifest b/media-video/mpv/Manifest
19 index f86d59269f7..f3af1b0fd39 100644
20 --- a/media-video/mpv/Manifest
21 +++ b/media-video/mpv/Manifest
22 @@ -2,5 +2,8 @@ DIST mpv-0.25.0-patches-r2.tar.xz 11036 BLAKE2B 09fdd566c5fcca290829c536c9e41b65
23 DIST mpv-0.25.0.tar.gz 2874584 BLAKE2B c64321b50fd635f82bbcbce5cdefee1d0da011558cebdacd3339aaa14162f659c955bea75341ed21096eea5b689e4c1ca4d2d97feff1f4026044ddd61bdd9944 SHA512 eefc574e2995ddf6bd15c9b62986a5ca277c30949b036d57a11bbfb796c11c1e6dd7c313abd91a909dd98ca0f2b0be29ec6b980d0287a5891b42b0ffba926cbf
24 DIST mpv-0.27.1-patches-r0.tar.xz 6580 BLAKE2B fdf5f580fbda9ec6856354d43fd80a177464af27ea6f65ab31c610996fced64670f178956b4030c9c34d0707f8fa4544c829e4401679d2e2d6e730b19ebfe6d8 SHA512 8f25c51f0a3c6b5304090144b8343afba4d872216f8fa13890240a51ac464bd2c486b017390d4d3398d7082ffdf3e617659861f15505bd2db72b6f5ab4500bcb
25 DIST mpv-0.27.1.tar.gz 2957202 BLAKE2B 79dd06ba9399368f24c2c0a065218432110829af08d97cfdf753966ec7ca75e5af8f04da381f83251cb57bdce9b30c0d2d8c6fc772f73b5a0ed43139ce66a316 SHA512 3b8e12edb20b6ffdbbb02aba9cc64ad25e4fb583efc72248549641a46cc840827c1b6b017e7efc323d8a8299b7b094a676525bd978b8c3c9ecccca32fe39149a
26 +DIST mpv-0.27.2-patches-r0.tar.xz 6564 BLAKE2B c02efea40e0b19d60eaa49520988464fbf4c9221108cbf19021934dc0cb0a975dab148ec1ea03753d81b8035173e3e5bd74b262ab5675d9fc5dce4a0f75ea37c SHA512 d1c955c32082338f5c7f1cd8268471ca0ac6dcd817c5fe39fb82f0e8bd3babf6f2f954d4ce52e9be786e5527df75cc6f4f3de8106a3517c8a1d8e39be1b4ebbd
27 +DIST mpv-0.27.2.tar.gz 2957191 BLAKE2B 35e316e5a30869ae44ff229e99ae11a88e2f7d55b55946bfb752d5ed2d8212885c0c2abb59c9ff6d23a72daee47d80f44511313d67ee6fb265e6681ba4b89ee1 SHA512 bf74a150b3732b8c233362e0902c54f85fbea9ca1765a2a8f946a6eecd9b37a72ede36a36d0dd98a770539c4f81fe24c8ce26be9db7cd6eddd8514a8f82d9cda
28 DIST mpv-0.28.1.tar.gz 2982546 BLAKE2B ae078e3393b1113a8211699da1fea867324c50d3696ab82446996f04b2571b29791811b3d3dc082761ca36d63c9b1aa844d7cd56b740e73821b3e7ca35d39512 SHA512 7593e5dbb5963bf39f57f8a08f1b5142474897172a2c6cafcbfd3a83a2f0cfb9a3e5d62eea6625f01aae8ccc236b738511846cd5a5016b93d2510f12f0be7624
29 +DIST mpv-0.28.2.tar.gz 2982558 BLAKE2B 5faef4122d456916f43bd603192fc72dee1ad16fa3c842d54a2e53dc8f9db416545549a86af62481fe211dc088821ab13b832c09f82572b36167dd3a73d57f62 SHA512 e6206e8c65dca084e2cfa73ab09278b7113cdfd90b89877d1f75a1068c6379a093ea3955a023857357683edce1aba8c12ee441fd195d887af4d939fc7b66cef4
30 DIST waf-1.9.8 100685 BLAKE2B b335115b7ba5af4f8f49fc4da7967fa20e0633bfc7de7ad28fdb58dfcf7ae9c7833d053d298280e26e94b18af70a66fc13d08adf1fc7f9ad9b81e70d95cc74fc SHA512 e7493767f65deeb38aa162adef22adf60ebbd038410e9cdf4fe6f0de8c43395dbbba14962aa2c3855e1277136085fc22ad12ebfb8ac4e76f16358296039b8ea2
31
32 diff --git a/media-video/mpv/mpv-0.27.2.ebuild b/media-video/mpv/mpv-0.27.2.ebuild
33 new file mode 100644
34 index 00000000000..a7023047360
35 --- /dev/null
36 +++ b/media-video/mpv/mpv-0.27.2.ebuild
37 @@ -0,0 +1,368 @@
38 +# Copyright 1999-2018 Gentoo Foundation
39 +# Distributed under the terms of the GNU General Public License v2
40 +
41 +EAPI=6
42 +
43 +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
44 +PYTHON_REQ_USE='threads(+)'
45 +
46 +WAF_PV=1.9.8
47 +
48 +inherit eapi7-ver flag-o-matic gnome2-utils pax-utils python-r1 toolchain-funcs waf-utils xdg-utils
49 +
50 +DESCRIPTION="Media player based on MPlayer and mplayer2"
51 +HOMEPAGE="https://mpv.io/"
52 +
53 +if [[ ${PV} != *9999* ]]; then
54 + SRC_URI="
55 + https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz
56 + https://dev.gentoo.org/~kensington/distfiles/${P}-patches-${PR}.tar.xz
57 + "
58 + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux"
59 + DOCS=( RELEASE_NOTES )
60 +else
61 + EGIT_REPO_URI="https://github.com/mpv-player/mpv.git"
62 + inherit git-r3
63 + DOCS=(); SRC_URI=""
64 +fi
65 +SRC_URI+=" https://waf.io/waf-${WAF_PV}"
66 +DOCS+=( README.md DOCS/{client-api,interface}-changes.rst )
67 +
68 +# See Copyright in sources and Gentoo bug 506946. Waf is BSD, libmpv is ISC.
69 +LICENSE="LGPL-2.1+ GPL-2+ BSD ISC samba? ( GPL-3+ )"
70 +SLOT="0"
71 +IUSE="+alsa aqua archive bluray cdda +cli coreaudio cplugins cuda doc drm dvb
72 + dvd +egl encode gbm +iconv jack javascript jpeg lcms +libass libav libcaca
73 + libmpv +lua luajit openal +opengl oss pulseaudio raspberry-pi rubberband
74 + samba sdl selinux test tools +uchardet v4l vaapi vdpau wayland +X +xv zlib
75 + zsh-completion"
76 +
77 +REQUIRED_USE="
78 + || ( cli libmpv )
79 + aqua? ( opengl )
80 + cuda? ( !libav opengl )
81 + egl? ( || ( gbm X wayland ) )
82 + gbm? ( drm egl opengl )
83 + lcms? ( opengl )
84 + luajit? ( lua )
85 + opengl? ( || ( aqua egl X raspberry-pi !cli ) )
86 + raspberry-pi? ( opengl )
87 + test? ( opengl )
88 + tools? ( cli )
89 + uchardet? ( iconv )
90 + v4l? ( || ( alsa oss ) )
91 + vaapi? ( || ( gbm X wayland ) )
92 + vdpau? ( X )
93 + wayland? ( egl )
94 + X? ( egl? ( opengl ) )
95 + xv? ( X )
96 + zsh-completion? ( cli )
97 + ${PYTHON_REQUIRED_USE}
98 +"
99 +
100 +COMMON_DEPEND="
101 + !libav? ( >=media-video/ffmpeg-3.2.2:0=[encode?,threads,vaapi?,vdpau?] )
102 + libav? ( >=media-video/libav-12:0=[encode?,threads,vaapi?,vdpau?] )
103 + alsa? ( >=media-libs/alsa-lib-1.0.18 )
104 + archive? ( >=app-arch/libarchive-3.0.0:= )
105 + bluray? ( >=media-libs/libbluray-0.3.0:= )
106 + cdda? ( dev-libs/libcdio-paranoia )
107 + cuda? ( >=media-video/ffmpeg-3.3:0 )
108 + drm? ( x11-libs/libdrm )
109 + dvd? (
110 + >=media-libs/libdvdnav-4.2.0
111 + >=media-libs/libdvdread-4.1.0
112 + )
113 + egl? ( media-libs/mesa[egl,gbm(-)?,wayland(-)?] )
114 + iconv? (
115 + virtual/libiconv
116 + uchardet? ( app-i18n/uchardet )
117 + )
118 + jack? ( virtual/jack )
119 + javascript? ( >=dev-lang/mujs-1.0.0 )
120 + jpeg? ( virtual/jpeg:0 )
121 + lcms? ( >=media-libs/lcms-2.6:2 )
122 + libass? (
123 + >=media-libs/libass-0.12.1:=[fontconfig,harfbuzz]
124 + virtual/ttf-fonts
125 + )
126 + libcaca? ( >=media-libs/libcaca-0.99_beta18 )
127 + lua? (
128 + !luajit? ( <dev-lang/lua-5.3:= )
129 + luajit? ( dev-lang/luajit:2 )
130 + )
131 + openal? ( >=media-libs/openal-1.13 )
132 + pulseaudio? ( media-sound/pulseaudio )
133 + raspberry-pi? ( >=media-libs/raspberrypi-userland-0_pre20160305-r1 )
134 + rubberband? ( >=media-libs/rubberband-1.8.0 )
135 + samba? ( net-fs/samba )
136 + sdl? ( media-libs/libsdl2[sound,threads,video] )
137 + v4l? ( media-libs/libv4l )
138 + vaapi? (
139 + !libav? ( >=media-video/ffmpeg-3.3:0 )
140 + libav? ( >=media-video/libav-13:0 )
141 + x11-libs/libva:=[drm?,X?,wayland?]
142 + )
143 + vdpau? (
144 + !libav? ( >=media-video/ffmpeg-3.3:0 )
145 + libav? ( >=media-video/libav-13:0 )
146 + x11-libs/libvdpau
147 + )
148 + wayland? (
149 + >=dev-libs/wayland-1.6.0
150 + >=x11-libs/libxkbcommon-0.3.0
151 + )
152 + X? (
153 + x11-libs/libX11
154 + x11-libs/libXScrnSaver
155 + x11-libs/libXext
156 + x11-libs/libXinerama
157 + x11-libs/libXrandr
158 + opengl? (
159 + x11-libs/libXdamage
160 + virtual/opengl
161 + )
162 + xv? ( x11-libs/libXv )
163 + )
164 + zlib? ( sys-libs/zlib )
165 +"
166 +DEPEND="${COMMON_DEPEND}
167 + ${PYTHON_DEPS}
168 + dev-python/docutils
169 + virtual/pkgconfig
170 + doc? ( dev-python/rst2pdf )
171 + dvb? ( virtual/linuxtv-dvb-headers )
172 + test? ( >=dev-util/cmocka-1.0.0 )
173 + v4l? ( virtual/os-headers )
174 + zsh-completion? ( dev-lang/perl )
175 +"
176 +RDEPEND="${COMMON_DEPEND}
177 + cuda? ( x11-drivers/nvidia-drivers[X] )
178 + selinux? ( sec-policy/selinux-mplayer )
179 + tools? ( ${PYTHON_DEPS} )
180 +"
181 +
182 +PATCHES=(
183 + "${FILESDIR}/${PN}-0.19.0-make-ffmpeg-version-check-non-fatal.patch"
184 + "${FILESDIR}/${PN}-0.23.0-make-libavdevice-check-accept-libav.patch"
185 + "${FILESDIR}/${PN}-0.25.0-fix-float-comparisons-in-tests.patch"
186 + "${FILESDIR}/${PN}-0.27.0-add-missing-link-flags-for-rpi.patch"
187 +)
188 +
189 +src_prepare() {
190 + cp "${DISTDIR}/waf-${WAF_PV}" "${S}"/waf || die
191 + chmod +x "${S}"/waf || die
192 + eapply "${WORKDIR}/${PV}"
193 + default_src_prepare
194 +}
195 +
196 +src_configure() {
197 + python_setup
198 + tc-export CC PKG_CONFIG AR
199 +
200 + if use raspberry-pi; then
201 + append-cflags -I"${SYSROOT%/}${EPREFIX}/opt/vc/include"
202 + append-ldflags -L"${SYSROOT%/}${EPREFIX}/opt/vc/lib"
203 + fi
204 +
205 + local mywafargs=(
206 + --confdir="${EPREFIX}/etc/${PN}"
207 + --docdir="${EPREFIX}/usr/share/doc/${PF}"
208 + --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
209 +
210 + $(usex cli '' '--disable-cplayer')
211 + $(use_enable libmpv libmpv-shared)
212 +
213 + --disable-libmpv-static
214 + --disable-static-build
215 + # See deep down below for build-date.
216 + --disable-optimize # Don't add '-O2' to CFLAGS.
217 + --disable-debug-build # Don't add '-g' to CFLAGS.
218 + --enable-html-build
219 +
220 + $(use_enable doc pdf-build)
221 + $(use_enable cplugins)
222 + $(use_enable zsh-completion zsh-comp)
223 + $(use_enable test)
224 +
225 + --disable-android
226 + $(use_enable iconv)
227 + $(use_enable samba libsmbclient)
228 + $(use_enable lua)
229 + $(usex luajit '--lua=luajit' '')
230 + $(use_enable javascript)
231 + $(use_enable libass)
232 + $(use_enable libass libass-osd)
233 + $(use_enable zlib)
234 + $(use_enable encode encoding)
235 + $(use_enable bluray libbluray)
236 + $(use_enable dvd dvdread)
237 + $(use_enable dvd dvdnav)
238 + $(use_enable cdda)
239 + $(use_enable uchardet)
240 + $(use_enable rubberband)
241 + $(use_enable lcms lcms2)
242 + --disable-vapoursynth # Only available in overlays.
243 + --disable-vapoursynth-lazy
244 + $(use_enable archive libarchive)
245 +
246 + --enable-libavdevice
247 +
248 + # Audio outputs:
249 + $(use_enable sdl sdl2) # Listed under audio, but also includes video.
250 + --disable-sdl1
251 + $(use_enable oss oss-audio)
252 + --disable-rsound # Only available in overlays.
253 + --disable-sndio # Only available in overlays.
254 + $(use_enable pulseaudio pulse)
255 + $(use_enable jack)
256 + $(use_enable openal)
257 + --disable-opensles
258 + $(use_enable alsa)
259 + $(use_enable coreaudio)
260 +
261 + # Video outputs:
262 + $(use_enable aqua cocoa)
263 + $(use_enable drm)
264 + $(use_enable gbm)
265 + $(use_enable wayland)
266 + $(use_enable X x11)
267 + $(use_enable xv)
268 + $(usex opengl "$(use_enable aqua gl-cocoa)" '--disable-gl-cocoa')
269 + $(usex opengl "$(use_enable X gl-x11)" '--disable-gl-x11')
270 + $(usex egl "$(use_enable X egl-x11)" '--disable-egl-x11')
271 + $(usex egl "$(use_enable gbm egl-drm)" '--disable-egl-drm')
272 + $(usex opengl "$(use_enable wayland gl-wayland)" '--disable-gl-wayland')
273 + $(use_enable vdpau)
274 + $(usex vdpau "$(use_enable opengl vdpau-gl-x11)" '--disable-vdpau-gl-x11')
275 + $(use_enable vaapi) # See below for vaapi-glx, vaapi-x-egl.
276 + $(usex vaapi "$(use_enable X vaapi-x11)" '--disable-vaapi-x11')
277 + $(usex vaapi "$(use_enable wayland vaapi-wayland)" '--disable-vaapi-wayland')
278 + $(usex vaapi "$(use_enable gbm vaapi-drm)" '--disable-vaapi-drm')
279 + $(use_enable libcaca caca)
280 + $(use_enable jpeg)
281 + $(use_enable raspberry-pi rpi)
282 + $(usex libmpv "$(use_enable opengl plain-gl)" '--disable-plain-gl')
283 + --disable-mali-fbdev # Only available in overlays.
284 + $(usex opengl '' '--disable-gl')
285 +
286 + # HWaccels:
287 + # Automagic Video Toolbox HW acceleration. See Gentoo bug 577332.
288 + $(use_enable vaapi vaapi-hwaccel)
289 + $(use_enable vdpau vdpau-hwaccel)
290 + $(use_enable cuda cuda-hwaccel)
291 +
292 + # TV features:
293 + $(use_enable v4l tv)
294 + $(use_enable v4l tv-v4l2)
295 + $(use_enable v4l libv4l2)
296 + $(use_enable v4l audio-input)
297 + $(use_enable dvb dvbin)
298 +
299 + # Miscellaneous features:
300 + --disable-apple-remote # Needs testing first. See Gentoo bug 577332.
301 + )
302 +
303 + if use vaapi && use X; then
304 + mywafargs+=(
305 + $(use_enable opengl vaapi-glx)
306 + $(use_enable egl vaapi-x-egl)
307 + )
308 + fi
309 +
310 + # Create reproducible non-live builds.
311 + [[ ${PV} != *9999* ]] && mywafargs+=(--disable-build-date)
312 +
313 + waf-utils_src_configure "${mywafargs[@]}"
314 +}
315 +
316 +src_install() {
317 + waf-utils_src_install
318 +
319 + if use lua; then
320 + insinto /usr/share/${PN}
321 + doins -r TOOLS/lua
322 + fi
323 +
324 + if use cli && use luajit; then
325 + pax-mark -m "${ED}"usr/bin/${PN}
326 + fi
327 +
328 + if use tools; then
329 + dobin TOOLS/{mpv_identify.sh,umpv}
330 + newbin TOOLS/idet.sh mpv_idet.sh
331 + python_replicate_script "${ED}"usr/bin/umpv
332 + fi
333 +}
334 +
335 +pkg_postinst() {
336 + local rv softvol_0_18_1=0 osc_0_21_0=0 txtsubs_0_24_0=0 opengl_0_25_0=0
337 +
338 + for rv in ${REPLACING_VERSIONS}; do
339 + ver_test ${rv} -lt 0.18.1 && softvol_0_18_1=1
340 + ver_test ${rv} -lt 0.21.0 && osc_0_21_0=1
341 + ver_test ${rv} -lt 0.24.0 && txtsubs_0_24_0=1
342 + ver_test ${rv} -lt 0.25.0 && ! use opengl && opengl_0_25_0=1
343 + done
344 +
345 + if [[ ${softvol_0_18_1} -eq 1 ]]; then
346 + elog "Since version 0.18.1 the software volume control is always enabled."
347 + elog "This means that volume controls don't change the system volume,"
348 + elog "e.g. per-application volume with PulseAudio."
349 + elog "If you want to restore the previous behaviour, please refer to"
350 + elog
351 + elog "https://wiki.gentoo.org/wiki/Mpv#Volume_in_0.18.1"
352 + elog
353 + fi
354 +
355 + if [[ ${osc_0_21_0} -eq 1 ]]; then
356 + elog "In version 0.21.0 the default OSC layout was changed."
357 + elog "If you want to restore the previous layout, please refer to"
358 + elog
359 + elog "https://wiki.gentoo.org/wiki/Mpv#OSC_in_0.21.0"
360 + elog
361 + fi
362 +
363 + if [[ ${txtsubs_0_24_0} -eq 1 ]]; then
364 + elog "Since version 0.24.0 subtitles with .txt extension aren't autoloaded."
365 + elog "If you want to restore the previous behaviour, please refer to"
366 + elog
367 + elog "https://wiki.gentoo.org/wiki/Mpv#Subtitles_with_.txt_extension_in_0.24.0"
368 + elog
369 + fi
370 +
371 + if [[ ${opengl_0_25_0} -eq 1 ]]; then
372 + elog "Since version 0.25.0 the 'opengl' USE flag is mapped to"
373 + elog "the 'opengl' video output and no longer explicitly requires"
374 + elog "X11 or Mac OS Aqua. Consider enabling the 'opengl' USE flag."
375 + fi
376 +
377 + if use cli && ! has_version 'app-shells/mpv-bash-completion'; then
378 + elog "If you want to have command-line completion via bash-completion,"
379 + elog "please install app-shells/mpv-bash-completion."
380 + fi
381 +
382 + if use cli && [[ -n ${REPLACING_VERSIONS} ]] &&
383 + has_version 'app-shells/mpv-bash-completion'; then
384 + elog "If command-line completion doesn't work after mpv update,"
385 + elog "please rebuild app-shells/mpv-bash-completion."
386 + fi
387 +
388 + gnome2_icon_cache_update
389 + xdg_desktop_database_update
390 +}
391 +
392 +pkg_postrm() {
393 + gnome2_icon_cache_update
394 + xdg_desktop_database_update
395 +}
396 +
397 +src_test() {
398 + cd "${S}"/build/test || die
399 + local test
400 + for test in *; do
401 + if [[ -x ${test} ]]; then
402 + ./"${test}" || die "Test suite failed"
403 + fi
404 + done
405 +}
406
407 diff --git a/media-video/mpv/mpv-0.28.2.ebuild b/media-video/mpv/mpv-0.28.2.ebuild
408 new file mode 100644
409 index 00000000000..b78b4e5093c
410 --- /dev/null
411 +++ b/media-video/mpv/mpv-0.28.2.ebuild
412 @@ -0,0 +1,355 @@
413 +# Copyright 1999-2018 Gentoo Foundation
414 +# Distributed under the terms of the GNU General Public License v2
415 +
416 +EAPI=6
417 +
418 +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
419 +PYTHON_REQ_USE='threads(+)'
420 +
421 +WAF_PV=1.9.8
422 +
423 +inherit eapi7-ver flag-o-matic gnome2-utils pax-utils python-r1 toolchain-funcs waf-utils xdg-utils
424 +
425 +DESCRIPTION="Media player based on MPlayer and mplayer2"
426 +HOMEPAGE="https://mpv.io/"
427 +
428 +if [[ ${PV} != *9999* ]]; then
429 + SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz"
430 + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux"
431 + DOCS=( RELEASE_NOTES )
432 +else
433 + EGIT_REPO_URI="https://github.com/mpv-player/mpv.git"
434 + inherit git-r3
435 + DOCS=(); SRC_URI=""
436 +fi
437 +SRC_URI+=" https://waf.io/waf-${WAF_PV}"
438 +DOCS+=( README.md DOCS/{client-api,interface}-changes.rst )
439 +
440 +# See Copyright in sources and Gentoo bug 506946. Waf is BSD, libmpv is ISC.
441 +LICENSE="LGPL-2.1+ GPL-2+ BSD ISC samba? ( GPL-3+ )"
442 +SLOT="0"
443 +IUSE="+alsa aqua archive bluray cdda +cli coreaudio cplugins cuda doc drm dvb
444 + dvd +egl encode gbm +iconv jack javascript jpeg lcms +libass libav libcaca
445 + libmpv +lua luajit openal +opengl oss pulseaudio raspberry-pi rubberband
446 + samba sdl selinux test tools +uchardet v4l vaapi vdpau wayland +X +xv zlib
447 + zsh-completion"
448 +
449 +REQUIRED_USE="
450 + || ( cli libmpv )
451 + aqua? ( opengl )
452 + cuda? ( !libav opengl )
453 + egl? ( || ( gbm X wayland ) )
454 + gbm? ( drm egl opengl )
455 + lcms? ( opengl )
456 + luajit? ( lua )
457 + opengl? ( || ( aqua egl X raspberry-pi !cli ) )
458 + raspberry-pi? ( opengl )
459 + test? ( opengl )
460 + tools? ( cli )
461 + uchardet? ( iconv )
462 + v4l? ( || ( alsa oss ) )
463 + vaapi? ( || ( gbm X wayland ) )
464 + vdpau? ( X )
465 + wayland? ( egl )
466 + X? ( egl? ( opengl ) )
467 + xv? ( X )
468 + zsh-completion? ( cli )
469 + ${PYTHON_REQUIRED_USE}
470 +"
471 +
472 +COMMON_DEPEND="
473 + !libav? ( >=media-video/ffmpeg-9999:0=[encode?,threads,vaapi?,vdpau?] )
474 + libav? ( >=media-video/libav-9999:0=[encode?,threads,vaapi?,vdpau?] )
475 + alsa? ( >=media-libs/alsa-lib-1.0.18 )
476 + archive? ( >=app-arch/libarchive-3.0.0:= )
477 + bluray? ( >=media-libs/libbluray-0.3.0:= )
478 + cdda? ( dev-libs/libcdio-paranoia )
479 + drm? ( x11-libs/libdrm )
480 + dvd? (
481 + >=media-libs/libdvdnav-4.2.0
482 + >=media-libs/libdvdread-4.1.0
483 + )
484 + egl? ( media-libs/mesa[egl,gbm(-)?,wayland(-)?] )
485 + iconv? (
486 + virtual/libiconv
487 + uchardet? ( app-i18n/uchardet )
488 + )
489 + jack? ( virtual/jack )
490 + javascript? ( >=dev-lang/mujs-1.0.0 )
491 + jpeg? ( virtual/jpeg:0 )
492 + lcms? ( >=media-libs/lcms-2.6:2 )
493 + libass? (
494 + >=media-libs/libass-0.12.1:=[fontconfig,harfbuzz]
495 + virtual/ttf-fonts
496 + )
497 + libcaca? ( >=media-libs/libcaca-0.99_beta18 )
498 + lua? (
499 + !luajit? ( <dev-lang/lua-5.3:= )
500 + luajit? ( dev-lang/luajit:2 )
501 + )
502 + openal? ( >=media-libs/openal-1.13 )
503 + pulseaudio? ( media-sound/pulseaudio )
504 + raspberry-pi? ( >=media-libs/raspberrypi-userland-0_pre20160305-r1 )
505 + rubberband? ( >=media-libs/rubberband-1.8.0 )
506 + samba? ( net-fs/samba )
507 + sdl? ( media-libs/libsdl2[sound,threads,video] )
508 + v4l? ( media-libs/libv4l )
509 + vaapi? ( x11-libs/libva:=[drm?,X?,wayland?] )
510 + vdpau? ( x11-libs/libvdpau )
511 + wayland? (
512 + >=dev-libs/wayland-1.6.0
513 + >=x11-libs/libxkbcommon-0.3.0
514 + dev-libs/wayland-protocols
515 + )
516 + X? (
517 + x11-libs/libX11
518 + x11-libs/libXScrnSaver
519 + x11-libs/libXext
520 + x11-libs/libXinerama
521 + x11-libs/libXrandr
522 + opengl? (
523 + x11-libs/libXdamage
524 + virtual/opengl
525 + )
526 + xv? ( x11-libs/libXv )
527 + )
528 + zlib? ( sys-libs/zlib )
529 +"
530 +DEPEND="${COMMON_DEPEND}
531 + ${PYTHON_DEPS}
532 + dev-python/docutils
533 + virtual/pkgconfig
534 + doc? ( dev-python/rst2pdf )
535 + dvb? ( virtual/linuxtv-dvb-headers )
536 + test? ( >=dev-util/cmocka-1.0.0 )
537 + v4l? ( virtual/os-headers )
538 + zsh-completion? ( dev-lang/perl )
539 +"
540 +RDEPEND="${COMMON_DEPEND}
541 + cuda? ( x11-drivers/nvidia-drivers[X] )
542 + selinux? ( sec-policy/selinux-mplayer )
543 + tools? ( ${PYTHON_DEPS} )
544 +"
545 +
546 +PATCHES=(
547 + "${FILESDIR}/${PN}-0.19.0-make-ffmpeg-version-check-non-fatal.patch"
548 + "${FILESDIR}/${PN}-0.25.0-fix-float-comparisons-in-tests.patch"
549 + "${FILESDIR}/${PN}-0.27.0-add-missing-link-flags-for-rpi.patch"
550 +)
551 +
552 +src_prepare() {
553 + cp "${DISTDIR}/waf-${WAF_PV}" "${S}"/waf || die
554 + chmod +x "${S}"/waf || die
555 + default_src_prepare
556 +}
557 +
558 +src_configure() {
559 + python_setup
560 + tc-export CC PKG_CONFIG AR
561 +
562 + if use raspberry-pi; then
563 + append-cflags -I"${SYSROOT%/}${EPREFIX}/opt/vc/include"
564 + append-ldflags -L"${SYSROOT%/}${EPREFIX}/opt/vc/lib"
565 + fi
566 +
567 + local mywafargs=(
568 + --confdir="${EPREFIX}/etc/${PN}"
569 + --docdir="${EPREFIX}/usr/share/doc/${PF}"
570 + --htmldir="${EPREFIX}/usr/share/doc/${PF}/html"
571 +
572 + $(usex cli '' '--disable-cplayer')
573 + $(use_enable libmpv libmpv-shared)
574 +
575 + --disable-libmpv-static
576 + --disable-static-build
577 + # See deep down below for build-date.
578 + --disable-optimize # Don't add '-O2' to CFLAGS.
579 + --disable-debug-build # Don't add '-g' to CFLAGS.
580 + --enable-html-build
581 +
582 + $(use_enable doc pdf-build)
583 + $(use_enable cplugins)
584 + $(use_enable zsh-completion zsh-comp)
585 + $(use_enable test)
586 +
587 + --disable-android
588 + $(use_enable iconv)
589 + $(use_enable samba libsmbclient)
590 + $(use_enable lua)
591 + $(usex luajit '--lua=luajit' '')
592 + $(use_enable javascript)
593 + $(use_enable libass)
594 + $(use_enable libass libass-osd)
595 + $(use_enable zlib)
596 + $(use_enable encode encoding)
597 + $(use_enable bluray libbluray)
598 + $(use_enable dvd dvdread)
599 + $(use_enable dvd dvdnav)
600 + $(use_enable cdda)
601 + $(use_enable uchardet)
602 + $(use_enable rubberband)
603 + $(use_enable lcms lcms2)
604 + --disable-vapoursynth # Only available in overlays.
605 + --disable-vapoursynth-lazy
606 + $(use_enable archive libarchive)
607 +
608 + --enable-libavdevice
609 +
610 + # Audio outputs:
611 + $(use_enable sdl sdl2) # Listed under audio, but also includes video.
612 + --disable-sdl1
613 + $(use_enable oss oss-audio)
614 + --disable-rsound # Only available in overlays.
615 + --disable-sndio # Only available in overlays.
616 + $(use_enable pulseaudio pulse)
617 + $(use_enable jack)
618 + $(use_enable openal)
619 + --disable-opensles
620 + $(use_enable alsa)
621 + $(use_enable coreaudio)
622 +
623 + # Video outputs:
624 + $(use_enable aqua cocoa)
625 + $(use_enable drm)
626 + $(use_enable gbm)
627 + $(use_enable wayland wayland-scanner)
628 + $(use_enable wayland wayland-protocols)
629 + $(use_enable wayland)
630 + $(use_enable X x11)
631 + $(use_enable xv)
632 + $(usex opengl "$(use_enable aqua gl-cocoa)" '--disable-gl-cocoa')
633 + $(usex opengl "$(use_enable X gl-x11)" '--disable-gl-x11')
634 + $(usex egl "$(use_enable X egl-x11)" '--disable-egl-x11')
635 + $(usex egl "$(use_enable gbm egl-drm)" '--disable-egl-drm')
636 + $(usex opengl "$(use_enable wayland gl-wayland)" '--disable-gl-wayland')
637 + $(use_enable vdpau)
638 + $(usex vdpau "$(use_enable opengl vdpau-gl-x11)" '--disable-vdpau-gl-x11')
639 + $(use_enable vaapi) # See below for vaapi-glx, vaapi-x-egl.
640 + $(usex vaapi "$(use_enable X vaapi-x11)" '--disable-vaapi-x11')
641 + $(usex vaapi "$(use_enable wayland vaapi-wayland)" '--disable-vaapi-wayland')
642 + $(usex vaapi "$(use_enable gbm vaapi-drm)" '--disable-vaapi-drm')
643 + $(use_enable libcaca caca)
644 + $(use_enable jpeg)
645 + $(use_enable raspberry-pi rpi)
646 + $(usex libmpv "$(use_enable opengl plain-gl)" '--disable-plain-gl')
647 + --disable-mali-fbdev # Only available in overlays.
648 + $(usex opengl '' '--disable-gl')
649 +
650 + # HWaccels:
651 + # Automagic Video Toolbox HW acceleration. See Gentoo bug 577332.
652 + $(use_enable cuda cuda-hwaccel)
653 +
654 + # TV features:
655 + $(use_enable v4l tv)
656 + $(use_enable v4l tv-v4l2)
657 + $(use_enable v4l libv4l2)
658 + $(use_enable v4l audio-input)
659 + $(use_enable dvb dvbin)
660 +
661 + # Miscellaneous features:
662 + --disable-apple-remote # Needs testing first. See Gentoo bug 577332.
663 + )
664 +
665 + if use vaapi && use X; then
666 + mywafargs+=(
667 + $(use_enable opengl vaapi-glx)
668 + $(use_enable egl vaapi-x-egl)
669 + )
670 + fi
671 +
672 + # Create reproducible non-live builds.
673 + [[ ${PV} != *9999* ]] && mywafargs+=(--disable-build-date)
674 +
675 + waf-utils_src_configure "${mywafargs[@]}"
676 +}
677 +
678 +src_install() {
679 + waf-utils_src_install
680 +
681 + if use lua; then
682 + insinto /usr/share/${PN}
683 + doins -r TOOLS/lua
684 + fi
685 +
686 + if use cli && use luajit; then
687 + pax-mark -m "${ED}"usr/bin/${PN}
688 + fi
689 +
690 + if use tools; then
691 + dobin TOOLS/{mpv_identify.sh,umpv}
692 + newbin TOOLS/idet.sh mpv_idet.sh
693 + python_replicate_script "${ED}"usr/bin/umpv
694 + fi
695 +}
696 +
697 +pkg_postinst() {
698 + local rv softvol_0_18_1=0 osc_0_21_0=0 txtsubs_0_24_0=0 opengl_0_25_0=0
699 +
700 + for rv in ${REPLACING_VERSIONS}; do
701 + ver_test ${rv} -lt 0.18.1 && softvol_0_18_1=1
702 + ver_test ${rv} -lt 0.21.0 && osc_0_21_0=1
703 + ver_test ${rv} -lt 0.24.0 && txtsubs_0_24_0=1
704 + ver_test ${rv} -lt 0.25.0 && ! use opengl && opengl_0_25_0=1
705 + done
706 +
707 + if [[ ${softvol_0_18_1} -eq 1 ]]; then
708 + elog "Since version 0.18.1 the software volume control is always enabled."
709 + elog "This means that volume controls don't change the system volume,"
710 + elog "e.g. per-application volume with PulseAudio."
711 + elog "If you want to restore the previous behaviour, please refer to"
712 + elog
713 + elog "https://wiki.gentoo.org/wiki/Mpv#Volume_in_0.18.1"
714 + elog
715 + fi
716 +
717 + if [[ ${osc_0_21_0} -eq 1 ]]; then
718 + elog "In version 0.21.0 the default OSC layout was changed."
719 + elog "If you want to restore the previous layout, please refer to"
720 + elog
721 + elog "https://wiki.gentoo.org/wiki/Mpv#OSC_in_0.21.0"
722 + elog
723 + fi
724 +
725 + if [[ ${txtsubs_0_24_0} -eq 1 ]]; then
726 + elog "Since version 0.24.0 subtitles with .txt extension aren't autoloaded."
727 + elog "If you want to restore the previous behaviour, please refer to"
728 + elog
729 + elog "https://wiki.gentoo.org/wiki/Mpv#Subtitles_with_.txt_extension_in_0.24.0"
730 + elog
731 + fi
732 +
733 + if [[ ${opengl_0_25_0} -eq 1 ]]; then
734 + elog "Since version 0.25.0 the 'opengl' USE flag is mapped to"
735 + elog "the 'opengl' video output and no longer explicitly requires"
736 + elog "X11 or Mac OS Aqua. Consider enabling the 'opengl' USE flag."
737 + fi
738 +
739 + if use cli && ! has_version 'app-shells/mpv-bash-completion'; then
740 + elog "If you want to have command-line completion via bash-completion,"
741 + elog "please install app-shells/mpv-bash-completion."
742 + fi
743 +
744 + if use cli && [[ -n ${REPLACING_VERSIONS} ]] &&
745 + has_version 'app-shells/mpv-bash-completion'; then
746 + elog "If command-line completion doesn't work after mpv update,"
747 + elog "please rebuild app-shells/mpv-bash-completion."
748 + fi
749 +
750 + gnome2_icon_cache_update
751 + xdg_desktop_database_update
752 +}
753 +
754 +pkg_postrm() {
755 + gnome2_icon_cache_update
756 + xdg_desktop_database_update
757 +}
758 +
759 +src_test() {
760 + cd "${S}"/build/test || die
761 + local test
762 + for test in *; do
763 + if [[ -x ${test} ]]; then
764 + ./"${test}" || die "Test suite failed"
765 + fi
766 + done
767 +}
768
769 diff --git a/profiles/base/package.use.stable.mask b/profiles/base/package.use.stable.mask
770 index 456700c1620..5fd8228658f 100644
771 --- a/profiles/base/package.use.stable.mask
772 +++ b/profiles/base/package.use.stable.mask
773 @@ -5,9 +5,9 @@
774 # Please use the same syntax as in package.use.mask
775
776 # Ilya Tumaykin <itumaykin+gentoo@×××××.com> (13 Feb 2018)
777 -# Requires >=dev-lang/mujs-1.0.0 stabilized. mpv-0.27.1 is stabilized
778 +# Requires >=dev-lang/mujs-1.0.0 stabilized. mpv-0.27.2 is stabilized
779 # due to a security bug, so we won't bother with javascript this time.
780 -~media-video/mpv-0.27.1 javascript
781 +~media-video/mpv-0.27.2 javascript
782
783 # Andrey Grozin <grozin@g.o> (24 Jan 2018)
784 # Depends on unstable dev-python/sphinx-gallery.