On 2024-02-28 17:28:51 +0100, Sven Joachim wrote:
> On 2024-02-28 15:49 +0100, Vincent Lefevre wrote:
> > So, I suppose that this is also the case for aptitude: if aptitude
> > cannot upgrade just because of a rename, then this is a problem in
> > the involved packages.
> 
> No, in this case it is a problem with aptitude's resolver which
> manifests itself due to the following configuration setting:
> 
> > Aptitude::ProblemResolver::SolutionCost "safety, removals";
> 
> This does cause aptitude to hold apt back by default, rather than
> remove libapt-pkg6.0.

The goal of this configuration setting (which was given in the
debian-user list in the past) was to prevent aptitude from removing
packages with no replacement (e.g. firefox, libreoffice, and so on).
Here, the libapt-pkg6.0 package has been renamed. I hope that you
can understand that this is a completely different situation.

> You can press 'n' at the prompt, the next solution aptitude then
> suggests is to upgrade apt.

OK, but it appears that now, there are *many* other packages in
a similar situation, and sometimes, aptitude wants to remove a
potentially important package (see below). The resolution should
be automatic in case of package rename.

# aptitude install libglib2.0-dev
The following packages will be REMOVED:
  libglib2.0-dev-bin{u}
The following packages will be upgraded:
  libglib2.0-data libglib2.0-dev{b}
2 packages upgraded, 0 newly installed, 1 to remove and 61 not upgraded.
Need to get 2865 kB of archives. After unpacking 716 kB will be freed.
The following packages have unmet dependencies:
 libglib2.0-dev : Depends: libglib2.0-0t64 (= 2.78.4-2) but it is not going to 
be installed
                  Depends: libglib2.0-bin (= 2.78.4-2) but 2.78.4-1 is 
installed and it is kept back
                  Depends: libglib2.0-dev-bin (= 2.78.4-2) but it is not going 
to be installed
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libglib2.0-dev [2.78.4-1 (now, testing)]
2)     libglib2.0-dev-bin [2.78.4-1 (now, testing)]

Accept this solution? [Y/n/q/?] n
The following actions will resolve these dependencies:

     Remove the following packages:
1)     libglib2.0-0 [2.78.4-1 (now, testing, unstable)]
2)     libglib2.0-0:i386 [2.78.4-1 (now, testing, unstable)]
3)     libglib2.0-bin [2.78.4-1 (now, testing)]

     Install the following packages:
4)     libglib2.0-0t64 [2.78.4-2 (unstable)]
5)     libglib2.0-0t64:i386 [2.78.4-2 (unstable)]
6)     libglib2.0-bin:i386 [2.78.4-2 (unstable)]

     Upgrade the following packages:
7)     libglib2.0-dev-bin [2.78.4-1 (now, testing) -> 2.78.4-2 (unstable)]

AFAIK, replacing libglib2.0-bin by libglib2.0-bin:i386 is not
equivalent.

With an explicit package list, aptitude immediately gives an
acceptable solution:

$ aptitude install -s libglib2.0-dev libglib2.0-bin libglib2.0-dev-bin 
libglib2.0-0t64 libglib2.0-0t64:i386
The following NEW packages will be installed:
  libglib2.0-0t64 libglib2.0-0t64:i386 
The following packages will be REMOVED:
  libglib2.0-0{a} libglib2.0-0:i386{a} 
The following packages will be upgraded:
  libglib2.0-bin libglib2.0-data libglib2.0-dev libglib2.0-dev-bin 

-- 
Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

Reply via email to