diff options
| author | Julian Andres Klode <jak@debian.org> | 2025-10-26 09:14:20 +0100 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2025-10-26 09:31:20 +0100 |
| commit | 22786e32b613518ae3a5cd07e9e2f1419b2c6552 (patch) | |
| tree | 0bc86830902fe57bbe1b9d2b0f23ab5886885adc | |
| parent | 487ce0983c2008991566b4cfb269fd7d29a08e98 (diff) | |
Revert "depcache: Allow changing multi-arch versions for removed siblings"
This reverts commit 74636b64a7ee56637a3ce4ddc1d060ca9f8b77e1.
Adjust the test case accordingly, as it is no longer possible to
install libgcc-s1:s390x. We need to sort this out in the ToDepCache
translation layer at a later time.
Sadly the depcache rejects valid solutions like this; solving this
isn't trivial. Technically we need to split up the FromUser and
auto-bit handling to solve this, but even then, MarkDelete() with
FromUser=0 moves the auto-bit on metapackages; this doesn't happen
when doing FromUser=1, so we can't always do FromUser=1.
Fixes: a3fca052ca21ad222ac7f2fdd7f3fe84b44beb60
| -rw-r--r-- | apt-pkg/depcache.cc | 4 | ||||
| -rwxr-xr-x | test/integration/test-solver3-show-version-selection | 31 |
2 files changed, 11 insertions, 24 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 09d7a93bc..f7f508f85 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1853,10 +1853,6 @@ bool pkgDepCache::IsInstallOkMultiArchSameVersionSynced(PkgIterator const &Pkg, if (CV.Downloadable() == false) continue; - // Ignore siblings marked for deletion - if (PkgState[P->ID].Delete()) - continue; - PkgState[Pkg->ID].iFlags |= AutoKept; if (unlikely(DebugMarker == true)) std::clog << OutputInDepth(Depth) << "Ignore MarkInstall of " << APT::PrettyPkg(this, Pkg) diff --git a/test/integration/test-solver3-show-version-selection b/test/integration/test-solver3-show-version-selection index de81a303f..0de6600af 100755 --- a/test/integration/test-solver3-show-version-selection +++ b/test/integration/test-solver3-show-version-selection @@ -14,26 +14,17 @@ insertpackage 'installed,unstable' 'libgcc-s1' 'amd64' '14.2.0-18' 'Multi-Arch: setupaptarchive -testsuccessequal "Reading package lists... -Building dependency tree... -Solving dependencies... -The following additional packages will be installed: - libc6:s390x libgcc-s1:s390x libgstreamer1.0-dev:s390x -The following packages will be REMOVED: - libgcc-s1 -The following NEW packages will be installed: - libc6:s390x libgcc-s1:s390x libgstreamer1.0-dev:s390x - sbuild-build-depends-main-dummy:s390x -0 upgraded, 4 newly installed, 1 to remove and 0 not upgraded. -Remv libgcc-s1 [14.2.0-18] -Inst libgcc-s1:s390x (14.2.0-17 unstable [s390x]) -Inst libc6:s390x (14.2.0-17 unstable [s390x]) -Inst libgstreamer1.0-dev:s390x (1.25.90-2 unstable [s390x]) -Inst sbuild-build-depends-main-dummy:s390x (0.invalid.0 unstable [s390x]) -Conf libgcc-s1:s390x (14.2.0-17 unstable [s390x]) -Conf libc6:s390x (14.2.0-17 unstable [s390x]) -Conf libgstreamer1.0-dev:s390x (1.25.90-2 unstable [s390x]) -Conf sbuild-build-depends-main-dummy:s390x (0.invalid.0 unstable [s390x])" apt install sbuild-build-depends-main-dummy --solver 3.0 -s +testfailuremsg "E: Unable to satisfy dependencies. Reached two conflicting decisions: + 1. libc6:s390x is selected for install because: + 1. sbuild-build-depends-main-dummy:s390x=0.invalid.0 is selected for install + 2. sbuild-build-depends-main-dummy:s390x Depends libgstreamer1.0-dev:s390x + 3. libgstreamer1.0-dev:s390x Depends libc6:s390x (>= 2.34) + 2. libc6:s390x Depends libgcc-s1:s390x + but none of the choices are installable: + - libgcc-s1:s390x is not selected for install because: + 1. libgcc-s1:amd64 is selected for install + 2. libgcc-s1:amd64 is available in version 14.2.0-18 + 3. libgcc-s1:s390x Breaks libgcc-s1 (!= 14.2.0-17)" apt install sbuild-build-depends-main-dummy --solver 3.0 libgcc-s1 -s testfailuremsg "E: Unable to satisfy dependencies. Reached two conflicting decisions: 1. libc6:s390x is selected for install because: |
