Recently, Node.js changed the way node modules are installed to allow for better parallel functionality and easier unbundling of certain parts of Node.js.
Previously, Node.js was using a symlink, %{_libdir}/node_modules, which pointed to a versioned path, e.g., %{_libdir}/node_modules_22.
This has changed to using a global %{_libdir}/node_modules static shared folder for generic modules and %{_libdir}/node_modules_XX for version-specific modules.
This change is better described in the Fedora change proposal wiki: https://fedoraproject.org/wiki/Changes/NodejsNodeModulesPath.
This also needed to be reflected in nodejs-packaging macros, which forces a rebuild of dependent packages.
Adjust test-runner to treat failures from parallel test-suite differently and rerun them after all other test have been runned, to prevent race-condition failures
- Use correct form of %node_evr in place of non-existent %nodejs_evr
- Utilize %nodejs_subpackage_release during definition of the version
macros, then rely on %<name>_release everywhere.
[skip changelog]
Resolves: FC-1926
Fixes: rhbz#2387562
Extend existing shebang fixes to cover all npm nested modules and
shell scripts that call 'node' as a command. This prevents failures
when scripts try to call /usr/bin/node which is not shipped, instead
redirecting them to the versioned /usr/bin/node-24 binary.
Fixes include:
- All JavaScript/TypeScript files with node shebangs in npm nested modules
- Shell scripts like node-gyp that call 'node' as a command