+#
+# Conditional build:
+%bcond_without caca # CACA
+%bcond_without dvdnav # dvdnav support
+%bcond_without js # JavaScript scripting support
+%bcond_without rubberband # librubberband support
+%bcond_without sixel # sixel video output
+%bcond_without vapoursynth # VapourSynth filter bridge
+%bcond_without zimg # libzimg support (high quality software scaler)
+
Summary: Movie player based on MPlayer and mplayer2
+Summary(pl.UTF-8): Odtwarzacz filmów oparty na projektach MPlayer i mplayer2
Name: mpv
-Version: 0.25.0
+Version: 0.38.0
Release: 1
License: GPL v2+
Group: Applications/Multimedia
-Source0: http://github.com/mpv-player/mpv/archive/v%{version}.tar.gz?/%{name}-%{version}.tar.gz
-# Source0-md5: 73b3d233c3b4428d0cfd5491c5cb6c41
+#Source0Download: http://github.com/mpv-player/mpv/releases
+Source0: https://github.com/mpv-player/mpv/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 7c1a400867e8930f037efc86c1f90a14
Source1: %{name}.conf
-Patch0: %{name}-lua.patch
URL: http://mpv.io/
-BuildRequires: Mesa-libEGL-devel >= 9.0.0
-BuildRequires: Mesa-libwayland-egl-devel >= 9.0.0
+BuildRequires: EGL-devel
+BuildRequires: Mesa-libgbm-devel >= 17.1.0
BuildRequires: OpenAL-devel >= 1.13
BuildRequires: OpenGL-devel
-BuildRequires: SDL-devel
+BuildRequires: SDL2-devel
+BuildRequires: Vulkan-Loader-devel >= 1.3.238
BuildRequires: alsa-lib-devel >= 1.0.18
BuildRequires: docutils
-BuildRequires: ffmpeg-devel >= 3.2.2
+BuildRequires: ffmpeg-devel >= 4.4
BuildRequires: jack-audio-connection-kit-devel
BuildRequires: lcms2-devel >= 2.6
-BuildRequires: libass-devel >= 0.12.1
-%ifarch i386 i486
+BuildRequires: libarchive-devel >= 3.4.0
+BuildRequires: libass-devel >= 0.12.2
+%ifnarch %arch_with_atomics64
BuildRequires: libatomic-devel
%endif
BuildRequires: libbluray-devel >= 0.3.0
-BuildRequires: libcaca-devel >= 0.99-0.beta18.1
+%{?with_caca:BuildRequires: libcaca-devel >= 0.99-0.beta18.1}
+BuildRequires: libcdio-devel >= 0.90
BuildRequires: libcdio-paranoia-devel
+BuildRequires: libdrm-devel >= 2.4.105
+%if %{with dvdnav}
BuildRequires: libdvdnav-devel >= 4.2.0
BuildRequires: libdvdread-devel >= 4.1.0
+%endif
BuildRequires: libjpeg-devel
-BuildRequires: libsmbclient-devel
-BuildRequires: libv4l-devel
+BuildRequires: libplacebo-devel >= 6.338.2
+%{?with_sixel:BuildRequires: libsixel-devel >= 1.5}
BuildRequires: libva-devel >= 1.4.0
BuildRequires: libva-glx-devel >= 1.4.0
BuildRequires: libvdpau-devel >= 0.2
-BuildRequires: lua51-devel
+BuildRequires: lua52-devel
+BuildRequires: meson >= 0.62.0
+%{?with_js:BuildRequires: mujs-devel >= 1.0.0}
+BuildRequires: ninja
+BuildRequires: nv-codec-headers >= 11.1.5.1
+BuildRequires: pipewire-devel >= 0.3.48
BuildRequires: pkgconfig
BuildRequires: pulseaudio-devel >= 1.0
-BuildRequires: rpmbuild(macros) >= 1.336
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 2.025
+%{?with_rubberband:BuildRequires: rubberband-devel >= 1.8.0}
BuildRequires: uchardet-devel
-BuildRequires: waf >= 1.8.12
-BuildRequires: wayland-devel >= 1.3.0
+%{?with_vapoursynth:BuildRequires: vapoursynth-devel >= 26}
+BuildRequires: wayland-devel >= 1.20.0
+BuildRequires: wayland-egl-devel
+BuildRequires: wayland-protocols >= 1.32
BuildRequires: xorg-lib-libX11-devel >= 1.0.0
BuildRequires: xorg-lib-libXScrnSaver-devel >= 1.0.0
BuildRequires: xorg-lib-libXdamage-devel
BuildRequires: xorg-lib-libXext-devel >= 1.0.0
-BuildRequires: xorg-lib-libXinerama-devel >= 1.0.0
-BuildRequires: xorg-lib-libXrandr-devel >= 1.2.0
+BuildRequires: xorg-lib-libXpresent-devel >= 1.0.0
+BuildRequires: xorg-lib-libXrandr-devel >= 1.4.0
BuildRequires: xorg-lib-libXv-devel
-BuildRequires: xorg-lib-libXxf86vm-devel
BuildRequires: xorg-lib-libxkbcommon-devel >= 0.3.0
BuildRequires: xorg-proto-xproto-devel
-Requires: Mesa-libwayland-egl >= 9.0.0
+%{?with_zimg:BuildRequires: zimg-devel >= 3.0.5}
+BuildRequires: zlib-devel
+Requires(post,postun): desktop-file-utils
+Requires(post,postun): gtk-update-icon-cache
Requires: OpenAL >= 1.13
Requires: OpenGL
Requires: alsa-lib >= 1.0.18
-%requires_eq ffmpeg-libs
+Requires: hicolor-icon-theme
+%requires_eq_to ffmpeg-libs ffmpeg-devel
Requires: lcms2 >= 2.6
-Requires: libass >= 0.12.1
+Requires: libarchive >= 3.4.0
+Requires: libass >= 0.12.2
Requires: libbluray >= 0.3.0
-Requires: libcaca >= 0.99-0.beta18.1
+%{?with_caca:Requires: libcaca >= 0.99-0.beta18.1}
+Requires: libdrm >= 2.4.105
+%if %{with dvdnav}
Requires: libdvdnav >= 4.2.0
Requires: libdvdread >= 4.1.0
+%endif
+Requires: pipewire-libs >= 0.3.48
+%requires_ge_to libplacebo libplacebo-devel
+%{?with_sixel:Requires: libsixel >= 1.5}
Requires: libva >= 1.4.0
Requires: libva-glx >= 1.4.0
Requires: libvdpau >= 0.2
+%{?with_js:Requires: mujs >= 1.0.0}
Requires: pulseaudio-libs >= 1.0
-Requires: wayland >= 1.6.0
+%{?with_rubberband:Requires: rubberband-libs >= 1.8.0}
+%{?with_vapoursynth:Requires: vapoursynth >= 26}
+Requires: wayland >= 1.15.0
Requires: xorg-lib-libX11 >= 1.0.0
Requires: xorg-lib-libXScrnSaver >= 1.0.0
Requires: xorg-lib-libXext >= 1.0.0
-Requires: xorg-lib-libXinerama >= 1.0.0
-Requires: xorg-lib-libXrandr >= 1.2.0
+Requires: xorg-lib-libXrandr >= 1.4.0
Requires: xorg-lib-libxkbcommon >= 0.3.0
-Suggests: youtube-dl >= 2:20150223
+%{?with_zimg:Requires: zimg >= 3.0.5}
+Suggests: yt-dlp
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _noautoreqdep libGL.so.1 libGLU.so.1
-
-%define zshdir %{_datadir}/zsh/site-functions
-
%description
Movie player based on MPlayer and mplayer2.
+%description -l pl.UTF-8
+Odtwarzacz filmów oparty na projektach MPlayer i mplayer2.
+
%package client-libs
Summary: Client library for controlling mpv
-Group: Development/Libraries
+Summary(pl.UTF-8): Biblioteka kliencka do sterowania odtwarzaczem mpv
+Group: Libraries
%description client-libs
Client library for controlling mpv.
+%description client-libs -l pl.UTF-8
+Biblioteka kliencka do sterowania odtwarzaczem mpv.
+
%package client-devel
Summary: Development files for mpv client library
+Summary(pl.UTF-8): Pliki programistyczne biblioteki klienckiej mpv
Group: Development/Libraries
Requires: %{name}-client-libs = %{version}-%{release}
%description client-devel
Development files for mpv client library.
+%description client-devel -l pl.UTF-8
+Pliki programistyczne biblioteki klienckiej mpv.
+
+%package -n bash-completion-mpv
+Summary: Bash completion for mpv
+Summary(pl.UTF-8): Dopełnianie parametrów mpv dla powłoki Bash
+Group: Applications/Shells
+Requires: %{name} = %{version}-%{release}
+Requires: bash-completion >= 1:2.0
+BuildArch: noarch
+
+%description -n bash-completion-mpv
+Bash completion for mpv.
+
+%description -n bash-completion-mpv -l pl.UTF-8
+Dopełnianie parametrów mpv dla powłoki Bash.
+
%package -n zsh-completion-mpv
-Summary: zsh-completion for mpv
+Summary: ZSH completion for mpv
+Summary(pl.UTF-8): Dopełnianie parametrów mpv dla powłoki ZSH
Group: Applications/Shells
Requires: %{name} = %{version}-%{release}
+BuildArch: noarch
%description -n zsh-completion-mpv
-zsh-completion for mpv.
+ZSH completion for mpv.
+
+%description -n zsh-completion-mpv -l pl.UTF-8
+Dopełnianie parametrów mpv dla powłoki ZSH.
%prep
%setup -q
-%patch0 -p1
%build
-%waf configure \
- --prefix=%{_prefix} \
- --bindir=%{_bindir} \
- --confdir=%{_sysconfdir}/mpv \
- --libdir=%{_libdir} \
- --datadir=%{_datadir} \
- --mandir=%{_mandir} \
- --disable-debug-build \
- --enable-alsa \
- --enable-audio-input \
- --enable-caca \
- --enable-cdda \
- --enable-cplugins \
- --enable-dvb \
- --enable-dvbin \
- --enable-dvdnav \
- --enable-dvdread \
- --enable-encoding \
- --enable-gl-wayland \
- --enable-gl-x11 \
- --enable-iconv \
- --enable-jack \
- --enable-jpeg \
- --enable-lcms2 \
- --enable-libass \
- --enable-libass-osd \
- --enable-libavdevice \
- --enable-libbluray \
- --enable-libmpv-shared \
- --enable-libsmbclient \
- --enable-libv4l2 \
- --enable-openal \
- --enable-oss-audio \
- --enable-pulse \
- --enable-sdl1 \
- --enable-shm \
- --enable-tv \
- --enable-tv-v4l2 \
- --enable-uchardet \
- --enable-vaapi \
- --enable-vaapi-glx \
- --enable-vaapi-hwaccel \
- --enable-vdpau \
- --enable-vdpau-gl-x11 \
- --enable-vdpau-hwaccel \
- --enable-wayland \
- --enable-x11 \
- --enable-xv \
- --enable-zsh-comp \
- --lua=51pld \
- --zshdir=%{zshdir}
-
-%waf build -v
+%meson build \
+ -Dalsa=enabled \
+ -Dcaca=%{__enabled_disabled caca} \
+ -Dcdda=enabled \
+ -Dcplugins=enabled \
+ -Ddvbin=enabled \
+ -Ddvdnav=%{__enabled_disabled dvdnav} \
+ -Degl-wayland=enabled \
+ -Degl-x11=enabled \
+ -Dgl-x11=enabled \
+ -Diconv=enabled \
+ -Djack=enabled \
+ -Djavascript=%{__enabled_disabled js} \
+ -Djpeg=enabled \
+ -Dlcms2=enabled \
+ -Dlibavdevice=enabled \
+ -Dlibbluray=enabled \
+ -Dlibmpv=true \
+ -Drubberband=%{__enabled_disabled rubberband} \
+ -Dopenal=enabled \
+ -Dpulse=enabled \
+ -Dsdl2=enabled \
+ -Dsixel=%{__enabled_disabled sixel} \
+ -Duchardet=enabled \
+ -Dvaapi=enabled \
+ -Dvapoursynth=%{__enabled_disabled vapoursynth} \
+ -Dvdpau=enabled \
+ -Dvdpau-gl-x11=enabled \
+ -Dwayland=enabled \
+ -Dx11=enabled \
+ -Dxv=enabled \
+ -Dzimg=%{__enabled_disabled zimg} \
+ -Dlua=lua5.2
+
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-%waf install --destdir=$RPM_BUILD_ROOT
+%ninja_install -C build
install -d $RPM_BUILD_ROOT%{_sysconfdir}/mpv
cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/mpv
%clean
rm -rf $RPM_BUILD_ROOT
+%post
+%update_desktop_database_post
+%update_icon_cache hicolor
+
+%postun
+%update_desktop_database_postun
+%update_icon_cache hicolor
+
%post client-libs -p /sbin/ldconfig
%postun client-libs -p /sbin/ldconfig
%{_iconsdir}/hicolor/scalable/apps/mpv.svg
%{_iconsdir}/hicolor/symbolic/apps/mpv-symbolic.svg
%{_mandir}/man1/mpv.1*
+%{_datadir}/metainfo/mpv.metainfo.xml
%files client-libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libmpv.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmpv.so.1
+%attr(755,root,root) %ghost %{_libdir}/libmpv.so.2
%files client-devel
%defattr(644,root,root,755)
%{_includedir}/mpv
%{_pkgconfigdir}/mpv.pc
+%files -n bash-completion-mpv
+%defattr(644,root,root,755)
+%{bash_compdir}/mpv
+
%files -n zsh-completion-mpv
%defattr(644,root,root,755)
-%{zshdir}/_mpv
+%{zsh_compdir}/_mpv