[12/15/2007] Version 0.4.10 "Oscillating Reindeer" - New features: * In command-line mode, if the resolver fails to produce a solution for whatever reason, then instead of aborting the program entirely aptitude will now display a prompt at which you can fix the dependency problems by hand. Enter "r" at this prompt to try to automatically fix dependencies again. * safe-upgrade will now install new packages to fulfill dependences (but it will never remove packages, downgrade packages, or install a version that's not the default). The option --no-new-installs will disable this behavior. * Updates and commands that install, remove, or upgrade packages will now display a brief summary of what changed. For instance: There are now 64 updates [+10], 3 new [+1]. Unfortunately, this change requires reading the cache after an update is complete. Passing -q will disable this behavior, but also make the update progress bar less attractive. More work on resolving this tension between features and performance remains to be done. * Add an option --allow-untrusted to override trust warnings. (Closes: #452201, #452541) * Recommended packages are now hidden if quiet mode is enabled. (Closes: #452202) * The options Aptitude::ProblemResolver::Trace-File and Aptitude::ProblemResolver::Trace-Directory allow you to generate a minimal cut of the cache that allows a problem resolver run to be reproduced. The eventual aim is both to simplify bug reporting and to generate a corpus of automatic test cases for the resolver (although more work needs to be done to accomplish the latter). * When run in command-line mode, instead of displaying many separate and sometimes duplicative groups of packages (e.g.: installed, auto-installed, auto-installed in a light cream sauce, etc), aptitude displays packages in a few exclusive categories and uses tags (like the existing "purge" tag) to provide more state information. For instance: $ aptitude -s install wesnoth The following NEW packages will be installed: wesnoth wesnoth-data{a} wesnoth-music{a} $ aptitude -s remove freeciv-data (... dependency resolution ...) The following packages will be REMOVED: freeciv-client-gtk{a} freeciv-data freeciv-server{a} ggzcore-bin{u} libggz-gtk1{u} libggz2{u} libggzcore9{u} libggzdmod6{u} libggzmod4{u} Here {a} indicates that a package was automatically installed or removed, and {u} indicates that a package is being removed because it is unused. Hopefully this will be less confusing than the old format. - Bug fixes: + Crashes and serious errors: * Track down and fix a SEGV triggered on the first action after a cache reload (sometimes). There are multiple bugs where this might have been the root cause, but it's confirmed that it was the cause of at least #454695, #454700, #455349, and #453362. Bug #455865 is almost certainly the same issue, and bug #352278 may be another manifestation of it. * If StepLimit is set to 0, refuse to solve dependencies instead of going into an infinite loop. (Closes: #451311) + Minor bugs: * Return a failing exit code after jumping from the command-line to visual mode if the last install run failed. (Closes: #282408) * Return a failing exit code from "aptitude update" if any download fails. (Closes: #233129) + Cosmetic and UI bugs: * In addition to Enter, Space will now activate checkboxes and radio buttons. (Closes: #451765) * Abort the program if we get EOF at the resolver prompt instead of claiming the resolver failed. * Command-line searches will now only print each result once. (Closes: #450798) + Documentation bugs: * The options menu documentation now minimally describes the new configuration interface. * The documentation of the configuration file options has been placed back in alphabetic order after apparently suffering bitrot over the years. * Corrected the documented default of Parse-Description-Bullets to match reality. * The manpages for aptitude-create-state-bundle and aptitude-run-state-bundle are now generated using DocBook, which should produce higher-quality and more consistent typesetting, as well as making the manpages more maintainable and allowing translators to easily produce localized versions of the manpages. - Internal changes: * Removed some unit tests that really tested cwidget. - Translation updates: * French (Christian Perrier) [11/17/2007] Version 0.4.9 "Ow. Ow. Ow. Ow. Ow." - New features: * Add a matcher ~o for obsolete/local packages. (Closes: #397547) - Bug fixes: * Correctly set the name, description, and long description of radio options. (Closes: #449138) * Don't remove *.gmo in distclean. Apparently this causes trouble for translations. (Closes: #451584, #441696) [11/15/2007] Version 0.4.8 "The fun never stops!" This change removes the internal widget set, instead using the cwidget curses widget library (which just happens to provide all the same functionality as the aptitude widget set, imagine that). - Bug fixes: + Cosmetic and UI bugs: * Interpret key names in the broken indicator as wide-character strings; fixes actual display corruption on some platforms and potential corruption on all platforms. (Closes: #448753) [10/30/2007] Version 0.4.7 "Where did all these balloons come from? And why am I wearing a fake nose?" - New features: * The options dialogs have been completely replaced by a new interface, based on a top-level list view. This fixes many deficiencies of the old interface: it handles long strings more gracefully, avoids many of the focus-handling bugs that the old dialogs had, and should generally be better-behaved. (Closes: #197976, #331200, #424708) * Prompts that ask you to enter text will now wrap to multiple lines when the text gets long, rather than hiding parts of the string. * The online help and other Help-menu items are now top-level views, which should make them somewhat more usable. (Closes: #434349) * Support for the "Breaks" field and for trigger states (thanks to Michael Vogt and Ian Jackson for patches and prodding). (Closes: #438548) * Two new styles, "PkgDowngraded" and "PkgDowngradedHighlighted", are provided to control how downgraded packages look. By default these packages look like any other installed package. (Closes: #439924) * aptitude can now display homepage URLs stored in the Homepage field of packages. This requires a recent version of apt; 0.7.8 or better includes it. - Bug fixes: + Crashes and serious errors: * When applying the resolver's output, only set the packages that are newly installed to be automatic, rather than making everything the resolver touches automatic. * Save and restore the automatic flag on packages that are not not currently installed and that are being installed. (Closes: #435079) * Fix the help generated when the user presses '?' at the prompt to not segfault, and rewrite the code to avoid this bug in the future (it was using a format string with a huge number of placeholders; now it builds a list of the output lines explicitly). * Eliminate a crash on startup caused by using a global pointer to the cache in the package matching logic (which might be null) instead of taking a valid pointer to the cache as a parameter. This is necessary since the matcher might be invoked while the cache is being loaded, e.g., to decide if a package should be part of the root set. + Minor bugs: * Fix the 'pattern' grouping policy: it was inserting packages into all the trees that matched, not just the first one. * Make removals and holds that occur later on the command-line override earlier commands. * The debugging output from "why" no longer tries to dereference invalid pointers or display multibyte strings as single-byte strings. (Closes: #447290) + Cosmetic and UI bugs: * If the text in a column of the "why" output exceeds the column width, the column will now wrap correctly onto the next line. * Auto-held and unconfigured packages no longer generate ?????? in the aptitude log. + Documentation bugs: * Fix the documentation on aptitude development. It now gives the correct URL and version control system for the upstream repository, and somewhat more actively solicits contributions. - Translation updates: * Galician (Closes: #446620) * Nepali * Russian * Spanish * Swedish (Closes: #434643) [7/25/2007] Version 0.4.6.1 - Minor bugfix to include the new scripts/manpages that didn't get distributed with the previous release. [7/25/2007] Version 0.4.6 "He who works and works all day, gets to work another day." - New features: * Added two programs, aptitude-create-state-bundle(1) and aptitude-run-state-bundle(1), to eliminate some of the drudgery involved in collecting apt state and running aptitude with a state snapshot. * "why" output is now available in visual mode (hit 'i' to cycle through informational displays). The formatting and styling are pretty awful in this release. - Bug fixes: + Crashes and serious errors: * Handle EINTR from select() better; thanks to Jiří Paleček for tracking this down. (Closes: #431054, #431688, #432323) Note that there is still a race condition lurking here, although it's almost impossible to trigger it. The next release should eliminate it, though. * Run mark-and-sweep on startup, to initialize apt's auto flags. This should prevent aptitude from losing the auto flag when a package is marked for upgrade. (Closes: #432017) * Don't crash on startup when something goes wrong early in the initialization process (e.g., when the cache is locked; Closes: #430061). + Minor bugs: * Disable unused-package removal if Delete-Unused is false. (Closes: #431716) + Cosmetic and UI bugs: * Don't garble descriptions in non-UTF8 locales. (Closes: #432911) * Hopefully fixed the problem that was garbling the startup progress indicator. * Eliminate another bogus error about a supposedly locked cache. (Closes: #431909) + Documentation bugs: * Fix the manpage's metainformation so that the footer gets generated. + Potential bugs: * Handle some unusual cases where the resolver could dereference invalid pointers (no bugs reported). * Added code to recover with an error if apt improperly marks a dependency as broken. - Translation updates: * Basque (Closes: #432535) * Dzongkha * French * Vietnamese (Closes: #432283) [7/3/2007] Version 0.4.5.4 "Oh my God, THEY KILLED LENNY! (actually, it was sid, but I wanted to say that)" - New features: * Expose the "why" command from the command-line Y/n prompt. Typing "w " will invoke "why ". The resolver prompt doesn't support this, maybe it should? - Bug fixes: + Crashes and serious errors: * Eliminate a bounds error that was crashing the vs_editline. (Closes: #429673) + Minor bugs: * Force aptitude to write out a state cache the first time it runs. Without this change, it won't know which packages are "new" until after the first time the user installs something. (Closes: #429732) + Build system fixes: * Add a configure check for the new apt, so users get more sensible build errors with incompatible apts. * Have 'make clean' remove autogenerated XML files, so they don't show up in the Debian diff. - Translation updates: * Basque (Closes: #418862) * Galician (Closes: #429504) * Vietnamese (Closes: #429447) [6/17/2007] Version 0.4.5.3 "The Long Dark Tea-Time Of The Code" - New features: * Added two commands "aptitude why" and "aptitude why-not" that provide explanations of why a package is, must be, should be, or must not be installed on your system. They are not complete, by which I mean that they can't always provide the most useful justification, but they should answer a lot of questions that I hear people asking regularly. - Bug fixes: + Crashes and serious errors: * Eliminate a nasty race that was probably the cause of corrupted output on some dual-core systems. (Closes: #414838, #406193) * Fix a bug that could cause aptitude to try to remove a package that it had already removed. (Closes: #429388) This can't be totally eliminated without help from dpkg, but hopefully this fix will make the problem much more difficult to trigger. Unfortunately, the fix also means that aptitude has to perform a save/load cycle after installing packages to make sure that everything is consistent. * Allow "keep" actions to be undone. * Don't consider every removed package to be an unused package. * Clear the broken package indicator when the user undoes an action. * Fix build errors on other architectures. (Closes: #429348) * Set packages to manual mode when the user cancels their removal. (Closes: #429271) * Fix compile bugs with g++-4.3. (Closes: #413488) [6/15/2007] Version 0.4.5.2 "To ook is human, to meow feline" - Bug fixes: * Multiple minor bugs introduced by the patches to support apt's auto-marking were fixed. - Packages kept at their current version by applying a solution no longer get their hold flags turned on. - Packages that are installed by a solution get their auto-installed flag set. - Applying a solution updates the resolver state (so the error bar doesn't stick around until you change a package's state by hand). * Fixed a broken cross-reference in the manpage. [6/15/2007] Version 0.4.5.1 "Nothing could possibly go wrAAAAAAAAAAaaaa..." - New features: * aptitude now uses apt's central database to track which packages are auto-installed. Aptitude's own list of automatic packages will be merged into the global list the first time that aptitude is run. * Packages that are not fully configured are now listed in aptitude's preview, and aptitude will let you do an install run if there are unconfigured packages but nothing to install/remove. (Closes: #424709) - Translation updates: * French (Closes: #428585, #428826) * Portuguese (Closes: #425779) * Vietnamese (Closes: #426976) [5/14/2007] Version 0.4.5 "Confused Cockroach" - New features: * For standard string prompts, the default is now initially displayed, but erased if the user starts out by inserting a new character. * 'N' now repeats the last search in the opposite direction (as opposed to 'n', which repeats it in the same direction). (Closes: #414020, #397880) * aptitude now recognizes Apt::Get::AllowUnauthenticated as a synonym for Aptitude::Ignore-Trust-Violations. (Closes: #411927) * Fix the handling of dselect/dpkg state. Previously, mixing the command-line and visual modes of operation could result in aptitude thinking it should remove a package that was actually installed on your system. This was especially nasty since the Debian installer tripped this condition, leaving people with a broken initial system. Ow. (Closes: #411123) * Added a config option "Aptitude::CmdLine::Resolver-Show-Steps", which causes the dependency resolver to default to displaying its output as a list of individual resolutions, rather than a list organized by the type of change that will be made. (equivalent to pressing "o" at the first resolver prompt) * Added "safe-upgrade" and "full-upgrade" as synonyms for "upgrade" and "dist-upgrade" respectively. The goal here is to eliminate massive confusion about what these commands actually do. "upgrade", in particular, is now deprecated ("dist-upgrade" probably has too much currency to kill off, but hopefully people will at least be rid of the notion that it's exclusively for whole-distribution upgrades). * The option "Aptitude::Get-Root-Command" can be used to choose how aptitude tries to gain root privileges. It defaults to "su"; setting it to "sudo" will choose that program, and other programs can also be chosen (see the user's manual for details). - Bug fixes: + Crashes and serious errors: * Improve the internal consistency of aptitude's reduction of the apt dependency graph. As part of this change, a new (undocumented, primarily for debug purposes) command-line action "check-resolver" was added; it verifies empirically that the dependency structure obeys the invariants that it's expected to obey (for instance, that all forward dependencies have a corresponding reverse dependency). In addition to a number of harmless discrepancies, this flushed out the forward/reverse dependency mismatch that was causing crashes in the resolver. (Closes: #420358, #420381, #420407). Note that check-resolver only verifies *internal* properties of the resolver's model; it doesn't verify that the model faithfully represents the dependency problem posed by the apt package database. * Don't crash on amd64 and other architectures where va_args structures can't be reused. This is an old bug; it was turned up by a new test for ssprintf. * Increase the default value of StepScore to 70 and improve its documentation. This should make it much less likely that the resolver wanders off into lala land trying to solve dependency problems. (Closes: #418385) * When --without-recommends is passed at the command-line, automatically enable Keep-Recommends at the same time we disable Recommends-Important, so we don't automatically remove half the user's system. (Closes: #143532) * Fix an internal sprintf variant to produce correct output (the previous code was safe, just wrong; it safely produced a buffer of the correct size, then truncated it to its initial buffer size). * If the dependency resolver throws an exception, catch it and handle it as cleanly as possible, rather than unceremoniously exploding. * Don't block signals when running dpkg after a package install failed, and tell dpkg not to use TSTP in this circumstance. This tended to cause horrible breakage of dpkg's auto-backgrounding (the "Z" conffile prompt option). (Closes: #367052) * Fix a crash that occurred when generating a revdep-count column for some virtual packages. (Closes: #420405) * Don't abort() if something tries to display a progress percentage that's not strictly between 0 and 100. (Closes: #425145) + Cosmetic and UI bugs: * If a package is both "new" and "upgradable", place it in the "upgradable packages" list instead of the "new packages list", since this seems to be the path of least confusion. (Closes: #419999) * Try to include more information when an internal consistency check is triggered (e.g., the dependency that the program was looking at). * Only print an error about being unable to acquire a lock after downloading when an error actually occurred during the call to GetLock(); this message was getting triggered by stray errors from methods invoked earlier in the download/install process. (Closes: #422700) * Don't ever display more than one "really quit?" dialog box, so people who hold down the "q" key don't have to also hold down "n". (Closes: #411158) * When writing out the aptitude state file, open it mode 0644 and explicitly chmod it to mode 0644, so it doesn't start out world-writable, but ends up group- and world-readable even if root has a more restrictive imask. pkgstates isn't security-sensitive, and aptitude produces surprising results if it can't read this file. If you really need to hide pkgstates from non-root users for some reason, you can chmod -x the directory /var/lib/aptitude. (Closes: #41809, #421811) * If a command (e.g., update) takes no arguments, aptitude will produce an error if it receives arguments. (Closes: #411152) * Write "[Enter]" instead of "enter" in the media-change prompt, to make it clear that the user should press the key of that name. (Closes: #414777) * Remove *.gmo in distclean, so the Debian package can be built twice in a row. (Closes: #424102) + Potential bugs: * Delete some internal cache arrays using operator delete[] instead of operator delete. * Initialize package selection states to the Unknown state explicitly. + Documentation: * Fix the docbook encoding of the users manual and manpages. * Fix an error in the DocBook code of the manual page that caused the AUTHOR section to appear twice. * Fix how bolding is applied to literal elements in the manpage, so that the manpages are no longer screwed up. (Closes: #415468, #416232) * Users manual corrections (thanks to Noritada Kobayashi for patches). * Improve the description of the Recommends-Important, Keep-Recommends, and Keep-Suggests: clean up the language and try to make their precise behavior clearer. Thanks to Stefan Kangas for the initial suggestion. (Closes: #405002) * Try to make it clearer in both the manpage and the user's manual that "aptitude search" does an implicit OR on its command-line parameters, rather than an implicit AND. (arguably it SHOULD do an "AND", but it's probably too late to change this now) * Add some commands to the online help that weren't previously documented. (Closes: #402360) * Fix misaligned items in the online help. (Closes: #399048) - Translation updates: * Task group names localized. * Basque (Closes: #418862) * Catalan (Closes: #353308) * Chinese (Simplified) (Closes: #405166) * Chinese (Traditional) (Closes: #338056, #418139) * Danish (Closes: #409480) * Finnish (Closes: #392305) * French (Closes: #403561, #388504) * Galacian (Closes: #412829, #425358) * Greek * Hungarian (Closes: #405550) * Japanese users manual added. * Marathi (Closes: #416807) * Nepali (Closes: #452278) * Portuguese (Closes: #418940) * Romanian (Closes: #415763) * Slovak (Closes: #401105) * Spanish (Closes: #416339) * Ukranian (Closes: #415448) [10/26/2006] Version 0.4.4 "I shall smite you with my Ultimate Power of Cuteness!" - New features: * "unhold" now just clears the hold flag; it doesn't try to upgrade the package that was just unheld. * The grammar used to parse bulleted lists has changed. Full stops are no longer considered to be paragraph breaks or otherwise significant unless they are indented by exactly one space (i.e., unless they are significant in the standard grammar). A second change introduced by this patch is that a full stop by itself on a line no longer terminates a bullet list; the list will continue as long as the text after the paragraph break is indented at the same level as the rest of the list. This fixes some cases where aptitude badly mangled descriptions that used to work, and means I feel safe re-enabling bullets by default. (Closes: #388594) - Bug fixes: * By default, don't remove Linux kernel images that are unused. (Closes: #386307) * Generate a more useful error message for corrupted or unverifiable file downloads. (Closes: #387537) * Fix minibuffer messages so that they go away when you press a key. (Closes: #395201) * Apparently time is allowed to go backwards, so don't assert that it doesn't in the test suite. (Closes: #381481) * Document what "unhold" does. (Closes: #387336) * Consistently use instead of