Bug 1637922

Summary: Conflict when installing alongside stock NodeJS 6 on EL7
Product: Red Hat Software Collections Reporter: Assen Totin <assen>
Component: rh-nodejs8Assignee: Jan Staněk <jstanek>
Status: CLOSED EOL QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: rh-nodejs8CC: chaz, jstanek, karel.klic, robin.edser
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-01 15:51:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Assen Totin 2018-10-10 10:46:07 UTC
Description of problem:
Installing alongside existing stock NodeJS 6 from EL7 is impossible due to packaging conflict.

Version-Release number of selected component (if applicable):
rh-nodejs8-nodejs-8.9.4-2.el7.x86_64

How reproducible:
Every time

Steps to Reproduce:
1. Install RHEL7.
2. Install stock nodejs version 6
3. Attempt to install rh-nodejs8 from SCL alongside.

Actual results:
Transaction check error:
  file /usr/lib/rpm/nodejs_native.req from install of rh-nodejs8-nodejs-8.9.4-2.el7.x86_64 conflicts with file from package nodejs-1:6.14.3-1.el7.x86_64

Expected results:
Packages from SCL should be able to install alongside their stock counterparts from the main distribution.

Additional info:
Not sure why the conflicting file is needed at all (just a two-liner which can probably be defined in the spec?)

Setting priority to high as this breaks any possible upgrade of NodeJS to version 8 via SCL and also breaks the creation of multi-version NodeJS servers.

Comment 1 Jan Staněk 2018-10-24 10:18:38 UTC
The conflicting file is part of an RPM dependency generator, and as such unfortunately cannot be set in spec file.

The apparent purpose of this generator is to add versioned dependencies on ABI of nodejs and v8 used in the collection.

However, currently this works only on the non-SCL version of nodejs, since the generator does not take into account the changes in paths associated with SCL (in other words, it does not look into /opt/… prefix).

Adapting the generator to a) not conflict and b) take into account SCL paths is not trivial.
What is more, there is no easy way to test the generator correctness, since there is no package in the SCL that this generator should (!) apply to.

The easiest (and potentially also wrong) way to resolve this issue would be to drop the generator from the collection – since it could not work until now, nothing will broke.
Of course, that will mean keeping this change in mind and manually "apply" the generator in case a relevant package will be added in the future.

Comment 2 Jan Staněk 2018-11-01 12:56:47 UTC
As it turns out, the other collections (rh-nodejs6 for example [1]) already drop this generator, and rh-nodejs8 ships it by mistake.

[1]: http://pkgs.devel.redhat.com/cgit/rpms/nodejs/tree/nodejs.spec?h=rhscl-3.2-rh-nodejs6-rhel-7#n215

Comment 6 Joe Orton 2019-10-25 11:34:58 UTC
Red Hat does not currently plan to provide any further changes to this collection in a Red Hat Software Collections update release.

This software collection is nearing the retirement date (October 2019) after which customers are encouraged to upgrade to a later release.

Please contact Red Hat Support if you have further questions, or refer to the support lifecycle page for more information. https://access.redhat.com/support/policy/updates/rhscl/

Comment 7 Joe Orton 2019-11-01 15:51:25 UTC
In accordance with the Red Hat Software Collections Product Life Cycle, the support period for this collection has ended.

New bug fix, enhancement, and security errata updates, as well as technical support services will no longer be made available for this collection.

Customers are encouraged to upgrade to a later release.

Please contact Red Hat Support if you have further questions, or refer to the support lifecycle page for more information. https://access.redhat.com/support/policy/updates/rhscl/