Package: aptitude
Version: 0.6.3-3.2
Severity: important
Tags: patch
Hello,
while documentation [1] says the following:
priority Level A value that increases as the apt pin priority of a version
decreases. Specifically, this is computed by negating the pin
priority (so, e.g., if the pin priority is 500, this
component will compute -500).
code does not reflect this. In particular, priority is NOT negated and included
as is in the cost calculation. This bug basically makes priority cost level a
no-op and useless. The one-line patch against 0.6.3 is attached.
I'm marking this bug as important because "priority" cost level is part of
default SolutionCost. What's more, "priority" level is quite useful for some
buildd (sbuild AptitudeResolver based) configurations.
-- Package-specific info:
aptitude 0.6.3 compiled at Oct 16 2010 18:18:04
Compiler: g++ 4.4.5
Compiled against:
apt version 4.10.1
NCurses version 5.7
libsigc++ version: 2.2.4.2
Ept support enabled.
Gtk+ support disabled.
Current library versions:
NCurses version: ncurses 5.7.20100313
cwidget version: 0.5.16
Apt version: 4.10.1
linux-vdso.so.1 => (0x00007fffac3ff000)
libapt-pkg.so.4.10 => /usr/lib/libapt-pkg.so.4.10 (0x00007f4c957fa000)
libncursesw.so.5 => /lib/libncursesw.so.5 (0x00007f4c955a7000)
libsigc-2.0.so.0 => /usr/lib/libsigc-2.0.so.0 (0x00007f4c953a1000)
libcwidget.so.3 => /usr/lib/libcwidget.so.3 (0x00007f4c950d5000)
libept.so.1 => /usr/lib/libept.so.1 (0x00007f4c94e81000)
libxapian.so.22 => /usr/lib/libxapian.so.22 (0x00007f4c94a7c000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f4c94865000)
libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007f4c945ca000)
libboost_iostreams.so.1.42.0 => /usr/lib/libboost_iostreams.so.1.42.0
(0x00007f4c943ae000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f4c94192000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f4c93e7e000)
libm.so.6 => /lib/libm.so.6 (0x00007f4c93bfb000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f4c939e5000)
libc.so.6 => /lib/libc.so.6 (0x00007f4c93684000)
libutil.so.1 => /lib/libutil.so.1 (0x00007f4c93480000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f4c9327c000)
libuuid.so.1 => /lib/libuuid.so.1 (0x00007f4c93077000)
libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007f4c92e67000)
librt.so.1 => /lib/librt.so.1 (0x00007f4c92c5f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4c95b1d000)
Terminal: xterm
$DISPLAY is set.
`which aptitude`: /usr/bin/aptitude
aptitude version information:
aptitude linkage:
-- System Information:
Debian Release: 6.0
APT prefers unstable
APT policy: (500, 'unstable'), (100, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.36-trunk-amd64 (SMP w/4 CPU cores)
Locale: LANG=lt_LT.UTF-8, LC_CTYPE=lt_LT.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages aptitude depends on:
ii apt [libapt-pkg4.10] 0.8.10 Advanced front-end for dpkg
ii libboost-iostreams1.42. 1.42.0-4 Boost.Iostreams Library
ii libc6 2.11.2-7 Embedded GNU C Library: Shared lib
ii libcwidget3 0.5.16-3 high-level terminal interface libr
ii libept1 1.0.4 High-level library for managing De
ii libgcc1 1:4.4.5-10 GCC support library
ii libncursesw5 5.7+20100313-4 shared libraries for terminal hand
ii libsigc++-2.0-0c2a 2.2.4.2-1 type-safe Signal Framework for C++
ii libsqlite3-0 3.7.4-2 SQLite 3 shared library
ii libstdc++6 4.4.5-10 The GNU Standard C++ Library v3
ii libxapian22 1.2.4-1 Search engine library
ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
Versions of packages aptitude recommends:
pn apt-xapian-index <none> (no description available)
ii aptitude-doc-en [aptitude-doc 0.6.3-3.2 English manual for aptitude, a ter
ii libparse-debianchangelog-perl 1.1.1-2.1 parse Debian changelogs and output
ii sensible-utils 0.0.6 Utilities for sensible alternative
Versions of packages aptitude suggests:
ii debtags 1.7.11 Enables support for package tags
ii tasksel 2.88 Tool for selecting tasks for insta
-- no debconf information
>From 27b9d3c26558fb7af846fb6aca24542430027fdb Mon Sep 17 00:00:00 2001
From: Modestas Vainius <[email protected]>
Date: Mon, 3 Jan 2011 14:55:56 +0200
Subject: [PATCH 1/2] Negate priority when including it in the cost computation.
This is intended behaviour according to documentation. Current situation
basically makes priority cost level a no-op and useless.
---
src/generic/apt/aptitude_resolver.cc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/generic/apt/aptitude_resolver.cc
b/src/generic/apt/aptitude_resolver.cc
index 6331fb3..9c4e3d7 100644
--- a/src/generic/apt/aptitude_resolver.cc
+++ b/src/generic/apt/aptitude_resolver.cc
@@ -76,7 +76,7 @@ namespace
if(apt_priority > INT_MIN)
return settings.raise_cost(priority_component,
- apt_priority);
+ -apt_priority);
else
return cost_limits::minimum_cost;
}
--
1.7.2.3