[Aptitude-devel] Bug#697401: aptitude: Clarify precedence between action suffix and package name ("aptitude remove memtest86+")

Axel Beckert abe at debian.org
Fri Jan 4 21:04:53 UTC 2013

Package: aptitude
Severity: minor

Neither the aptitude man page nor the command-line reference in the
manual does not document what happens if a package name ends in a
character which also would be a valid actions suffix.

"apt-cache search -n '[^a-z0-9]$'" shows that there are about two dozen
packages in Debian whose package name is ending in a plus sign

Most of them are actually ending in "++" and are related to the C++
programming language. So there counterparts usually have no "+" at all
in there package name and hence the trailing "+" is usually unambiguous

But there are at least three cases where appending a "+" to an existing
package name results in another existing package name:

memtest86 vs memtest86+
wmweather vs wmweather+
minisat vs minisat+

The man page does not mention if the suffix action or the package name
has higher precedence, i.e. it doesn't explain what happens if I call
aptitude like this:

# aptitude remove memtest86+

Would it remove "memtest86+" or would it install "memtest86"?

A short test revealed:

The package name seems to have precedence and the above removes
memtest86+ if installed and doesn't install memtest86 if it's not
installed. (I'm btw. not sure if that's the most expected variant, but
it's definitely not the worst variant.)

So there seems no possibility to install a package ending in "+" during
an "aptitude remove" run, if a package exists whose name is the same
except for the trailing plus sign.

These issues should be documented independent of the actual precedence.

-- System Information:
Debian Release: 7.0
  APT prefers unstable
  APT policy: (990, 'unstable'), (900, 'testing'), (600, 'stable'), (200, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.7-trunk-686-pae (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages aptitude depends on:
ii  aptitude-common 
ii  libapt-pkg4.12  
ii  libboost-iostreams1.49.0  1.49.0-3.1
ii  libc6                     2.13-38
ii  libcwidget3               0.5.16-3.4
ii  libept1.4.12              1.0.9
ii  libgcc1                   1:4.7.2-4
ii  libncursesw5              5.9-10
ii  libsigc++-2.0-0c2a        2.2.10-0.2
ii  libsqlite3-0    
ii  libstdc++6                4.7.2-4
ii  libtinfo5                 5.9-10
ii  libxapian22               1.2.12-2
ii  zlib1g                    1:1.2.7.dfsg-13

Versions of packages aptitude recommends:
pn  apt-xapian-index                <none>
pn  aptitude-doc-en | aptitude-doc  <none>
ii  libparse-debianchangelog-perl   1.2.0-1
ii  sensible-utils                  0.0.7

Versions of packages aptitude suggests:
pn  debtags  <none>
pn  tasksel  <none>

-- no debconf information

More information about the Aptitude-devel mailing list