[Pkg-javascript-devel] Bug#987301: nodejs: please add Breaks: node-babel-runtime (<< 7)

Andreas Beckmann anbe at debian.org
Wed Apr 21 09:23:01 BST 2021


Package: nodejs
Version: 12.21.0~dfsg-3
Severity: serious
Tags: patch
User: debian-qa at lists.debian.org
Usertags: piuparts

Hi,

during a test with piuparts I noticed apt failing to find an upgrade
path from 'buster' in some cases with node* packages involved.

>From the attached log (scroll to the bottom...):

  Starting 2 pkgProblemResolver with broken count: 3
  Investigating (0) libnode72:amd64 < none -> 12.21.0~dfsg-3 @un uN Ib >
  Broken libnode72:amd64 Breaks on libnode64:amd64 < 10.24.0~dfsg-1~deb10u1 @ii mK >
    Considering libnode64:amd64 -3 as a solution to libnode72:amd64 241
    Added libnode64:amd64 to the remove list
    Fixing libnode72:amd64 via remove of libnode64:amd64
  Investigating (0) node-core-js:amd64 < 2.4.1-2 -> 3.8.2-2 @ii ugU Ib >
  Broken node-core-js:amd64 Breaks on node-babel-runtime:amd64 < 6.26.0+dfsg-3 @ii gK > (< 6.26.0+repack-1)
    Considering node-babel-runtime:amd64 7 as a solution to node-core-js:amd64 6
    Holding Back node-core-js:amd64 rather than change node-babel-runtime:amd64
  Investigating (0) node-babel7:amd64 < none -> 7.12.12+~cs150.141.84-6 @un uN Ib >
  Broken node-babel7:amd64 Depends on node-core-js:amd64 < 2.4.1-2 | 3.8.2-2 @ii ugH > (>= 3.1.1~)
    Considering node-core-js:amd64 6 as a solution to node-babel7:amd64 -1
    Holding Back node-babel7:amd64 rather than change node-core-js:amd64
   Try to Re-Instate (1) node-core-js:amd64
  Investigating (1) node-parse-json:amd64 < none -> 5.1.0+~cs5.1.6-2 @un uN Ib >
  Broken node-parse-json:amd64 Depends on node-babel-code-frame:amd64 < 6.26.0+dfsg-3 @ii gK > (>= 7)
    Considering node-babel7:amd64 -1 as a solution to node-parse-json:amd64 1
    Holding Back node-parse-json:amd64 rather than change node-babel-code-frame:amd64
  Investigating (2) gulp:amd64 < 3.9.1-7 -> 4.0.2-8 @ii umU Ib >
  Broken gulp:amd64 Depends on node-parse-json:amd64 < none | 5.1.0+~cs5.1.6-2 @un uH >
    Considering node-parse-json:amd64 1 as a solution to gulp:amd64 1
    Holding Back gulp:amd64 rather than change node-parse-json:amd64
  Investigating (3) node-vinyl-fs:amd64 < 2.4.4-1 -> 3.0.3-5 @ii umU Ib >
  Broken node-vinyl-fs:amd64 Breaks on gulp:amd64 < 3.9.1-7 | 4.0.2-8 @ii umH > (< 4.0~)
    Considering gulp:amd64 1 as a solution to node-vinyl-fs:amd64 2
    Upgrading gulp:amd64 due to Breaks field in node-vinyl-fs:amd64
  Investigating (3) gulp:amd64 < 3.9.1-7 -> 4.0.2-8 @ii umU Ib >
  Broken gulp:amd64 Depends on node-parse-json:amd64 < none | 5.1.0+~cs5.1.6-2 @un uH >
    Considering node-parse-json:amd64 1 as a solution to gulp:amd64 1
    Holding Back gulp:amd64 rather than change node-parse-json:amd64
  Investigating (4) node-vinyl-fs:amd64 < 2.4.4-1 -> 3.0.3-5 @ii umU Ib >
  Broken node-vinyl-fs:amd64 Breaks on gulp:amd64 < 3.9.1-7 | 4.0.2-8 @ii umH > (< 4.0~)
    Considering gulp:amd64 1 as a solution to node-vinyl-fs:amd64 2
    Upgrading gulp:amd64 due to Breaks field in node-vinyl-fs:amd64
  Investigating (4) gulp:amd64 < 3.9.1-7 -> 4.0.2-8 @ii umU Ib >
  Broken gulp:amd64 Depends on node-parse-json:amd64 < none | 5.1.0+~cs5.1.6-2 @un uH >
    Considering node-parse-json:amd64 1 as a solution to gulp:amd64 1
    Holding Back gulp:amd64 rather than change node-parse-json:amd64
  Investigating (5) node-vinyl-fs:amd64 < 2.4.4-1 -> 3.0.3-5 @ii umU Ib >
  Broken node-vinyl-fs:amd64 Breaks on gulp:amd64 < 3.9.1-7 | 4.0.2-8 @ii umH > (< 4.0~)
    Considering gulp:amd64 1 as a solution to node-vinyl-fs:amd64 2
    Upgrading gulp:amd64 due to Breaks field in node-vinyl-fs:amd64
  Investigating (5) gulp:amd64 < 3.9.1-7 -> 4.0.2-8 @ii umU Ib >
  Broken gulp:amd64 Depends on node-parse-json:amd64 < none | 5.1.0+~cs5.1.6-2 @un uH >
    Considering node-parse-json:amd64 1 as a solution to gulp:amd64 1
    Holding Back gulp:amd64 rather than change node-parse-json:amd64
  Investigating (6) node-vinyl-fs:amd64 < 2.4.4-1 -> 3.0.3-5 @ii umU Ib >
  Broken node-vinyl-fs:amd64 Breaks on gulp:amd64 < 3.9.1-7 | 4.0.2-8 @ii umH > (< 4.0~)
    Considering gulp:amd64 1 as a solution to node-vinyl-fs:amd64 2
    Upgrading gulp:amd64 due to Breaks field in node-vinyl-fs:amd64
  Investigating (6) gulp:amd64 < 3.9.1-7 -> 4.0.2-8 @ii umU Ib >
  Broken gulp:amd64 Depends on node-parse-json:amd64 < none | 5.1.0+~cs5.1.6-2 @un uH >
    Considering node-parse-json:amd64 1 as a solution to gulp:amd64 1
    Holding Back gulp:amd64 rather than change node-parse-json:amd64
  Investigating (7) node-vinyl-fs:amd64 < 2.4.4-1 -> 3.0.3-5 @ii umU Ib >
  Broken node-vinyl-fs:amd64 Breaks on gulp:amd64 < 3.9.1-7 | 4.0.2-8 @ii umH > (< 4.0~)
    Considering gulp:amd64 1 as a solution to node-vinyl-fs:amd64 2
    Upgrading gulp:amd64 due to Breaks field in node-vinyl-fs:amd64
  Investigating (7) gulp:amd64 < 3.9.1-7 -> 4.0.2-8 @ii umU Ib >
  Broken gulp:amd64 Depends on node-parse-json:amd64 < none | 5.1.0+~cs5.1.6-2 @un uH >
    Considering node-parse-json:amd64 1 as a solution to gulp:amd64 1
    Holding Back gulp:amd64 rather than change node-parse-json:amd64
  Investigating (8) node-vinyl-fs:amd64 < 2.4.4-1 -> 3.0.3-5 @ii umU Ib >
  Broken node-vinyl-fs:amd64 Breaks on gulp:amd64 < 3.9.1-7 | 4.0.2-8 @ii umH > (< 4.0~)
    Considering gulp:amd64 1 as a solution to node-vinyl-fs:amd64 2
    Upgrading gulp:amd64 due to Breaks field in node-vinyl-fs:amd64
  Investigating (8) gulp:amd64 < 3.9.1-7 -> 4.0.2-8 @ii umU Ib >
  Broken gulp:amd64 Depends on node-parse-json:amd64 < none | 5.1.0+~cs5.1.6-2 @un uH >
    Considering node-parse-json:amd64 1 as a solution to gulp:amd64 1
    Holding Back gulp:amd64 rather than change node-parse-json:amd64
  Investigating (9) node-vinyl-fs:amd64 < 2.4.4-1 -> 3.0.3-5 @ii umU Ib >
  Broken node-vinyl-fs:amd64 Breaks on gulp:amd64 < 3.9.1-7 | 4.0.2-8 @ii umH > (< 4.0~)
    Considering gulp:amd64 1 as a solution to node-vinyl-fs:amd64 2
    Upgrading gulp:amd64 due to Breaks field in node-vinyl-fs:amd64
  Investigating (9) gulp:amd64 < 3.9.1-7 -> 4.0.2-8 @ii umU Ib >
  Broken gulp:amd64 Depends on node-parse-json:amd64 < none | 5.1.0+~cs5.1.6-2 @un uH >
    Considering node-parse-json:amd64 1 as a solution to gulp:amd64 1
    Holding Back gulp:amd64 rather than change node-parse-json:amd64
  Done
  
  Some packages could not be installed. This may mean that you have
  requested an impossible situation or if you are using the unstable
  distribution that some required packages have not yet been created
  or been moved out of Incoming.
  The following information may help to resolve the situation:
  
  The following packages have unmet dependencies:
   node-vinyl-fs : Breaks: gulp (< 4.0~) but 3.9.1-7 is to be installed
  E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.


During this upgrade node-babel-runtime needs to be removed, but apt
assigns a high enough score to it s.t. it tries to keep it installed.
This is probably related to the fact that node-babel-runtime is a
pure virtual package in bullseye.
This can be fixed by adding a Breaks: node-babel-runtime (<< 7) to
nodejs. I didn't see another package in the dependency chain that
would be better fitting *and* get a sufficiently high score by apt.

With the patched nodejs, this will be resolved as

  Starting 2 pkgProblemResolver with broken count: 4
  Investigating (0) nodejs:amd64 < 10.24.0~dfsg-1~deb10u1 -> 12.21.0~dfsg-3+deb11anbe1 @ii umU Ib >
  Broken nodejs:amd64 Breaks on node-babel-runtime:amd64 < 6.26.0+dfsg-3 @ii gK > (< 7)
    Considering node-babel-runtime:amd64 6 as a solution to nodejs:amd64 537
    Added node-babel-runtime:amd64 to the remove list
    Fixing nodejs:amd64 via remove of node-babel-runtime:amd64
  Investigating (0) libnode72:amd64 < none -> 12.21.0~dfsg-3+deb11anbe1 @un uN Ib >
  Broken libnode72:amd64 Breaks on libnode64:amd64 < 10.24.0~dfsg-1~deb10u1 @ii mK >
    Considering libnode64:amd64 -3 as a solution to libnode72:amd64 241
    Added libnode64:amd64 to the remove list
    Fixing libnode72:amd64 via remove of libnode64:amd64
  Investigating (0) node-babel7:amd64 < none -> 7.12.12+~cs150.141.84-6 @un uN Ib >
  Broken node-babel7:amd64 Breaks on node-babel-core:amd64 < 6.26.0+dfsg-3 @ii gK > (< 6.26.0+repack-3~)
    Considering node-babel-core:amd64 -3 as a solution to node-babel7:amd64 -1
    Added node-babel-core:amd64 to the remove list
    Fixing node-babel7:amd64 via remove of node-babel-core:amd64
  Done
  
  The following packages were automatically installed and are no longer required:
    [...]
  Use 'sudo apt autoremove' to remove them.
  The following packages will be REMOVED:
    libnode64 node-babel-core node-babel-runtime
  The following NEW packages will be installed:
    [...]


I'm attaching both failing and successful upgrade logs from
node-gulp-babel (which is not the only package showing this problem)
as well a a patch for nodejs.


cheers,

Andreas
-------------- next part --------------
diff -Nru nodejs-12.21.0~dfsg/debian/changelog nodejs-12.21.0~dfsg/debian/changelog
--- nodejs-12.21.0~dfsg/debian/changelog	2021-03-19 18:43:52.000000000 +0100
+++ nodejs-12.21.0~dfsg/debian/changelog	2021-04-21 09:21:25.000000000 +0200
@@ -1,3 +1,10 @@
+nodejs (12.21.0~dfsg-4) UNRELEASED; urgency=medium
+
+  * nodejs: Add Breaks: node-babel-runtime (<< 7) for smoother upgrades from
+    buster.  (Closes: #-1)
+
+ -- Andreas Beckmann <anbe at debian.org>  Wed, 21 Apr 2021 09:21:25 +0200
+
 nodejs (12.21.0~dfsg-3) unstable; urgency=medium
 
   * Upstream patch fix test-worker-prof (Closes: #985550)
diff -Nru nodejs-12.21.0~dfsg/debian/control nodejs-12.21.0~dfsg/debian/control
--- nodejs-12.21.0~dfsg/debian/control	2021-02-23 19:22:31.000000000 +0100
+++ nodejs-12.21.0~dfsg/debian/control	2021-04-21 09:21:23.000000000 +0200
@@ -69,7 +69,7 @@
 Suggests: npm
 Replaces: nodejs-legacy
 Conflicts: nodejs-legacy
-Breaks: node-typescript-types (<< 20210110~)
+Breaks: node-typescript-types (<< 20210110~), node-babel-runtime (<< 7)
 Provides: node-types-node (= ${types:Node})
 Description: evented I/O for V8 javascript - runtime executable
  Node.js is a platform built on Chrome's JavaScript runtime for easily
-------------- next part --------------
A non-text attachment was scrubbed...
Name: node-gulp-babel.fail.log.gz
Type: application/gzip
Size: 53932 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-javascript-devel/attachments/20210421/1b853ac2/attachment.gz>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: node-gulp-babel.pass.log.gz
Type: application/gzip
Size: 90151 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-javascript-devel/attachments/20210421/1b853ac2/attachment-0001.gz>


More information about the Pkg-javascript-devel mailing list