From patchwork Sun Oct 13 20:34:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Volk X-Patchwork-Id: 50514 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A526CF258E for ; Sun, 13 Oct 2024 20:33:09 +0000 (UTC) Received: from mailout03.t-online.de (mailout03.t-online.de [194.25.134.81]) by mx.groups.io with SMTP id smtpd.web10.39700.1728851587215084078 for ; Sun, 13 Oct 2024 13:33:07 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: t-online.de, ip: 194.25.134.81, mailfrom: f_l_k@t-online.de) Received: from fwd80.aul.t-online.de (fwd80.aul.t-online.de [10.223.144.106]) by mailout03.t-online.de (Postfix) with SMTP id C422615659 for ; Sun, 13 Oct 2024 22:33:05 +0200 (CEST) Received: from intel-corei7-64.fritz.box ([84.154.173.41]) by fwd80.t-online.de with (TLSv1.3:TLS_AES_256_GCM_SHA384 encrypted) esmtp id 1t05Gw-47rSPz0; Sun, 13 Oct 2024 22:33:02 +0200 From: Markus Volk To: openembedded-devel@lists.openembedded.org Subject: [meta-oe][PATCH 3/3] mpv: update 0.38.0 -> 0.39.0 Date: Sun, 13 Oct 2024 22:34:59 +0200 Message-ID: <20241013203459.47304-3-f_l_k@t-online.de> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20241013203459.47304-1-f_l_k@t-online.de> References: <20241013203459.47304-1-f_l_k@t-online.de> MIME-Version: 1.0 X-TOI-EXPURGATEID: 150726::1728851582-55FF9467-D6EFCF3B/0/0 CLEAN NORMAL X-TOI-MSGID: 43df568e-bbd5-4570-ab36-5a28bf785008 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 13 Oct 2024 20:33:09 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/112841 - add support for vulkan,pipewire,pulseaudio - add patch to fix generation of mpv.desktop - cleanup Signed-off-by: Markus Volk --- ...d-emitting-absolute-filepaths-into-g.patch | 33 ------- ...b3e62bbd0af86737f5ecb72d3a8e2a8c3b54.patch | 87 +++++++++++++++++++ .../mplayer/{mpv_0.38.0.bb => mpv_0.39.0.bb} | 34 ++++---- 3 files changed, 103 insertions(+), 51 deletions(-) delete mode 100644 meta-oe/recipes-multimedia/mplayer/mpv/0001-file2string-Avoid-emitting-absolute-filepaths-into-g.patch create mode 100644 meta-oe/recipes-multimedia/mplayer/mpv/a7efb3e62bbd0af86737f5ecb72d3a8e2a8c3b54.patch rename meta-oe/recipes-multimedia/mplayer/{mpv_0.38.0.bb => mpv_0.39.0.bb} (77%) diff --git a/meta-oe/recipes-multimedia/mplayer/mpv/0001-file2string-Avoid-emitting-absolute-filepaths-into-g.patch b/meta-oe/recipes-multimedia/mplayer/mpv/0001-file2string-Avoid-emitting-absolute-filepaths-into-g.patch deleted file mode 100644 index b96ec5d4c..000000000 --- a/meta-oe/recipes-multimedia/mplayer/mpv/0001-file2string-Avoid-emitting-absolute-filepaths-into-g.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9878681df9919d28da3e4c6cc706e264abd9df92 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 29 Aug 2024 17:54:15 -0700 -Subject: [PATCH] file2string: Avoid emitting absolute filepaths into generated - sources - -These sources are bundled into src packages to be distributed and leaking -buildpaths results in violating reproducibility norms. - -Upstream-Status: Submitted [https://github.com/mpv-player/mpv/pull/14763] - -Signed-off-by: Khem Raj ---- - TOOLS/file2string.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/TOOLS/file2string.py b/TOOLS/file2string.py -index 5b1c4a95d1..39c1122a35 100755 ---- a/TOOLS/file2string.py -+++ b/TOOLS/file2string.py -@@ -22,10 +22,10 @@ - # License along with mpv. If not, see . - # - --import sys -+import os, sys - - def file2string(infilename, infile, outfile): -- outfile.write("// Generated from %s\n\n" % infilename) -+ outfile.write("// Generated from %s\n\n" % os.path.basename(infilename)) - - conv = ["\\%03o" % c for c in range(256)] - safe_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" \ diff --git a/meta-oe/recipes-multimedia/mplayer/mpv/a7efb3e62bbd0af86737f5ecb72d3a8e2a8c3b54.patch b/meta-oe/recipes-multimedia/mplayer/mpv/a7efb3e62bbd0af86737f5ecb72d3a8e2a8c3b54.patch new file mode 100644 index 000000000..b8fad22c7 --- /dev/null +++ b/meta-oe/recipes-multimedia/mplayer/mpv/a7efb3e62bbd0af86737f5ecb72d3a8e2a8c3b54.patch @@ -0,0 +1,87 @@ +From a7efb3e62bbd0af86737f5ecb72d3a8e2a8c3b54 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= +Date: Sun, 13 Oct 2024 19:18:11 +0200 +Subject: [PATCH] build: fix dynamic generation of mpv.desktop file protocols + +Running cross-compiled binaries may be possible, but the runtime +environment must be configured correctly. In some configurations, an +exe_wrapper needs to be used, and in all cases, the library path must be +set correctly for the given binary. Fortunately, Meson handles all of +this if cross-compilation is configured correctly. + +Fix this by having Meson run the mpv binary directly, instead of as a +subprocess of a Python script. This ensures that the environment is +properly set for running host binaries, if possible. + +Fixes: #15075 +Fixes: 056b03f9ed05607786427da8f336e3ef819b3a1e + +Upstream-Status: Submitted [https://github.com/mpv-player/mpv/pull/15075] + +Signed-off-by: Markus Volk +--- + TOOLS/gen-mpv-desktop.py | 17 +++++++---------- + meson.build | 9 +++++++-- + 2 files changed, 14 insertions(+), 12 deletions(-) + +diff --git a/TOOLS/gen-mpv-desktop.py b/TOOLS/gen-mpv-desktop.py +index 7bbb33e5be..2c45a7038e 100755 +--- a/TOOLS/gen-mpv-desktop.py ++++ b/TOOLS/gen-mpv-desktop.py +@@ -21,23 +21,28 @@ + # + + import sys +-from subprocess import check_output + + if __name__ == "__main__": +- with open(sys.argv[1], "r", encoding="UTF-8") as f: ++ with open(sys.argv[1], encoding="UTF-8") as f: + next(f) + mpv_desktop = dict([line.split("=", 1) for line in f]) + + if not mpv_desktop["X-KDE-Protocols"]: + raise ValueError("Missing X-KDE-Protocols entry in mpv.desktop file") + +- mpv_protocols = check_output([sys.argv[2], "--no-config", "--list-protocols"], encoding="UTF-8") +- mpv_protocols = set(line.strip(" :/") for line in mpv_protocols.splitlines() if "://" in line) ++ with open(sys.argv[2], encoding="UTF-8") as mpv_protocols: ++ mpv_protocols = { ++ line.strip(" :/") ++ for line in mpv_protocols.read().splitlines() ++ if "://" in line ++ } ++ + if len(mpv_protocols) == 0: + raise ValueError("Unable to parse any protocols from mpv '--list-protocols'") + + protocol_list = set(mpv_desktop["X-KDE-Protocols"].strip().split(",")) +- mpv_desktop["X-KDE-Protocols"] = ",".join(sorted(mpv_protocols & protocol_list)) + "\n" ++ compatible_protocols = sorted(mpv_protocols & protocol_list) ++ mpv_desktop["X-KDE-Protocols"] = ",".join(compatible_protocols) + "\n" + + with open(sys.argv[3], "w", encoding="UTF-8") as f: + f.write("[Desktop Entry]" + "\n") +diff --git a/meson.build b/meson.build +index b7bcb1b0ba..c2004b748c 100644 +--- a/meson.build ++++ b/meson.build +@@ -1830,11 +1830,16 @@ if get_option('cplayer') + + if not win32 and not darwin + if meson.can_run_host_binaries() ++ mpv_protocols = custom_target('mpv_protocols', ++ output: 'mpv_protocols', ++ command: [mpv, '--no-config','--list-protocols'], ++ capture: true, ++ ) + mpv_desktop_path = join_paths(source_root, 'etc', 'mpv.desktop') + custom_target('mpv.desktop', +- depends: mpv, ++ input: mpv_protocols, + output: 'mpv.desktop', +- command: [mpv_desktop, mpv_desktop_path, mpv.full_path(), '@OUTPUT@'], ++ command: [mpv_desktop, mpv_desktop_path, '@INPUT@', '@OUTPUT@'], + install: true, + install_dir: join_paths(datadir, 'applications'), + ) diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.38.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.39.0.bb similarity index 77% rename from meta-oe/recipes-multimedia/mplayer/mpv_0.38.0.bb rename to meta-oe/recipes-multimedia/mplayer/mpv_0.39.0.bb index 80e0f7ca7..c97252bd3 100644 --- a/meta-oe/recipes-multimedia/mplayer/mpv_0.38.0.bb +++ b/meta-oe/recipes-multimedia/mplayer/mpv_0.39.0.bb @@ -15,11 +15,11 @@ DEPENDS = " \ LICENSE = "GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV_mpv = "02254b92dd237f03aa0a151c2a68778c4ea848f9" -SRC_URI = "git://github.com/mpv-player/mpv;name=mpv;branch=release/0.38;protocol=https \ - file://0001-file2string-Avoid-emitting-absolute-filepaths-into-g.patch \ - " - +SRCREV = "a0fba7be57f3822d967b04f0f6b6d6341e7516e7" +SRC_URI = " \ + git://github.com/mpv-player/mpv;name=mpv;branch=release/0.39;protocol=https \ + file://a7efb3e62bbd0af86737f5ecb72d3a8e2a8c3b54.patch \ +" S = "${WORKDIR}/git" inherit meson pkgconfig mime-xdg @@ -37,21 +37,25 @@ LUA:powerpc = "" # Note: lua is required to get on-screen-display (controls) PACKAGECONFIG ??= " \ ${LUA} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland opengl pipewire pulseaudio vulkan', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'egl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'drm gbm', '', d)} \ " PACKAGECONFIG[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 xsp libxv libxscrnsaver libxinerama libxpresent libxext" PACKAGECONFIG[xv] = "-Dxv=enabled,-Dxv=disabled,libxv" PACKAGECONFIG[opengl] = "-Dgl=enabled,-Dgl=disabled,virtual/libgl" -PACKAGECONFIG[egl] = "-Degl=enabled,-Degl-disabled,virtual/egl" +PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl" PACKAGECONFIG[drm] = "-Ddrm=enabled,-Ddrm=disabled,libdrm" PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled,virtual/libgbm" -PACKAGECONFIG[lua] = "-Dlua=luajit,-Dlua=disabled,lua luajit" +PACKAGECONFIG[lua] = "-Dlua=luajit,-Dlua=disabled,luajit" PACKAGECONFIG[libarchive] = "-Dlibarchive=enabled,-Dlibarchive=disabled,libarchive" +PACKAGECONFIG[libmpv] = "-Dlibmpv=true,-Dlibmpv=false" PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack" +PACKAGECONFIG[pipewire] = "-Dpipewire=enabled,-Dpipewire=disabled,pipewire" +PACKAGECONFIG[pulseaudio] = "-Dpulse=enabled,-Dpulse=disabled,pulseaudio" PACKAGECONFIG[vaapi] = "-Dvaapi=enabled,-Dvaapi=disabled,libva" +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,shaderc" PACKAGECONFIG[vdpau] = "-Dvdpau=enabled,-Dvdpau=disabled,libvdpau" PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland wayland-native libxkbcommon" @@ -82,7 +86,7 @@ python __anonymous() { #SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}" -EXTRA_OECONF = " \ +EXTRA_OEMESON = " \ -Dmanpage-build=disabled \ -Dlibbluray=disabled \ -Ddvdnav=disabled \ @@ -91,17 +95,11 @@ EXTRA_OECONF = " \ -Drubberband=disabled \ -Dlcms2=disabled \ -Dvapoursynth=disabled \ - ${PACKAGECONFIG_CONFARGS} \ " do_configure:append() { sed -i -e 's#${WORKDIR}##g' ${B}/config.h } -FILES:${PN} += " \ - ${datadir}/icons \ - ${datadir}/zsh \ - ${datadir}/bash-completion \ - ${datadir}/metainfo \ - " +FILES:${PN} += "${datadir}" EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"