Q:

Desktop Dimmer won't run on my Ubuntu 20.04 because of Harfbuzz being too old

I am trying to install Desktop Dimmer v4.0.4 (amd64) on my Ubuntu 20.04 using the DEB package. The app shows up in the Applications menu but does not open. Upon trying to run it as a command-line utility I get the following error:
user@thehost:~$ desktop-dimmer 
Gtk-Message: 18:23:15.355: Failed to load module "canberra-gtk-module"

(desktop-dimmer:2454): Pango-ERROR **: 18:23:15.610: Harfbuzz version too old (1.2.7)

Trace/breakpoint trap (core dumped)

How do I update Harfbuzz on my Ubuntu?
Update #1:
user@thehost:~/Downloads$ ldd $(which desktop-dimmer)
    linux-vdso.so.1 (0x00007fff3ede6000)
    libnode.so => not found
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3688ebe000)
    libgtk-x11-2.0.so.0 => /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 (0x00007f3688a64000)
    libgdk-x11-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 (0x00007f36889a9000)
    libatk-1.0.so.0 => /lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007f368897f000)
    libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f368879e000)
    libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f368878a000)
    libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007f3688762000)
    libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f368863f000)
    libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f36885f0000)
    libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f3688531000)
    libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f36884ea000)
    libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f3688488000)
    libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f3688437000)
    libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007f3688425000)
    libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f3688418000)
    libXdamage.so.1 => /lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f3688413000)
    libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f3688406000)
    libXcomposite.so.1 => /lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007f36883ff000)
    libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f36883ea000)
    libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f36883e2000)
    libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f36881d8000)
    libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f368809b000)
    libXtst.so.6 => /lib/x86_64-linux-gnu/libXtst.so.6 (0x00007f3687e95000)
    libXss.so.1 => /lib/x86_64-linux-gnu/libXss.so.1 (0x00007f3687e8e000)
    libgconf-2.so.4 => /lib/x86_64-linux-gnu/libgconf-2.so.4 (0x00007f3687e5b000)
    libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f3687e55000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f3687e4a000)
    libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f3687d21000)
    libnss3.so => /lib/x86_64-linux-gnu/libnss3.so (0x00007f3687bd2000)
    libnssutil3.so => /lib/x86_64-linux-gnu/libnssutil3.so (0x00007f3687b9d000)
    libsmime3.so => /lib/x86_64-linux-gnu/libsmime3.so (0x00007f3687b6d000)
    libnspr4.so => /lib/x86_64-linux-gnu/libnspr4.so (0x00007f3687b2d000)
    libffmpeg.so => not found
    libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007f3687a36000)
    libcups.so.2 => /lib/x86_64-linux-gnu/libcups.so.2 (0x00007f368799b000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3687993000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f3687965000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3687784000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3687635000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f368761a000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3687428000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f3688ef7000)
    libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f368740d000)
    libXinerama.so.1 => /lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007f3687408000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f36873ec000)
    libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f368738c000)
    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f3687361000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f3687343000)
    libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f368729c000)
    libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f3687264000)
    libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f368725f000)
    libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f3687235000)
    libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f3687224000)
    libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007f3687207000)
    libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007f36871fc000)
    libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f36870f7000)
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f36870ee000)
    libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f36870e0000)
    libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f3687033000)
    libdbus-glib-1.so.2 => /lib/x86_64-linux-gnu/libdbus-glib-1.so.2 (0x00007f3687008000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f3686f95000)
    libplc4.so => /lib/x86_64-linux-gnu/libplc4.so (0x00007f3686f8e000)
    libplds4.so => /lib/x86_64-linux-gnu/libplds4.so (0x00007f3686f87000)
    libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f3686f3a000)
    libavahi-common.so.3 => /lib/x86_64-linux-gnu/libavahi-common.so.3 (0x00007f3686f2c000)
    libavahi-client.so.3 => /lib/x86_64-linux-gnu/libavahi-client.so.3 (0x00007f3686f19000)
    libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f3686d43000)
    libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f3686cea000)
    libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f3686c5a000)
    libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f3686c54000)
    libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f3686c4c000)
    libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007f3686c42000)
    libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f3686c13000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f3686bec000)
    liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f3686bcb000)
    libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f3686aad000)
    libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f36869d0000)
    libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f368699d000)
    libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f3686996000)
    libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f3686987000)
    libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f3686851000)
    libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f3686830000)
    libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f36866ae000)
    libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f3686696000)
    libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007f368665c000)
    libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007f3686624000)
    libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f36865a0000)
    libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f3686586000)
    libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f3686561000)
    libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f368655a000)

Update #2
user@thehost:~/Downloads$ apt policy libharfbuzz0b
libharfbuzz0b:
  Installed: 2.6.4-1ubuntu4
  Candidate: 2.6.4-1ubuntu4
  Version table:
 *** 2.6.4-1ubuntu4 500
        500 http://in.archive.ubuntu.com/ubuntu focal/main amd64 Packages
        100 /var/lib/dpkg/status

A:

The problem isn’t that your system’s version of Harfbuzz is too old, it’s that the Desktop Dimmer binary provided in the package embeds a version of Harfbuzz that’s too old.
I’m not sure how the dependency is pulled in, but hopefully rebuilding from source would use a newer version.

