Missing inputstream.adaptive.so version symlink?

I remotely run a CoreELEC box for my parents.

Before delivering it to them, I’d installed the Kayo plugin, which uses inputstream.adaptive, and it all worked just fine.

It wasn’t until a few weeks later that they tried it, and got nothing. Digging around in the logs I found:

NOTICE: VideoPlayer::OpenFile: plugin://plugin.video.kayo.sports/?_=play&id=72635&play_type=0&start_from=1238&_l=.pvr
NOTICE: Creating InputStream
ERROR: ADDON: Could not locate inputstream.adaptive.so.2.3.21
ERROR: IAddonInstanceHandler::CreateInstance: inputstream.adaptive returned bad status "Permanent failure" during instance creation
ERROR: CVideoPlayer::OpenInputStream - error opening [plugin://plugin.video.kayo.sports/?_=play&id=72635&play_type=0&start_from=1238&_l=.pvr]
NOTICE: CVideoPlayer::OnExit()

Further digging showed that inputstream.adaptive had updated from v2.3.21 to v2.3.22.

Restarting Kodi fixed this, but this is an always-on box, and I’d like it to be able to pick up these shared library upgrades automatically. (These are the current logs - I’d also had the same problem with a previous version bump)

My main Kodi box is a NUC running the official PPA .deb packages. It too is always-on, but I haven’t had these problems. One difference is that the deb packaged version has symlinks like so:

inputstream.adaptive.so -> inputstream.adaptive.so.18.2
inputstream.adaptive.so.18.2 -> inputstream.adaptive.so.2.3.22
inputstream.adaptive.so.2.3.22

I’m not entirely sure what the idea of the 18.2 symlink is, but I wonder if the CoreELEC packaged inputstream.adaptive should have a similar set of symlinks, or even just:

inputstream.adaptive.so -> inputstream.adaptive.so.2.3.22

This looks like a likely place to add it:

The only prior art I can find is in /usr/lib/kodi/addons/peripheral.joystick, which has:

peripheral.joystick.so -> peripheral.joystick.so.18.3
peripheral.joystick.so.1.4.7
peripheral.joystick.so.18.3 -> peripheral.joystick.so.1.4.7

I’m really not sure what the correct fix is here.

Looks like this is an upstream issue. I’ll ask there.

Symbolic links are not supported in ZIP for Kodi.

7za doesn’t support symbolic links, but (surprisingly) zip -y does.

Either way, that doesn’t seem to fix it. I tried creating those symbolic links manually, and the problem persists.

I’m digging around in here now: https://github.com/xbmc/xbmc/blob/master/xbmc/addons/binary-addons/AddonDll.cpp#L75 (code-quoted because it seems I’m not allowed to post github links)

Trying to work out why it keeps trying to load the old version after an update. I have an easy repro at least.