[11/19/2008] Version 0.4.11.11 "And the moon be still as bright" This is purely a translation release for Debian lenny. - Translation fixes: + Catalan (Closes: #499464) + German (Closes: #500444) + Greek (Closes: #498583) + Italian + Romanian (Closes: #502413) + Slovak (Closes: #498910) + Spanish (Closes: #501096, #502695, #502696, #502697) + Traditional Chinese [9/5/2008] Version 0.4.11.10 "Upon the empty winds of time" - Bug fixes: + Serious bugs: * Never, ever remove an Essential package from the curses UI without asking the user first. I chose a very simple implementation for this patch because of the pending release of lenny, and so users who are removing Essential packages will get prompted twice. But I feel this is better than occasionally not prompting at all; it will be cleanup up later, once lenny is out. + Minor bugs: * Fix displaying the section descriptions in non-UTF-8 locales. (Closes: #483464) * Add the ?task search term, which was documented in some areas but not others, and wasn't actually implemented due to an oversight. - Documentation bugs: + A whole pile of minor improvements suggested by "jidanni". (Closes: #497374, #497340, #496726, #471347, #496719, #496729, #496732, #497333, #497336, #497726, #497969) + Give the right name for the preview limit configuration option: it's Aptitude::UI::Preview-Limit, not Aptitude::Preview-Limit. + Generate the HTML documentation in a UTF-8 encoding. - Translation fixes: + Brazilian Portuguese (Closes: #496613) + Czech (Closes: #497287) + Dutch (Closes: #497965) + Kurdish + Japanese (Closes: #494816) + Lithuanian (Closes: #496504) + Norwegian Bokmål + Simplified Chinese (Closes: #497550) + Ukranian [8/3/2008] Version 0.4.11.9 "This message brought to you courtesy of the Friends of Poland society." - Bug fixes: + Minor bugs: * Don't annoy every Polish user with a warning about a badly formed string in the aptitude-defaults configuration file. Also added some documentation for translators telling them about the pitfall that led to this bug happening. (Closes: #483459) * Fix some case fallthroughs that would cause the wrong information to appear in the "archive" (%t) column for virtual packages. * Correctly handle install-and-mark-auto commands that are targeted at a particular version, like "install foo/testing+M". Previously aptitude would completely ignore the archive in this case. - Translation fixes: + German + Slovak + Swedish (Closes: #490782, #490818) [7/4/2008] Version 0.4.11.8 "Happy Fireworks Day." - Bug fixes: + Minor bugs: * Fix a long-standing and annoying bug that would cause aptitude to sometimes delete package lists if downloading new copies failed. (Closes: #201842, #479620) [6/28/2008] Version 0.4.11.7 "Yes I can" - Internal changes: * Fix several compilation errors on exotic architectures. (Closes: #488132) - Translation updates: * Basque * Portuguese (Closes: #482094) * Thai [6/21/2008] Version 0.4.11.6 "Take two" - Internal changes: * Fixed several places where the code was a bit sloppy in ways that were harmless at the moment but were turned up by -Wall -Werror. [6/21/2008] Version 0.4.11.5 "A tisket, a tasket" - Bug fixes: + Crashes and serious errors: * aptitude will no longer suggest removing Essential packages to fulfill dependencies unless you explicitly allow it to. Also, removing apt (if it is allowed) will be scored as if apt were an Essential package, meaning that it should show up last in any list of solutions. (Closes: #486748) + Minor bugs: * "aptitude add-user-tag" and "aptitude remove-user-tag" will return 0 instead of a random value when they succeed. + Translation updates: * Dutch (Closes: #486858) * Romanian (Closes: #486934) - Internal changes: * Consistently build with -Wall -Werror (it wasn't being used in all subdirectories of the code). * Clean up various minor and potential bugs turned up by increasing the warning level. [6/7/2008] Version 0.4.11.4 "Turn down the suck." - New features: * "aptitude download" now properly handles both patterns and things like version specifiers that contain a tilde. * New option "--disable-columns" to "search" that prevents aptitude from trying to reformat its output into columns. This should be useful for people trying to call aptitude from scripts. (Closes: #136874) - Crashes and serious errors: * Fix a problem with assigning scores in the dependency resolver that severely distorted the relative weights of packages. If a package conflicted with a virtual package that it also provided and replaced, aptitude would randomly score some of its versions as if they were full replacements of the current version. This could lead to surprising and wrong resolver outputs. (Closes: #483920) - Documentation bugs: * Fix some broken internal links. * The manpage formatting of elements is correct now. They're bolded, and literal file extensions don't get misinterpreted as groff escapes. (Closes: #473580) - Translation updates: * Install defaults files for locales that contain an underscore, like pt_BR. (Closes: #483620) * Russian. (Closes: #483943) [5/26/2008] Version 0.4.11.3 "Not looking back." - Crashes and serious errors: * "unhold" should work now. (Closes: #477165) * Fixed viewing changelogs at the command-line, which was almost totally broken in recent releases. (Closes: #481458) * Fix getting the changelogs of bin-nmued packages from the curses interface. (Closes: #333468) For some reason when this was fixed for the command-line mode, the equivalent change didn't make it into the curses codebase. * Don't die with an assertion error when --show-why is used in the presence of impure virtual packages. - Cosmetic and UI bugs: * Always be at least as quiet as the user requested; when aptitude automatically enabled quietness if its output wasn't a TTY, it could actually become less quiet than otherwise! (Closes: #476749) * If the user asks for the justification of a manually installed package, try to find a nontrivial answer (some other package that requires it) instead of just telling them that it's already installed. (Closes: #477038) * Remove an incorrect hyphen in the output of --help. (Closes: #476835) * When the resolver is run several times in a row without user interaction (for instance, in "safe-upgrade"), only print "Resolving dependencies..." once. * When listing the complete chains of dependencies that are holding a package on the system, show "A provided by B" as "A <-P B", not "AP<- B". (i.e., add a space after "A") - Build system fixes: * VPATH should be supported better in doc/. * Most files will generate Doxygen output now (they were missing \file tags). - Documentation bugs: * Clarify how aptitude's search language behaves in some syntactic corner cases, like "~nname?installed": the "?" is part of the string parameter to the first matcher, not the start of a new match term "?installed". * Change the documentation of "aptitude why": it shows why packages should be installed, not why they can be installed, and be clearer about what happens when "why" is called with a single argument. * Fix the manpage to talk about Recommends-Important instead of Install-Recommends. (Closes: #480533) - Translation updates: * Brazilian Portuguese (Closes: #481007) * Danish (Closes: #476732) * French * Galician (Closes: #476837) * German (Closes: #476344) * Japanese * Norwegian Bokmal (Closes: #480063) * Polish (Closes: #480062) * Simplified Chinese (Closes: #475740) * Vietnamese (Closes: #477295) [4/9/2008] Version 0.4.11.2 "How far the sky, how cold the night, how still the flowing river. How sharp the air -- so pure the light -- beneath Orion's quiver. Beneath the frozen, staring, starry sky we lay a-shiver." - New features: * The information area can display tabs for the alternative views it supports. This is off by default because I found that it was too intrusive (mainly because it appears between the short and the long description of a package). If cwidget gets the ability to put tabs at the bottom of multiplex widgets, I might change this. - Documentation bugs: * Fix several XML errors in the manpage source (Closes: #473722) - Bug fixes: + Crashes and serious errors: * Make the safe resolver not explode exponentially when new Recommendations are present. The root cause here was that the "mandate" mechanism the safe resolver uses to ensure that it progresses monotonically towards a solution doesn't work in the presence of Recommends, so the resolver ended up exploring the entire space of possible resolutions to packages' Recommendations. (Closes: #474680) * Don't crash if a package's Section is empty. (Closes: #474115) + Cosmetic and UI bugs: * The "why installed" information display in the package list will now display an informative message when no package is selected, the same way that the "related dependencies" display does. * The "why installed" information display should work better for newly installed packages now. * "aptitude --version" prints more information about the libraries it was compiled against. * "Help -> About" prints a correct copyright date now. * The status indicator has been rewritten so that it no longer needs numeric conjugation (meaning it won't say "there are 1 update"). (Closes: #486186 and friends) * "why" and "why-not" now appear in the list of commands in "aptitude --help". (Closes: #454088) + Minor bugs: * Use a 'latch' configuration option to migrate from Recommends-Important, instead of just clobbering the old option. (Closes: #473872) * Treat packages that were removed but whose configuration files remain on the system as if they're not installed in the output of --show-why. This fixes some cases where --show-why would hide the reasons for some installations. - Translation updates: * Galician (Closes: #474672) * Vietnamese (Closes: #473719) [3/30/2008] Version 0.4.11.1 "No, no, fool, I said bring me the FLUFFY Bunny Slippers of EXTREME Dismemberment, not the EXTREME Bunny Slippers of FLUFFY dismemberment! Does an evil overlord have to do everything himself around here?" - New features: * The command-line argument --show-why will cause all installation and removal commands to display a brief summary of the dependencies related to an installation or removal. For instance: The following NEW packages will be installed: libboost-iostreams1.34.1{a} (for wesnoth) wesnoth wesnoth-data{a} (for wesnoth) wesnoth-music{a} (for wesnoth) Note that wesnoth-music is a dependency of wesnoth-data, not wesnoth. --show-why displays the manually installed package behind each automatic installation. If -v is passed on the command-line, it displays the entire chain of dependencies leading to each manual package. --show-why also handles upgrades: The following packages will be upgraded: klibc-utils libklibc (for klibc-utils) --show-why is limited to the capabilities of the logic behind "aptitude why". Although libklibc might be the package that was originally marked for upgrade, --show-why has no knowledge of this fact: it just knows that klibc-utils requires libklibc. * In the ncurses interface, added a menu entry to cycle the display in the lower pane (equivalent to pressing "i" but more discoverable). * The ncurses interface now displays the number of packages in a tree next to the tree header, and in the information area when the header is highlighted. * The header for the list of versions in the ncurses interface now reads "Versions of " instead of just "Versions". * A new extract-cache-subset command that will create a reduced copy of the package cache, removing all but a given list of packages and all references to packages not in the list. It's intended for, e.g., generating test cases for package managers. - Bug fixes: + Crashes and serious errors: * Handle exceptions thrown by the Debtags constructor (e.g., when debtags has been purged and there are no data files) instead of just crashing. (Closes: #472695) * Eliminate a case where we would access uninitialized memory while starting up, found thanks to valgrind. + Cosmetic and UI bugs: * Correct the documentation within the on-line help of how to leave the on-line help (it was never updated when the help went from being a dialog to being a top-level view). * Correctly save changes to string configuration options. (Closes: #471315) * Don't print an error on startup when debtags isn't installed. (Closes: #472678) * Use less technical language when "why" fails to find a derivation for "A transitively requires B". * Eliminated some cases where description signals for tree headings weren't being connected. These weren't noticable in the past because in most cases, the heading had no description anyway. - Translation updates: * The aptitude-defaults.* files are now installed to /usr/share/aptitude. (Closes: #472625) * Simplified Chinese (Closes: #458162, #473363). * Vietnamese (Closes: #473229) [3/15/2008] Version 0.4.11 "When you're tired of being beat with a stick, you're tired of Debian." - New features: * Search terms can be named with words instead of single-character flags. Each new-style search expression starts with a question mark ("?"), followed by the name of the matcher; for instance, "?obsolete" is equivalent to the old-style expression "~o". At the command-line, package names containing question marks are treated as search expressions, just like package names containing tildes ("~") are. The old-style syntax is still present and works just like it did previously. See the reference manual for complete documentation of the new syntax. This will hopefully make the search syntax more memorable and make it clearer what a given search expression actually does. In addition, this opens up the possibility of greatly expanding the number of search patterns supported by aptitude (the requirement to choose a meaningful and unique single character had become a major limiting factor in the ability to add new search terms). * New search terms: + ?source-package(expr) matches packages whose source package matches the given regular expression. + ?source-version(expr) matches packages whose source version matches the given regular expression. + ?all-versions(expr) matches a package if expr matches all versions of that package. + ?any-version(expr) matches a package if expr matches any single version of that package. + ?user-tag(pattern) matches a package if it has an attached user-tag matching the given regexp (see below). + ?for var: expr binds var inside expr to the package or version being tested. + ?bind(var, expr) matches anything if the package or version bound to var matches expr. + ?=var matches the package or version bound to var by an enclosing ?for. For instance, "?for x: ?depends(?recommends(?=x))" will match any package X that depends on a package that recommends X. * aptitude now supports attaching arbitrary strings to packages, known as "user tags" (to distinguish them from debtags tags). The following commands will manipulate user tags: aptitude add-user-tag tag package... aptitude remove-user-tag tag package... Each of these commands will add user tags to or remove them from one or more packages (possibly selected using search expressions). In addition, all command-line actions that modify package state now take the following optional arguments: --add-user-tag TAG --add-user-tag-to TAG PATTERN --remove-user-tag TAG --remove-user-tag-from TAG PATTERN The variants that take a PATTERN will add tags to or remove tags from any packages that match the given PATTERN. (e.g.: "--add-user-tag-to installed-for-build-dep ?action(install)"). The variants that do not take a PATTERN will affect any package that is being modified (this is equivalent to using the pattern "?not(?action(keep))"). The ?user-tag(tag) matcher will select packages with a tag matching the given regular expression. User tags also show up at the end of package descriptions, next to the list of debtags tags for a package. * All command-line actions that modify package state now accept the arguments --safe-resolver and --full-resolver. --safe-resolver forces the command to use the same resolver logic as --safe-upgrade (e.g., "aptitude install --safe-resolver exim4" to install exim4 as long as it can be installed without removing any packages). --safe-resolver can be enabled in the config file by setting Aptitude::Always-Use-Safe-Resolver to "true"; passing --full-resolver will override this configuration option. The option --no-new-installs and the new option --no-new-upgrades will control whether the safe resolver attempts to install new packages or upgrade installed packages. Future versions of aptitude will enable this logic in the curses UI as well, but I haven't decided how it should be exposed yet. * The aptitude dependency resolver will now refuse to adjust held packages or install forbidden versions unless you manually allow it to. This behavior can be disabled by setting Aptitude::ProblemResolver::Allow-Break-Holds to "false". aptitude will still break holds when packages are being automatically installed; there is a pending patch against apt that eliminates this behavior. * The aptitude dependency resolver will add a bonus to solutions that remove a package and install another package that fully replaces it by declaring a conflicts/provides/replaces relationship. (Closes: #466374) * aptitude now has a "build-dep" command that will install build-dependencies from the command-line. (Closes: #243317) * A new "subdirs" variant of the section grouping policy is introduced in this release, courtesy of Paul Donahue, and is enabled by default. This will behave just like the old sectioning policy, except that if a section has several components (for instance, games/arcade/space), they will all be realized as tree levels in aptitude. A side effect of this change is that section descriptions are no longer hard-coded in the source (see the documentation of Aptitude::Sections::Descriptions). * Command-line updates in aptitude will now list packages that are newly obsolete. This doesn't work when a source is removed and all its packages become obsolete, for technical reasons. * aptitude now uses libept to handle debtags information instead of a slow and wrong internal implementation. (Closes: #397652, #406201) "aptitude update" will merge new package information into the debtags database automatically by running "debtags update --local". - Bug fixes: + Cosmetic and UI bugs: * The curses interface now uses a spinner to indicate download progress, since the percentage measurement can't be made correct in the current apt model. * Remove some stray cw:: strings that made it into user-visible messages (thanks to Jacobo Tarrio for pointing them out). * Interpret %-escapes in the descriptions of configuration options instead of displaying them to the user; thanks to Jens Seidel for pointing this out. * At the command-line prompt, don't list packages that aren't being upgraded unless the user tried to upgrade them. e.g., "aptitude install foo" will no longer spew the entire list of pending upgrades to the terminal. * When displaying dependencies or version numbers at the command-line (i.e., -D or -V is passed), add an extra space between packages, to make it a little more obvious which tags "belong" to which package. * If the resolver is allowed to produce the solution 'cancel all actions' (i.e., "Aptitude::ProblemResolver::Discard-Null-Solution" is false), the brief indicator in the UI will say that it cancels all the pending actions instead of counting its component actions. * When displaying the packages that could satisfy a versioned dependency, don't list packages that provide the package name unless they declare a versioned provides that matches the dependency's version restriction. (Closes: #464131) * Don't try to generate and then parse a matcher when searching for packages that look like what the user typed; instead, write explicit code to compare against package names and descriptions. This allows aptitude to find similar package names even if the corresponding command-line argument is an invalid search pattern (without having to write complex escaping logic); e.g., "aptitude install +5" does something sensible instead of printing a confusing error message. * If the user enters "q" during command-line dependency resolution, quit the program instead of falling back to manual resolution; manual resolution is only used if automatic resolution hits a fatal error or if the user requests it by typing "x". (Closes: #459629) + Translation bugs: * Generate POTFILES.in automatically, so it stays up-to-date without requiring manual intervention. * Flag W_() as a translation marker; failure to do this caused a lot of strings to be incorrectly left out of the translation files; pointed out by Jens Seidel. * Fix translation of strings displayed by the options editor (they weren't getting translated at all); thanks to Jens Seidel for reporting this. + Minor bugs: * Fix task handling in the case that different versions of a package are in different tasks. (Closes: #459348) * "safe-upgrade" will now attempt to automatically maximize the upgrade. Hopefully this will eliminate the situation where you run "aptitude safe-upgrade" and then discover that there are still some upgradable packages. + Crashes and serious errors: * aptitude will now build with g++ 4.3, assuming that 4.3-compatible versions of cwidget and sigc++ are installed. (Closes: #452204, #452540) * Reduce the translation percent threshold for the various versions of the manual until it compiles. (Closes: #470054) * aptitude now uses Apt::Install-Recommends instead of Aptitude::Recommends-Important to control whether recommendations are automatically installed. (Closes: #458189, #448561) Old configurations will be migrated to the new configuration option, if possible. Among other things, this means that --without-recommends works again (it was broken when recommends handling moved to apt). * Ensure the resolver state is always synchronized with the package cache, eliminating some cases where the resolver would break or produce wrong answers. (Closes: #421395, #432411) * Don't crash at the command-line when displaying the version numbers of packages being removed that don't have an installation candidate; also, the version display for removed packages is now meaningful. (Closes: #459336) * Don't crash at the command-line when displaying the version numbers of packages in the ConfigFiles state that are being purged; instead, display "Config Files" as the removed version. (Closes: #461669) As a side note: the code in question has been adjusted to be robust against bad version pointers, and should display "??" instead. If you see this, it's a bug, but at least aptitude won't crash in this case. * Don't crash in "aptitude update" when the package lists can't be parsed for some reason; instead just go ahead and download new ones. (Closes: #468751) + Documentation bugs: * Fix the documented default keybinding for PrevPage. * The documentation of searching has been substantially rewritten, and is hopefully much more useful now. In particular, there's more information about how versions are handled, and a concise table listing all the search expressions supported by aptitude. * Document some of the files aptitude uses in a FILES section in the manpage (Closes: #470839). + Translation updates: * Basque * French - Christian Perrier: Fix the use of quote in the French translation (Closes: #460808). * Galician * German (thanks to Jens Seidel) * Japanese (thanks to Noritada Kobayashi) * Norwegian Bokmål * Portuguese * Romanian (thanks to Eddy Petrișor) * Russian * Simplified Chinese * Slovak * Spanish * Vietnamese [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