Bug#1122879: /lib/x86_64-linux-gnu/libharfbuzz.so.0: undefined symbol: FT_Get_Transform
Brendan Reilly
dta_bhc at gbrmail.com
Wed Jan 14 19:54:55 GMT 2026
Hello. I would guess there's something not right about some supporting
package on your system.
gnuplot: symbol lookup error: /lib/x86_64-linux-gnu/libharfbuzz.so.0: undefine
d symbol: FT_Get_Transform
So on your box libharfbuzz.so.0 is asking for that symbol, and this
symbol isn't defined. Presumably it isn't loading whatever library is
supposed to be providing it, OR it's loading the library but your copy
of that library isn't providing it. Here's what I have on my box (where
things are working correctly):
$ ldd /usr/bin/gnuplot-x11 | grep -E 'harfbuzz|freetype'
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x0000
7f339502e000)
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x0000
7f3393c15000)
So gnuplot-x11 transitively asks for those two libraries
$ nm -D /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 | grep FT_Get_Transform
U FT_Get_Transform
$ nm -D /usr/lib/x86_64-linux-gnu/libfreetype.so.6 | grep FT_Get_Transform
0000000000010760 T FT_Get_Transform
So libharfbuzz asks for that symbol, and libfreetype provides it.
$ objdump -p /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 | grep NEEDED
NEEDED libm.so.6
NEEDED libfreetype.so.6
NEEDED libglib-2.0.so.0
NEEDED libgraphite2.so.3
NEEDED libc.so.6
And libharfbuzz.so.0 does ask for libfreetype.so.6. So loading gnuplot
would load both of those libraries, and loading harfbuzz would trigger
loading libfreetype (if nothing else loads it), which would satisfy that
symbol. Can you run those commands on your box, and report what they
say?
My information-free guess is that you have an LD_LIBRARY_PATH set to
some local directory (/usr/local or /opt or something) AND you have
another copy of libharfbuzz sitting there, which is picked up before the
packaged one in /usr/lib/. AND your own copy of libharfbuzz asks for
that symbol, but not for the libfreetype.so. Or something along those
lines.
In any case, getting the output of those commands would help.
Thanks.
sec (384) % nm -D /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 | grep FT_Get_Transform
U FT_Get_Transform
sec (385) % nm -D /usr/lib/x86_64-linux-gnu/libfreetype.so.6 | grep FT_Get_Transform
00000000000119c0 T FT_Get_Transform
sec (386) % objdump -p /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 | grep NEEDED
NEEDED libm.so.6
NEEDED libfreetype.so.6
NEEDED libglib-2.0.so.0
NEEDED libgraphite2.so.3
NEEDED libc.so.6
sec (387) % echo $LD_LIBRARY_PATH
LD_LIBRARY_PATH: Undefined variable.
More information about the debian-science-maintainers
mailing list