servo / servo/rust-harfbuzz

Consider moving the bundled copy of HarfBuzz to a distinct optional crate

Open
#276 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
90
Forks
68
PR merge metrics
No merged PRs in 30d

Description

Currently, harfbuzz-sys contains 1) a copy of HarfBuzz itself and 2) a build.rs that probes for system HarfBuzz.

The bundled copy of HarfBuzz poses the problem that when a project with code browsing tools does not use the bundled copy of HarfBuzz, the bundled copy is confusing for code search and code browsing tools, and potentially for SBOM analysis.

The build.rs was a blocker for me to get the crates building for Android.

For projects that already manage the build of HarfBuzz itself in other ways, these issues would be solved by moving the bundled copy of HarfBuzz and the associated build.rs into an optional distinct dependency of harfbuzz-sys. Something like harfbuzz-bundled that woud be off by default and could be included by bundled feature of harfbuzz-sys.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading harfbuzz-sys and its build.rs, then trace how the bundled HarfBuzz copy and system probing are connected. Separate the bundled copy and associated build logic into an optional dependency enabled by the bundled feature, while preserving system-managed builds and Android compatibility.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.