source-foundry / ttfautohint-build

Build ttfautohint from source on Linux and macOS platforms
MIT License
27 stars 12 forks source link

bump ttfautohint to v1.8.2, FreeType to 2.9.1, Harfbuzz to 1.8.4 #18

Closed chrissimpkins closed 6 years ago

anthrotype commented 6 years ago

I had similar issues with building ttfautohint-py, because the freetype-config script is no longer installed by default, you have to pass a configure option to install that script.

Question: why not deprecate this shell script and join efforts with me in ttfautohint-py? The latter does provide a command-line interface identical to the C++ ttfautohint binary, besides exposing a pythonic API.

anthrotype commented 6 years ago

i've invited you to join ttfautohint-py repo

chrissimpkins commented 6 years ago

Thanks Cosimo. The primary goal here was to find an approach that builds on macOS since there was no documentation about this. We use this script in Hack and this project acts as a staging area to confirm that updates to ttfautohint and dependencies build cross-platform before we make moves in the Hack project.

From the standpoint of capacity to add instruction sets to ttf fonts, I have no concerns at all about deprecating this build script. ttfautohint-py is the better approach as it lives in the Python ecosystem. I will add a statement on the README that points to that project for anyone who is looking for a simple hinting approach.

From the standpoint of the Hack project, this script remains relevant for the Linux distros that distribute the fonts. Are you aware of any Linux projects that are distributing ttfautohint-py? Our capacity to make this transition largely depends upon that happening. I am happy to make a push for it but the process, as I have come to understand, is not fast. We are still waiting for our year+ old build tooling to make its way through this process on Fedora and Ubuntu/Debian...

i've invited you to join ttfautohint-py repo

Would love to pitch in! The intent here is absolutely not to compete with your project. Werner and I identified build issues on earlier versions of macOS here and we tinkered with the script to make sure that it builds on current macOS (and Ubuntu Linux). I see this as more of a build CI tool for ttfautohint against its build dependencies than anything else.

chrissimpkins commented 6 years ago

@lemzwerg build v1.8.2 fails here. Per Cosimo, this change led to the issue in case an update is needed for the configure step in your build from source documentation:

I had similar issues with building ttfautohint-py, because the freetype-config script is no longer installed by default, you have to pass a configure option to install that script.

chrissimpkins commented 6 years ago

I had similar issues with building ttfautohint-py, because the freetype-config script is no longer installed by default, you have to pass a configure option to install that script

@anthrotype is the configure modification scripted in the ttfautohint-py project Cosimo? If not, can you share the new configure flag that is required? Will modify this later today. Thanks.

anthrotype commented 6 years ago

https://github.com/fonttools/ttfautohint-py/commit/8b8d7bf07f1513b4664173abb21642d178b8c1bf

anthrotype commented 6 years ago

this script remains relevant for the Linux distros that distribute the fonts.

I'm not sure I get the connection.. Is that because they want to be able to build from source the font, and hence they also must build from source all its build requirements, such as ttfautohint itself? It doesn't make much sense to me. Why can't they use the ttfautohint version that's shipped via the distros' own package managers, and instead would need to use this script of yours?

Are you aware of any Linux projects that are distributing ttfautohint-py?

not really, but why do you care? one can just install with pip inside a virtual environment..

anthrotype commented 6 years ago

I see this as more of a build CI tool for ttfautohint against its build dependencies than anything else.

fair enough

chrissimpkins commented 6 years ago

build from source the font, and hence they also must build from source all its build requirements, such as ttfautohint itself?

yep

It doesn't make much sense to me.

agree to some extent. but it is a free software guidelines thing out there.

Why can't they use the ttfautohint version that's shipped via the distros' own package managers, and instead would need to use this script of yours

I am not aware of how broadly ttfautohint is adopted across distros. I believe it is on Ubuntu/Debian, don't know about Fedora. I suspect that it is on Arch. Very unclear and I haven't researched other commonly used distros.

not really, but why do you care? one can just install with pip inside a virtual environment

As you've seen on the Hack repo comments, they seem to have a problem with this. This works for individual users on a given distro, but the average user is not building from source. My comments were about font packages that are distributed through the distro. I suspect (maybe?) that the guidelines for free software on some of the distros would force them to rebuild your entire ttfautohint-py tool from source using a make approach like you do in the repository in order to distribute it to users as a package for installation. This would require them to review each of the dependencies that are used in your project (if there are more than Harfbuzz and FreeType which are already in most distros if not all). This includes all build dependencies and execution dependencies as well as the entire dependency of dependency chain. It is a lengthy review process to ensure that software is free for those distros that work under free software guidelines. I commend them for the efforts but have to say it is a PITA to try to (1) make it happen; (2) get anything done efficiently...

chrissimpkins commented 6 years ago

Thanks for the link to the configure flag. Pushed this change. Let's see if I can get it to work :)

chrissimpkins commented 6 years ago

And it did! Thanks much for your help here Cosimo. Greatly appreciated!

chrissimpkins commented 6 years ago

@anthrotype btw, if you are ever interested in write permissions on this or other repos of ours/mine including this one for any reason, just ask. More than willing to add you to ours in order to collaborate on these projects too. I'll send you an organization invite and you can accept if you feel that there is anything that you would like write access to. Just poke me with an email about the repos of interest if so.

anthrotype commented 6 years ago

Thanks!