Bug 1382857

Summary: Migration from nodejs 0.10 to 6.7 has broken some dependencies of nodejs epel packages that rely on nodejs 0.10
Product: [Fedora] Fedora EPEL Reporter: Michael Ward <helpdesk>
Component: nodejsAssignee: NodeJS Packaging SIG <nodejs-sig>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: iana, jamielinux, mrunge, nodejs-sig, sgallagh, tchollingsworth, thrcka, zsvetlik
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-07-30 11:38:11 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:

Description Michael Ward 2016-10-07 21:54:03 UTC
Description of problem:

The latest migration in epel7 of nodejs from 0.10 to 6.7 has resulted in being unable to run "yum update" because some packages (also from epel7) dependent on nodejs "require" 0.10 and will not accept the new 6.7 version.

Version-Release number of selected component (if applicable):

This list may not be comprehensive, but it is the list of dependencies that are affected for us.  That is, these packages seemingly did not receive updates and are still expecting nodejs 0.10:

nodejs-node-stringprep-0.2.3-5.el7.x86_64
nodejs-pg-0.12.3-2.el7.x86_64
nodejs-node-expat-2.1.4-5.el7.x86_64
nodejs-i2c-0.1.4-9.el7.x86_64
nodejs-bson-0.2.9-1.el7.x86_64
nodejs-pg-0.12.3-2.el7.x86_64
nodejs-libxmljs-0.9.0-1.el7.x86_64

How reproducible:

Always; confirmed at least one other user in the #epel IRC chat with the same issue.

Steps to Reproduce:

1. yum clean all
2. yum update nodejs

Actual results:

--> Running transaction check
---> Package nodejs.x86_64 0:0.10.46-1.el7 will be updated
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-node-stringprep-0.2.3-5.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-node-expat-2.1.4-5.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-i2c-0.1.4-9.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-pg-0.12.3-2.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-bson-0.2.9-1.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-libxmljs-0.9.0-1.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-node-stringprep-0.2.3-5.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-node-expat-2.1.4-5.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-i2c-0.1.4-9.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-pg-0.12.3-2.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-bson-0.2.9-1.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-libxmljs-0.9.0-1.el7.x86_64
--> Processing Dependency: nodejs(x86-64) = 0.10.46-1.el7 for package: nodejs-devel-0.10.46-1.el7.x86_64
---> Package nodejs.x86_64 1:6.7.0-107.el7 will be an update
--> Processing Dependency: npm = 1:3.10.3-107.el7 for package: 1:nodejs-6.7.0-107.el7.x86_64
--> Processing Dependency: libuv >= 1:1.9.1 for package: 1:nodejs-6.7.0-107.el7.x86_64
--> Processing Dependency: libuv.so.1()(64bit) for package: 1:nodejs-6.7.0-107.el7.x86_64
--> Running transaction check
---> Package libuv.x86_64 1:0.10.34-2.el7 will be updated
--> Processing Dependency: libuv(x86-64) = 1:0.10.34-2.el7 for package: 1:libuv-devel-0.10.34-2.el7.x86_64
--> Processing Dependency: libuv.so.0.10()(64bit) for package: 1:libuv-devel-0.10.34-2.el7.x86_64
---> Package libuv.x86_64 1:1.9.1-1.el7 will be an update
---> Package nodejs.x86_64 0:0.10.46-1.el7 will be updated
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-node-stringprep-0.2.3-5.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-node-expat-2.1.4-5.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-i2c-0.1.4-9.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-pg-0.12.3-2.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-bson-0.2.9-1.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-libxmljs-0.9.0-1.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-node-stringprep-0.2.3-5.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-node-expat-2.1.4-5.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-i2c-0.1.4-9.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-pg-0.12.3-2.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-bson-0.2.9-1.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-libxmljs-0.9.0-1.el7.x86_64
---> Package nodejs-devel.x86_64 0:0.10.46-1.el7 will be updated
---> Package nodejs-devel.x86_64 1:6.7.0-107.el7 will be an update
---> Package npm.noarch 0:1.3.6-5.el7 will be updated
---> Package npm.noarch 0:1.3.6-5.el7 will be obsoleted
---> Package npm.x86_64 1:3.10.3-107.el7 will be obsoleting
--> Running transaction check
---> Package libuv-devel.x86_64 1:0.10.34-2.el7 will be updated
---> Package libuv-devel.x86_64 1:1.9.1-1.el7 will be an update
---> Package nodejs.x86_64 0:0.10.46-1.el7 will be updated
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-node-stringprep-0.2.3-5.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-node-expat-2.1.4-5.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-i2c-0.1.4-9.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-pg-0.12.3-2.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-bson-0.2.9-1.el7.x86_64
--> Processing Dependency: nodejs(abi) = 0.10 for package: nodejs-libxmljs-0.9.0-1.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-node-stringprep-0.2.3-5.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-node-expat-2.1.4-5.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-i2c-0.1.4-9.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-pg-0.12.3-2.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-bson-0.2.9-1.el7.x86_64
--> Processing Dependency: nodejs(v8-abi) = 3.14 for package: nodejs-libxmljs-0.9.0-1.el7.x86_64
--> Finished Dependency Resolution
Error: Package: nodejs-bson-0.2.9-1.el7.x86_64 (@epel)
           Requires: nodejs(abi) = 0.10
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(abi) = 0.10
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(abi) = 6.7
Error: Package: nodejs-libxmljs-0.9.0-1.el7.x86_64 (@epel)
           Requires: nodejs(abi) = 0.10
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(abi) = 0.10
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(abi) = 6.7
Error: Package: nodejs-node-stringprep-0.2.3-5.el7.x86_64 (@epel)
           Requires: nodejs(v8-abi) = 3.14
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(v8-abi) = 3.14
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(v8-abi) = 5.1
Error: Package: nodejs-i2c-0.1.4-9.el7.x86_64 (@epel)
           Requires: nodejs(abi) = 0.10
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(abi) = 0.10
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(abi) = 6.7
Error: Package: nodejs-libxmljs-0.9.0-1.el7.x86_64 (@epel)
           Requires: nodejs(v8-abi) = 3.14
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(v8-abi) = 3.14
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(v8-abi) = 5.1
Error: Package: nodejs-pg-0.12.3-2.el7.x86_64 (@epel)
           Requires: nodejs(abi) = 0.10
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(abi) = 0.10
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(abi) = 6.7
Error: Package: nodejs-bson-0.2.9-1.el7.x86_64 (@epel)
           Requires: nodejs(v8-abi) = 3.14
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(v8-abi) = 3.14
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(v8-abi) = 5.1
Error: Package: nodejs-i2c-0.1.4-9.el7.x86_64 (@epel)
           Requires: nodejs(v8-abi) = 3.14
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(v8-abi) = 3.14
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(v8-abi) = 5.1
Error: Package: nodejs-node-expat-2.1.4-5.el7.x86_64 (@epel)
           Requires: nodejs(abi) = 0.10
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(abi) = 0.10
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(abi) = 6.7
Error: Package: nodejs-node-expat-2.1.4-5.el7.x86_64 (@epel)
           Requires: nodejs(v8-abi) = 3.14
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(v8-abi) = 3.14
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(v8-abi) = 5.1
Error: Package: nodejs-pg-0.12.3-2.el7.x86_64 (@epel)
           Requires: nodejs(v8-abi) = 3.14
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(v8-abi) = 3.14
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(v8-abi) = 5.1
Error: Package: nodejs-node-stringprep-0.2.3-5.el7.x86_64 (@epel)
           Requires: nodejs(abi) = 0.10
           Removing: nodejs-0.10.46-1.el7.x86_64 (@epel)
               nodejs(abi) = 0.10
           Updated By: 1:nodejs-6.7.0-107.el7.x86_64 (epel)
               nodejs(abi) = 6.7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Expected results:

"yum update" to succeed

Comment 1 Piotr Popieluch 2016-10-08 18:05:50 UTC
Repoclosure reports two more broken deps:

$ repoclosure -r epel -r extras -r centosplus -r base -r epel-testing | grep 'package: nodejs-'

package: nodejs-bson-0.2.9-1.el7.x86_64 from epel
package: nodejs-follow-0.11.4-2.el7.noarch from epel
package: nodejs-fs-ext-0.4.2-2.el7.x86_64 from epel
package: nodejs-i2c-0.1.4-9.el7.x86_64 from epel
package: nodejs-libxmljs-0.9.0-1.el7.x86_64 from epel
package: nodejs-node-expat-2.1.4-5.el7.x86_64 from epel
package: nodejs-node-stringprep-0.2.3-5.el7.x86_64 from epel
package: nodejs-pg-0.12.3-2.el7.x86_64 from epel


We will need to check package by package what we can do.