freetype/harfbuss: upgrade C dependency version #772

Closed
opened 2023-05-12 20:33:28 +00:00 by emidoots · 0 comments
emidoots commented 2023-05-12 20:33:28 +00:00 (Migrated from github.com)

This one is tricky and rather involved. The state of things today:

  1. The harfbuzz bindings in libs/freetype do not build. Zig updated to Clang 15, and that version of harfbuzz does not build with clang 15 due to a new clang warning which is not possible to disable: github.com/hexops/mach@142c8b5b2e
  2. We are working in parallel to move libs/freetype out of the main repo and into its own standalone repo: https://github.com/hexops/mach-freetype - but we cannot yet rely on this as the new Zig package manager does not yet support a Zig package depending on a C package. https://github.com/hexops/mach/issues/721

We could fix #1 above by updating https://github.com/hexops-graveyard/freetype to the latest upstream version, as they have a patch for clang 15 upstream which fixes the warning, however:

  1. Any work we do there must also be duplicated to the new/future standalone repository.
  2. We cannot 'just' update the C sources, we also need to compare the complete diff between the latest upstream we update to and VER-2-12-1 (what our Zig bindings were written against) to perform all relevant updates to our Zig bindings, so they do not become out of sync with the underlying C code.

We should do this ASAP, it's unclear if we should wait for the Zig package manager fix so we can avoid doing extra work, but all in all it may require a bit of work either way.

This one is tricky and rather involved. The state of things today: 1. The harfbuzz bindings in `libs/freetype` do not build. Zig updated to Clang 15, and that version of harfbuzz does not build with clang 15 due to a new clang warning which is not possible to disable: https://github.com/hexops/mach/commit/142c8b5b2edcf06832e595c1c3804a8165936af6 2. We are working in parallel to move `libs/freetype` out of the main repo and into its own standalone repo: https://github.com/hexops/mach-freetype - but we cannot yet rely on this as the new Zig package manager does not yet support a Zig package depending on a C package. https://github.com/hexops/mach/issues/721 We could fix #1 above by updating https://github.com/hexops-graveyard/freetype to the latest upstream version, as they have a patch for clang 15 upstream which fixes the warning, however: 1. Any work we do there must also be duplicated to the new/future standalone repository. 2. We cannot 'just' update the C sources, we also need to compare the complete diff between the latest upstream we update to and `VER-2-12-1` (what our Zig bindings were written against) to perform all relevant updates to our Zig bindings, so they do not become out of sync with the underlying C code. We should do this ASAP, it's unclear if we should wait for the Zig package manager fix so we can avoid doing extra work, but all in all it may require a bit of work either way.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hexops/mach#772
No description provided.