-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
CentOS Stream 10, rhel-10.0
-
None
-
None
-
None
-
1
-
rhel-pt-ruby-nodejs
-
2
-
False
-
False
-
-
None
-
PT Ruby Node.js S18
-
None
-
None
-
Unspecified
-
Unspecified
-
Unspecified
-
None
What were you trying to do that didn't work?
I used a spec file that worked on EL 9 and tried to build it on EL 10.
What is the impact of this issue to you?
I need to add an addition BuildRequires statement in all my spec files.
Please provide the package NVR for which the bug is seen:
# rpm -qv nodejs-packaging nodejs-packaging-2023.10-12.el10.noarch
How reproducible is this bug?:
Always
Steps to reproduce
- Take a random spec file like https://github.com/theforeman/foreman-packaging/blob/rpm/develop/packages/foreman/nodejs-novnc-novnc/nodejs-novnc-novnc.spec that only has a BuildRequires on nodejs-packaging
- Build this on EL10 using mock
Expected results
$ rpm -ql nodejs-novnc-novnc-1.3.0-1.el9.noarch.rpm
warning: nodejs-novnc-novnc-1.3.0-1.el9.noarch.rpm: Header OpenPGP V4 RSA/SHA256 signature, key ID 9ccefc769c0a721f: NOKEY
/usr/lib/node_modules/@novnc/novnc
/usr/lib/node_modules/@novnc/novnc/core
/usr/lib/node_modules/@novnc/novnc/core/base64.js
[ ... ] cut for brevity
/usr/lib/node_modules/@novnc/novnc/vendor/pako/lib/zlib/zstream.js
/usr/share/doc/nodejs-novnc-novnc
/usr/share/doc/nodejs-novnc-novnc/AUTHORS
/usr/share/doc/nodejs-novnc-novnc/README.md
/usr/share/doc/nodejs-novnc-novnc/docs
/usr/share/doc/nodejs-novnc-novnc/docs/API.md
/usr/share/doc/nodejs-novnc-novnc/docs/LIBRARY.md
/usr/share/doc/nodejs-novnc-novnc/docs/LICENSE.BSD-2-Clause
/usr/share/doc/nodejs-novnc-novnc/docs/LICENSE.BSD-3-Clause
/usr/share/doc/nodejs-novnc-novnc/docs/LICENSE.MPL-2.0
/usr/share/doc/nodejs-novnc-novnc/docs/LICENSE.OFL-1.1
/usr/share/licenses/nodejs-novnc-novnc
/usr/share/licenses/nodejs-novnc-novnc/LICENSE.txt
Actual results
$ rpm -ql nodejs-novnc-novnc-1.3.0-1.el10.noarch.rpm
warning: nodejs-novnc-novnc-1.3.0-1.el10.noarch.rpm: Header OpenPGP V4 RSA/SHA256 signature, key ID 9ccefc769c0a721f: NOKEY
/usr/lib/node_modules_/@novnc/novnc
/usr/lib/node_modules_/@novnc/novnc/core
/usr/lib/node_modules_/@novnc/novnc/core/base64.js
[ ... ] cut for brevity
/usr/lib/node_modules_/@novnc/novnc/vendor/pako/lib/zlib/zstream.js
/usr/share/doc/nodejs-novnc-novnc
/usr/share/doc/nodejs-novnc-novnc/AUTHORS
/usr/share/doc/nodejs-novnc-novnc/README.md
/usr/share/doc/nodejs-novnc-novnc/docs
/usr/share/doc/nodejs-novnc-novnc/docs/API.md
/usr/share/doc/nodejs-novnc-novnc/docs/LIBRARY.md
/usr/share/doc/nodejs-novnc-novnc/docs/LICENSE.BSD-2-Clause
/usr/share/doc/nodejs-novnc-novnc/docs/LICENSE.BSD-3-Clause
/usr/share/doc/nodejs-novnc-novnc/docs/LICENSE.MPL-2.0
/usr/share/doc/nodejs-novnc-novnc/docs/LICENSE.OFL-1.1
/usr/share/licenses/nodejs-novnc-novnc
/usr/share/licenses/nodejs-novnc-novnc/LICENSE.txt
Note how it stores files in /usr/lib/node_modules_. This is because in /usr/lib/rpm/macros.d/macros.nodejs we see the following code:
# nodejs binary
%__nodejs %{_bindir}/node
# currently installed nodejs version
%nodejs_version %(%{__nodejs} -v | sed s/v//)
%_nodejs_major_version %(echo %{nodejs_version} | sed 's#^\\([0-9]\\+\\).*#\\1#')
# nodejs library directory
%nodejs_sitelib %{_prefix}/lib/node_modules_%{_nodejs_major_version}
However, nodejs-packaging doesn't depend on /usr/bin/node so %_nodejs_major_version ends up being empty.
As a workaround I can add BuildRequires: /usr/bin/node but this feels like something that nodejs-packaging should take care of.