[Aptitude-devel] Bug#847089: aptitude: resolver mishandles OR'ed versioned Recommends

Vincent Lefevre vincent at vinc17.net
Mon Dec 5 13:26:35 UTC 2016


Package: aptitude
Version: 0.8.3-1+b2
Severity: normal

TD;LR
To satisfy an OR'ed versioned Recommends, the resolver should prefer
a package upgrade over a new package installation (which may yield a
conflict with the other choice), even though this is not the first
choice.

I have:

  --\ utils          Various system utilities (5)
    --\ main           The main Debian archive (5)
i A stardict-common            3.0.1-9.2                3.0.1-9.3
i   stardict-gtk               3.0.1-9.2+b2             3.0.1-9.3
i A stardict-plugin            3.0.1-9.2+b2             3.0.1-9.3
i A stardict-plugin-           3.0.1-9.2+b2             3.0.1-9.3
i A stardict-plugin-           3.0.1-9.2+b2             3.0.1-9.3

If I type '+' over "stardict-gtk", I get:

  --\ utils          Various system utilities (5)
    --\ main           The main Debian archive (5)
iuA stardict-common  -165 kB   3.0.1-9.2                3.0.1-9.3
iu  stardict-gtk     +31.7 kB  3.0.1-9.2+b2             3.0.1-9.3
iuA stardict-plugin  +17.4 kB  3.0.1-9.2+b2             3.0.1-9.3
iuA stardict-plugin- +3072 B   3.0.1-9.2+b2             3.0.1-9.3
iuA stardict-plugin- -68.6 kB  3.0.1-9.2+b2             3.0.1-9.3

i.e. the packages will be upgraded as expected (only these 5 packages,
nothing else). This is fine.

But if I type '+' over "main", I get:

  --\ utils          Various system utilities (5)
    --\ main           The main Debian archive (5)
iuA stardict-common  -165 kB   3.0.1-9.2                3.0.1-9.3
iB  stardict-gtk     +31.7 kB  3.0.1-9.2+b2             3.0.1-9.3
iuA stardict-plugin  +17.4 kB  3.0.1-9.2+b2             3.0.1-9.3
iuA stardict-plugin- +3072 B   3.0.1-9.2+b2             3.0.1-9.3
iuA stardict-plugin- -68.6 kB  3.0.1-9.2+b2             3.0.1-9.3

Here the package stardict-gtk is marked as broken, while it could be
upgraded as shown above. In the details, I get:

Some dependencies of stardict-gtk (broken, 3.0.1-9.2+b2) are not satisfied:    ▒
                                                                               ▒
  * stardict-gtk (upgrade, 3.0.1-9.2+b2 -> 3.0.1-9.3) conflicts with           ▒
    stardict-gnome                                                             ▒
                                                                               ▒
The following packages conflict with stardict-gtk (broken, 3.0.1-9.2+b2):      ▒
                                                                               ▒
  * stardict-gnome (install, 3.0.1-9.3) conflicts with stardict-gtk            ▒

However stardict-gnome is currently not installed!

Note: the same thing occurs if I type '+' over "stardict-common".

I suppose that the cause of the problem is due to an OR'ed
versioned Recommends in stardict-common; before typing '+':

  --\ Recommends (1)
    --- stardict-gnome (>= 3.0.1-9.3) | stardict-gtk (>= 3.0.1-9.3) (UNSATISFIED)

It seems that aptitude wants to satisfy the Recommends by taking the
first choice stardict-gnome (>= 3.0.1-9.3) instead of upgrading the
already installed package to satisfy the second choice.

The problem does not occur if I ask to upgrade all the packages with
"aptitude upgrade" or "aptitude upgrade --full-resolver", or type 'U'
in the UI (but this is not practical when one wants to upgrade some
packages only).

Note that apt has the same problem with just

  apt install stardict-common

(it wants to install stardict-gnome and remove stardict-gtk), but
not with:

  apt install stardict-common stardict-gtk stardict-plugin \
    stardict-plugin-espeak stardict-plugin-festival

Ditto for "aptitude install ...". So, I wonder why typing '+' over
"main" does not behave the same way. This may be a separate issue.

-- Package-specific info:
Terminal: xterm-debian
$DISPLAY not set.
which aptitude: /usr/bin/aptitude

aptitude version information:
aptitude 0.8.3
Compiler: g++ 6.2.0 20161103
Compiled against:
  apt version 5.0.0
  NCurses version 6.0
  libsigc++ version: 2.10.0
  Gtk+ support disabled.
  Qt support disabled.

Current library versions:
  NCurses version: ncurses 6.0.20161126
  cwidget version: 0.5.17
  Apt version: 5.0.1

aptitude linkage:
	linux-vdso.so.1 (0x00007ffefa3e0000)
	libapt-pkg.so.5.0 => /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0 (0x00007f63e698c000)
	libncursesw.so.5 => /lib/x86_64-linux-gnu/libncursesw.so.5 (0x00007f63e675c000)
	libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f63e6532000)
	libsigc-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libsigc-2.0.so.0 (0x00007f63e632b000)
	libcwidget.so.3 => /usr/lib/x86_64-linux-gnu/libcwidget.so.3 (0x00007f63e602e000)
	libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f63e5d25000)
	libboost_iostreams.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.62.0 (0x00007f63e5b0d000)
	libboost_filesystem.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.62.0 (0x00007f63e58f4000)
	libboost_system.so.1.62.0 => /usr/lib/x86_64-linux-gnu/libboost_system.so.1.62.0 (0x00007f63e56f0000)
	libxapian.so.30 => /usr/lib/x86_64-linux-gnu/libxapian.so.30 (0x00007f63e52e2000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f63e50c5000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f63e4d42000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f63e4a3e000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f63e4827000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f63e4489000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f63e4285000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f63e406e000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f63e3e52000)
	libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f63e3c42000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f63e3a1c000)
	liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f63e380a000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f63e3602000)
	libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f63e33fb000)
	/lib64/ld-linux-x86-64.so.2 (0x00005623f7314000)

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.8.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=POSIX, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages aptitude depends on:
ii  aptitude-common            0.8.3-1
ii  libapt-pkg5.0              1.4~beta1
ii  libboost-filesystem1.62.0  1.62.0+dfsg-4
ii  libboost-iostreams1.62.0   1.62.0+dfsg-4
ii  libboost-system1.62.0      1.62.0+dfsg-4
ii  libc6                      2.24-7
ii  libcwidget3v5              0.5.17-4+b1
ii  libgcc1                    1:6.2.1-5
ii  libncursesw5               6.0+20161126-1
ii  libsigc++-2.0-0v5          2.10.0-1
ii  libsqlite3-0               3.15.2-1
ii  libstdc++6                 6.2.1-5
ii  libtinfo5                  6.0+20161126-1
ii  libxapian30                1.4.1-1

Versions of packages aptitude recommends:
ii  libparse-debianchangelog-perl  1.2.0-11
ii  sensible-utils                 0.0.9

Versions of packages aptitude suggests:
ii  apt-xapian-index                0.49
ii  aptitude-doc-en [aptitude-doc]  0.8.3-1
pn  debtags                         <none>
ii  tasksel                         3.37

-- no debconf information



More information about the Aptitude-devel mailing list