Control: reassign -1 apt

Le 20/03/2026 à 08:06, Paul Gevers a écrit :
Hi Yadd,

On 3/20/26 07:23, Yadd wrote:
Some packages have one of:

   Breaks: node-rollup-plugin-terser (<< 7.0.2+~5.0.1-3~)
   Breaks: node-rollup-plugin-terser (<< 7.0.2-6~)

And dpkg has no problem to compare those versions:

   $ rmadison node-rollup-plugin-terser
   node-rollup-plugin-terser | 7.0.2-5          | oldoldstable    | source, all    node-rollup-plugin-terser | 7.0.2+~5.0.1-8   | oldstable       | source, all    node-rollup-plugin-terser | 7.0.2+~5.0.1-8   | stable          | source, all    node-rollup-plugin-terser | 7.0.2+~5.0.1-9   | testing         | source, all    node-rollup-plugin-terser | 7.0.2+~cs8.6.4-1 | buildd-unstable | source, all    node-rollup-plugin-terser | 7.0.2+~cs8.6.4-1 | unstable        | source, all

   $ dpkg --compare-versions 7.0.2+~cs8.6.4-1 gt 7.0.2+~5.0.1-9 && echo OK
   OK

   $ dpkg --compare-versions 7.0.2+~cs8.6.4-1 gt 7.0.2-6 && echo OK
   OK

Did you see
https://piuparts.debian.org/sid/fail/node-rollup-plugin- terser_7.0.2+~cs8.6.4-1.log

autopkgtest just uses apt to install packages, so I don't believe this is a bug in autopkgtest.

Paul

Hi Paul,

thank you. I wrote a little test for apt but it doesn't reproduce the problem. The log you pointed is interesting and shows the problem:


0m7.4s DEBUG: Starting command: ['chroot', '/srv/piuparts.debian.org/tmp/tmp0me7djf2', 'apt-cache', 'policy']
0m8.1s DUMP:
  Package files:
   100 /var/lib/dpkg/status
       release a=now
   500 http://deb.debian.org/debian sid/main amd64 Packages
       release o=Debian,a=unstable,n=sid,l=Debian,c=main,b=amd64
       origin deb.debian.org
  Pinned packages:
0m8.1s DEBUG: Command ok: ['chroot', '/srv/piuparts.debian.org/tmp/tmp0me7djf2', 'apt-cache', 'policy'] 0m8.1s DEBUG: Starting command: ['chroot', '/srv/piuparts.debian.org/tmp/tmp0me7djf2', 'apt-cache', 'policy', 'node-rollup-plugin-terser']
0m8.1s DUMP:
  node-rollup-plugin-terser:
    Installed: (none)
    Candidate: 7.0.2+~cs8.6.4-1
    Version table:
       7.0.2+~cs8.6.4-1 500
          500 http://deb.debian.org/debian sid/main amd64 Packages
0m8.1s DEBUG: Command ok: ['chroot', '/srv/piuparts.debian.org/tmp/tmp0me7djf2', 'apt-cache', 'policy', 'node-rollup-plugin-terser'] 0m8.1s DEBUG: Starting command: ['chroot', '/srv/piuparts.debian.org/tmp/tmp0me7djf2', 'apt-get', '-y', 'install', 'node-rollup-plugin-terser=7.0.2+~cs8.6.4-1']
0m8.5s DUMP:
  Reading package lists...
  Building dependency tree...
  Reading state information...
  Solving dependencies...
  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-rollup-plugin-terser : Depends: node-babel-code-frame (>= 7)
                               Depends: node-babel-parser (>= 7)
Depends: node-jest-worker (>= 27~) but it is not going to be installed Depends: node-serialize-javascript but it is not going to be installed Depends: node-terser (>= 5) but it is not going to be installed
                               Depends: nodejs:any
  E: Unable to satisfy dependencies. Reached two conflicting assignments:
1. node-rollup-plugin-terser:amd64=7.0.2+~cs8.6.4-1 is selected for install
     2. node-rollup-plugin-terser:amd64 Depends node-jest-worker (>= 27~)
        but none of the choices are installable:
        - node-jest-worker:amd64 is not selected for install because:
1. node-rollup-plugin-terser:amd64=7.0.2+~cs8.6.4-1 is selected for install 2. node-jest-worker:amd64 Breaks node-rollup-plugin-terser (< 7.0.2-6~) 0m8.5s ERROR: Command failed (status=100): ['chroot', '/srv/piuparts.debian.org/tmp/tmp0me7djf2', 'apt-get', '-y', 'install', 'node-rollup-plugin-terser=7.0.2+~cs8.6.4-1']
  Reading package lists...
  Building dependency tree...
  Reading state information...
  Solving dependencies...
  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-rollup-plugin-terser : Depends: node-babel-code-frame (>= 7)
                               Depends: node-babel-parser (>= 7)
Depends: node-jest-worker (>= 27~) but it is not going to be installed Depends: node-serialize-javascript but it is not going to be installed Depends: node-terser (>= 5) but it is not going to be installed
                               Depends: nodejs:any
  E: Unable to satisfy dependencies. Reached two conflicting assignments:
1. node-rollup-plugin-terser:amd64=7.0.2+~cs8.6.4-1 is selected for install
     2. node-rollup-plugin-terser:amd64 Depends node-jest-worker (>= 27~)
        but none of the choices are installable:
        - node-jest-worker:amd64 is not selected for install because:
1. node-rollup-plugin-terser:amd64=7.0.2+~cs8.6.4-1 is selected for install 2. node-jest-worker:amd64 Breaks node-rollup-plugin-terser (< 7.0.2-6~)
#!/bin/sh
set -e

# Test that Breaks with version containing +~ is correctly handled.
# dpkg considers 7.0.2+~cs8.6.4-1 > 7.0.2-6, so a Breaks on (<< 7.0.2-6~)
# should NOT prevent installation of 7.0.2+~cs8.6.4-1.
#
# Regression test for piuparts failure where apt refused to install
# node-rollup-plugin-terser=7.0.2+~cs8.6.4-1 because it thought
# node-jest-worker's Breaks (<< 7.0.2-6~) applied to that version.

TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
configarchitecture 'amd64'

msgmsg "Fresh install: +~ version should not be broken by Breaks clause"
insertpackage 'unstable' 'node-rollup-plugin-terser' 'all' '7.0.2+~cs8.6.4-1' 
'Depends: node-jest-worker (>= 27~), node-serialize-javascript, node-terser (>= 
5)'
insertpackage 'unstable' 'node-jest-worker' 'all' '29.7.0+~cs2.0.0-6' 'Breaks: 
node-rollup-plugin-terser (<< 7.0.2-6~)'
insertpackage 'unstable' 'node-serialize-javascript' 'all' '6.0.2-1'
insertpackage 'unstable' 'node-terser' 'all' '5.31.6+~cs5.20.97-1' 'Breaks: 
node-rollup-plugin-terser (<< 7.0.2-6~)'

setupaptarchive

testsuccess aptget install node-rollup-plugin-terser -s
testsuccess aptget install node-rollup-plugin-terser -s --solver 3.0
testsuccess aptget install node-rollup-plugin-terser=7.0.2+~cs8.6.4-1 -s
testsuccess aptget install node-rollup-plugin-terser=7.0.2+~cs8.6.4-1 -s 
--solver 3.0

msgmsg "Piuparts-like: old version installed, install specific +~ version"
insertinstalledpackage 'node-rollup-plugin-terser' 'all' '7.0.2-5' 'Depends: 
node-jest-worker (>= 27~), node-serialize-javascript, node-terser (>= 5)'
insertinstalledpackage 'node-jest-worker' 'all' '29.7.0+~cs2.0.0-5'
insertinstalledpackage 'node-serialize-javascript' 'all' '6.0.1-1'
insertinstalledpackage 'node-terser' 'all' '5.31.5-1'

setupaptarchive

testsuccess aptget install node-rollup-plugin-terser=7.0.2+~cs8.6.4-1 -s
testsuccess aptget install node-rollup-plugin-terser=7.0.2+~cs8.6.4-1 -s 
--solver 3.0

msgmsg "Both old and new versions in repo, upgrade to +~ version"
insertpackage 'unstable' 'node-rollup-plugin-terser' 'all' '7.0.2-5' 'Depends: 
node-jest-worker (>= 27~), node-serialize-javascript, node-terser (>= 5)'

setupaptarchive

testsuccess aptget install node-rollup-plugin-terser=7.0.2+~cs8.6.4-1 -s
testsuccess aptget install node-rollup-plugin-terser=7.0.2+~cs8.6.4-1 -s 
--solver 3.0

msgmsg "Dist-upgrade with +~ version available"
testsuccess aptget dist-upgrade -s
testsuccess aptget dist-upgrade -s --solver 3.0

Reply via email to