0

I was installing some common packages I used everyday, like i3wm, jq, bat-musl, kitty, and so on, in a mostly fresh recent Debian. Then, when I tried to run a i3-msg command, I received the following error:

i3-msg: symbol lookup error: /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0: undefined symbol: hb_glib_script_from_script

Then, suddenly, i3 wasn’t responding anymore and I had to force a reboot on the system. After that, the computer does not show the logon GUI screen anymore. Instead, it keeps showing me a black screen with a blinking underscore cursor like an empty tty forever. I can switch to another tty (like tty2 or 3) and login in a terminal environment. However, if I try to go back to tty1 where the login should appear, I get the black screen back and sometimes the system even won’t allow to change tty again, getting stuck in that black screen but with the cursor not blinking anymore. Although, even when it freezes like that, it responds to a single power off button click as a normal shutdown event (not forced).

After digging a lot, I tried to run gnome-shell by hand with the following command, but I always get the same error from the beginning with i3:

> dbus-run-session —- gnome-shell —-display-server —-wayland
gnome-shell: symbol lookup error: /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0: undefined symbol: hb_glib_script_from_script

The library has the symbol required:

> nn -D /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 | grep glib
         U hb_glib_script_from_script
         U hb_glib_script_to_script

I already tried to reinstall the library, but the error doesn’t change. I am out of ideas of how to fix it and if this error is really the reason of why the login GUI screen is not showing up.

I do not want to reinstall the entire system. Does anyone can help me with it?

Here is my system version:

> uname-a
Linux pc-name 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+dev10u1 (2020-06-07) x86_64 GNU/Linux
2
  • Are you running Sid? Make sure you're got the latest libpango installed, i.e. version 1.44.7-4 Jul 18 '20 at 15:13
  • 1
    Thank you for the prompt answer. The libpango package installed was the last from stable repo. The issue was that there was a local libharfbuzz0b library installed that did not implements the hb_glib_script_to_script symbol, when it should be. Take a look at my comments to Stephen Kitt's answer for more details.
    – Teo
    Jul 18 '20 at 17:04
0
         U hb_glib_script_from_script
         U hb_glib_script_to_script

doesn’t mean that the library has the symbol, it means the library needs the symbol; the U stands for “undefined”. (Strictly speaking, the library has the symbol, but no corresponding object.)

Try reinstalling libharfbuzz0b, which is the library implementing the symbol:

 sudo apt install --reinstall libharfbuzz0b
2
  • 1
    Thank you very much, @stephen-kitt. You answer enlightened me. Both libpangoft2-1.0-0 and libharfbuzz0b were correctly installed with stable and buster sources. I did not know about the meaning of U and I did not think about finding out if hb_glib_script_to_script was implemented elsewhere. To solve the issue, I looked for the dependencies of libpangoft2-1.0-0 with ldd /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 and I figured out that it was using another libharfbuzz0b library installed in /usr/local/lib instead of the one installed by apt in /usr/lib/x86_64-linux-gnu.
    – Teo
    Jul 18 '20 at 17:00
  • Indeed, the apt one (the same you mentioned) has the symbol implemented. The local one does not! Removing that library from there solved the issue. After that, I noticed that the kitty terminal app I installed by manually copying its binaries to /usr/local. It turns out that among those files there was the libharfbuzz.so.0 that does not implement the symbol other binaries needed. I still have to find out why kitty has a library with that same name that differs from apt's. Nonetheless, my issue as solved thanks to you. Thank you very much again!
    – Teo
    Jul 18 '20 at 17:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.