[oe] [meta-oe][PATCH v2] mpv: 0.26.0 -> 0.32.0

Khem Raj raj.khem at gmail.com
Mon Feb 10 15:39:43 UTC 2020


Trevor

Its failing for one of builds with musl/arm
http://errors.yoctoproject.org/Errors/Details/390554/

On Sat, Feb 8, 2020 at 11:24 AM Trevor Woerner <twoerner at gmail.com> wrote:
>
> Remove mpv from the PNBLACKLIST by updating to the latest release and using a
> newer, python3-aware waf for building (copied from glmark2).
>
> The name of the license file changed, but the licence of the software itself
> did not.
>
> Added mime-xdg to inherit to handle mime artifacts.
>
> Added to the FILES command to scoop up additional files being generated by
> the build.
>
> Re-added 'mpv' back to LICENSE_FLAGS_WHITELIST search list in
> packagegroup-meta-oe.
>
> Extensively fixed and cleaned up the PACKAGECONFIG options to reflect the
> current options available when configuring mpv. Also cleaned up any configure
> options which are no longer available.
>
> Added the correct dependencies so mpv builds under wayland.
>
> Tested with core-image-x11 on a rock-pi-4 with
>         PACKAGECONFIG = "libass x11 opengl egl drm gbm vaapi vdpau"
>         # mpv --vo=help
>         Available video outputs:
>           libmpv           render API for libmpv
>           gpu              Shader-based GPU Renderer
>           vdpau            VDPAU with X11
>           vaapi            VA API with X11
>           x11              X11 (slow, old crap)
>           null             Null video output
>           image            Write video frames to image files
>           tct              true-color terminals
>           drm              Direct Rendering Manager
>
> Tested with core-image-weston on a rock-pi-4 with:
>         PACKAGECONFIG = "libass wayland x11 opengl"
>         # mpv -vo=help
>         Available video outputs:
>           libmpv           render API for libmpv
>           gpu              Shader-based GPU Renderer
>           wlshm            Wayland SHM video output
>           x11              X11 (slow, old crap)
>           null             Null video output
>           image            Write video frames to image files
>           tct              true-color terminals
>
> Signed-off-by: Trevor Woerner <twoerner at gmail.com>
> ---
>
> changes in v2:
>
> - Martin Jansa pointed out that this patch should also re-add mpv to the
>   LICENSE_FLAGS_WHITELIST list in packagegroup-meta-oe
>   https://git.openembedded.org/meta-openembedded/commit/?id=0c182e58775966699c303c1e2561c273197bf445
>
> - Khem Raj pointed out that this recipe fails to build with wayland
>   https://errors.yoctoproject.org/Errors/Details/390294/
> ---
>  .../packagegroups/packagegroup-meta-oe.bb     |  2 +-
>  .../mplayer/mpv/python3.patch                 | 12 ++++
>  .../mplayer/{mpv_0.26.0.bb => mpv_0.32.0.bb}  | 60 ++++++++++++++-----
>  3 files changed, 58 insertions(+), 16 deletions(-)
>  create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv/python3.patch
>  rename meta-oe/recipes-multimedia/mplayer/{mpv_0.26.0.bb => mpv_0.32.0.bb} (46%)
>
> diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
> index d5789a758..865cbb0bf 100644
> --- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
> +++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
> @@ -207,7 +207,7 @@ RDEPENDS_packagegroup-meta-oe-multimedia ="\
>      sound-theme-freedesktop v4l-utils yavta wavpack libvpx \
>      ${@bb.utils.contains("DISTRO_FEATURES", "x11", "xpext pavucontrol xsp", "", d)} \
>      libmikmod \
> -    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libmad faad2", "", d)} \
> +    ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libmad faad2 mpv", "", d)} \
>      "
>  RDEPENDS_packagegroup-meta-oe-multimedia_remove_libc-musl = "alsa-oss"
>
> diff --git a/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch
> new file mode 100644
> index 000000000..df208cf87
> --- /dev/null
> +++ b/meta-oe/recipes-multimedia/mplayer/mpv/python3.patch
> @@ -0,0 +1,12 @@
> +Use Python 3 instead of Python 2.
> +
> +Upstream-Status: Pending
> +Signed-off-by: Ross Burton <ross.burton at intel.com>
> +
> +diff --git a/waf b/waf
> +index 6ce2a24..de3c898 100755
> +--- a/waf
> ++++ b/waf
> +@@ -1 +1 @@
> +-#!/usr/bin/env python
> ++#!/usr/bin/env python3
> diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb
> similarity index 46%
> rename from meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
> rename to meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb
> index c98aa7ab0..bd2e389fe 100644
> --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
> +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.32.0.bb
> @@ -9,22 +9,23 @@ DEPENDS = "zlib ffmpeg jpeg virtual/libx11 xsp libxv \
>  REQUIRED_DISTRO_FEATURES = "x11"
>
>  LICENSE = "GPLv2+"
> -LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb"
> +LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=91f1cb870c1cc2d31351a4d2595441cb"
>
>  # While this item does not require it, it depends on ffmpeg which does
>  LICENSE_FLAGS = "commercial"
>
> -SRCREV_mpv = "4db82f04502cbcd20d9a975df9dfde91d8c389e3"
> +SRCREV_mpv = "70b991749df389bcc0a4e145b5687233a03b4ed7"
>  SRC_URI = " \
>      git://github.com/mpv-player/mpv;name=mpv \
> -    http://www.freehackers.org/~tnagy/release/waf-1.8.12;name=waf;downloadfilename=waf;subdir=git \
> +    https://www.freehackers.org/~tnagy/release/waf-2.0.19;name=waf;downloadfilename=waf;subdir=git \
> +    file://python3.patch \
>  "
>  SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71"
>  SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b"
>
>  S = "${WORKDIR}/git"
>
> -inherit waf pkgconfig python3native features_check
> +inherit waf pkgconfig features_check mime-xdg
>
>  LUA ?= "lua"
>  LUA_mips64  = ""
> @@ -38,18 +39,49 @@ PACKAGECONFIG ??= " \
>      ${LUA} \
>      libass \
>      ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
> +    ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
> +    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
>  "
>
>  PACKAGECONFIG_remove_aarch64 = "lua"
> +PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"
> +PACKAGECONFIG[xv] = "--enable-xv,--disable-xv,libxv"
> +PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
> +PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,"
>  PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
> -PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/mesa"
> +PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgbm"
>  PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
>  PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
>  PACKAGECONFIG[libarchive] = "--enable-libarchive,--disable-libarchive,libarchive"
>  PACKAGECONFIG[jack] = "--enable-jack, --disable-jack, jack"
> -PACKAGECONFIG[vaapi] = "--enable-vaapi, --disable-vaapi,libva"
> -PACKAGECONFIG[vdpau] = "--enable-vdpau, --disable-vdpau,libvdpau"
> -PACKAGECONFIG[wayland] = "--enable-wayland, --disable-wayland,wayland libxkbcommon"
> +PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
> +PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
> +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native libxkbcommon"
> +
> +python __anonymous() {
> +    packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
> +    extras = []
> +    if "x11" in packageconfig and "opengl" in packageconfig:
> +        extras.append(" --enable-gl-x11")
> +    if "x11" in packageconfig and "egl" in packageconfig:
> +        extras.append(" --enable-egl-x11")
> +    if "egl" in packageconfig and "drm" in packageconfig:
> +        extras.append(" --enable-egl-drm")
> +    if "vaapi" in packageconfig and "x11" in packageconfig:
> +        extras.append(" --enable-vaapi-x11")
> +    if "vaapi" in packageconfig and "drm" in packageconfig:
> +        extras.append(" --enable-vaapi-drm")
> +    if "vaapi" in packageconfig and "x11" in packageconfig and "egl" in packageconfig:
> +        extras.append(" --enable-vaapi-x-egl")
> +    if "vdpau" in packageconfig and "opengl" in packageconfig and "x11" in packageconfig:
> +        extras.append(" --enable-vdpau-gl-x11")
> +    if "wayland" in packageconfig and "opengl" in packageconfig:
> +        extras.append(" --enable-gl-wayland")
> +    if "wayland" in packageconfig and "vaapi" in packageconfig:
> +        extras.append(" --enable-vaapi-wayland")
> +    if extras:
> +        d.appendVar("EXTRA_OECONF", "".join(extras))
> +}
>
>  SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
>
> @@ -59,18 +91,14 @@ EXTRA_OECONF = " \
>      --confdir=${sysconfdir} \
>      --datadir=${datadir} \
>      --disable-manpage-build \
> -    --disable-gl \
>      --disable-libsmbclient \
> -    --disable-encoding \
>      --disable-libbluray \
> -    --disable-dvdread \
>      --disable-dvdnav \
>      --disable-cdda \
>      --disable-uchardet \
>      --disable-rubberband \
>      --disable-lcms2 \
>      --disable-vapoursynth \
> -    --disable-vapoursynth-lazy \
>      ${PACKAGECONFIG_CONFARGS} \
>  "
>
> @@ -80,6 +108,8 @@ adjust_waf_perms() {
>
>  do_patch[postfuncs] += "adjust_waf_perms"
>
> -FILES_${PN} += "${datadir}/icons"
> -
> -PNBLACKLIST[mpv] = "Needs forward porting to use python3"
> +FILES_${PN} += " \
> +    ${datadir}/icons \
> +    ${datadir}/zsh \
> +    ${datadir}/bash-completion \
> +    "
> --
> 2.25.0.114.g5b0ca878e0
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel


More information about the Openembedded-devel mailing list