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