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