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

[Harfbuzz] update to 8.3.1 #8392

Merged
merged 4 commits into from
Aug 23, 2024
Merged

Conversation

jwahlstrand
Copy link
Contributor

@jwahlstrand jwahlstrand commented Mar 31, 2024

Updating HarfBuzz and enabling GDI and DWrite fixes font issues on Windows:

JuliaGtk/Gtk4.jl#32
JuliaGtk/Gtk4.jl#42
JuliaGraphics/Cairo.jl#349

I haven't a clue how to fix the Mac build. Bypassing a broken check for CoreText support lets the Mac build go ahead, and I have verified locally that the JLL works on my Mac.

Also, because of the huge version jump there may be compatibility issues with JLL's that depend on HarfBuzz. The soname hasn't changed, but: harfbuzz/harfbuzz#3216. I don't actually think this is an issue, since the API's that changed were experimental and not likely used by the libraries in Yggdrasil.

@giordano
Copy link
Member

giordano commented Apr 3, 2024

I haven't a clue how to fix the Mac build.

For the benefit of future (and current) readers, the error is

[00:41:51] ../meson.build:334:6: ERROR: Problem encountered: CoreText was enabled explicitly, but required headers or frameworks are missing.

I guess one option is to not request CoreText explicitly? Another option is to read the relevant log and understand why meson claims the CoreText framework isn't available.

@jwahlstrand
Copy link
Contributor Author

Disabling CoreText causes segfaults (disabling it in Pango and/or Cairo would probably prevent that, but I think it's important and we should try to keep it).

From the log:

Run-time dependency appleframeworks found: YES (CoreFoundation)
Running compile:
Working directory:  /workspace/srcdir/harfbuzz-8.3.1/build/meson-private/tmpjag2q2jq
Code:
 #include <CoreText/CoreText.h>
        void bar(void) {
            sizeof(CTRunRef);
        }
-----------
Command line: `/opt/bin/x86_64-apple-darwin14-libgfortran3-cxx11/x86_64-apple-darwin14-clang++ -I/workspace/destdir/include /workspace/srcdir/harfbuzz-8.3.1/build/meson-private/tmpjag2q2jq/testfile.cpp -o /workspace/srcdir/harfbuzz-8.3.1/build/meson-private/tmpjag2q2jq/output.obj -c -O0 -fpermissive -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -std=c++11 -fno-exceptions` -> 1
stderr:
clang-16: error: -Wl,-sdk_version,10.10: 'linker' input unused [-Werror,-Wunused-command-line-argument]
-----------
Checking for type "CTRunRef" with dependencies appleframeworks, appleframeworks, appleframeworks: NO 

../meson.build:334:6: ERROR: Problem encountered: CoreText was enabled explicitly, but required headers or frameworks are missing.

I don't know how to fix the error, but patching meson.build to bypass the check does fix the MacOS build. Fixing it is obviously preferrable but maybe this is OK for now?

Cf #8497, do we need to add a compat for Cairo_jll and other dependencies?

@giordano
Copy link
Member

Is this good to go now?

@jwahlstrand
Copy link
Contributor Author

I think so -- for this to be used we'll have to rebuild Pango_jll and libass_jll since their compat is set for the old version.

@giordano
Copy link
Member

for this to be used we'll have to rebuild Pango_jll and libass_jll since their compat is set for the old version.

Why?

@jwahlstrand
Copy link
Contributor Author

Maybe I'm wrong, but I had to modify the compat in the JLL's to test them locally, otherwise they wouldn't install. Anyway, the answer to your original question is "yes".

@giordano
Copy link
Member

Ah, I see, we're jumping from v2.8.1 to v8.3.1. And there's already v9.0.0

@giordano giordano merged commit b8c393c into JuliaPackaging:master Aug 23, 2024
17 checks passed
@jwahlstrand
Copy link
Contributor Author

Thanks for merging -- yes newer versions including 9 are available but I thought it might be smart to wait for 9.x because these font libraries often seem problematic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants