Undefined symbol: hb_buffer_set_invisible_glyph with gnome-3-34

Hi all,

I just switched to gnome-3-34 for the Remmina snap and I’ve got this error when starting the snap

/snap/remmina/4866/usr/bin/remmina: symbol lookup error: /snap/remmina/4866/gnome-platform/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: hb_buffer_set_invisible_glyph  

It sounds strange because harfbuzz is not explicitly added by our snap, and it’s included in gnome-3-34

Blindly following a similar thread on launchpad, I’ve applied this snippet in the clean up phase and fixed the problem

  rm -f $SNAPCRAFT_PRIME/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libharfbuzz.so.0*
  rm -f $SNAPCRAFT_PRIME/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libgio-2.0.so.0*
  rm -f $SNAPCRAFT_PRIME/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libglib-2.0.so.0*  

That solves the issue, but it sounds not good to me.

snapcraft.yml : https://gitlab.com/Remmina/Remmina/-/blob/master/snap/snapcraft.yaml
launchpad thread: https://bugs.launchpad.net/snapcraft/+bug/1908061

Thanks in advance for your help!!

2 Likes

This is happening because there are libs being staged from 18.04 that have newer versions included in the gnome-3-34-1804 content snap. LD_LIBRARY_PATH looks for libs bundled in your snap first, giving you the opportunity to override what’s provided in the content snap. The downside to this is if you stage a lib (or more likely a lib that depends on other libs) that conflict with something in the content snap, you could be missing symbols.

Your fix is fine, or you could try removing some of those stage packages which could also help reduce the size of your snap. For example, staging gtk-3-examples will bring in a bunch of deb dependencies that will include libgtk and harfbuzz and I suspect gtk-3-examples isn’t useful in your snap.

2 Likes

Thanks a lot Ken!

I think I’ve included the examples just to try the snap in the beginning.

I’ll do some tests the next week and let you (all) know.

In the meanwhile I set this as the solution.

Great help! Thanks

1 Like