mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2025-12-17 07:45:47 +01:00
mpv: update 0.38.0 -> 0.39.0
- add support for vulkan,pipewire,pulseaudio - add patch to fix generation of mpv.desktop - cleanup Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
d1cbb5ccb4
commit
a18a23df47
|
|
@ -1,33 +0,0 @@
|
||||||
From 9878681df9919d28da3e4c6cc706e264abd9df92 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Khem Raj <raj.khem@gmail.com>
|
|
||||||
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 <raj.khem@gmail.com>
|
|
||||||
---
|
|
||||||
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 <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
|
|
||||||
-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" \
|
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
From a7efb3e62bbd0af86737f5ecb72d3a8e2a8c3b54 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= <kasper93@gmail.com>
|
||||||
|
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 <f_l_k@t-online.de>
|
||||||
|
---
|
||||||
|
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'),
|
||||||
|
)
|
||||||
|
|
@ -15,11 +15,11 @@ DEPENDS = " \
|
||||||
LICENSE = "GPL-2.0-or-later"
|
LICENSE = "GPL-2.0-or-later"
|
||||||
LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
|
LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
|
||||||
|
|
||||||
SRCREV_mpv = "02254b92dd237f03aa0a151c2a68778c4ea848f9"
|
SRCREV = "a0fba7be57f3822d967b04f0f6b6d6341e7516e7"
|
||||||
SRC_URI = "git://github.com/mpv-player/mpv;name=mpv;branch=release/0.38;protocol=https \
|
SRC_URI = " \
|
||||||
file://0001-file2string-Avoid-emitting-absolute-filepaths-into-g.patch \
|
git://github.com/mpv-player/mpv;name=mpv;branch=release/0.39;protocol=https \
|
||||||
|
file://a7efb3e62bbd0af86737f5ecb72d3a8e2a8c3b54.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
inherit meson pkgconfig mime-xdg
|
inherit meson pkgconfig mime-xdg
|
||||||
|
|
@ -37,21 +37,25 @@ LUA:powerpc = ""
|
||||||
# Note: lua is required to get on-screen-display (controls)
|
# Note: lua is required to get on-screen-display (controls)
|
||||||
PACKAGECONFIG ??= " \
|
PACKAGECONFIG ??= " \
|
||||||
${LUA} \
|
${LUA} \
|
||||||
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
|
${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland opengl pipewire pulseaudio vulkan', d)} \
|
||||||
${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
|
${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'egl', '', d)} \
|
||||||
${@bb.utils.filter('DISTRO_FEATURES', 'opengl', 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[x11] = "-Dx11=enabled,-Dx11=disabled,virtual/libx11 xsp libxv libxscrnsaver libxinerama libxpresent libxext"
|
||||||
PACKAGECONFIG[xv] = "-Dxv=enabled,-Dxv=disabled,libxv"
|
PACKAGECONFIG[xv] = "-Dxv=enabled,-Dxv=disabled,libxv"
|
||||||
PACKAGECONFIG[opengl] = "-Dgl=enabled,-Dgl=disabled,virtual/libgl"
|
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[drm] = "-Ddrm=enabled,-Ddrm=disabled,libdrm"
|
||||||
PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled,virtual/libgbm"
|
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[libarchive] = "-Dlibarchive=enabled,-Dlibarchive=disabled,libarchive"
|
||||||
|
PACKAGECONFIG[libmpv] = "-Dlibmpv=true,-Dlibmpv=false"
|
||||||
PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack"
|
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[vaapi] = "-Dvaapi=enabled,-Dvaapi=disabled,libva"
|
||||||
|
PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,shaderc"
|
||||||
PACKAGECONFIG[vdpau] = "-Dvdpau=enabled,-Dvdpau=disabled,libvdpau"
|
PACKAGECONFIG[vdpau] = "-Dvdpau=enabled,-Dvdpau=disabled,libvdpau"
|
||||||
PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland wayland-native libxkbcommon"
|
PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,wayland wayland-native libxkbcommon"
|
||||||
|
|
||||||
|
|
@ -82,7 +86,7 @@ python __anonymous() {
|
||||||
|
|
||||||
#SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
|
#SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
|
||||||
|
|
||||||
EXTRA_OECONF = " \
|
EXTRA_OEMESON = " \
|
||||||
-Dmanpage-build=disabled \
|
-Dmanpage-build=disabled \
|
||||||
-Dlibbluray=disabled \
|
-Dlibbluray=disabled \
|
||||||
-Ddvdnav=disabled \
|
-Ddvdnav=disabled \
|
||||||
|
|
@ -91,17 +95,11 @@ EXTRA_OECONF = " \
|
||||||
-Drubberband=disabled \
|
-Drubberband=disabled \
|
||||||
-Dlcms2=disabled \
|
-Dlcms2=disabled \
|
||||||
-Dvapoursynth=disabled \
|
-Dvapoursynth=disabled \
|
||||||
${PACKAGECONFIG_CONFARGS} \
|
|
||||||
"
|
"
|
||||||
|
|
||||||
do_configure:append() {
|
do_configure:append() {
|
||||||
sed -i -e 's#${WORKDIR}#<WORKDIR>#g' ${B}/config.h
|
sed -i -e 's#${WORKDIR}#<WORKDIR>#g' ${B}/config.h
|
||||||
}
|
}
|
||||||
|
|
||||||
FILES:${PN} += " \
|
FILES:${PN} += "${datadir}"
|
||||||
${datadir}/icons \
|
|
||||||
${datadir}/zsh \
|
|
||||||
${datadir}/bash-completion \
|
|
||||||
${datadir}/metainfo \
|
|
||||||
"
|
|
||||||
EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
|
EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
|
||||||
Loading…
Reference in New Issue
Block a user