1

I was installing SFML from pacman, which requires freetype, and I got a nasty cyclic dependency between freetype and harfbuzz, which is another issue.

My main question is about this chain of dependencies:

Freetype -> harfbuzz -> glib2 -> python -> sqlite etc

$ pactree -s mingw-w64-x86_64-sfml outputs a very large tree. I thought freetype was a lightweight library...

I wanted sfml, and end up with python and sqlite, resulting in a 350MB installation.

Is that normal?

I'm not really aware of how all harfbuzz or glib are written, but those dependencies seem out of scope.

jokoon
  • 449

1 Answers1

2

FreeType uses HarfBuzz as a shaper for "improved auto-hinting of OpenType fonts". This is not strictly required for basic FreeType operation, but it's a compile-time choice whether to use it or not.

HarfBuzz doesn't use the GLib common runtime much, but it seems to import the GLib-provided Unicode normalization functions.

(Plus, the additional CLI tools (e.g. 'hb-view' or 'hb-shape') are also written using GLib-provided functions for string manipulation, UTF-8 decoding, and so on. These tools are not required for basic operation, but it's each distribution's decision as to whether include them in the main package or to split into a "-bin" package.)

GLib includes developer tools which are written in Python, such as 'gdbus-codegen' or 'glib-mkenums'. These are not required for basic operation, but it's each distribution's decision as to whether make Python an optional dep, or to split developer tools into a "-dev" package, or to do it the lazy way.

Overall, the three libraries themselves are very reasonable dependencies to have (that is, minus the dependency cycle that's unsolved for 6 years and counting), but forcing the GLib package to depend on Python is your distribution's fault.

grawity
  • 501,077