Ramparts of the Dawn
THIS IS AN UNSTABLE DEVELOPMENT RELEASE OF APTITUDE. DO NOT USE IT IF YOU NEED A STABLE PACKAGE MANAGER.
This release merges in the work that was done on the lenny branch of the program but not the post-lenny one (mostly translation work). It also includes major changes to the dependency solver.
[gtk] Ctrl-W should close a tab, but instead it crashes the program. Do not press Ctrl-W and you will be happier.
[gtk] When you reject or accept a resolver choice, the corresponding row in the solution might not update to reflect your change. If you switch to another solution and back, it will update correctly.
[all] aptitude now uses
liblog4cxxto provide diagnostic logging of much of the program.
[all] The aptitude dependency solver now supports a
tiered search. Hopefully this will make dependency resolution more predictable and allow more meaningful configuration. In particular, removals are not attempted until all solutions involving only keeps, installs and upgrades are exhausted, and solutions involving versions that aren't the default candidate are deferred until removals are exhausted.
See the user's manual for details.
[gtk] The resolver tab has been completely overhauled. It now supports all the features of the backend dependency solver, and it has an interface that is much more suitable for a GTK+ program.
[gtk] The dpkg tab now attempts to detect when something is waiting for input, by keeping track of how long it's been since dpkg sent a status message. When the install process, appears to be waiting, the
view detailsbutton is flashed to hopefully get the user's attention.
[gtk] The procedure for upgrading has been streamlined. aptitude computes an upgrade in the background automatically using the same algorithm that backs
. The user can either accept the solution or try to fix the remaining dependencies manually.
[cmdline] Added a new command-line option,
, to the
command-line action. This option causes aptitude to show a brief list of the first package in each dependency chain that would have been displayed. Dependency chains that contain Suggests are not displayed, so combining this option with
-vwill cause aptitude to display all the packages that require the target.
Documentation for this feature is currently missing. The
--show-summaryoption accepts an optional argument giving the
no-summary: don't show a summary.
last-package: only show the last package in each chain; that is, either the manually installed package that requires the target package, or the package you selected from the command-line. This is the default if
--show-summaryis used with no argument. In future releases of aptitude this will be
first-package, since that name makes a lot more sense.
last-package-and-type: display the last package in each chain, along with an indication of the strength of the chain.
all-packages: briefly display each chain of packages in its entirety.
all-packages-with-dep-versions: briefly display each chain of packages in its entirety, along with the version constraint, if any, of each dependency.
The configuration option
Aptitude::CmdLine::Why-Display-Modecan be set to any value that
--show-summaryis present on the command-line, it overrides this option. In future releases of aptitude, the configuration option will be
As you can see from the following screen-shot, this option does not wrap lines intelligently yet, so the output can become messy if you have long dependency chains and narrow terminals.
[gtk] When the user clicks on a package in the dashboard's list of upgrades, the changelog display automatically scrolls to that package.
[gtk] Some common notifications are now marked with the icon of the task they're performing.
[gtk] Initial support for incremental search (currently you have to click the
toggle button to enable it).
[gtk] Ctrl-PageDown and Ctrl-PageUp, or F7 and F6, now switch to the next or previous tab, respectively.
[gtk] A link now exists below the package description to open all the other packages from the same source package.
[all] The aptitude dependency resolver now continues searching for a few steps after it finds a solution, in the hope that it can find a better one. (Closes: bug #482825)
[all] The aptitude dependency resolver now adds a bonus to the default apt resolution for a dependency (that is, the first non-virtual package listed). The default bonus is 400 and it may be configured via
[all] Setting the environment variable
APT_ROOTDIRto a directory name will cause aptitude to use the given directory as the root for the purpose of locating apt files.
Crashes and serious errors:
[gtk] Don't crash in the dependency chains tab. (Closes: bug #514714)
[gtk] Don't crash when the user views the information tab of a virtual package.
[all] Fixed some serious inefficiencies in the algorithm used by
safe-upgrade. It's still a bit slow on very large upgrades, but not as ridiculously slow as it was before.
[all] Fixed a bad interaction between the dependency solver and reinstatement of unused packages, which could cause a situation where a
solutionfrom the solver would actually lead to broken dependencies, due to a conflict declared on the newly reinstated package. (Closes: bug #522881, bug #524667)
Cosmetic and UI bugs:
[gtk] Changelogs are now downloaded and parsed in the background. aptitude still sets the download up in the foreground, and this can take a long time if there are lots of available upgrades.
[gtk] A background thread is used to find the packages that match a search pattern and to build the list of matching packages for display.
[gtk] Some work on the download screen, although more is needed.
[curses] Don't warn the user about removing an Essential package if they're just purging the configuration files of one they removed already. (Closes: bug #513472)
[curses] Don't compute an excessive amount of
information every time a package is selected. Should make the curses interface much less sluggish. (Closes: bug #516296)
[cmdline] Add a missing newline in the error message that
prints if it has no arguments. (Closes: bug #514676)
[cmdline] Fix some badly formatted messages that are displayed when a build dependency can't be installed: they were missing punctuation and newlines. (Closes: bug #492615)
[cmdline] Make the warning asking the user to use
upgradea bit clearer.
[cmdline] Always display
next to the state of held packages.
[cmdline] Pre-compute the column sizes needed to display
, so that columns don't wrap in Stupid Places[tm]. (Closes: bug #516389)
[all] The dependency resolver's scoring of full package replacement was not behaving as intended in the corner case that the package was replaced due to a virtual package it provided, and some other version of the replaced package didn't provide that virtual package. The intent was to give the non-providing package a bonus, but instead the versions that got replaced were getting a bonus (more or less negating the whole point of the full replacement score).
[all] The resolver should now more correctly obey approval constraints set by the user (solutions that were previously rejected and aren't rejected any more can be returned).
[all] The dependency resolver now supports
: it can calculate a solution to a dependency problem from a starting state that isn't the
state of the package cache. This is used, for instance, to compute an upgrade before any packages are marked for upgrade.
[all] Implemented support in the dependency resolver for propagating knowledge about dead-ends up the search tree. Currently disabled as it turned out to greatly increase the memory and CPU overhead of a search without significantly decreasing the number of steps needed.
[all] The dependency resolver now stores solutions as sets of
rather than explicitly maintaining several lists for the different types of choices a solution can contain (for instance, installing a version vs leaving a Recommends unresolved). This makes things a bit cleaner and should make it easier to add new types of choices if that turns out to be useful.
[gtk] The Glade file now stores each tab as a separate top-level widget, which makes it a lot easier to edit and add tabs.
[doc] Improve the documentation of
[doc] Improved documentation of the resolver (in addition to documenting the new features).