Skip to content

Commit

Permalink
media-video/mpv: bump to 0.27.2, 0.28.2 with extra fix for CVE-2018-6360
Browse files Browse the repository at this point in the history


Package-Manager: Portage-2.3.24, Repoman-2.3.6
  • Loading branch information
Coacher authored and mgorny committed Feb 23, 2018
1 parent c90370d commit d329da2
Show file tree
Hide file tree
Showing 4 changed files with 728 additions and 2 deletions.
3 changes: 3 additions & 0 deletions media-video/mpv/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,8 @@ DIST mpv-0.25.0-patches-r2.tar.xz 11036 BLAKE2B 09fdd566c5fcca290829c536c9e41b65
DIST mpv-0.25.0.tar.gz 2874584 BLAKE2B c64321b50fd635f82bbcbce5cdefee1d0da011558cebdacd3339aaa14162f659c955bea75341ed21096eea5b689e4c1ca4d2d97feff1f4026044ddd61bdd9944 SHA512 eefc574e2995ddf6bd15c9b62986a5ca277c30949b036d57a11bbfb796c11c1e6dd7c313abd91a909dd98ca0f2b0be29ec6b980d0287a5891b42b0ffba926cbf
DIST mpv-0.27.1-patches-r0.tar.xz 6580 BLAKE2B fdf5f580fbda9ec6856354d43fd80a177464af27ea6f65ab31c610996fced64670f178956b4030c9c34d0707f8fa4544c829e4401679d2e2d6e730b19ebfe6d8 SHA512 8f25c51f0a3c6b5304090144b8343afba4d872216f8fa13890240a51ac464bd2c486b017390d4d3398d7082ffdf3e617659861f15505bd2db72b6f5ab4500bcb
DIST mpv-0.27.1.tar.gz 2957202 BLAKE2B 79dd06ba9399368f24c2c0a065218432110829af08d97cfdf753966ec7ca75e5af8f04da381f83251cb57bdce9b30c0d2d8c6fc772f73b5a0ed43139ce66a316 SHA512 3b8e12edb20b6ffdbbb02aba9cc64ad25e4fb583efc72248549641a46cc840827c1b6b017e7efc323d8a8299b7b094a676525bd978b8c3c9ecccca32fe39149a
DIST mpv-0.27.2-patches-r0.tar.xz 6564 BLAKE2B c02efea40e0b19d60eaa49520988464fbf4c9221108cbf19021934dc0cb0a975dab148ec1ea03753d81b8035173e3e5bd74b262ab5675d9fc5dce4a0f75ea37c SHA512 d1c955c32082338f5c7f1cd8268471ca0ac6dcd817c5fe39fb82f0e8bd3babf6f2f954d4ce52e9be786e5527df75cc6f4f3de8106a3517c8a1d8e39be1b4ebbd
DIST mpv-0.27.2.tar.gz 2957191 BLAKE2B 35e316e5a30869ae44ff229e99ae11a88e2f7d55b55946bfb752d5ed2d8212885c0c2abb59c9ff6d23a72daee47d80f44511313d67ee6fb265e6681ba4b89ee1 SHA512 bf74a150b3732b8c233362e0902c54f85fbea9ca1765a2a8f946a6eecd9b37a72ede36a36d0dd98a770539c4f81fe24c8ce26be9db7cd6eddd8514a8f82d9cda
DIST mpv-0.28.1.tar.gz 2982546 BLAKE2B ae078e3393b1113a8211699da1fea867324c50d3696ab82446996f04b2571b29791811b3d3dc082761ca36d63c9b1aa844d7cd56b740e73821b3e7ca35d39512 SHA512 7593e5dbb5963bf39f57f8a08f1b5142474897172a2c6cafcbfd3a83a2f0cfb9a3e5d62eea6625f01aae8ccc236b738511846cd5a5016b93d2510f12f0be7624
DIST mpv-0.28.2.tar.gz 2982558 BLAKE2B 5faef4122d456916f43bd603192fc72dee1ad16fa3c842d54a2e53dc8f9db416545549a86af62481fe211dc088821ab13b832c09f82572b36167dd3a73d57f62 SHA512 e6206e8c65dca084e2cfa73ab09278b7113cdfd90b89877d1f75a1068c6379a093ea3955a023857357683edce1aba8c12ee441fd195d887af4d939fc7b66cef4
DIST waf-1.9.8 100685 BLAKE2B b335115b7ba5af4f8f49fc4da7967fa20e0633bfc7de7ad28fdb58dfcf7ae9c7833d053d298280e26e94b18af70a66fc13d08adf1fc7f9ad9b81e70d95cc74fc SHA512 e7493767f65deeb38aa162adef22adf60ebbd038410e9cdf4fe6f0de8c43395dbbba14962aa2c3855e1277136085fc22ad12ebfb8ac4e76f16358296039b8ea2
368 changes: 368 additions & 0 deletions media-video/mpv/mpv-0.27.2.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,368 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
PYTHON_REQ_USE='threads(+)'

WAF_PV=1.9.8

inherit eapi7-ver flag-o-matic gnome2-utils pax-utils python-r1 toolchain-funcs waf-utils xdg-utils

DESCRIPTION="Media player based on MPlayer and mplayer2"
HOMEPAGE="https://mpv.io/"

if [[ ${PV} != *9999* ]]; then
SRC_URI="
https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz
https://dev.gentoo.org/~kensington/distfiles/${P}-patches-${PR}.tar.xz
"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux"
DOCS=( RELEASE_NOTES )
else
EGIT_REPO_URI="https://github.com/mpv-player/mpv.git"
inherit git-r3
DOCS=(); SRC_URI=""
fi
SRC_URI+=" https://waf.io/waf-${WAF_PV}"
DOCS+=( README.md DOCS/{client-api,interface}-changes.rst )

# See Copyright in sources and Gentoo bug 506946. Waf is BSD, libmpv is ISC.
LICENSE="LGPL-2.1+ GPL-2+ BSD ISC samba? ( GPL-3+ )"
SLOT="0"
IUSE="+alsa aqua archive bluray cdda +cli coreaudio cplugins cuda doc drm dvb
dvd +egl encode gbm +iconv jack javascript jpeg lcms +libass libav libcaca
libmpv +lua luajit openal +opengl oss pulseaudio raspberry-pi rubberband
samba sdl selinux test tools +uchardet v4l vaapi vdpau wayland +X +xv zlib
zsh-completion"

REQUIRED_USE="
|| ( cli libmpv )
aqua? ( opengl )
cuda? ( !libav opengl )
egl? ( || ( gbm X wayland ) )
gbm? ( drm egl opengl )
lcms? ( opengl )
luajit? ( lua )
opengl? ( || ( aqua egl X raspberry-pi !cli ) )
raspberry-pi? ( opengl )
test? ( opengl )
tools? ( cli )
uchardet? ( iconv )
v4l? ( || ( alsa oss ) )
vaapi? ( || ( gbm X wayland ) )
vdpau? ( X )
wayland? ( egl )
X? ( egl? ( opengl ) )
xv? ( X )
zsh-completion? ( cli )
${PYTHON_REQUIRED_USE}
"

COMMON_DEPEND="
!libav? ( >=media-video/ffmpeg-3.2.2:0=[encode?,threads,vaapi?,vdpau?] )
libav? ( >=media-video/libav-12:0=[encode?,threads,vaapi?,vdpau?] )
alsa? ( >=media-libs/alsa-lib-1.0.18 )
archive? ( >=app-arch/libarchive-3.0.0:= )
bluray? ( >=media-libs/libbluray-0.3.0:= )
cdda? ( dev-libs/libcdio-paranoia )
cuda? ( >=media-video/ffmpeg-3.3:0 )
drm? ( x11-libs/libdrm )
dvd? (
>=media-libs/libdvdnav-4.2.0
>=media-libs/libdvdread-4.1.0
)
egl? ( media-libs/mesa[egl,gbm(-)?,wayland(-)?] )
iconv? (
virtual/libiconv
uchardet? ( app-i18n/uchardet )
)
jack? ( virtual/jack )
javascript? ( >=dev-lang/mujs-1.0.0 )
jpeg? ( virtual/jpeg:0 )
lcms? ( >=media-libs/lcms-2.6:2 )
libass? (
>=media-libs/libass-0.12.1:=[fontconfig,harfbuzz]
virtual/ttf-fonts
)
libcaca? ( >=media-libs/libcaca-0.99_beta18 )
lua? (
!luajit? ( <dev-lang/lua-5.3:= )
luajit? ( dev-lang/luajit:2 )
)
openal? ( >=media-libs/openal-1.13 )
pulseaudio? ( media-sound/pulseaudio )
raspberry-pi? ( >=media-libs/raspberrypi-userland-0_pre20160305-r1 )
rubberband? ( >=media-libs/rubberband-1.8.0 )
samba? ( net-fs/samba )
sdl? ( media-libs/libsdl2[sound,threads,video] )
v4l? ( media-libs/libv4l )
vaapi? (
!libav? ( >=media-video/ffmpeg-3.3:0 )
libav? ( >=media-video/libav-13:0 )
x11-libs/libva:=[drm?,X?,wayland?]
)
vdpau? (
!libav? ( >=media-video/ffmpeg-3.3:0 )
libav? ( >=media-video/libav-13:0 )
x11-libs/libvdpau
)
wayland? (
>=dev-libs/wayland-1.6.0
>=x11-libs/libxkbcommon-0.3.0
)
X? (
x11-libs/libX11
x11-libs/libXScrnSaver
x11-libs/libXext
x11-libs/libXinerama
x11-libs/libXrandr
opengl? (
x11-libs/libXdamage
virtual/opengl
)
xv? ( x11-libs/libXv )
)
zlib? ( sys-libs/zlib )
"
DEPEND="${COMMON_DEPEND}
${PYTHON_DEPS}
dev-python/docutils
virtual/pkgconfig
doc? ( dev-python/rst2pdf )
dvb? ( virtual/linuxtv-dvb-headers )
test? ( >=dev-util/cmocka-1.0.0 )
v4l? ( virtual/os-headers )
zsh-completion? ( dev-lang/perl )
"
RDEPEND="${COMMON_DEPEND}
cuda? ( x11-drivers/nvidia-drivers[X] )
selinux? ( sec-policy/selinux-mplayer )
tools? ( ${PYTHON_DEPS} )
"

PATCHES=(
"${FILESDIR}/${PN}-0.19.0-make-ffmpeg-version-check-non-fatal.patch"
"${FILESDIR}/${PN}-0.23.0-make-libavdevice-check-accept-libav.patch"
"${FILESDIR}/${PN}-0.25.0-fix-float-comparisons-in-tests.patch"
"${FILESDIR}/${PN}-0.27.0-add-missing-link-flags-for-rpi.patch"
)

src_prepare() {
cp "${DISTDIR}/waf-${WAF_PV}" "${S}"/waf || die
chmod +x "${S}"/waf || die
eapply "${WORKDIR}/${PV}"
default_src_prepare
}

src_configure() {
python_setup
tc-export CC PKG_CONFIG AR

if use raspberry-pi; then
append-cflags -I"${SYSROOT%/}${EPREFIX}/opt/vc/include"
append-ldflags -L"${SYSROOT%/}${EPREFIX}/opt/vc/lib"
fi

local mywafargs=(
--confdir="${EPREFIX}/etc/${PN}"
--docdir="${EPREFIX}/usr/share/doc/${PF}"
--htmldir="${EPREFIX}/usr/share/doc/${PF}/html"

$(usex cli '' '--disable-cplayer')
$(use_enable libmpv libmpv-shared)

--disable-libmpv-static
--disable-static-build
# See deep down below for build-date.
--disable-optimize # Don't add '-O2' to CFLAGS.
--disable-debug-build # Don't add '-g' to CFLAGS.
--enable-html-build

$(use_enable doc pdf-build)
$(use_enable cplugins)
$(use_enable zsh-completion zsh-comp)
$(use_enable test)

--disable-android
$(use_enable iconv)
$(use_enable samba libsmbclient)
$(use_enable lua)
$(usex luajit '--lua=luajit' '')
$(use_enable javascript)
$(use_enable libass)
$(use_enable libass libass-osd)
$(use_enable zlib)
$(use_enable encode encoding)
$(use_enable bluray libbluray)
$(use_enable dvd dvdread)
$(use_enable dvd dvdnav)
$(use_enable cdda)
$(use_enable uchardet)
$(use_enable rubberband)
$(use_enable lcms lcms2)
--disable-vapoursynth # Only available in overlays.
--disable-vapoursynth-lazy
$(use_enable archive libarchive)

--enable-libavdevice

# Audio outputs:
$(use_enable sdl sdl2) # Listed under audio, but also includes video.
--disable-sdl1
$(use_enable oss oss-audio)
--disable-rsound # Only available in overlays.
--disable-sndio # Only available in overlays.
$(use_enable pulseaudio pulse)
$(use_enable jack)
$(use_enable openal)
--disable-opensles
$(use_enable alsa)
$(use_enable coreaudio)

# Video outputs:
$(use_enable aqua cocoa)
$(use_enable drm)
$(use_enable gbm)
$(use_enable wayland)
$(use_enable X x11)
$(use_enable xv)
$(usex opengl "$(use_enable aqua gl-cocoa)" '--disable-gl-cocoa')
$(usex opengl "$(use_enable X gl-x11)" '--disable-gl-x11')
$(usex egl "$(use_enable X egl-x11)" '--disable-egl-x11')
$(usex egl "$(use_enable gbm egl-drm)" '--disable-egl-drm')
$(usex opengl "$(use_enable wayland gl-wayland)" '--disable-gl-wayland')
$(use_enable vdpau)
$(usex vdpau "$(use_enable opengl vdpau-gl-x11)" '--disable-vdpau-gl-x11')
$(use_enable vaapi) # See below for vaapi-glx, vaapi-x-egl.
$(usex vaapi "$(use_enable X vaapi-x11)" '--disable-vaapi-x11')
$(usex vaapi "$(use_enable wayland vaapi-wayland)" '--disable-vaapi-wayland')
$(usex vaapi "$(use_enable gbm vaapi-drm)" '--disable-vaapi-drm')
$(use_enable libcaca caca)
$(use_enable jpeg)
$(use_enable raspberry-pi rpi)
$(usex libmpv "$(use_enable opengl plain-gl)" '--disable-plain-gl')
--disable-mali-fbdev # Only available in overlays.
$(usex opengl '' '--disable-gl')

# HWaccels:
# Automagic Video Toolbox HW acceleration. See Gentoo bug 577332.
$(use_enable vaapi vaapi-hwaccel)
$(use_enable vdpau vdpau-hwaccel)
$(use_enable cuda cuda-hwaccel)

# TV features:
$(use_enable v4l tv)
$(use_enable v4l tv-v4l2)
$(use_enable v4l libv4l2)
$(use_enable v4l audio-input)
$(use_enable dvb dvbin)

# Miscellaneous features:
--disable-apple-remote # Needs testing first. See Gentoo bug 577332.
)

if use vaapi && use X; then
mywafargs+=(
$(use_enable opengl vaapi-glx)
$(use_enable egl vaapi-x-egl)
)
fi

# Create reproducible non-live builds.
[[ ${PV} != *9999* ]] && mywafargs+=(--disable-build-date)

waf-utils_src_configure "${mywafargs[@]}"
}

src_install() {
waf-utils_src_install

if use lua; then
insinto /usr/share/${PN}
doins -r TOOLS/lua
fi

if use cli && use luajit; then
pax-mark -m "${ED}"usr/bin/${PN}
fi

if use tools; then
dobin TOOLS/{mpv_identify.sh,umpv}
newbin TOOLS/idet.sh mpv_idet.sh
python_replicate_script "${ED}"usr/bin/umpv
fi
}

pkg_postinst() {
local rv softvol_0_18_1=0 osc_0_21_0=0 txtsubs_0_24_0=0 opengl_0_25_0=0

for rv in ${REPLACING_VERSIONS}; do
ver_test ${rv} -lt 0.18.1 && softvol_0_18_1=1
ver_test ${rv} -lt 0.21.0 && osc_0_21_0=1
ver_test ${rv} -lt 0.24.0 && txtsubs_0_24_0=1
ver_test ${rv} -lt 0.25.0 && ! use opengl && opengl_0_25_0=1
done

if [[ ${softvol_0_18_1} -eq 1 ]]; then
elog "Since version 0.18.1 the software volume control is always enabled."
elog "This means that volume controls don't change the system volume,"
elog "e.g. per-application volume with PulseAudio."
elog "If you want to restore the previous behaviour, please refer to"
elog
elog "https://wiki.gentoo.org/wiki/Mpv#Volume_in_0.18.1"
elog
fi

if [[ ${osc_0_21_0} -eq 1 ]]; then
elog "In version 0.21.0 the default OSC layout was changed."
elog "If you want to restore the previous layout, please refer to"
elog
elog "https://wiki.gentoo.org/wiki/Mpv#OSC_in_0.21.0"
elog
fi

if [[ ${txtsubs_0_24_0} -eq 1 ]]; then
elog "Since version 0.24.0 subtitles with .txt extension aren't autoloaded."
elog "If you want to restore the previous behaviour, please refer to"
elog
elog "https://wiki.gentoo.org/wiki/Mpv#Subtitles_with_.txt_extension_in_0.24.0"
elog
fi

if [[ ${opengl_0_25_0} -eq 1 ]]; then
elog "Since version 0.25.0 the 'opengl' USE flag is mapped to"
elog "the 'opengl' video output and no longer explicitly requires"
elog "X11 or Mac OS Aqua. Consider enabling the 'opengl' USE flag."
fi

if use cli && ! has_version 'app-shells/mpv-bash-completion'; then
elog "If you want to have command-line completion via bash-completion,"
elog "please install app-shells/mpv-bash-completion."
fi

if use cli && [[ -n ${REPLACING_VERSIONS} ]] &&
has_version 'app-shells/mpv-bash-completion'; then
elog "If command-line completion doesn't work after mpv update,"
elog "please rebuild app-shells/mpv-bash-completion."
fi

gnome2_icon_cache_update
xdg_desktop_database_update
}

pkg_postrm() {
gnome2_icon_cache_update
xdg_desktop_database_update
}

src_test() {
cd "${S}"/build/test || die
local test
for test in *; do
if [[ -x ${test} ]]; then
./"${test}" || die "Test suite failed"
fi
done
}
Loading

0 comments on commit d329da2

Please sign in to comment.