[Patch Tracker] react-native - Fix outdated Hermes URL
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 65/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- cmake, kotlin, react-native
- Domain
- build-system
Research direction
The patch changes ReactAndroid/build.gradle.kts in React Native’s downloadHermes and unzipHermes tasks. Read those tasks and compare Hermes extraction with the folly, fmt, and fast_float extraction mentioned in the issue. The patch is already linked in PR #105381 and upstream has merged the fix, so this issue is mainly for tracking removal after a React Native version bump.
Written by the indexing model from the issue text.
Description
Patch Information
Library Name: react-native
Library Version: 0.86.0
Patch Number: 048
Patch Description: fix-hermes-tarball-root-after-repo-move
Full Patch Filename: react-native+0.86.0+048+fix-hermes-tarball-root-after-repo-move.patch
Patch Details
Reason for Patch
On ~2026-10-28 the Hermes repository moved from facebook/hermes to meta/hermes. Every Android build that compiles React Native from source (the artifacts publish workflow, any build that misses the prebuilt artifacts, BUILD_RN_FROM_SOURCE=1) started failing at :packages:react-native:ReactAndroid:hermes-engine:configureBuildForHermes with:
CMake Error: The source directory ".../node_modules/react-native/sdks/hermes" does not appear to contain CMakeLists.txt.
downloadHermes still fetches https://github.com/facebook/hermes/tarball/<tag>, which GitHub redirects, so the download works. GitHub names the archive's top-level folder <owner>-<repo>-<sha>, so it is now meta-hermes-<sha>/ instead of facebook-hermes-<sha>/. unzipHermes only flattened paths starting with facebook-hermes-, so the sources land one folder too deep and CMake finds no CMakeLists.txt in sdks/hermes.
Builds that use the prebuilt artifacts do not download Hermes and are not affected. iOS is not affected either: hermes-engine.podspec downloads the prebuilt hermes-ios tarball from Maven Central and never reads this archive.
Changes Made
Backport of the upstream fix, identical to the upstream commit (no comments of our own):
downloadHermesfetches fromhttps://github.com/meta/hermes/tarball/<tag>instead of relying on the redirect.unzipHermesstrips the archive's single top-level folder whatever its name (eachFile { path = path.substringAfter("/") }), the same way folly, fmt and fast_float are extracted inReactAndroid/build.gradle.kts, and setsincludeEmptyDirs = falseso the empty wrapper folder is not recreated.
The doLast step added by patch +024 to the same unzipHermes task is left untouched; it depends on sdks/hermes being flattened correctly, which this patch restores.
Upstream Status
Upstream fix is merged so this patch can be removed once we bump to a react-native version that includes this fix.
Related Information
PR Introducing Patch: https://github.com/Expensify/App/pull/105381
Additional Notes
Checklist
- Patch file is correctly named and placed in the appropriate directory
- Patch is documented in the corresponding
details.mdfile - This issue is linked in the
details.mdfile - Upstream PR/issue has been created (if applicable)
- Dominant language
- TypeScript
- Stars
- 5k
- Forks
- 4k
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 594
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Expensify/App
-
[Exploratory] Expense - 2 selected drop-down is shown twice when selecting hold from more option.OpenMonthly Not a priority
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Expensify/App#106080 · 1 comment ·
Maintainers usually reply within 1 day
-
Monthly Not a priority
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Expensify/App#106057 · 1 comment ·
Maintainers usually reply within 1 day
-
Monthly Not a priority
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Expensify/App#105341 · 2 comments ·
Maintainers usually reply within 1 day
-
Monthly Not a priority
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Expensify/App#105100 · 1 comment ·
Maintainers usually reply within 1 day
-
[$250] [Exploratory] Web-Workspace-The newly created workspace is obscured by another workspace.Possibly taken @laveshfonix claimed this 1 day ago. OpenMonthly Not a priority
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Expensify/App#104951 · 1 comment ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
transitmatters/shutdown-tracker#155 ·
Maintainers usually reply within 2 days
-
Popping out a single panel leaves its always render overlay in the main window, blocking clicksOpenbug triaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
"Claude Code request is missing its initial user message" when the prompt starts with an image pathOpen
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
earendil-works/pi-claude-code#31 ·
Maintainers usually reply within 8 days
-
bug pending triage
Difficulty 1/5 Under an hour Newbie friendliness 92/100
privatenumber/cleye#48 ·