In file included from ../../subprojects/freetype-2.6.1/src/gzip/ftgzip.c:65:
In file included from ../../subprojects/freetype-2.6.1/src/gzip/zlib.h:34:
../../subprojects/freetype-2.6.1/src/gzip/zconf.h:228:12: error: unknown type name 'Byte'
228 | typedef Byte FAR Bytef;
| ^
In file included from ../../subprojects/freetype-2.6.1/src/gzip/ftgzip.c:83:
../../subprojects/freetype-2.6.1/src/gzip/inftrees.h:22:7: error: unknown type name 'Byte'
22 | Byte Exop; /* number of extra bits or operation */
| ^
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'arm64-apple-darwin20.0.0-clang++'
so the paths aren't set up properly to find the system clang.
Ah yes, after activating the environment, you can unset CC, CXX, CFLAGS, CXXFLAGS, and LDFLAGS I think, and then recreate your build directory to initialize with the system compiler.
I can unset all of those, but it still chooses arm64-apple-darwin20.0.0-clang which is the mamba clang (etc).
Sorry, I can't really tell what meson is doing to "recreate (my) build directory". This is all using the matplotlib mamba environment, so do we need to be pinning the compiler somehow? Note we ask for c-compiler and cxx-compiler. Should we not?
Sorry, I can't really tell what meson is doing to "recreate (my) build directory".
For an editable install, you would need to delete the build directory; it won't change compilers from environment variables for an existing build.
This is all using the matplotlib mamba environment, so do we need to be pinning the compiler somehow?
Possibly; I'm just unsure what changed. It seems like it was last updated a few weeks ago, but that was for the llvm21 release candidate, and you don't appear to be using that.
Note we ask for c-compiler and cxx-compiler. Should we not?
IIRC, we added these so we could have a self-contained environment on e.g., Windows or in devcontainers or indeed on macOS with Xcode.
#29247 purports to fix this, but unless I manually copy the zconf.h file into the subprojects/freetype-2.6.1/src/gzip directory, freetype will not compile. I found I also have to do
pixi add meson-python meson ninja
and then I had an editable pixi install on my Mac. If I didn't do that it was trying to pull ninja from a cache, and meson-python was not installed.
So I'm not really at all clear on what meson is or how to fix this so it's more turnkey. At least on my system, it seems that the build scripts are not fully robust.
Activity
tacaswell commented on Aug 28, 2025
which compiler are you using ?
jklymak commented on Aug 28, 2025
QuLogic commented on Aug 29, 2025
Can you see if the text-overhaul branch (which has FreeType 2.13.3) works better?
jklymak commented on Aug 29, 2025
@QuLogic Yes, that branch installs fine.
QuLogic commented on Aug 29, 2025
Is that the system compiler, or one that micromamba installed? If the latter, can you try removing it or vice versa?
jklymak commented on Aug 29, 2025
Looks to be the micro mamba one:
I don't understand mamba well enough to know how to get the system C++. If I remove
then I get
so the paths aren't set up properly to find the system clang.
QuLogic commented on Aug 30, 2025
Ah yes, after activating the environment, you can unset CC, CXX, CFLAGS, CXXFLAGS, and LDFLAGS I think, and then recreate your build directory to initialize with the system compiler.
jklymak commented on Aug 30, 2025
I can unset all of those, but it still chooses arm64-apple-darwin20.0.0-clang which is the mamba clang (etc).
Sorry, I can't really tell what meson is doing to "recreate (my) build directory". This is all using the matplotlib mamba environment, so do we need to be pinning the compiler somehow? Note we ask for c-compiler and cxx-compiler. Should we not?
QuLogic commented on Aug 30, 2025
For an editable install, you would need to delete the build directory; it won't change compilers from environment variables for an existing build.
Possibly; I'm just unsure what changed. It seems like it was last updated a few weeks ago, but that was for the llvm21 release candidate, and you don't appear to be using that.
IIRC, we added these so we could have a self-contained environment on e.g., Windows or in devcontainers or indeed on macOS with Xcode.
rongshaohzr-lang commented on Sep 8, 2025
Do you solve this problem?
jklymak commented on Sep 8, 2025
Not yet, I haven't had a lot of time. I tried pinning various versions of the micro mamba c compilers but didn't have any luck with that.
jklymak commented on Oct 17, 2025
Attached is my meson log. This sees to be using the Xcode compilers (versus micro mamba). I got this by doing pixi init and then pixi install.
meson-log.txt
jklymak commented on Oct 17, 2025
#29247 purports to fix this, but unless I manually copy the zconf.h file into the subprojects/freetype-2.6.1/src/gzip directory, freetype will not compile. I found I also have to do
and then I had an editable pixi install on my Mac. If I didn't do that it was trying to pull ninja from a cache, and meson-python was not installed.
So I'm not really at all clear on what meson is or how to fix this so it's more turnkey. At least on my system, it seems that the build scripts are not fully robust.
To summarize:
If I do
I can run matplotlib from a local pixi environment.
QuLogic commented on Jun 12, 2026
We no longer use FreeType 2.6.1, and given #31384 (comment), I think this is well enough fixed now.