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