7

Googling, I have seen that this error occurs with different software that use the Pango library. Pango is a text layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text.

If the software is a command line tool, or is launched from a terminal, the error looks like this:

:~$ sudo ah

(ah:2782): Pango-ERROR **: 16:54:45.844: Harfbuzz version too old (1.3.1)

Trace/breakpoint trap
:~$

How to fix this error?

Thanks in advance

Solution

As the question is kept closed, and I found a solution, I am going to post it directly here.

It is simple to realize that we are facing a compatibility problem between libraries versions.

Let's take an environment with this problem to see the solution:

In this case when trying to open it, nothing happens, it does not open, but it does not show an error either, the error only comes out when trying to launch Vectr from a terminal (./vectr).

First, let's look at the dependencies that may be causing the error:

:~/Downloads/Vectr$ ldd vectr | grep pango

libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f4ab3581000)
libpango-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f4ab33e7000)
libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f4ab1b3b000)

This can be done in different ways, just ask Google.

If you want to see the details of the libraries that you have installed, you can use the next command. Note that the second column indicates the version:

:~/Downloads/Vectr$ dpkg -l | grep libpango

ii  libpango-1.0-0:amd64                       1.44.7-2ubuntu4                        amd64        Layout and rendering of internationalized text
ii  libpango-1.0-0:i386                        1.44.7-2ubuntu4                        i386         Layout and rendering of internationalized text
ii  libpangocairo-1.0-0:amd64                  1.44.7-2ubuntu4                        amd64        Layout and rendering of internationalized text
ii  libpangocairo-1.0-0:i386                   1.44.7-2ubuntu4                        i386         Layout and rendering of internationalized text
ii  libpangoft2-1.0-0:amd64                    1.44.7-2ubuntu4                        amd64        Layout and rendering of internationalized text
ii  libpangoft2-1.0-0:i386                     1.44.7-2ubuntu4                        i386         Layout and rendering of internationalized text

First solution

Since the error is only affecting one software, I don't think it is convenient to downgrade the libraries that are installed on the system (second solution), which may affect other softwares.

So, this solution consists of copying the libraries (old versions) to the root of the folder where the software is, in my case it is portable and I have it in Downloads/Vectr.

We have already seen the exact dependencies, we are going to download them manually (choose your architecture and download the .deb):

As we saw earlier, my architecture is amd64, however, the system also installs the i386 version of the libraries. Since this procedure is manual, and portable, I decided to use only amd64, and it worked for me. But in case of any errors, try using the two architectures together.

Open the .deb with Archive Manager, and open data.tar.xz file, then go to /./usr/lib/x86_64-linux-gnu/ and extract those two files in the root folder of the software (Downloads/Vectr). Repeat for each downloaded .deb file.

After that the software should run normally. And if you run:

:~/Downloads/Vectr$ ldd vectr | grep pango

libpangocairo-1.0.so.0 => /home/myuser/Downloads/Vectr/./libpangocairo-1.0.so.0 (0x00007fc6b0ac8000)
libpango-1.0.so.0 => /home/myuser/Downloads/Vectr/./libpango-1.0.so.0 (0x00007fc6b0931000)
libpangoft2-1.0.so.0 => /home/myuser/Downloads/Vectr/./libpangoft2-1.0.so.0 (0x00007fc6af084000)

You will see how the address of the dependencies changed from /usr/lib/x86_64-linux-gnu/ to /home/myuser/Downloads/Vectr/.

Second solution

Downgrade these libraries (remember, this method can cause malfunction in other softwares).

Variant one: (I could not try this one)

Install an old version from the repositories that you have in your sources.

List the available versions of the libraries:

:~$ apt-cache madison libpango-1.0-0

libpango-1.0-0 | 1.44.7-2ubuntu4 | http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

In my case I only have the current version, and it is the one that is causing the conflict. If you get other versions, you can downgrade with the following command:

:~$ sudo apt install pkg-name=old-version

Remember that there are two more libraries that must be installed (libpangocairo-1.0-0 and libpangoft2-1.0-0). I do not know if these are automatically installed as dependencies, this doubt is also valid for versions for i386.

Variant two: (I did try this one)

For those who do not have previous versions, you must download it (.deb) as indicated in the First Solution. And to avoid major errors, the versions for i386 must be downloaded too (remember that in this example we have Ubuntu amd64).

After downloading the files, open a terminal in the folder where you saved them, then you can downgrade with the following command:

:~$ sudo dpkg -i libpango*.deb

This may end with errors, but in the end the software runs fine, and apparently everything works fine. The future consequences I do not know yet.

To undo this downgrade run sudo apt update, then sudo apt upgrade and you will surely need a sudo apt --fix-broken install.

Then if you want to make the change permanent, and avoid accidental updates of these libraries, you can use the command

:~$ sudo apt-mark hold package-name

This prevents the libraries from automatically installed, updated, upgraded, or removed during system upgrade. And you can undo it with the command

:~$ sudo apt-mark unhold package-name
  • 1
    Got it to work fast with the First solution. Thanks mate, bless your heart. – bob dylan Jul 11 at 20:34
  • 1
    You should separate the answer to the question – Anwar Jul 25 at 9:16
  • It worked for Buka ebook reader on AppImages – Anwar Jul 25 at 9:21