Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

manylinux wheels depend on local availability of fontconfig binary #1

Open
RedFantom opened this issue Mar 21, 2021 · 0 comments
Open
Labels
wontfix This will not be worked on

Comments

@RedFantom
Copy link
Member

RedFantom commented Mar 21, 2021

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 same libfontconfig.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.

@RedFantom RedFantom added the wontfix This will not be worked on label Mar 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

1 participant