I got a new system update today with 200+ packages to update
and after I installed everything I wanted to play a video using mpv and I saw it was not opening
I tried running it through the terminal and I get the following error:
mpv: error while loading shared libraries: libSvtAv1Enc.so.0: cannot open shared object file: No such file or directory
then I noticed the update installed the original MPV from the official repositories although I use mpv-full from AUR, I tried building removing the official mpv and building mpv-full again and I got a build error with the following errors:
/usr/bin/ld: warning: libSvtAv1Enc.so.0, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/12.1.0/…/…/…/…/lib/libavcodec.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libsrt.so.1.4, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/12.1.0/…/…/…/…/lib/libavformat.so, not found (try using -rpath or -rpath-link)
I tried looking where those so files come from and I found that libSvtAv1Enc comes from svt-av1 which I have installed from Official Repositories (extra)
and libsrt comes from srt which I also have installed from Official Repositories (extra)
running:
ls /usr/lib | grep -E libsrt|libSvt
return
libsrtp2.so
libsrtp2.so.1
libsrt.so
libsrt.so.1.5
libsrt.so.1.5.0
libSvtAv1Dec.so
libSvtAv1Dec.so.0
libSvtAv1Dec.so.0.8.7
libSvtAv1Enc.so
libSvtAv1Enc.so.1
libSvtAv1Enc.so.1.1.0
libSvtHevcEnc.so
libSvtHevcEnc.so.1
libSvtVp9Enc.so
libSvtVp9Enc.so.1
so I clearly have those libraries installed.
I tried reinstalling mpv, mpv-full, libSvt, libSrt and anything I could think of that might relate
but nothing fixed the problem.
how can I fix the problem, and if it’s not fixable by reinstalling or installing some extras
how can I find what package created the problem in the first place?
edit: using symbolic linking solved the problem
i.e.
sudo ln -s libsrt.so.1.5 libsrt.so.1.4
sudo ln -s libSvtAv1Enc.so libSvtAv1Enc.so.0
but it feels like a bandaid solution
is there a way to fix it without symbolic linking?