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


#1

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: https://github.com/AlanGriffiths/egmde-snap

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/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007f3060bb2000)

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

On closer examination /snap/core18/current/lib64/ld-linux-x86-64.so.2 is a link:

$ ls -hl  /snap/core18/current/lib64/ld-linux-x86-64.so.2 
lrwxrwxrwx 1 root root 32 Apr 16  2018 /snap/core18/current/lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.27.so

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

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

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?


#2

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


#3

FWIW,