Repository navigation
Docs for building with an ICU source directory don't work #60947
Description
Activity
I would like to work on this issue. The problem seems to be with the outdated
documentation for building Node with a custom ICU source directory.I’ll update the docs to include:
- Using --with-icu-source=/icu/icu4c instead of the top directory
- Explaining where modern ICU versions generate the icudt*.dat file
- Mentioning that this file needs to be copied to source/data/in for
Node’s configure script to detect it correctly
Let me know if this approach sounds good.
Reacted by René and Steven R. LoomisWhich tarball are you extracting?
If you're definitely extracting the correct icu4c-...-sources archive, then this is an issue with configure.py. The package structure seems to be different to what you're describing, so I wonder if you're working with something different.
cc @nodejs/build
- addedbuildIssues and PRs related to Node.js builds or CI infrastructure.Issues and PRs related to Node.js builds or CI infrastructure.
on Dec 4, 2025 @srl295 Do you know if the directory structure of the upstream ICU tarballs changed since the Node.js documentation was written?
Hi @catamorphism
@richardlau the above structure isn't using a tarball, it's using a download from the ICU repo. It would work if the ICU source .tgz were usedWhich tarball are you extracting?
@Renegade334 I didn't use a tarball, but rather a git checkout of ICU. I see now that the instructions imply you should use an unpacked tarball, but my initial reading of it was that any source directory would work, so maybe there's a bit of clarification that could be done if the docs are meant to only work with a downloaded tarball?
Which tarball are you extracting?
@Renegade334 I didn't use a tarball, but rather a git checkout of ICU. I see now that the instructions imply you should use an unpacked tarball, but my initial reading of it was that any source directory would work, so maybe there's a bit of clarification that could be done if the docs are meant to only work with a downloaded tarball?
It needs a downloaded tarball because of how it integrates the data. You can make one from an ordinary icu build with
make distif desired. Would be great to improve the docs; they don't say this on a quick perusal.Would be great to improve the docs; they don't say this on a quick perusal.
The ICU documentation URL and source tarball naming scheme have also changed, if anyone chooses to pick this one up.
- addeddocIssues and PRs related to Node.js documentation.Issues and PRs related to Node.js documentation.
on Dec 4, 2025 I would like to work on this issue. The problem seems to be with the outdated
documentation for building Node with a custom ICU source directory.I’ll update the docs to include:
- Using --with-icu-source=/icu/icu4c instead of the top directory
- Explaining where modern ICU versions generate the icudt*.dat file
- Mentioning that this file needs to be copied to source/data/in for
Node’s configure script to detect it correctly
Let me know if this approach sounds good.
Not quite so. But there is a doc addition needed
This issue has been marked as stale due to 210 days of inactivity.
It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.- addedstaleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.Issues and PRs marked stale due to inactivity and scheduled for automatic closure.
on Jul 3, 2026 This issue has been automatically closed after 30 days of inactivity following its stale status (no activity for a total of 120 days).
If this is still relevant, feel free to reopen it or leave a comment with additional details so we can continue the discussion.
Version
N/A
Platform
Subsystem
No response
What steps will reproduce the bug?
$HOME/icunode.cd node && ./configure --with-intl=full-icu --with-icu-source=$HOME/icuThis initially fails to find
uvernum.h. After changing the command as follows:./configure --with-intl=full-icu --with-icu-source=$HOME/icu/icu4cit fails with:
If ICU is built with a separate build directory
icu/build, then this file is found inicu/build/data/out/tmp/icudt79l.dat. When I copied this file intoicu/source/data/in, and re-ran the configure command again, it worked.The documentation should be updated to reflect these extra steps.
How often does it reproduce? Is there a required condition?
See above
What is the expected behavior? Why is that the expected behavior?
See above
What do you see instead?
See above
Additional information
No response