mpv/mpv.spec
llyyr 93bda8acd4 - 14904.patch: add patch to fix build while excluding win32-smtc.
This will be upstreamed soon so we can get rid of it then.
- Update to version 0.39.0+git20240923.b64c53f730bd:
  * ci/lint-commit-msg: make some minor adjustments to the rules
  * Update MPV_VERSION
  * Release 0.39.0
  * TOOLS/gen-interface-changes: small usability improvement
  * ci/msys2: disable some features for 32-bit build
  * console.lua: fix the height calculation with --video-osd=no
  * meson: use relative file paths for file2string
  * ytdl_hook: make path and json available to other scripts
  * select.lua: don't use add_forced_key_binding
  * ytdl_hook: fix typo (chapters -> chapter)
  * DOCS/man/options.rst: further tweak sub-ass-use-video-data description
  * TOOLS/cycle-deinterlace-pullup.lua: fix removing the filter
  * options: fix missing comma in default watch_later_options values
  * workflows/comment: fix workflow syntax
  * Revert "mp_image: don't restore image params if they're unknown"
  * f_hwtransfer: filter out unsupported hwuploads from p->fmts
  * hwdec/vaapi: additionally probe hwupload format conversions
  * wayland: properly use tranche_formats when getting compositor formats
  * vo_dmabuf_wayland: reject formats not supported by the GPU
  * wayland: rename wayland_format to compositor_format
  * sub/sd_ass: don't override event attributes to mpv defaults
  * TOOLS/gen-mpv-desktop.py: set --no-config when probing protocols
  * f_auto_filters: don't set interlaced-only for userdeint
  * DOCS/man/options.rst: fix nono typo
  * vo_gpu_next: allow setting antiring value for cscale
  * DOCS/man/options.rst: clarify sub-ass-use-video-data a bit
  * DOCS/interface-changes: fix format for sub-ass-use-video-data
  * console.lua: respect --video-osd=no
  * console.lua: truncate more characters with --msg-module and --msg-time
  * console.lua: fix highlighting the selected item with --msg-module
  * osdep/terminal-win: reset tmp_buffers_key when uninit
  * player/main: revert msg uninit order changes
  * DOCS/man/options.rst: update description of `hwdec=auto` behaviour
  * sub/osd: add log if osd rendering takes too long time
  * meson: require Vulkan loader/headers >= 1.3.238
  * vd_lavc: add Vulkan hardware decoding to autoprobe
  * console.lua: sync colors after msg.c change
  * msg: don't use bold colors and instead use bright ones
  * console.lua: fix completing empty --dscale and --cscale
  * vo_gpu{,_next}: convert scale options to type choice
  * stream: don't mark stdin as a filesystem file
  * vulkan: don't tolerate suboptimal swapchain configurations
  * ao_alsa: assume device lost if we couldn't recover after 10 attempts
  * ao_alsa: don't early exit out of the loop if we have an error
  * ytdl_hook: add some more yt-dlp tags
  * sub: add ass-video-aspect-override option
  * sub: merge vsfilter-aspect and vsfilter-blur-compat options
  * vf_d3d11vpp: adjust options for userdeint filter
  * wayland: fix vertical resizing
  * various: use talloc_replace
  * ta_utils: add talloc_replace
  * ta_talloc: remove non-existent function prototype
  * stats.lua: don't use ASS tags when use_ass is false
  * player/main: uninit input after terminal uninit
  * video/out/wayland_common: set key state only on keyboard_enter keys
  * input: add MP_KEY_STATE_SET_ONLY
  * input/keycodes: fix typo
  * ci/win32: add dav1d
  * stats.lua: fix text size/alignment for key bindings page
  * DOCS/man/options: update defaults for `--hwdec-codecs`
  * DOCS/man/options: fix deinterlacing typo
  * input: fix use of bstr like null terminated one
  * osdep/io: redefine off_t for Windows build
  * sub: remove dead code
  * vo_gpu: restore dovi mapping directly on image_params after init
  * mp_image: don't restore image params if they're unknown
  * etc/mpv.conf: update stale comment about mpv config location
  * vo_libmpv: use fallback colorspace for Dolby Vision
  * input.conf: swap the positions of values for `ctrl+h` binding
  * vf_d3d11vpp: add output format selection
  * vf_format: restore image params before dovi mapping
  * vo_gpu: use fallback colorspace for Dolby Vision
  * mp_image: save fallback colorspace when dovi metadata is present
  * ci/linux: disable leak detector temporarily
  * command: expand ~ paths in load-config-file
  * video/out/gpu/video: use video rectangle for video-target-params
  * video/out/wayland_common: don't pass mouse inputs on resizing edges
  * fuzzer_options_parser: add options parser fuzzing
  * DOCS/vf: update obsolete note hwdec in d3d11vpp
  * f_hwtransfer: fix best upload format selection
  * vf_d3d11vpp: skip conversion mode selection if not requested
  * vf_d3d11vpp: don't force nv12 output
  * vf_d3d11vpp: alloc output frames through AVHWFramesContext
  * vulkan/context_display: don't fake avalibity of callbacks
  * video/csputils: remove space from choice option for chroma loc
  * DOCS/man/vf: don't document removed vf_format field
  * console.lua: pre-filter searched commands if the line is filled
  * playlist: fix setting current item with autocreate-playlist
  * demux_mkv: fix av_parser_codec leak
  * console.lua: add numpad + - * / keybindings
  * vf_d3d11vpp: ensure width and height is even
  * vf_d3d11vpp: add support for Intel VSR and NVIDIA RTX scaling modes
  * vf_d3d11vpp: add support for scaling
  * DOCS/man/options.rst: add a note about the effective limit of --pitch
  * DOCS/man/mpv.rst: add documentation for the numpad volume key bindings
  * DOCS/interface-changes: fix KP_DIVIDE typo
  * github/issue_template: don't use markdown for "Important Information"
  * github/issue_template: ask users to check for already supported features
  * hwdec_vulkan: allow using multiple decoding family queues
  * hwdec_vulkan: update to new libavutil queue family API
  * console.lua: implement history search
  * Revert "ci/mingw: don't run test on 32-bit binary"
  * ci/{mingw,win32}: specify nasm as it seems to be required now by libass
  * img_format: prevent an offset >= MP_MAX_PLANES into bpp
  * common/playlist: add missing playlist_dir clear
  * player/loadfile: don't clear watch later for auto playlist parent file
  * context_drm_egl: always use drmModeAddFB2WithModifiers
  * drm_prime: fix use of formats with modifiers
  * input.conf: add KP_DIVIDE/KP_MULTIPLY key bindings
  * various: handle numpad add/subtract/multiply/divide keycodes
  * input/keycodes: add KP_ADD/SUBTRACT/MULTIPLY/DIVIDE keycodes
  * demux_playlist: use --directory-filter-types for --autocreate-playlist
  * common/playlist: add playlist_set_current()
  * player/misc: add str_in_list() and use it
  * demux_playlist: add only media files when opening directory
  * options: add --{video,audio,image}-exts
  * demux_playlist: add --directory-filter-types
  * demux_playlist: add --autocreate-playlist-{video,audio,image}-exts
  * demux: add --autocreate-playlist
  * video: hwdec: extend look up of hwdecs to consider device type as well
  * vo: hwdec: add AVHWDeviceType property to hwdecs
  * DOCS/man: improve explanation on how to shift notes with --pitch
  * audio: add pitch-shifting feature
  * ci/freebsd: update to 14.1
  * ci/win32: update to FFmpeg 7.0
  * workflows/fuzz: report OOMs and timeouts
  * console.lua: guard user-data/osc/margins value
  * DOCS/man/input: document user-data/osc/margins
  * DOCS/man/input: reserve user-data/osc and user-data/mpv sub-paths
  * {osc,select}.lua: show playlist entries with trailing /
  * input: fix inverted condition
  * input: don't mutate 'section' variable inside a loop
  * vo_libmpv: don't steal pointer provided by the API user
  * fuzzer_set_property: ensure idle is enabled
  * loadfile: fix relative file open exclusion for fuzzing
  * input: use bstr for section name
  * demux_mf: disable glob for fuzzing
  * loadfile,select.lua: print only one bitrate
  * player/audio: invert audio_started boolean
  * ad_spdif: update list of DTS_HD profiles
  * TOOLS/stats-conv: minor cleanup
  * TOOLS/stats-conv: silence linter messages
  * TOOLS/stats-conv: convert to pyqt6
  * github/workflows/{build,fuzz}: exclude pr/issue template paths
  * github/issue_template: fix paragraph spacing
  * win32/smtc: add thumbnail support
  * ci/{msys2,win32}: explicitly enable win32-smtc
  * win32: add Media Control support
  * ci/msys2: install cppwinrt
  * osdep/threads-win32: cast function type directly to avoid warnings
  * build: bump minimal Windows version to 10
  * VERSION: rename to MPV_VERSION to avoid standard library header conflict
  * meson: define WINRT_NO_SOURCE_LOCATION
  * meson: minor adjustment for compatibility
  * input/ipc: use bstr for fd parsing
  * input/ipc-win: support fd:// for --input-ipc-client
  * DOCS/man: add more --input-ipc-client references
  * player/scripting: remove outdated comment about posix_spawn
  * meson: check for vulkan headers
  * DOCS/compile-windows.md: fix MSYS2 packages
  * build: detect VT_GETMODE on OpenBSD
  * github/issue_template: add a note about log file
  * player/command: fix --force-window=yes acting like immediate
  * player: don't decrement --ab-loop-count=N and add remaining-ab-loops
  * player: don't decrement --loop-file=N and add remaining-file-loops
  * player: remove empty line from --help
  * options/m_config_frontend: remove empty line from --show-profile
  * options: move all wayland specific options to vo_opts
  * various: allow changing GPU API options at runtime
  * m_option: add UPDATE_VO flag
  * external_files: allow specifying --cover-art-whitelist filenames
  * DOCS/options: remove misdirection in `sub-color`
  * sd_ass: fix margin y scale with font size
  * DOCS/man/options: clarify subtitle scale options
  * sd_ass: fix sub scale with window when use_margins is enabled
  * command: remove deprecated packet-*-bitrate properties
  * loadfile,select.lua: print bitrates of tracks
  * various: sync shown track flags
  * various: print Image instead or Video for image tracks
  * osc.lua: don't hide osc when touch is active
  * player: remove empty line from --version
  * fuzzer: stop player after 5 seconds of playback
  * playloop: move run_command_opts to command_event for playback-restart
  * command: run input commands after idle state is ready
  * workflows/fuzz: run all sanitizers
  * vo_gpu_next: support --gamma-factor
  * ci/mingw: update dependency versions
  * test/libmpv_lifetime: don't re-define ASAN macro
  * player/command: don't return ill-formed node if there is no default val
  * fuzzer_set_property: reset sstep to 0 to avoid seeking loop
  * test/libmpv_lifetime: activate test on macOS
  * mac/vulkan: error out on context creation without an NSApplication
  * demux/ebml: bump ebml size limit to 512 MiB
  * ci: add fuzzing of pull requests for 20 minutes
  * player/command: fix M_PROPERTY_KEY_ACTION for filter metadata
  * DOCS/input: fix filter name without label
  * wayland: avoid potential floating point errors while scaling
  * player/{command,scripting}: log subprocess execution
  * demux_mf: don't run glob() on urls
  * demux_mf: support URLs in @listfile and filemask
  * x11_common: handle runtime keepaspect/keepaspect-window change
  * sub: add (sub/osd)-border-style; renaming sub options
  * ytdl_hook.lua: fix hook triggering while it shouldn't
  * input.conf: add zoom, pan, scale and rotate keybinds for numpad
  * player/core: add core thread handle to MPContext
  * fuzzer_set_property: set duration to 0.1s
  * test/libmpv_lifetime: add test to test libmpv ability to reinit itself
  * win32: unregister window class on dll detach
  * vo/opengl/context_win: fix crash on init failure
  * demux_mkv: ignore duplicated BlockAdditions to avoid memory leak
  * player/loadfile: prevent fuzzers from loading absolute directories
  * player/loadfile: cancel playback cleanly if thread fails to start
  * demux_edl: don't try to extract dirname from self-expanding protocols
  * vo_dmabuf_wayland: don't use -ve margins in window size calculation
  * DOCS/input: fix "does does" typo
  * ao: don't add buffer length to timeout twice
  * ao: use the right type for pending samples
  * demux/ebml: fix ebml size check
  * stream_bluray: check fread return value
  * test/libmpv_encode: check fread return value
  * wayland: use wl_list_empty instead of wl_list_length
  * wayland: bump wayland-protocol requirement to 1.31
  * ao_pipewire: bump minimum libpipewire version to 0.3.57
  * ytdl_hook.lua: allow changing try_ytdl_first during runtime

OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/mpv?expand=0&rev=311
2024-09-23 18:43:01 +00:00

233 lines
7.8 KiB
RPMSpec

#
# spec file for package mpv
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2015 Packman Team <packman@links2linux.de>
# Copyright (c) 2012 Jiri Slaby <jslaby@suse.de>
# Copyright (c) 2011-2012 Pascal Bleser <pascal.bleser@opensuse.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define lname libmpv2
Name: mpv
Version: 0.39.0+git20240923.b64c53f730bd
Release: 0
Summary: Advanced general-purpose multimedia player
License: GPL-2.0-or-later
Group: Productivity/Multimedia/Video/Players
URL: http://mpv.io
Source: %{name}-%{version}.tar.xz
Source2: %{name}.changes
# PATCH-FIX-OPENSUSE do not require equal libav versions, obs rebuilds as needed
Patch0: mpv-make-ffmpeg-version-check-non-fatal.patch
Patch1: https://patch-diff.githubusercontent.com/raw/mpv-player/mpv/pull/14904.patch
BuildRequires: bash
BuildRequires: hicolor-icon-theme
BuildRequires: linux-kernel-headers
BuildRequires: meson >= 0.60.3
# Needed any lua to convert the bash-completion
BuildRequires: lua
BuildRequires: perl
BuildRequires: pkgconfig
BuildRequires: python3-docutils
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(alsa) >= 1.0.18
BuildRequires: pkgconfig(caca) >= 0.99.beta18
BuildRequires: pkgconfig(dri)
BuildRequires: pkgconfig(dvdnav) >= 4.2.0
BuildRequires: pkgconfig(dvdread) >= 4.1.0
BuildRequires: pkgconfig(egl) >= 1.4
BuildRequires: pkgconfig(ffnvcodec) >= 11.1.5.1
BuildRequires: pkgconfig(gbm) >= 17.1.0
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(jack)
BuildRequires: pkgconfig(lcms2) >= 2.6
BuildRequires: pkgconfig(libarchive) >= 3.4.0
BuildRequires: pkgconfig(libass) >= 0.12.2
BuildRequires: pkgconfig(libavcodec) >= 60.31.102
BuildRequires: pkgconfig(libavdevice) >= 60.3.100
BuildRequires: pkgconfig(libavfilter) >= 9.12.100
BuildRequires: pkgconfig(libavformat) >= 60.16.100
BuildRequires: pkgconfig(libavif) >= 0.11.1
BuildRequires: pkgconfig(libavutil) >= 58.29.100
BuildRequires: pkgconfig(libbluray) >= 0.3.0
BuildRequires: pkgconfig(libcdio)
BuildRequires: pkgconfig(libcdio_cdda)
BuildRequires: pkgconfig(libcdio_paranoia)
BuildRequires: pkgconfig(libdrm) >= 2.4.105
BuildRequires: pkgconfig(libiso9660)
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libjxl)
BuildRequires: pkgconfig(libjxl_threads)
BuildRequires: pkgconfig(libpulse) >= 1.0
BuildRequires: pkgconfig(libsixel) >= 1.5
BuildRequires: pkgconfig(libswresample) >= 4.12.100
BuildRequires: pkgconfig(libswscale) >= 7.5.100
BuildRequires: pkgconfig(libva) >= 1.1.0
BuildRequires: pkgconfig(lua5.1)
BuildRequires: pkgconfig(openal) >= 1.13
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(rubberband) >= 3.0.0
BuildRequires: pkgconfig(uchardet)
BuildRequires: pkgconfig(vapoursynth) >= 56
BuildRequires: pkgconfig(vapoursynth-script) >= 56
BuildRequires: pkgconfig(vdpau) >= 0.2
BuildRequires: pkgconfig(x11) >= 1.0.0
BuildRequires: pkgconfig(xext) >= 1.0.0
BuildRequires: pkgconfig(xkbcommon) >= 0.3.0
BuildRequires: pkgconfig(xpresent) >= 1.0.0
BuildRequires: pkgconfig(xrandr) >= 1.4.0
BuildRequires: pkgconfig(xscrnsaver) >= 1.0.0
BuildRequires: pkgconfig(xv)
BuildRequires: pkgconfig(zimg) >= 2.9
BuildRequires: pkgconfig(zlib)
Requires: hicolor-icon-theme
Requires(post): hicolor-icon-theme
Requires(post): update-desktop-files
Requires(postun): hicolor-icon-theme
Requires(postun): update-desktop-files
# Used via LUA scripts
Recommends: yt-dlp
Conflicts: mpv-plugin-mpris < 0.4
# Obsoletion of mplayer2 that is dead for 2 years now
Provides: mplayer2 = 20140101
Obsoletes: mplayer2 < 20140101
BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.48
BuildRequires: pkgconfig(libplacebo) >= 6.338.2
BuildRequires: pkgconfig(libva-wayland) >= 1.1.0
BuildRequires: pkgconfig(mujs)
BuildRequires: pkgconfig(shaderc)
BuildRequires: pkgconfig(vulkan) >= 1.3.238
BuildRequires: pkgconfig(wayland-client) >= 1.20.0
BuildRequires: pkgconfig(wayland-cursor) >= 1.20.0
BuildRequires: pkgconfig(wayland-egl) >= 9.0.0
BuildRequires: pkgconfig(wayland-protocols) >= 1.25
BuildRequires: pkgconfig(wayland-scanner)
BuildRequires: pkgconfig(wayland-server)
# JIT for lua.
%ifarch aarch64 %{ix86} x86_64
BuildRequires: pkgconfig(luajit)
%else
BuildRequires: pkgconfig(lua5.1)
%endif
%description
mpv is a movie player based on MPlayer and mplayer2. It supports a wide variety
of video file formats, audio and video codecs, and subtitle types.
%package bash-completion
Summary: Bash Completion for %{name}
Group: Productivity/Multimedia/Video/Players
Requires: %{name} = %{version}
Requires: bash-completion
Recommends: xrandr
Supplements: (mpv and bash)
BuildArch: noarch
%description bash-completion
Bash command line completion support for %{name}.
%package zsh-completion
Summary: ZSH Completion for %{name}
Group: Productivity/Multimedia/Video/Players
Requires: %{name} = %{version}
Supplements: (mpv and zsh)
BuildArch: noarch
%description zsh-completion
ZSH command line completion support for %{name}.
%package devel
Summary: A library to link together with mpv player
Group: Development/Libraries/C and C++
Requires: %{lname} = %{version}
%description devel
mpv is a movie player based on MPlayer and mplayer2. It supports a wide variety
of video file formats, audio and video codecs, and subtitle types.
This package contains all the development files.
%package -n %{lname}
Summary: A library to link together with mpv player
Group: System/Libraries
%description -n %{lname}
mpv is a movie player based on MPlayer and mplayer2. It supports a wide variety
of video file formats, audio and video codecs, and subtitle types.
This package contains a library that can other apps use to utilize the mpv
features.
%prep
%autosetup -p1
# I hate UNKNOWN so lets put decent info there.
MODIFIED="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{SOURCE2}")"
DATE="$(date -d "$MODIFIED" "+%%b %%e %%Y")"
sed -i "s|UNKNOWN|$DATE|g;s|VERSION|\"%{version}\"|g" common/version.c
%build
# We don't want to rebuild all the time.
myopts=" -Dbuild-date=false"
%meson \
--auto-features=auto \
-Dcdda=enabled \
-Dlibmpv=true \
-Ddvbin=enabled \
-Ddvdnav=enabled \
-Dopenal=enabled \
${myopts} \
%{?nil}
%meson_build
%install
%meson_install
mkdir -p %{buildroot}/%{_defaultdocdir}/%{name}
mv %{buildroot}/%{_datadir}/doc/%{name}/* %{buildroot}/%{_defaultdocdir}/%{name}/
%check
%meson_test
%post -n %{lname} -p /sbin/ldconfig
%postun -n %{lname} -p /sbin/ldconfig
%files
%license LICENSE.GPL Copyright
%doc README.md RELEASE_NOTES
%doc %{_defaultdocdir}/%{name}/*
%dir %{_sysconfdir}/%{name}/
%config %{_sysconfdir}/%{name}/encoding-profiles.conf
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor
%{_datadir}/metainfo/mpv.metainfo.xml
%{_mandir}/man?/%{name}.?%{?ext_man}
%files zsh-completion
%{_datadir}/zsh/site-functions/_mpv
%files bash-completion
%{_datadir}/bash-completion/completions/mpv
%files -n %{lname}
%{_libdir}/*.so.*
%files devel
%{_includedir}/%{name}/
%{_libdir}/*.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog