Add nodejs24 to coexist with nodejs 20, add fix for runtime internationalization support in nodejs24#15385
Conversation
There was a problem hiding this comment.
Pull request overview
This PR upgrades Node.js from version 20.14.0 to 24.11.1 and adds runtime internationalization (i18n) support by incorporating ICU data files. The upgrade removes multiple CVE patches that are resolved in the new version.
Key changes:
- Upgrade to Node.js 24.11.1 with npm 11.6.2
- Add full internationalization support via ICU 77.1 data files with a new
nodejs-full-i18nsubpackage - Remove 12 CVE patches (CVE-2024-21538, CVE-2025-23083, CVE-2025-22150, CVE-2025-23085, CVE-2024-22020, CVE-2025-27516, CVE-2025-47279, CVE-2025-23165, CVE-2025-23166, CVE-2025-5222) that are resolved in the new version
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| SPECS/nodejs/nodejs.spec | Main spec file upgraded to version 24.11.1-1, adds ICU support macros, new full-i18n subpackage, downloads ICU data files, and removes resolved CVE patches |
| SPECS/nodejs/nodejs.signatures.json | Updates signatures for the new Node.js tarball and adds signatures for the new ICU data files and test script |
| SPECS/nodejs/btest402.js | New test script to validate ECMAScript 402 internationalization support |
| SPECS/nodejs/CVE-*.patch | Multiple CVE patch files removed as they are resolved in Node.js 24.11.1 |
Comments suppressed due to low confidence (1)
SPECS/nodejs/nodejs.spec:199
- Multiple changelog entries have dates in the future (2025), including entries dated November 2025, May 2025, March 2025, and February 2025. These dates should be corrected to 2024 or the actual dates when these changes were made. This affects lines 180, 183, 186, 189, 192, 196, and 199.
* Fri Nov 07 2025 Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> - 20.14.0-10
- Patch for CVE-2025-5222
* Tue May 27 2025 Aninda Pradhan <v-anipradhan@microsoft.com> - 20.14.0-9
- Patch CVE-2025-23165, CVE-2025-23166
* Wed May 21 2025 Aninda Pradhan <v-anipradhan@microsoft.com> - 20.14.0-8
- Patch CVE-2025-47279
* Mon Mar 10 2025 Sandeep Karambelkar <skarambelkar@microsoft.com> - 20.14.0-7
- Patch CVE-2025-27516
* Wed Feb 12 2025 Kevin Lockwood <v-klockwood@microsoft.com> - 20.14.0-6
- Patch CVE-2020-28493
- Patch CVE-2024-34064
* Tue Feb 11 2025 Kanishk Bansal <kanbansal@microsoft.com> - 20.14.0-5
- Patch CVE-2025-22150, CVE-2025-23085, CVE-2024-22020, CVE-2024-22195
* Mon Jan 27 2025 Sumedh Sharma <sumsharma@microsoft.com> - 20.14.0-4
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
Buddy Build after integrating review comments from github copilot. https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1011912&view=results |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 7 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| for ( var n=0; n<locs.length; n++ ) { | ||
| var loc = locs[n]; | ||
| var lsummary = summary[loc] = {}; | ||
|
|
There was a problem hiding this comment.
Trailing whitespace detected on this line. This should be removed to maintain code cleanliness.
| console.log("----------------"); | ||
| console.log( "SUMMARY:" + stxt ); | ||
| } | ||
|
|
There was a problem hiding this comment.
Trailing whitespace detected on this line. This should be removed to maintain code cleanliness.
| console = { log: print }; | ||
| console.log("Now you have console.log."); | ||
| } | ||
|
|
There was a problem hiding this comment.
Trailing whitespace detected on this line. This should be removed to maintain code cleanliness.
| var stxt = ""; | ||
| if( summary.haveIntl ) { | ||
| console.log("* You have the 'Intl' object. Congratulations! You have the possibility of being EcmaScript 402 compliant."); | ||
| stxt += "Have Intl, "; |
There was a problem hiding this comment.
Trailing whitespace detected on this line. This should be removed to maintain code cleanliness.
SPECS/nodejs/nodejs.spec
Outdated
|
|
||
| %check | ||
| # Make sure i18n support is working | ||
| NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules:%{buildroot}%{_prefix}/lib/node_modules/npm/node_modules LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}/%{_bindir}/node --icu-data-dir=%{buildroot}%{icudatadir} %{SOURCE3} |
There was a problem hiding this comment.
The test command in the check section has a very long line that would benefit from being split across multiple lines for better readability. Consider using line continuation (backslash) to break this command into multiple lines.
| // for a complete test, see http://test262.ecmascript.org | ||
| // | ||
| // Usage: node btest402.js | ||
|
|
There was a problem hiding this comment.
Trailing whitespace detected on this line. This should be removed to maintain code cleanliness.
|
@jslobodzian @sandeepkarambelkar |
fcf1610 to
fbd9da1
Compare
|
Better to support runtime internationalization for nodejs20 as well. |
|
Verified the coexistence by creating local repo of built rpms. By default nodejs 20 will get installed. When we try to install nodejs24, we will get error about previous node version as conflicting and when we remove old version, we are able to install the new version. sandeep@marinerDevVM [ /etc/yum.repos.d ]$ sudo tdnf install nodejs Upgrading: Total installed size: 50.45M sandeep@marinerDevVM [ /etc/yum.repos.d ]$ sudo tdnf install nodejs24
sandeep@marinerDevVM [ /etc/yum.repos.d ]$ sudo tdnf install nodejs24 --allowerasing Installing: Total installed size: 64.65M Removing: Total installed size: 60.98M sandeep@marinerDevVM [ /etc/yum.repos.d ]$ node sandeep@marinerDevVM [ /etc/yum.repos.d ]$ |
|
Any update on this ? |
|
Buddy Build after rebase - https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1038933&view=results |
|
Please close the issue if the images are available in the MCR |
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
*-staticsubpackages, etc.) have had theirReleasetag incremented../cgmanifest.json,./toolkit/scripts/toolchain/cgmanifest.json,.github/workflows/cgmanifest.json)./LICENSES-AND-NOTICES/SPECS/data/licenses.json,./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md,./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)*.signatures.jsonfilessudo make go-tidy-allandsudo make go-test-coveragepassSummary
Upgrade nodejs to 24.12.0 and add fix for runtime internationalization support
Change Log
Does this affect the toolchain?
NO
Test Methodology