greatscottgadgets / packetry

A fast, intuitive USB 2.0 protocol analysis application for use with Cynthion.
BSD 3-Clause "New" or "Revised" License
123 stars 24 forks source link

Add libharfbuzz to Linux AppImage #173

Closed antoinevg closed 2 weeks ago

antoinevg commented 3 weeks ago

During packetry startup on Ubuntu 22.04.x (and possibly others) the system will attempt to load libharfbuzz even though we are not linking to it directly, with the result that the system's version gets loaded instead:

openat(AT_FDCWD, "/tmp/.mount_packetjchMhG/usr/bin/../lib/libharfbuzz.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libharfbuzz.so.0", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832

Because the version of libharfbuzz that ships with Ubuntu 22.04.x is quite a lot older than the version of libpango we ship with the AppImage the following error results:

❯ ./packetry-x86_64.AppImage
/tmp/.mount_packetiCLpnp/AppRun.wrapped: symbol lookup error: /tmp/.mount_packetiCLpnp/usr/bin/../lib/libpango-1.0.so.0: undefined symbol: hb_ot_layout_get_horizontal_baseline_tag_for_script

This PR adds the version of libharfbuzz generated by our GTK 4.14.4 source build to the AppImage.


closes #172