gnome-boxes error while loading shared libraries: libswscale.so.5.7

I haven’t updated in a while and after updating today, gnome-boxes no longer launches.
I get the following error if launched from a terminal:


gnome-boxes: error while loading shared libraries: libswscale.so.5.7: cannot open shared object file: No such file or directory 

I looked at the dep list for gnome boxes and libswscale is not in there. As another matter, a newer version of libswscale is installed from ffmpeg.
Anyone else with the same issue or can offer ideas?

I’ve confirmed I can run my VMs from virt-manager, so I know all the virtualization side of things is working.

Thanks

Most likely some plugin loaded by your program then. You can try

rpm -q --whatrequires 'libswscale.so.5.7()(64bit)'

this may show packages that are still built against old library version. If that shows nothing (which is likely, otherwise you had error during package installation/update), run

strace -f -o /tmp/strace.out gnome-boxes

and upload strace.out to https://susepaste.org/. Replace “gnome-boxes” with correct command name.

Thanks for taking the time to help.

The strace output is available here:
https://susepaste.org/5359545

The libswscale.so.5.7 isn’t installed, but 5.9 is. Here is the output:

sh byjp373 { ~ } rpm -q --whatrequires 'libswscale.so.5.7()(64bit)' 
no package requires libswscale.so.5.7()(64bit) 

sh byjp373 { ~ } rpm -q --whatrequires 'libswscale.so.5.9()(64bit)' 
libavfilter7_110-4.4-6.2.x86_64 
ffmpeg-4-4.4-6.2.x86_64 
libgtk-4-1-4.2.1-2.2.x86_64 
gegl-0_4-0.4.30-2.4.x86_64 
telegram-desktop-2.7.5-2.1.x86_64

No, it looks like (indirect) dependency of gnome-boxes itself. Could you post output of “ldd gnome-boxes”?

https://susepaste.org/72352930


...
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f61a8041000) 
    libswscale.so.5.7 => not found 
    libxkbfile.so.1 => /lib64/libxkbfile.so.1 (0x00007f61a8018000) 
    libgsm.so.1 => /lib64/libgsm.so.1 (0x00007f61a8009000) 
    libfaad.so.2 => not found 
    libfaac.so.0 => not found 
    libavcodec.so.58.91 => not found 
    libavutil.so.56.51 => not found 
    libswresample.so.3.7 => not found 
    libdbus-1.so.3 => /lib64/libdbus-1.so.
...

Try this script:

ldd /usr/bin/gnome-boxes | while read d1 d2 lib d3; do
    if  -e "$lib" ] ; then
      echo $lib
      readelf -d "$lib" | grep -w NEEDED
    fi
done

It should show which library lists libswscale as needed.

Or you could install pax-utils and try lddtree which actually shows you which library is loaded by which library. Like

bor@tw:~> lddtree /usr/bin/gnome-disks
gnome-disks => /usr/bin/gnome-disks (interpreter => /lib64/ld-linux-x86-64.so.2)
    libdvdread.so.8 => /lib64/libdvdread.so.8
        libdl.so.2 => /lib64/libdl.so.2
            ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
    libgio-2.0.so.0 => /lib64/libgio-2.0.so.0
        libz.so.1 => /lib64/libz.so.1
        libmount.so.1 => /lib64/libmount.so.1
            libblkid.so.1 => /lib64/libblkid.so.1
        libselinux.so.1 => /lib64/libselinux.so.1
            libpcre2-8.so.0 => /lib64/libpcre2-8.so.0
...

Very good troubleshooting tips. Thank you.

The issue is resolved, as the lddtree command helped me locate some locally compiled libraries that were getting in the way:


     libfreerdp2.so.2 => /usr/local/lib64/libfreerdp2.so.2 
         libswscale.so.5.7 => not found 
         libX11.so.6 => /lib64/libX11.so.6 
             libxcb.so.1 => /lib64/libxcb.so.1 
                 libXau.so.6 => /lib64/libXau.so.6 

I removed the locally compiled freerdp and gnome boxes is working now.