Page MenuHomeSolus

"libvlc error: stale plugins cache" at VLC startup after upgrade to VLC 3.0
Open, HighPublic

Description

After upgrade to VLC 3.0, I'm getting "libvlc error: stale plugins cache" at VLC startup :

$ vlc
VLC media player 3.0.0 Vetinari (revision 3.0.0-30-gef4c265336)
[00000000019891a0] main libvlc error: stale plugins cache: modified /usr/lib64/vlc/plugins/services_discovery/libmtp_plugin.so
[00000000019891a0] main libvlc error: stale plugins cache: modified /usr/lib64/vlc/plugins/services_discovery/libavahi_plugin.so
...

As suggested at here, running the following command fixes the error :

sudo /usr/lib/vlc/vlc-cache-gen /usr/lib64/vlc/plugins/

The VLC package should refresh plugins cache after installing in Solus as well.

Event Timeline

clauded created this task.Feb 21 2018, 3:33 AM

Are there plugins that fall outside the vlc package (maybe not in Solus, but in the world)? It seems odd if there isn't as it could just create the plugins cache in the build.

I don't have any plugin installed other than those coming from the package.

This comment was removed by joebonrichie.

I'm dumb and can't read. Anyway, according to ikey we do a similar thing for the gdk-pixbuf package.

https://dev.solus-project.com/source/gdk-pixbuf/browse/master/package.yml;a85367882f1fa7180151a9781a0311841299feaf$48

vlc tries to do this during make install however, vlc-cache-gen wants root so that's why it's failing

if test "x86_64-solus-linux-gnu" = "x86_64-solus-linux-gnu"; then \
	PATH="/home/build/YPKG/root/vlc/install/usr/bin:$PATH" \
	LD_LIBRARY_PATH="/home/build/YPKG/root/vlc/install/usr/lib64:$LD_LIBRARY_PATH" \
	"/home/build/YPKG/root/vlc/install/usr/lib64/vlc/vlc-cache-gen" \
		 "/home/build/YPKG/root/vlc/install/usr/lib64/vlc/plugins" ; \
else \
	echo "Cross-compilation: cache generation skipped!" ; \
fi
LD_LIBRARY_PATH=/home/build/YPKG/root/vlc/install/usr/lib64
+ /home/build/YPKG/root/vlc/install/usr/lib64/vlc/vlc-cache-gen /home/build/YPKG/root/vlc/install/usr/lib64/vlc/plugins/
ERROR: ld.so: object 'libfakeroot.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
joebonrichie triaged this task as Low priority.Feb 21 2018, 2:02 PM
joebonrichie moved this task from Backlog to Package Fixes on the Software board.
braykov added a subscriber: braykov.May 4 2018, 5:17 PM

I am running into this issue using the python bindings for vlc (mycroft-core uses vlc as a backend).

Jun 22 14:06:15 solus mycroft-audio[7174]: [00007fc3940d31c0] main libvlc error: stale plugins cache: modified /usr/lib64/vlc/plugins/video_filter/lib*_plugin.so

I can run the command above to fix the problem manually, but this issue is causing mycroft to just suddenly stop working and hard to debug what on earth is wrong with it! Thankfully I found this task and was able to get it working again, but the average user would probably just give up.

joebonrichie raised the priority of this task from Low to High.Jun 22 2018, 2:06 PM

I'll change the priority as it was previously thought this didn't break anything.

Tried to manually do this post %make_install with this:

export PATH="/home/build/YPKG/root/vlc/install/usr/bin:$PATH"
export LD_LIBRARY_PATH="/home/build/YPKG/root/vlc/install/usr/lib64:$LD_LIBRARY_PATH"
cd $installdir/usr/lib64/vlc
LD_PRELOAD=/usr/lib64/libfakeroot/libfakeroot.so ./vlc-cache-gen /home/build/YPKG/root/vlc/install/usr/lib64/vlc/plugins/

Runs without error but the stale cache issue is still present when vlc is opened. If you do this outside of solbuild without sudo it also runs without error but doesn't work. Might have to give in and add a post-install for now.

@clivejo do the python bindings work if you manually remove the plugin cache? sudo rm /usr/lib64/vlc/plugins/plugins.dat

The build process isn't failing on creating the cache as I thought previously, it successfully creates the plugins.dat cache file. However, doesn't seem to be usable by vlc. Seems we will need a usysconf trigger to run vlc-cache-gen after all.

Running:

sudo /usr/lib/vlc/vlc-cache-gen /usr/lib64/vlc/plugins/

Seems to have fixed it for the time being, I'm not sure how the cache got "stale" overnight (it was working yesterday and started errorring out today). The last update to vlc was the 15th June.

@clivejo you didn't answer my question though

@clivejo do the python bindings work if you manually remove the plugin cache? sudo rm /usr/lib64/vlc/plugins/plugins.dat

The bindings appear to work. But the only testing was to reboot and restart mycroft with the cache removed.