AppImageCommunity / pkg2appimage

Tool and recipes to convert existing deb packages to AppImage
http://appimage.org
MIT License
684 stars 209 forks source link

libpango-1.0.so.0: undefined symbol: hb_ot_layout_get_horizontal_baseline_tag_for_script #528

Closed danyeaw closed 1 year ago

danyeaw commented 1 year ago

I recently updated Gaphor to build an AppImage of with GTK4 and libadwaita at https://github.com/gaphor/gaphor/pull/1857. I built GTK from source using JHBuild.

Using the default excludeslist, I was getting a libpango-1.0.so.0: undefined symbol: hb_ot_layout_get_horizontal_baseline_tag_for_script error when launching Gaphor using the AppImage.

Removing libharfbuzz.so.0 from excludes list fixes the issue.

The AppImage is built using Ubuntu 18.04 docker image which comes with HarfBuzz 1.7.6, Pango requires HarfBuzz >= 2.6.0. When building an app with the latest Pango for GTK4, it looks like it depends on this newer version of HarfBuzz and should be removed from the excludelist.

probonopd commented 1 year ago

Can your application be built on Ubuntu bionic?

danyeaw commented 1 year ago

Hi @probonopd, yes, it is being built with Bionic and works great with the HarfBuzz library packaged.

probonopd commented 1 year ago

Thanks for confirming. I am a bit hesitant to make this change because I remember this as a problematic library to be privately bundled. Possbly the issues arise when HarfBuzz is "too new" in the system; need to do more testing.

Anyway, thanks for letting me know! Let's keep this open for a while for others to comment. @TheAssassin wdyt?

danyeaw commented 1 year ago

In addition to the Bionic docker image, we also tested the AppImage with Ubuntu 20.04, Fedora 35, and OpenSUSE Tumbleweed. :+1:

danyeaw commented 1 year ago

This wasn't merged in a timely manner, so I am going to go ahead and close this.

tz-reinberger commented 2 months ago

So I am deploying on Ubuntu 20.04 and running on 22.04 and the missing libharfbuzz causes this issue. Can we update the excludelist to remove libharfbuzz or is there any reason why we should keep it?

TheAssassin commented 2 months ago

The solution is rather to add libpango, isn't it? libharfbuzz causes issues with other libraries, too.

tz-reinberger commented 2 months ago

Also seems like a possible solution. In that case,

libpango-1.0.so.0
libpangoft2-1.0.so.0

have to be added to the excludelist.

libpangocairo-1.0.so.0

seems to not cause trouble and can be deployed. But removing pango might mean it will not run on an older system if the software requires newer pango.