Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-137712

nodejs-packaging doesn't require nodejs but does depend on it

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • CentOS Stream 10, rhel-10.0
    • nodejs-packaging
    • None
    • None
    • None
    • 1
    • rhel-pt-ruby-nodejs
    • 2
    • False
    • False
    • Hide

      None

      Show
      None
    • 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

      1. 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
      2. 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.

              jstanek@redhat.com Jan Stanek
              ekohlvan@redhat.com Ewoud Kohl van Wijngaarden
              nodejs-maint nodejs-maint
              rhel-nodejs-qe bot rhel-nodejs-qe bot
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: