The manylinux wheels provided in this repository have an important limitation, specifically that they require the availability of a binary libfontconfig.so.1 being available in the PATH in order to be used.
Why does this limitation exist?
The loading of fonts is application context dependent. This context can only be shared between tkextrafont and the Tcl/Tk application if tk and tkextrafont have loaded the samelibfontconfig.so.1 file. Hence, the manylinux wheels still depend on the presence of a libfontconfig.so.1 binary file.
How is loading of the sytem shared library forced?
The manylinux wheels built by the GitHub action are post-processed such that instead of the manylinux-platform version of the fontconfig is removed and the extrafont.so file loads the system-wide libfontconfig.so.1 instead. See post_process_manylinux.py for more details on how this is done.
This sounds like a dirty hack and I don't like it.
Feel free to build your own wheels on your local machine. You'll need the build dependencies though.
How do you know this works?
The wheels produced this way have been tested and shown to work on Ubuntu 20.04 and Fedora 33. Additional distributions can be tested in the future.
The
manylinux
wheels provided in this repository have an important limitation, specifically that they require the availability of a binarylibfontconfig.so.1
being available in thePATH
in order to be used.Why does this limitation exist?
The loading of fonts is application context dependent. This context can only be shared between
tkextrafont
and theTcl/Tk
application iftk
andtkextrafont
have loaded the samelibfontconfig.so.1
file. Hence, themanylinux
wheels still depend on the presence of alibfontconfig.so.1
binary file.How is loading of the sytem shared library forced?
The
manylinux
wheels built by the GitHub action are post-processed such that instead of themanylinux
-platform version of thefontconfig
is removed and theextrafont.so
file loads the system-widelibfontconfig.so.1
instead. Seepost_process_manylinux.py
for more details on how this is done.This sounds like a dirty hack and I don't like it.
Feel free to build your own wheels on your local machine. You'll need the build dependencies though.
How do you know this works?
The wheels produced this way have been tested and shown to work on Ubuntu 20.04 and Fedora 33. Additional distributions can be tested in the future.