Can classic, "base: core18" snaps work across series?


While experimenting with snapping a desktop environment I found it doesn’t work on a series that doesn’t match the base. As I’ve learnt more about the way things work (by rewriting rpath) this has seemed increasingly odd and I suspect there’s something going unintentionally wrong.

For reference the snap I’m using is:

Note the first possibly unusual thing about this is it is “base: core18”.

Anyway, the immediate reason why it doesn’t work is:

$ ldd /snap/egmde/x1/bin/egmde | grep "=> /lib"
        /snap/core18/current/lib64/ => /lib64/ (0x00007f3060bb2000)

Which naturally doesn’t work on any series except bionic.

On closer examination /snap/core18/current/lib64/ is a link:

$ ls -hl  /snap/core18/current/lib64/ 
lrwxrwxrwx 1 root root 32 Apr 16  2018 /snap/core18/current/lib64/ -> /lib/x86_64-linux-gnu/

There’s an obvious difference here if I compare this with core:

$ ls -hl  /snap/core/current/lib64/ 
lrwxrwxrwx 1 root root 34 Oct 16 08:35 /snap/core/current/lib64/ -> ../lib/x86_64-linux-gnu/

Is this difference by design? It would seem that if core18 were similar in this respect to core, then this would enable my snap to work on 16.04 and 18.10?


it’s a bug in core18 that’s already being fixed by @mvo5 :slight_smile: