LINUX.ORG.RU

Не собирается mpv

 , ,


0

1

Всем привет. Решил собрать mpv из этого слакбилда. Но ничего не собирается. Лог сборки mpv. Подозреваю, это из-за libplacebo, он у меня также не собирается. Лог. В логе mpv все ошибки в самом конце, так как команда sudo ./mpv.SlackBuild > asd не записала ошибки. Пришлось копировать вывод терминала и вручную их вставлять. Все зависимости удовлетворены (libplacebo установил из репозитория salix). glxinfo, vdpauinfo, vainfo.

Перемещено hobbit из general



Последнее исправление: hamsterxp (всего исправлений: 4)

Скорее всего, дело тут не в mpv, а библиотеках ffmpeg, которые собраны с поддержкой OpenCL, но библиотек OpenCL почему-то в системе нет.

i-rinat ★★★★★
()
Ответ на: комментарий от irton

Есть и установлен.

NOTICE: pkglist is older than 24h; you are encouraged to re-run 'slackpkg update'

Looking for opencl in package list. Please wait... DONE

The list below shows all packages with name matching "opencl".

[inst] multilib    : opencl-headers-compat32-2021.04.29-x86_64-1compat32
[inst] slackware64 : opencl-headers-2021.04.29-noarch-1
[unin] salixextra  : openclipart-0.19-noarch-1salix15.0```
hamsterxp
() автор топика

Собран на FreeBSD:

> pkg info mpv
mpv-0.34.1_4,1
Name           : mpv
Version        : 0.34.1_4,1
Installed on   : Sat Oct 29 21:55:40 2022 +03
Origin         : multimedia/mpv
Architecture   : FreeBSD:13:amd64
Prefix         : /usr/local
Categories     : wayland multimedia audio
Licenses       : LGPL21+ and GPLv2+
Maintainer     : multimedia@FreeBSD.org
WWW            : https://mpv.io
Comment        : Free and open-source general-purpose video player
Options        :
	ALSA           : off
	ARCHIVE        : on
	CACA           : off
	CDIO           : on
	DOCS           : off
	DVDNAV         : on
	EXAMPLES       : off
	JACK           : off
	LCMS2          : off
	LIBBLURAY      : off
	LUA            : on
	LUAJIT         : off
	LUA_NONE       : off
	MANPAGES       : off
	MUJS           : off
	NVDEC          : off
	OPENAL         : off
	OPENGL         : on
	PIPEWIRE       : off
	PULSEAUDIO     : off
	SDL            : off
	SIXEL          : on
	SNDIO          : off
	TEST           : off
	UCHARDET       : on
	V4L            : off
	VAAPI          : on
	VDPAU          : on
	VULKAN         : off
	WAYLAND        : off
	X11            : on
	YTDL           : off
	YTDLP          : on
	ZIMG           : on
Shared Libs required:
	libzimg.so.2
	libvdpau.so.1
	libva.so.2
	libva-x11.so.2
	libva-drm.so.2
	libuchardet.so.0
	libswscale.so.5
	libswresample.so.3
	libsixel.so.1
	liblua-5.2.so
	libjpeg.so.8
	libgbm.so.1
	libdvdread.so.8
	libdvdnav.so.4
	libdrm.so.2
	libcdio_paranoia.so.2
	libcdio_cdda.so.2
	libcdio.so.19
	libavutil.so.56
	libavformat.so.58
	libavfilter.so.7
	libavdevice.so.58
	libavcodec.so.58
	libass.so.9
	libarchive.so.13
	libXv.so.1
	libXss.so.1
	libXrandr.so.2
	libXinerama.so.1
	libXext.so.6
	libX11.so.6
	libEGL.so.1
Shared Libs provided:
	libmpv.so.1
Annotations    :
	FreeBSD_version: 1301508
	cpe            : cpe:2.3:a:mpv:mpv:0.34.1:::::freebsd13:x64:4
Flat size      : 4.23MiB
Description    :
Mpv is based on the MPlayer and mplayer2 projects which it greatly improves.
It supports a wide variety of video file formats, audio and video codecs, and
subtitle types. Special input URL types are available to read input from
a variety of sources other than disk files. Depending on platform, a variety of
different video and audio output methods are supported.

WWW: https://mpv.io

Зависимости:

> pkg info -d mpv
mpv-0.34.1_4,1:
	libXxf86vm-1.1.4_3
	libXv-1.0.11_2,1
	libXrandr-1.5.2
	libXinerama-1.1.4_2,1
	libXext-1.3.4,1
	libXScrnSaver-1.2.3_2
	libX11-1.7.2,1
	yt-dlp-2022.10.04
	uchardet-0.0.7
	libcdio-paranoia-10.2+2.0.1
	libvdpau-1.5
	libva-2.16.0
	libdvdread-6.1.3
	libdvdnav-6.1.1
	libass-0.16.0
	ffmpeg-4.4.3_1,1
	lua52-5.2.4
	sekrit-twc-zimg-3.0.4
	mesa-libs-22.2.2
	libsixel-1.8.6,1
	libglvnd-1.4.0_2
	jpeg-turbo-2.1.4
	desktop-file-utils-0.26_1
	libarchive-3.6.1,1
iZEN ★★★★★
()
Ответ на: комментарий от hamsterxp

Попробовал в штатной установке Slackware64-15.0:

# sqg -p mpv
# sbopkg -Rki mpv.sqf

...

SUMMARY LOG
Using the SBo repository for Slackware 15.0
Queue Process:  Download, build, and install

mujs:
  MD5SUM check for mujs-1.2.0.tar.xz ... OK
  Building package mujs-1.2.0-x86_64-2_SBo.tgz ... OK
  Installing package mujs-1.2.0-x86_64-2_SBo.tgz ... OK

lua:
  MD5SUM check for lua-5.1.5.tar.gz ... OK
  Building package lua-5.1.5-x86_64-1_SBo.tgz ... OK
  Installing package lua-5.1.5-x86_64-1_SBo.tgz ... OK

libplacebo:
  MD5SUM check for libplacebo-v3.120.3.tar.gz ... OK
  Building package libplacebo-3.120.3-x86_64-1_SBo.tgz ... OK
  Installing package libplacebo-3.120.3-x86_64-1_SBo.tgz ... OK

libass:
  MD5SUM check for libass-0.14.0.tar.xz ... OK
  Building package libass-0.14.0-x86_64-1_SBo.tgz ... OK
  Installing package libass-0.14.0-x86_64-1_SBo.tgz ... OK

mpv:
  MD5SUM check for mpv-0.34.1.tar.gz ... OK
  MD5SUM check for waf-2.0.24 ... OK
  Building package mpv-0.34.1-x86_64-2_SBo.tgz ... OK
  Installing package mpv-0.34.1-x86_64-2_SBo.tgz ... OK

+++++++++++++++++++++++++++++++++++++++++++

###########################################
          Queue process complete!
###########################################


По поводу ошибок линкера, думаю, есть смысл попробовать поискать ненайденные символы в libOpenCL.so.1.0.0.

bormant ★★★★★
()
Ответ на: комментарий от hamsterxp

а ты посмотри, какие там символы

/usr/bin/ld: /usr/lib64/gcc/x86_64-slackware-linux/12.2.0/../../../../lib64/libavutil.so: неопределённая ссылка на «clReleaseMemObject@OPENCL_1.0»

наверняка в твоей libOpenCL.so экспортируется просто clReleaseMemObject, вот компилятор и ругается. Видимо тут нужна другая сошка - возможно, она поставляется в составе opencl, нвидиевских дров или где-нибудь в таком же пакете.

nm -gD /usr/lib64/libOpenCL.so | grep clReleaseMemObject
Lrrr ★★★★★
()
Последнее исправление: Lrrr (всего исправлений: 1)
Ответ на: комментарий от eternal_sorrow

способа пересобрать ffmpeg

Исходники и способ, которым собран пакет, зафиксирован в его .SlackBuild. Для ffmpeg это:
slackware64-15.0/source/l/ffmpeg

Если пакет будет обновлен, то измененный слакбилд будет опубликован тут:
slackware64-15.0/patches/source/ffmpeg

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от hamsterxp

От версий 15.0 и current - не хочет

Не совсем понимаю, зачем его от 15.0 и от -current компилировать, если от них он уже есть скомпилированный?

Из выхлопа не видно, что меняете (прямо или косвенно через состояние системы, через установленное в нее).

То есть, если я у себя его буду просто так пересобирать как есть в чистой SLackware-15.0, я вашу ситуацию не смогу ни повторить, ни отладить, недостаточно информации...

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от hamsterxp

Давайте глянем, что у вас установлено сверх стока:

# slackpkg update
# slackpkg -dialog=off -batch=on -default_answer=n clean-system
# slackpkg -dialog=off -batch=on -default_answer=n upgrade-all

В slackpkg.conf по умолчанию DEFAULT_ANSWER=n, если не меняли, то в команды аналогичную опцию можно не вписывать.

Тут еще момент, те .so, где не обнаружились символы для линковки, они симлинки.
Поверьте, куда они указывают.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от hamsterxp

В логе:

/usr/bin/ld: libavutil/libavutil.so: неопределённая ссылка на «clGetExtensionFunctionAddressForPlatform»
/usr/bin/ld: libavfilter/libavfilter.so: неопределённая ссылка на «clEnqueueFillBuffer»

Смотрю на штатные библиотеки libavutil.so, libavfilter.so:

# slackpkg file-search libavfilter.so
[ installed ] - ffmpeg-4.4.1-x86_64-2

# slackpkg file-search libavutil.so
[ installed ] - ffmpeg-4.4.1-x86_64-2

$ grep 'libavutil\.so\|libavfilter\.so' /var/log/packages/ffmpeg-*
usr/lib64/libavfilter.so.7.110.100
usr/lib64/libavutil.so.56.70.100

$ (cd /usr/lib64; ls -o libavutil.so libavfilter.so)
lrwxrwxrwx 1 root 24 Oct 22 12:26 libavfilter.so -> libavfilter.so.7.110.100*
lrwxrwxrwx 1 root 22 Oct 22 12:26 libavutil.so -> libavutil.so.56.70.100*

$ grep clGetExtensionFunctionAddressForPlatform /usr/lib64/libavutil.so.56.70.100
grep: /usr/lib64/libavutil.so.56.70.100: binary file matches

$ grep clEnqueueFillBuffer /usr/lib64/libavfilter.so.7.110.100 
grep: /usr/lib64/libavfilter.so.7.110.100: binary file matches

А у вас установлено и цепляется линкером что-то совсем-совсем другое...

bormant ★★★★★
()
Ответ на: комментарий от Lrrr

/usr/bin/ld: /usr/lib64/gcc/x86_64-slackware-linux/12.2.0/../../../../lib64/libavutil.so: неопределённая ссылка на «clReleaseMemObject@OPENCL_1.0»

И тут в стоке все нормальрно, все на месте:

$ objdump -T /usr/lib64/libavutil.so.56.70.100 | grep clReleaseMemObject
0000000000000000      DF *UND*	0000000000000000  OPENCL_1.0  clReleaseMemObject

А у hamsterxp симлинк /usr/lib64/libavutil.so указывает не на стоковую libavutil.so.56.70.100, а неизвестно на что...

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

Не совсем понимаю, зачем его от 15.0 и от -current компилировать, если от них он уже есть скомпилированный?

Мне нужен NVDEC и CUDA, а те, которые в репозиториях собраны без поддержки этого всего.

hamsterxp
() автор топика
Ответ на: комментарий от bormant

Давайте глянем, что у вас установлено сверх стока:

sudo slackpkg -dialog=off -batch=on -default_answer=n clean-system

Looking for packages to remove. Please wait... DONE

openh264-2.2.0-x86_64-1_SBo
ostree-2021.3-x86_64-2_SBo
sbopkg-0.38.2-noarch-1_wsr
steam-1.0.0.74-x86_64-1_SBo
virtualbox-6.1.34-x86_64-1_SBo
virtualbox-kernel-6.1.34_5.19.17-x86_64-1_SBo

sudo slackpkg -dialog=off -batch=on -default_answer=n upgrade-all

Checking local integrity... DONE
Looking for packages to upgrade. Please wait... DONE

[ Repository               ] [ Package                                  ]
  slackware64                  Imath-3.1.6-x86_64-1.txz                  
  salixextra                   acpica-20211217-x86_64-1salix15.0.txz     
  salixextra                   alien-8.95-x86_64-2salix15.0.txz          
  salixextra                   android-tools-31.0.3p1-x86_64-1salix15.0.txz  
  salix                        appstream-glib-0.7.18-x86_64-1gv.txz      
  slackware64                  bash-5.2.009-x86_64-1.txz                 
  slackware64                  bluedevil-5.26.3-x86_64-1.txz             
  slackware64                  breeze-5.26.3-x86_64-1.txz                
  slackware64                  breeze-grub-5.26.3-x86_64-1.txz           
  slackware64                  breeze-gtk-5.26.3-x86_64-1.txz            
  alienbob                     bubblewrap-0.6.2-x86_64-1alien.txz        
  slackware64                  ccache-4.7.3-x86_64-1.txz                 
  salixextra                   dpkg-1.21.7-x86_64-1salix15.0.txz         
  slackware64                  drkonqi-5.26.3-x86_64-1.txz               
  alienbob                     flatpak-1.14.0-x86_64-1alien.txz          
  salixextra                   gcab-0.6-x86_64-2salix15.0.txz            
  slackware64                  glibc-zoneinfo-2022f-noarch-1.txz         
  slackware64                  imagemagick-7.1.0_52-x86_64-1.txz         
  slackware64                  kactivitymanagerd-5.26.3-x86_64-1.txz     
  slackware64                  kde-cli-tools-5.26.3-x86_64-1.txz         
  slackware64                  kde-gtk-config-5.26.3-x86_64-1.txz        
  slackware64                  kdecoration-5.26.3-x86_64-1.txz           
  slackware64                  kdeplasma-addons-5.26.3-x86_64-1.txz      
  slackware64                  kgamma5-5.26.3-x86_64-1.txz               
  slackware64                  khotkeys-5.26.3-x86_64-1.txz              
  slackware64                  kinfocenter-5.26.3-x86_64-1.txz           
  slackware64                  kmenuedit-5.26.3-x86_64-1.txz             
  slackware64                  kpipewire-5.26.3-x86_64-1.txz             
  slackware64                  kscreen-5.26.3-x86_64-1.txz               
  slackware64                  kscreenlocker-5.26.3-x86_64-1.txz         
  slackware64                  ksshaskpass-5.26.3-x86_64-1.txz           
  slackware64                  ksystemstats-5.26.3-x86_64-1.txz          
  slackware64                  kwallet-pam-5.26.3-x86_64-1.txz           
  slackware64                  kwayland-integration-5.26.3-x86_64-1.txz  
  slackware64                  kwin-5.26.3-x86_64-1.txz                  
  slackware64                  kwrited-5.26.3-x86_64-1.txz               
  slackware64                  layer-shell-qt-5.26.3-x86_64-1.txz        
  alienbob                     libass-0.14.0-x86_64-1alien.tgz           
  slackware64                  libkscreen-5.26.3-x86_64-1.txz            
  slackware64                  libksysguard-5.26.3-x86_64-1.txz          
  slackware64                  libspectre-0.2.11-x86_64-1.txz            
  alienbob                     lua-5.1.5-x86_64-3alien.tgz               
  slackware64                  mariadb-10.6.11-x86_64-1.txz              
  slackware64                  mesa-22.2.3-x86_64-1.txz                  
  slackware64                  meson-0.64.0-x86_64-1.txz                 
  slackware64                  milou-5.26.3-x86_64-1.txz                 
  slackware64                  mozilla-firefox-106.0.5-x86_64-1.txz      
  slackware64                  mutt-2.2.8-x86_64-1.txz                   
  slackware64                  oxygen-5.26.3-x86_64-1.txz                
  slackware64                  oxygen-sounds-5.26.3-x86_64-1.txz         
  slackware64                  patchelf-0.17.0-x86_64-1.txz              
  slackware64                  plasma-browser-integration-5.26.3-x86_64-1.txz  
  slackware64                  plasma-desktop-5.26.3-x86_64-1.txz        
  slackware64                  plasma-disks-5.26.3-x86_64-1.txz          
  slackware64                  plasma-firewall-5.26.3-x86_64-1.txz       
  slackware64                  plasma-integration-5.26.3-x86_64-1.txz    
  slackware64                  plasma-nm-5.26.3-x86_64-1.txz             
  slackware64                  plasma-pa-5.26.3-x86_64-1.txz             
  slackware64                  plasma-sdk-5.26.3-x86_64-1.txz            
  slackware64                  plasma-systemmonitor-5.26.3-x86_64-1.txz  
  slackware64                  plasma-vault-5.26.3-x86_64-1.txz          
  slackware64                  plasma-workspace-5.26.3-x86_64-1.txz      
  slackware64                  plasma-workspace-wallpapers-5.26.3-x86_64-1.txz  
  slackware64                  polkit-kde-agent-1-5.26.3-x86_64-1.txz    
  slackware64                  powerdevil-5.26.3-x86_64-1.txz            
  salixextra                   protonvpn-cli-2.2.11-x86_64-1salix15.0.txz  
  alienbob                     qemu-6.2.0-x86_64-4alien.txz              
  slackware64                  qqc2-breeze-style-5.26.3-x86_64-1.txz     
  slackware64                  sddm-kcm-5.26.3-x86_64-1.txz              
  slackware64                  sed-4.9-x86_64-1.txz                      
  slackware64                  systemsettings-5.26.3-x86_64-1.txz        
  salixextra                   telegram-3.7.3-x86_64-1salix15.0.txz      
  slackware64                  wayland-protocols-1.28-noarch-1.txz       
  alienbob                     wine-7.3-x86_64-1alien.txz                
  slackware64                  xdg-desktop-portal-kde-5.26.3-x86_64-1.txz  
hamsterxp
() автор топика
Ответ на: комментарий от hamsterxp

добавки такие

Предварительно:

 ffmpeg-4.4.1$ ./configure --help | grep 'enable-cuda \|enable-nvdec \|enable-nvenc '
 ffmpeg-4.4.1$ 
configure от ffmpeg-4.4.1 таких параметров не знает.

Все 3 опции в наличии только в автодетекте через ffnvcodec, в т.ч. сниппет с
#include <ffnvcodec/nvEncodeAPI.h>.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 3)
Ответ на: комментарий от bormant

Тогда так:

SLACKPKGPLUS=off slackpkg -dialog=off -batch=on -default_answer=n clean-system

openh264-2.2.0-x86_64-1_SBo
ostree-2021.3-x86_64-2_SBo
sbopkg-0.38.2-noarch-1_wsr
steam-1.0.0.74-x86_64-1_SBo
virtualbox-6.1.34-x86_64-1_SBo
virtualbox-kernel-6.1.34_5.19.17-x86_64-1_SBo

Total package(s): 6

Do you wish to remove selected packages (Y/n)? n
hamsterxp
() автор топика
Ответ на: комментарий от bormant

configure от ffmpeg-4.4.1 таких параметров не знает.

У меня 5.1.2, он тоже не знает, хоть и перечисляет при компиляции.

External libraries providing hardware acceleration:
cuda                    ffnvcodec               nvenc                   v4l2_m2m                vdpau
cuvid                   nvdec                   opencl                  vaapi                   vulkan
hamsterxp
() автор топика
Ответ на: комментарий от hamsterxp

Работает только такая: sudo slackpkg search ALL | grep -v ' slackware64 \| patches \| extra \| pasture \| testing ' | grep inst

[inst] multilib    : talloc-compat32-2.3.4-x86_64-1compat32
[inst] salix       : salix-codecs-installer-2.2.4-noarch-1gv
[unin] alienbob    : webcore-fonts-installer-3.0-noarch-2alien
[unin] salixextra  : perl-inc-module-install-1.19-x86_64-1salix15.0
[unin] salixextra  : ruby-native-package-installer-1.0.9-x86_64-1salix15.0
[unin] salixextra  : rubygem-native-package-installer-1.1.1-x86_64-1salix15.0
hamsterxp
() автор топика

Я тут ещё пробовал wine собрать, и он жалуется на opencl.

collect2: ошибка: выполнение ld завершилось с кодом возврата 1
make: *** [Makefile:111862: dlls/opencl/opencl.so] Error 1

Так же при запуске ffmpeg в самом начале такой вывод:

ffmpeg: /usr/lib64/libOpenCL.so.1: no version information available (required by /usr/lib64/libavfilter.so.8)
ffmpeg: /usr/lib64/libOpenCL.so.1: no version information available (required by /usr/lib64/libavfilter.so.8)
ffmpeg: /usr/lib64/libOpenCL.so.1: no version information available (required by /usr/lib64/libavutil.so.57)
ffmpeg: /usr/lib64/libOpenCL.so.1: no version information available (required by /usr/lib64/libavutil.so.57)

Есть подозрения на бинарные дрова nvidia, попробую пересобрать opencl.

hamsterxp
() автор топика

неопределённая ссылка на «clGetPlatformIDs@OPENCL_1.0»

Накати opencl-dev или как оно там в слаке. Символов нету вот оно и ругается.

Или пересобери libavutil без поддержки OpenCl

LINUX-ORG-RU ★★★★★
()