Comment 5 for bug 1976352

Revision history for this message
Alfonso Sanchez-Beato (alfonsosanchezbeato) wrote :

libharzbuff would allow drawing glyphs for most languages with much less requirements than libpango. But that requires some work. So it is an alternative if in the future we need something more powerful but want to avoid pango. The change itself is easy to revert thanks to plymouth plugin base architecture - label-ft and label have the same ABI, it is just that label-ft has a subset of label's capabilities.

Regarding dependencies, this is what pangocairo pulls:

$ ldd /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
 linux-vdso.so.1 (0x00007fff72bfa000)
 libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f3840a6d000)
 libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f3840a52000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f384096b000)
 libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f3840831000)
 libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f38407d1000)
 libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f3840700000)
 libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f38406b6000)
 libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f384058e000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3840366000)
 libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f384018e000)
 libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007f3840172000)
 libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007f3840167000)
 libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f384009d000)
 /lib64/ld-linux-x86-64.so.2 (0x00007f3840b02000)
 libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f3840027000)
 libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007f384001a000)
 libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f383fff3000)
 libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f383ffc2000)
 libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f383ffb7000)
 libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f383ff0c000)
 libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f383fed1000)
 libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f383fecc000)
 libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f383fea2000)
 libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f383fe93000)
 libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f383fe84000)
 libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f383fd44000)
 libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f383fd2f000)
 libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f383fd13000)
 libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f383fd0c000)
 libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f383fcc8000)
 libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f383fc9a000)
 libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007f383fc91000)
 libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f383fc83000)
 libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f383fc7d000)
 libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f383fc75000)
 libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f383fc3c000)
 libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f383fba5000)
 libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f383fb82000)
 libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f383fb6a000)
 libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f383fb5d000)

It would be indeed good to remove, say, libX* deps. If we do that we could in the future remove label-ft indeed.